uz
Feedback
ToCode

ToCode

Kanalga Telegramโ€™da oโ€˜tish

ื˜ื™ืคื™ื ืงืฆืจื™ื ืœืžืชื›ื ืชื™ื ืžืืช ื™ื ื•ืŸ ืคืจืง

Ko'proq ko'rsatish
1 420
Obunachilar
Ma'lumot yo'q24 soatlar
+37 kunlar
-430 kunlar
Postlar arxiv
ToCode
1 420
# ืœื Java, ืžื—ืจื•ื–ืช ื•ื‘ื™ื˜ื•ื™ ืจื’ื•ืœืืจื™ ื–ื” ืฉื ื™ ื“ื‘ืจื™ื ืฉื•ื ื™ื ืœ Java ื™ืฉ API ืœืขื‘ื•ื“ื” ืขื ื‘ื™ื˜ื•ื™ื™ื ืจื’ื•ืœืืจื™ื™ื ื“ืจืš ื”ื—ื‘ื™ืœื” java.util.Pattern. ืขื ื”ื—ื‘ื™ืœื” ื”ื–ืืช ืืคืฉืจ ืœื›ืชื•ื‘ ื“ื‘ืจื™ื ื›ืžื•:
Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches();
ืื• ืืคื™ืœื• ืœื”ืฉืชืžืฉ ื‘ืคื•ื ืงืฆื™ื•ืช ื”ืกื˜ื˜ื™ื•ืช ื•ืœื›ืชื•ื‘:
boolean b = Pattern.matches("a*b", "aaaaab");
ื•ื‘ื™ื•ื ืจื’ื™ืœ ื”ื™ื™ื ื• ืขื•ืฆืจื™ื ืคื” ืืช ื”ืฉื™ื—ื” ืขืœ ื‘ื™ื˜ื•ื™ื™ื ืจื’ื•ืœืืจื™ื™ื ื•ื—ื•ื–ืจื™ื ืœื“ื‘ืจ ืขืœ ืงื•ื“. ืื‘ืœ ืขื Java ืฉื•ื ื™ื•ื ืื™ื ื• ื™ื•ื ืจื’ื™ืœ. ืžื—ื•ืฅ ืœื—ื‘ื™ืœืช ื”ื‘ื™ื˜ื•ื™ื™ื ื”ืจื’ื•ืœืืจื™ื™ื ื™ืฉ ื—ื‘ื™ืœื” ืฉืœ ืžื—ืจื•ื–ื•ืช ื•ื‘ื” ื”ืคื•ื ืงืฆื™ื” split:
public String[] split(String regex)
ื•ื›ืŸ ืฉื ื”ืคืจืžื˜ืจ ื ื‘ื—ืจ ื‘ื›ื•ื•ื ื” - ื’'ืื•ื•ื” ืžืชื™ื—ืก ืœืžื—ืจื•ื–ืช ื”ื”ืคืจื“ื” ืœ split ื›ืžื• ื‘ื™ื˜ื•ื™ ืจื’ื•ืœืืจื™. ืงื•ื“? ื‘ื˜ื—. ื”ื ื” ืฉืชื™ ื“ื•ื’ืžืื•ืช:
import java.util.Arrays;

class Main {
  public static void main(String[] args) {
    // prints: [hello, world]
    System.out.println(Arrays.toString("hello-world".split("-")));

    // prints: []
    System.out.println(Arrays.toString("hello.world".split(".")));
  }
}
ื”ืฉื•ืจื” ื”ืจืืฉื•ื ื” ืžื“ืคื™ืกื” ืžืขืจืš ืขื ืฉื ื™ ืื™ื‘ืจื™ื, ื”ืจืืฉื•ืŸ ื”ื•ื ื”ืžื™ืœื” hello ื•ื”ืฉื ื™ ื”ืžื™ืœื” world. ื”ืฉื•ืจื” ื”ืฉื ื™ื” ืžื—ื–ื™ืจื” ืžืขืจืš ืจื™ืง, ื›ื™ ื ืงื•ื“ื” ื”ื™ื ื‘ื™ื˜ื•ื™ ืจื’ื•ืœืืจื™ ืฉืžืชืื™ื ืœื›ืœ ืชื•, ื•ืœื›ืŸ ื›ืœ ืชื• ื”ื•ื ืชื• ื”ืคืจื“ื” ื•ืœื›ืŸ ืœื ื ืฉืืจื• ื“ื‘ืจื™ื ืืžื™ืชื™ื™ื (ืžื•ืคืจื“ื™ื) ืœืฉื™ื ื‘ืžืขืจืš.

ToCode
1 420
# ืžืฉืชื ื™ ืงื•ื ื˜ืงืกื˜ ื‘ืกืงืืœื” ืžื‘ื ื” ืื—ื“ ืฉื—ื•ื–ืจ ืขืœ ืขืฆืžื• ื‘ื›ืชื™ื‘ืช ืงื•ื“ ืคื•ื ืงืฆื™ื•ื ืืœื™ ื”ื•ื ื”ืจืขื™ื•ืŸ ืฉืœ ื”ืขื‘ืจืช ืžืฉืชื ื” ืื—ื“ ืœื”ืจื‘ื” ืคื•ื ืงืฆื™ื•ืช, ื‘ื“ืจืš ื›ืœืœ ื›ืฉื”ืžืฉืชื ื” ืฉื•ืžืจ ืงื•ื ืคื™ื’ื•ืจืฆื™ื”. ืœืžืฉืœ ื‘ื‘ืœื•ืง ื”ื‘ื ื‘ืงืœื•ื–'ืจ ืฉืžื“ื’ื™ื ืื™ืš ืœื”ืฉืชืžืฉ ื‘ืกืคืจื™ื” clj-ssh:
(let [agent (ssh-agent {})]
  (let [session (session agent "host-ip" {:strict-host-key-checking :no})]
    (with-connection session
      (let [channel (ssh-sftp session)]
        (with-channel-connection channel
          (sftp channel {} :cd "/remote/path")
          (sftp channel {} :put "/some/file" "filename"))))))
ื‘ื‘ืœื•ืง ืžืขืชื™ืงื™ื ืงื‘ืฆื™ื ืœืฉืจืช ื•ืื ื—ื ื• ืจื•ืื™ื ืฉืฆืจื™ืš ืœื”ืขื‘ื™ืจ ืืช ื”ืžืฉืชื ื” channel ื›ืœ ืคืขื ืฉืงื•ืจืื™ื ืœ sftp. ื–ื” ื”ื’ื™ื•ื ื™ ื›ื™ ืื ื—ื ื• ื‘ืฉืคื” ืคื•ื ืงืฆื™ื•ื ืืœื™ืช ื•ื”ืกื˜ื™ื™ื˜ ื ืฉืžืจ ืžื—ื•ืฅ ืœืคื•ื ืงืฆื™ื•ืช, ืื‘ืœ ื™ื›ื•ืœ ืœื”ื™ื•ืช ืžืขื™ื™ืฃ ื‘ื›ืชื™ื‘ื”. ืกืงืืœื”, ืฉืžื”ืชืจืฉืžื•ืชื™ ืขื“ ื›ื” ืžื ืกื” ืœื”ื™ื•ืช ืฉืคื” ืคื•ื ืงืฆื™ื•ื ืืœื™ืช ื™ื“ื™ื“ื•ืชื™ืช ื’ื ืื ืฉื™ื ืฉืื™ื ื ืคื•ื ืงืฆื™ื•ื ืืœื™ื™ื, ื›ื•ืœืœืช ืžื ื’ื ื•ืŸ ืžืขื ื™ื™ืŸ ื›ื“ื™ ืœื—ืกื•ืš ื›ืคื™ืœื•ื™ื•ืช ืžืกื•ื’ ื–ื”, ืžื ื’ื ื•ืŸ ืฉื ืงืจื given / using. ืœืžืขืฉื” ืžื ื’ื ื•ืŸ ื” given ื•ื” using ืฉืœ ืกืงืืœื” ื”ืจื‘ื” ื™ื•ืชืจ ืžืชื•ื—ื›ื ืžืžื” ืฉืื ื™ ืžืจืื” ืคื”, ืื‘ืœ ื”ืžืงืจื” ืคื” ื‘ืคื•ืกื˜ ื”ื•ื ื“ื•ื’ืžื” ืœืฉื™ืžื•ืฉ ืื—ื“ ื™ื—ืกื™ืช ืงืœ ืœื”ื‘ื ื” ื‘ืžื ื’ื ื•ืŸ ื–ื”. ืื™ืš ื–ื” ืขื•ื‘ื“? ื‘ื”ื’ื“ืจืช ืคื•ื ืงืฆื™ื•ืช ื‘ืกืงืืœื” ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœื”ื’ื“ื™ืจ ื‘ื ื•ืกืฃ ืœืคืจืžื˜ืจื™ื ื”ืจื’ื™ืœื™ื ืฉืขื•ื‘ืจื™ื ืœืคื•ื ืงืฆื™ื” ื’ื ืžืฉืชื ื™ "ืงื•ื ื˜ืงืกื˜". ื”ื“ืจืš ื”ื›ื™ ืงืœื” ืœื—ืฉื•ื‘ ืขืœื™ื”ื ื”ื™ื ื‘ืชื•ืจ "ืžืฉืชื ื™ ืกื‘ื™ื‘ื”" ืฉืœ ื”ื‘ืœื•ืง ื”ืกืคืฆื™ืคื™ ื‘ืชื•ื›ื ื™ืช. ืœื“ื•ื’ืžื” ื›ืš ื ืจืื™ืช ื”ื’ื“ืจื” ืฉืœ ืคื•ื ืงืฆื™ื” ื”ืžืงื‘ืœืช ืžื™ื“ืข ืขืœ ืฉืจืช ื‘ืคืจืžื˜ืจ ื‘ืฉื config:
def readUsers(config: ServerConfig): Unit =
  println(s"read users from ${config.ip}")
ื•ื›ืš ื ืจืื™ืช ืื•ืชื” ืคื•ื ืงืฆื™ื” ื›ืฉื”ืคืจืžื˜ืจ ื”ื–ื” ื™ื›ื•ืœ ืœืขื‘ื•ืจ ื‘ืชื•ืจ "ืžืฉืชื ื” ืกื‘ื™ื‘ื”":
def readUsers(using config: ServerConfig): Unit =
  println(s"read users from ${config.ip}")
ื”ืžื™ืœื” using ืžื’ื“ื™ืจื” ืœืกืงืืœื” ืฉืžืฉืชื ื” ื–ื” ื™ื›ื•ืœ ืœื”ื’ื™ืข ืžื”ืกื‘ื™ื‘ื” ื•ืœื ืชืžื™ื“ ื—ื™ื™ื‘ื™ื ืœื”ืขื‘ื™ืจ ืื•ืชื• ื›ืคืจืžื˜ืจ ื‘ืงืจื™ืื” ืœืคื•ื ืงืฆื™ื”. ื‘ืฉื‘ื™ืœ ืœื”ื’ื“ื™ืจ ืฉืžืฉืชื ื” ืžืกื•ื™ื ื–ืžื™ืŸ ื‘ืกื‘ื™ื‘ื” ืœืคื•ื ืงืฆื™ื•ืช ื›ืžื• readUsers ืื ื™ ืžืฉืชืžืฉ ื‘ืžื™ืœื” ื”ืฉืžื•ืจื” given. ืœื›ืŸ ื”ืคืขืœืช ื”ืคื•ื ืงืฆื™ื” ื ืจืื™ืช ื›ืš:
@main def main(): Unit =
  given config: ServerConfig(ip = "12.13.14.15", port = 8080)
  readUsers
ื”ื“ื•ื’ืžื” ื”ื•ืคื›ืช ืžืขื ื™ื™ื ืช ื›ืฉืื ื™ ืžื•ืกื™ืฃ ืขื•ื“ ืคื•ื ืงืฆื™ื•ืช, ื›ื•ืœืœ ื›ืืœื” ืฉืžืงื‘ืœื•ืช ืคืจืžื˜ืจื™ื:
def readUsers(using config: ServerConfig): Unit =
  println(s"read users from ${config.ip}")

def addUser(username: String, password: String)(using config: ServerConfig): Unit =
  println(s"add user ${username} to ${config.ip}")

def wrapper(using ServerConfig): Unit =
  readUsers

@main def main(): Unit =
  given config: ServerConfig(ip = "12.13.14.15", port = 8080)

  readUsers
  addUser("foo", "bar")
  wrapper
ื‘ื–ื›ื•ืช ื”ื’ื“ืจืช ื” given ื‘ืชื—ื™ืœืช ื” main, ื›ืœ ื”ืคื•ื ืงืฆื™ื•ืช ืฉืฆืจื™ื›ื•ืช ืžืฉืชื ื” ืกื‘ื™ื‘ื” ืžืกื•ื’ ServerConfig ื™ืงื‘ืœื• ืืช ืื•ื‘ื™ืงื˜ ื”ืงื•ื ืคื™ื’ื•ืจืฆื™ื” ืฉื™ืฆืจืชื™. ื™ื•ืชืจ ืžื–ื”, ื”ืคื•ืงื ืฆื™ื” wrapper ื™ื›ื•ืœื” ืœืงืจื•ื ืœ addUsers ื‘ืœื™ ืฉืืฃ ืื—ื“ ืžื”ืŸ ืชืฆื˜ืจืš ืœืงื‘ืœ ืื• ืœื”ืขื‘ื™ืจ ืืช ืžืฉืชื ื” ื”ืงื•ื ืคื™ื’ื•ืจืฆื™ื” ื•ืคืฉื•ื˜ ื›ืœ ืคื•ื ืงืฆื™ื” ืฉืฆืจื™ื›ื” ืœื’ืฉืช ืืœื™ื• ืžืงื‘ืœืช ืื•ืชื• ืื•ื˜ื•ืžื˜ื™ืช ื•ื‘ืฆื•ืจื” ืžื•ื‘ืœืขืช. ื ื›ื•ืŸ, ื”ืคื™ืฆ'ืจ ื”ื–ื” ืœื ื™ื™ื—ื•ื“ื™ ืœืกืงืืœื” ื•ืœื“ื•ื’ืžื” ื‘ืงืœื•ื–'ืจ ื™ืฉ ืžื ื’ื ื•ืŸ ื“ื•ืžื” ืฉื‘ื ื•ื™ ืขืœ ืžืฉืชื ื™ื ื’ืœื•ื‘ืืœื™ื™ื ื•ืฉื™ื ื•ื™ ื”ื”ืฆื‘ืขื” ืฉืœื”ื. ื”ื“ื•ื’ืžื” ื”ื‘ืื” ื‘ืงืœื•ื–'ืจ ืžืžื—ื™ืฉื” ืืช ื”ืจืขื™ื•ืŸ:
(def ^:dynamic *config* {:ip "default-ip"})

(defn read-users []
  (println (str "read users from " (:ip *config*))))

;; Usage
(let [custom-config {:ip "custom-ip"}]
  (binding [*config* custom-config]
    (read-users)))
ื”ื”ื‘ื“ืœ ื”ืžืจื›ื–ื™ ื‘ื™ืŸ ื”ื“ื•ื’ืžื” ื‘ืกืงืืœื” ืœื“ื•ื’ืžื” ื‘ืงืœื•ื–'ืจ ื”ื•ื ืฉื‘ืกืงืืœื” ืžืฉืชื ื” ื”ืงื•ื ื˜ืงืกื˜ ื”ื•ื ืžืžืฉ ื—ืœืง ืžื”ื’ื“ืจืช ื”ืคื•ื ืงืฆื™ื”, ื•ื”ืงื•ืžืคื™ื™ืœืจ ื“ื•ืื’ ืœื”ืขื‘ื™ืจ ืืช ื”ืขืจืš ื”ื ื›ื•ืŸ ื‘ืงืจื™ืื” (ื‘ื“ื™ื•ืง ื›ืžื• ื‘ืงืจื™ืื” ืจื’ื™ืœื” ืœืคื•ื ืงืฆื™ื”), ื‘ืขื•ื“ ืฉื‘ืงืœื•ื–'ืจ ืขืœื™ื ื• ืœื”ื’ื“ื™ืจ ืžืฉืชื ื” ื’ืœื•ื‘ืืœื™ ื•ืฉื™ื ื•ื™ ื”ืขืจืš ืฉืœื• ืงื•ืจื” ื‘ื–ืžืŸ ืจื™ืฆื” ื‘ืฆื•ืจื” ื“ื™ื ืžื™ืช. ืœื›ืŸ ื‘ืงืœื•ื–'ืจ ืื ื”ืคืขืœืชื™ ืืช ื”ืคื•ื ืงืฆื™ื” ื‘ืœื™ ื” binding ืื ื™ ืžืงื‘ืœ ืชื•ืฆืื” ืœื ื ื›ื•ื ื”, ืื‘ืœ ื‘ืกืงืืœื” ื”ืงื•ื“ ืคืฉื•ื˜ ืœื ืžืชืงืžืคืœ.

ToCode
1 420
# ื”ืื ืžืคืชื—ื™ื ื—ื™ื™ื‘ื™ื ืœื”ืคื™ืฅ ืชื•ื›ื ื•ืช ืžืื•ื‘ื˜ื—ื•ืช? ื”ืื™ื–ื•ืŸ ื‘ื™ืŸ ื—ื•ื‘ืช ื”ืžืคืชื—ื™ื ืœื”ืคืฆืช ืชื•ื›ื ื•ืช ืžืื•ื‘ื˜ื—ื•ืช ืœื‘ื™ืŸ ื—ื•ืคืฉ ืฉืœ ืžืคืชื—ื™ื ืœื›ืชื•ื‘ ื•ืœื”ืคื™ืฅ ืชื•ื›ื ื•ืช ืœืœื ื“ืื’ื•ืช ื ืžืฆื ื‘ื™ืžื™ื ืืœื” ื‘ื“ื™ื•ื ื™ื ืกื•ืคื™ื™ื ื‘ืคืจืœืžื ื˜ ื”ืื™ืจื•ืคื™, ืฉื›ื‘ืจ ืขื•ื‘ื“ ืขืœ ื”ืฆืขื” ืฉื ืžืฆืืช ื‘ืฉืœื‘ื™ื ืกื•ืคื™ื™ื ืฉืœ ืื™ืฉื•ืจื™ื ื‘ืฉื Cyber Resilience Act. ืžื˜ืจืช ื”ื”ืฆืขื” ื”ื™ื ืœื”ื‘ื”ื™ืจ ืœืžืคืชื—ื™ื ื•ืœืžืฉืชืžืฉื™ื ืžื™ ืื—ืจืื™ ืœืชื™ืงื•ืŸ ื‘ืขื™ื•ืช ืื‘ื˜ื—ื” ื•ื‘ื“ื™ื•ืง ื‘ืื™ื–ื” ืื•ืคืŸ. ## ื”ืืชื’ืจ ื”ื™ื•ื ื”ื‘ืขื™ื” ืฉ CRA ืžื ืกื” ืœืคืชื•ืจ ื‘ืงืฆืจื” ื”ื™ื ื‘ืขื™ื™ืช ืฉืจืฉืจืช ื”ืืกืคืงื” - ื™ืฉ ืœื ื• ืชื•ื›ื ื” ืฉืชืœื•ื™ื” ื‘ืชื•ื›ื ื•ืช ืื—ืจื•ืช, ืื‘ืœ ืืฃ ืื—ื“ ืœื ืื—ืจืื™ ืขืœ ื”ืื‘ื˜ื—ื” ืฉืœ ืื•ืชืŸ ืชื•ื›ื ื•ืช ืื—ืจื•ืช ื•ื›ืฉื™ืฉ ื‘ืื’ ืœื•ืงื— ื”ืจื‘ื” ื–ืžืŸ ืœืชืงืŸ ื•ืœืคืขืžื™ื ื’ื ืœื“ื•ื•ื—. ืžืงืจื” ื’ื“ื•ืœ ื•ืžืคื•ืจืกื ืฉื”ืชื—ื™ืœ ื”ืจื‘ื” ืžื”ืฉื™ื—ื•ืช ื”ืืœื” ื”ื™ื” ื”ืคืจื™ืฆื” ืœ Solar Winds, ืคืจื™ืฆื” ืฉื’ืจืžื” ืœื—ื‘ืจื” ืœื”ืคื™ืฅ "ืขื“ื›ื•ืŸ" ืœืœืงื•ื—ื•ืช ื›ืืฉืจ ื”ืขื“ื›ื•ืŸ ื”ื™ื” ื‘ืขืฆื ื“ืœืช ืื—ื•ืจื™ืช ืœืคืจื™ืฆื”, ื•ื”ืœืงื•ื—ื•ืช ื”ื™ื• ื—ื‘ืจื•ืช ืขื ืง ื›ื•ืœืœ ืžืžืฉืœืช ืืจืฆื•ืช ื”ื‘ืจื™ืช. ื”ืจื›ื™ื‘ ื”ืคืจื•ืฅ ื”ื™ื” ื‘ืื•ื•ื™ืจ ื‘ื™ืŸ ืžืจืฅ ืœื™ื•ื ื™ 2020, ืื‘ืœ ื™ื•ืชืจ ืžืขื ื™ื™ื ืช ื”ื™ื ื”ืขื•ื‘ื“ื” ืฉื‘ืฉื‘ื™ืœ ืœื”ืฉืชื™ืœ ืื•ืชื• ื”ื”ืืงืจื™ื (ื›ื›ืœ ื”ื ืจืื” ืจื•ืกื™ื) ืคืจืฆื• ืœ Solar Winds ื•ืฉื™ื ื• ืืช ืชื”ืœื™ืš ื‘ื ื™ื™ืช ื”ืงื•ื“ ืฉืœื”ื. ื”ืžื˜ืจื” ืฉืœ ื”ืื™ื—ื•ื“ ื”ืื™ืจื•ืคื™ ื”ื™ื ืœืžื ื•ืข ืžืชืงืคื•ืช ืžืกื•ื’ ื–ื” ื•ืจื‘ื•ืช ื ื•ืกืคื•ืช ื‘ืืžืฆืขื•ืช ื—ื™ื•ื‘ ื—ื‘ืจื•ืช ืœื‘ืฆืข ืชื”ืœื™ื›ื™ ื‘ื“ื™ืงื•ืช ืื‘ื˜ื—ื” ื‘ืื•ืคืŸ ืชื“ื™ืจ, ื•ื—ื™ื•ื‘ ื–ื” ืžืžืฉื™ืš ืœื›ืœ ืื•ืจืš ืฉืจืฉืจืช ื”ืืกืคืงื” ืฉืœ ื›ืœ ืชื•ื›ื ื”. ## ื”ืืชื’ืจ ืฉืžืฆื™ื‘ื” CRA ืขื‘ื•ืจ ืžืชื›ื ืชื™ ืงื•ื“ ืคืชื•ื— ืื•ืžื ื ืฉื™ืคื•ืจ ืื‘ื˜ื—ืช ืžื™ื“ืข ืฉืœ ืžื•ืฆืจื™ื ื”ื•ื ืžื˜ืจื” ืจืื•ื™ื” ืื‘ืœ ื”ืฉื˜ืŸ ื”ื•ื ื‘ืคืจื˜ื™ื ื•ืžืคืชื—ื™ ืงื•ื“ ืคืชื•ื— ืจื‘ื™ื ืžืชืœื•ื ื ื™ื ืขืœ ื”ื“ืจืš. ื‘ืคืจื˜: 1. ื‘ื˜ื™ื•ื˜ื•ืช ื”ืขื“ื›ื ื™ื•ืช ื‘ื™ื•ืชืจ ื” CRA ื—ืœ ืขืœ ื—ื‘ืจื•ืช ืžืกื—ืจื™ื•ืช ืฉืžืจื•ื•ื™ื—ื•ืช ืžืžื•ืฆืจื™ ืงื•ื“ ืคืชื•ื— ืฉื”ืŸ ืžืชื—ื–ืงื•ืช. ื–ื” ืื•ืžืจ ืฉืื ืื ื™ ืคื•ืชื— ื—ื‘ืจื” ืฉืžืคื™ืฆื” ืกืคืจื™ื™ืช ืชื•ื›ื ื” ื•ืžื•ื›ืจ ืฉื™ืจื•ืชื™ ื™ื™ืขื•ืฅ ืขืœ ืกืคืจื™ื” ื–ื• ืื ื™ ืขืฉื•ื™ ืœื”ื™ื•ืช ืžื—ื•ื™ื‘ ืœืขืžื•ื“ ื‘ืกื˜ื ื“ืจื˜ื™ื ืฉืœ ื”ืื™ื—ื•ื“ ื”ืื™ืจื•ืคื™. 2. ื” CRA ืžื—ื™ื™ื‘ ื“ื™ื•ื•ื— ืขืœ ื‘ืขื™ื•ืช ืื‘ื˜ื—ื” ืชื•ืš ืžืกืคืจ ืฉืขื•ืช ืžืจื’ืข ื’ื™ืœื•ื™ ื”ืคืจืฆื•ืช. ืžื ื’ื ื•ืŸ ื›ื–ื” ืœื ื™ืืคืฉืจ ืœืžืชื›ื ืชื™ ืงื•ื“ ืคืชื•ื— ืœื”ืคื™ืฅ ื‘ืฆื•ืจื” ืžืกื•ื“ืจืช ืขื“ื›ื•ื ื™ ืชื•ื›ื ื” ืฉืžืชืงื ื™ื ืืช ื”ืคื™ืจืฆื” ื‘ื–ืžืŸ, ื›ื™ ืžืคืชื—ื™ ืงื•ื“ ืคืชื•ื— ืœื ื™ื•ื“ืขื™ื ืžื™ ื›ืœ ื”ืœืงื•ื—ื•ืช ืฉืœื”ื ื•ืื™ืŸ ืœื”ื ื“ืจืš ืœื”ื’ื™ืข ืœื›ืœ ื”ืœืงื•ื—ื•ืช ื‘ื–ืžืŸ ืกื‘ื™ืจ. 3. ื” CRA ืžื•ืกื™ืฃ ื ื˜ืœ ืจื’ื•ืœื˜ื•ืจื™ ื‘ื“ืžื•ืช ื‘ื“ื™ืงื•ืช ืื‘ื˜ื—ื” ืฉืžืคืชื—ื™ื ื—ื™ื™ื‘ื™ื ืœื‘ืฆืข, ื•ืœืคืขืžื™ื ืืฃ ื‘ื“ื™ืงื•ืช ื—ื™ืฆื•ื ื™ื•ืช (ืชืœื•ื™ ื‘ืžื•ืฆืจ). ืœื—ื‘ืจื•ืช ืงื•ื“ ืคืชื•ื— ืฉืžืžื™ืœื ื—ื™ื•ืช ืขืœ ืชืจื•ืžื•ืช ื ื˜ืœ ื›ื–ื” ืขืœื•ืœ ืœื”ื™ื•ืช ื”ื•ืฆืื” ืื—ืช ื™ื•ืชืจ ืžื“ื™. ืกืš ื”ื›ืœ ื›ืžื• ื‘ื”ืจื‘ื” ืกื™ื˜ื•ืืฆื™ื•ืช ืฉืžืขืœื™ื ืืช ื”ืจืฃ ื™ืฉ ืคื” ื‘ืขื™ื™ื” ืฉืœ ืื™ื–ื•ืŸ ื‘ื™ืŸ ื›ืžื” ืงืœ ืœืขืกืงื™ื ืงื˜ื ื™ื ืื• ื—ื“ืฉื™ื ืœื”ื™ื›ื ืก ื•ืœืคืขื•ืœ ื‘ืฉื•ืง ืœืขื•ืžืช ืื™ื›ื•ืช ื”ืžื•ืฆืจื™ื ื•ื”ืจื•ื•ื— ืœื›ืœืœ ื”ืื•ื›ืœื•ืกื™ื”. ืขื“ื™ื™ืŸ ืžื•ืงื“ื ืœื“ืขืช ืื™ืš ื“ื‘ืจื™ื ื”ื•ืœื›ื™ื ืœื”ืชืคืชื— ื•ื”ืื ืฉื™ื ื•ื™ ื–ื” ื™ื‘ื™ื ืœืฉื™ืคื•ืจ ืื‘ื˜ื—ืช ื”ืžื™ื“ืข ืฉืœ ืžื•ืฆืจื™ ืชื•ื›ื ื” ื‘ืื•ืคืŸ ื›ืœืœื™, ืื‘ืœ ืื ื™ ื‘ืื•ืคืŸ ืื™ืฉื™ ืœื ืื•ืคื˜ื™ืžื™. ื”ื‘ืขื™ื” ืขื ืื‘ื˜ื—ืช ืžื™ื“ืข ื”ื™ื ืฉืขืœ ื›ืœ ื—ื•ืจ ืฉื ืกื’ืจ ื ืคืชื—ื™ื ืขื•ื“ 5, ื•ืœื ืœื’ืžืจื™ ื‘ืจื•ืจ ื‘ืื™ื–ื• ืžื™ื“ืข ืชื•ืกืคืช ื”ื‘ื“ื™ืงื•ืช ืื• ื—ื•ื‘ืช ื”ื“ื™ื•ื•ื— ื™ืฉืคืจื• ืืช ื”ืžืฆื‘.

ToCode
1 420
# ืžื” ื›ื•ืชื‘ื™ื ืงื•ื“ื - ืžืžืฉืง ืžืฉืชืžืฉ ืื• ืœื•ื’ื™ืงื”? ืœื›ืœ ืื•ืคืฆื™ื” ื™ืฉ ืืช ื”ื™ืชืจื•ื ื•ืช ื•ื”ื—ืกืจื•ื ื•ืช ืฉืœื”, ื•ืœืคืขืžื™ื ื”ืชืฉื•ื‘ื” ืžื•ืจื›ื‘ืช. ืœื›ืชื•ื‘ ืืช ืžืžืฉืง ื”ืžืฉืชืžืฉ ืœืคื ื™ ื”ืœื•ื’ื™ืงื” ืื•ืžืจ ืฉืื ื™ ืžื›ื ื™ืก ื ืชื•ื ื™ื ืคื™ืงื˜ื™ื‘ื™ื™ื, ืงื‘ื•ืขื™ื, ืœืžืขืจื›ืช, ืื• ื‘ื•ื ื” ืœื•ื’ื™ืงื” ืžืื•ื“ ื‘ืกื™ืกื™ืช ืจืง ื›ื“ื™ ืฉืื•ื›ืœ ืœื”ืชืงื“ื. ื‘ืจื’ืข ืฉื™ืฉ ืžืฉื”ื• ืขืœ ื”ืžืกืš ืื ื™ ื™ื›ื•ืœ "ืœืฉื—ืง" ืขื ื”ืžืžืฉืง ื•ื—ื•ื•ื™ืช ื”ืžืฉืชืžืฉ ืขื“ ืฉืื ื™ ืžื’ื™ืข ืœืžืฉื”ื• ืฉืขื•ื‘ื“, ื•ืชื•ืš ื›ื“ื™ ืชื ื•ืขื” ืื ื™ ืžืขื“ื›ืŸ ืืช ื”ืœื•ื’ื™ืงื” ื•ืœืื˜ ืœืื˜ ืขื•ื‘ืจ ืœื ืชื•ื ื™ื ืืžื™ืชื™ื™ื. ืœื›ืชื•ื‘ ืืช ื”ืœื•ื’ื™ืงื” ืœืคื ื™ ืžืžืฉืง ื”ืžืฉืชืžืฉ ืื•ืžืจ ืฉืื ื™ ืžืฉืงื™ืข ื”ืžื•ืŸ ืขื‘ื•ื“ื” ืžืจืืฉ ื‘ื›ืชื™ื‘ืช ืกื›ื™ืžื•ืช ืœื‘ืกื™ืกื™ ื ืชื•ื ื™ื, ืฉืื™ืœืชื•ืช, ืงื•ื“ ืฆื“ ืฉืจืช ื•ื‘ื“ื™ืงื•ืช ืขืœื™ื• ื•ืจืง ืื—ืจื™ ืฉืฉื›ื‘ืช ื”ืžื™ื“ืข ื‘ื ื•ื™ื” ืื ื™ ืžืžืฉื™ืš ืœื‘ื ื•ืช ืืช ืžืžืฉืง ื”ืžืฉืชืžืฉ. ืืช ืฉื›ื‘ืช ื”ืžื™ื“ืข ื‘ื“ืงืชื™ ืขื ืชื•ื›ื ื™ื•ืช ื‘ื“ื™ืงื” ืงื˜ื ื•ืช ืื• ื‘ื“ื™ืงื•ืช ื™ื—ื™ื“ื” ื›ื“ื™ ืฉืœื ื™ื”ื™ื• ื”ืคืชืขื•ืช ื›ืฉืื’ื™ืข ืœื›ืชื•ื‘ ืืช ื” GUI. ื”ื™ืชืจื•ื ื•ืช ืฉืœ ื›ืชื™ื‘ืช ืžืžืฉืง ื”ืžืฉืชืžืฉ ืงื•ื“ื ื”ื ืœื›ืŸ: 1. ืื ื™ ืœื ื›ื•ืชื‘ ืœื•ื’ื™ืงื” ืžื™ื•ืชืจืช ืืœื ืจืง ืืช ื”ืžื ื’ื ื•ื ื™ื ืฉื”ืžื•ืฆืจ ื•ื”ืžืฉืชืžืฉื™ื ืฉืœื• ืฆืจื™ื›ื™ื. 2. ืื ื™ ื™ื›ื•ืœ ืœืืจื’ืŸ ืืช ืฉื›ื‘ืช ื”ืœื•ื’ื™ืงื” ื›ื“ื™ ืฉืžืžืฉืง ื”ืžืฉืชืžืฉ ื™ื”ื™ื” ืงืœ ืœืคื™ืชื•ื—, ื•ื™ื›ื•ืœ ืœื‘ื ื•ืช ืขืœ ื–ื” ืฉื™ืฉ ืœื™ ืชืžื™ื“ ืืช ื”ื ืชื•ื ื™ื ืฉืื ื™ ืฆืจื™ืš. 3. ืื ื™ ืžื’ื™ืข ื™ื—ืกื™ืช ืžื”ืจ ืœืœืงื•ื—ื•ืช ืื• ืœืžื ื”ืœื™ื ืขื ืžื•ืฆืจ ืฉื”ื ื™ื›ื•ืœื™ื ืœืจืื•ืช, ืžื” ืฉืžืืคืฉืจ ืœื™ ืœืงื‘ืœ ืคื™ื“ื‘ืง ื‘ืฉืœื‘ ืžื•ืงื“ื ืฉืœ ื”ืชื”ืœื™ืš. ืื‘ืœ ื–ื” ืœื ื›ืœ ื”ืกื™ืคื•ืจ. ื”ื™ืชืจื•ื ื•ืช ืฉืœ ืคื™ืชื•ื— ืฉื›ื‘ืช ื”ืžื™ื“ืข ืงื•ื“ื ื”ื: 1. ืžื™ืžื•ืฉ ืฉื›ื‘ืช ืžื™ื“ืข ื™ืฆื™ื‘ื” ืขื ื‘ื“ื™ืงื•ืช ืžื‘ื˜ื™ื— ืฉื™ื”ื™ื• ืœื™ ืคื—ื•ืช ื‘ืื’ื™ื ื‘ืฉื›ื‘ืช ื”ืžื™ื“ืข ืื• ืœืคื—ื•ืช ืฉื™ื”ื™ื” ืงืœ ื™ื•ืชืจ ืœืžืฆื•ื ื•ืœืชืงืŸ ืื•ืชื. 2. ืื—ืจื™ ืฉื™ืฉ ืžืžืฉืง ืžืฉืชืžืฉ ื•ืคื™ื“ื‘ืง ืขืœื™ื•, ืื ื—ื ื• ืžื‘ืœื™ื ื”ืžื•ืŸ ื–ืžืŸ ื‘ื”ืชืืžืช ื”ืžื•ืฆืจ ืœืคื™ื“ื‘ืง ืžื”ืœืงื•ื—ื•ืช (ื‘ืฆื“ืง) ื•ืœื ืžืกืคื™ืง ื–ืžืŸ ื‘ื‘ื ื™ื™ืช ืฉื›ื‘ืช ืžื™ื“ืข ื™ืฆื™ื‘ื”. 3. ืื™ืœื•ืฆื™ื ืฉื”ื’ื™ืขื• ืžืžืžืฉืง ื”ืžืฉืชืžืฉ ืขืœื•ืœื™ื ืœื’ืจื•ื ืœื ื• ืœืฉืžื•ืจ ืžื™ื“ืข ื‘ืฆื•ืจื” ืœื ื™ืขื™ืœื” ืื• ืžื™ื“ืข ื›ืคื•ืœ, ื•ื›ืฉื ื‘ื™ืŸ ืฉืื ื—ื ื• ืจื•ืฆื™ื ืœืฉื ื•ืช ืืช ืžื‘ื ื” ื”ื˜ื‘ืœืื•ืช ื–ื” ื›ื‘ืจ ื™ื”ื™ื” ืžืื•ื—ืจ ืžื“ื™. 4. ื”ืจื‘ื” ื™ื•ืชืจ ืงืœ ืœืฉื ื•ืช ืžืžืฉืง ืžืฉืชืžืฉ ื›ืฉื™ืฉ ืฉื›ื‘ืช ืžื™ื“ืข ื™ืฆื™ื‘ื” ืžืืฉืจ ืœืฉื ื•ืช ืฉื›ื‘ืช ืžื™ื“ืข ื›ืฉื™ืฉ ืžืžืฉืง ืžืฉืชืžืฉ ื™ืฆื™ื‘. ืงืฆืช ื›ืžื• ืขื TDD ืื ื™ ื—ื•ืฉื‘ ืฉื”ื‘ืขื™ื” ื”ืžืจื›ื–ื™ืช ื‘ืคื™ืชื•ื— ืžืžืฉืง ืžืฉืชืžืฉ ืงื•ื“ื ื”ื™ื ืฉืื—ืจื™ ืฉื™ืฉ ืžืžืฉืง ื•ืžื•ืฆืจ ืงืฉื” "ืœื—ื–ื•ืจ ืื—ื•ืจื”" ื›ื“ื™ ืœื›ืชื•ื‘ ืืช ื”ืœื•ื’ื™ืงื” ื›ืžื• ืฉืฆืจื™ืš, ื•ืื– ืื ื—ื ื• ืชืงื•ืขื™ื ืขื ืžื‘ื ื” ื˜ื‘ืœืื•ืช ืœื ืื•ืคื˜ื™ืžืœื™ ืฉืžืื˜ ืื•ืชื ื• ื‘ืžื™ืžื•ืฉ ืคื™ืฆ'ืจื™ื ื—ื“ืฉื™ื. ืคื™ืชืจื•ืŸ ื˜ื•ื‘ ื•ืงืฉื” ืœื‘ื™ืฆื•ืข ื™ื”ื™ื” ืœื—ืœืง ืืช ื”ืคื™ืชื•ื— ืœืฉืœื‘ื™ื. ื‘ืฉืœื‘ ื”ืจืืฉื•ืŸ ื ื‘ื ื” ืžืžืฉืง ืžืฉืชืžืฉ ืขื ืฉื›ื‘ืช ืžื™ื“ืข ืžื ื•ื•ื ืช ืจืง ื‘ืฉื‘ื™ืœ ืœื”ื‘ื™ืŸ ืืช ื“ืจื™ืฉื•ืช ื”ืคืจื•ื™ืงื˜, ื•ื‘ืฉืœื‘ ื”ืฉื ื™ ืื—ืจื™ ืฉื™ืฉ ืžืฉื”ื• ื‘ืื•ื•ื™ืจ ื ื—ื–ื•ืจ ืœืฉื•ืœื—ืŸ ื”ืฉืจื˜ื•ื˜ื™ื ื•ื ื‘ื ื” ืžื—ื“ืฉ ืืช ืฉื›ื‘ืช ื”ืžื™ื“ืข ืžืืคืก ื‘ืฆื•ืจื” ื™ืฆื™ื‘ื” ื™ื•ืชืจ ืฉืœื•ืงื—ืช ื‘ื—ืฉื‘ื•ืŸ ืืช ื›ืœ ื”ืคื™ืฆ'ืจื™ื ืฉืื ื—ื ื• ืขื›ืฉื™ื• ื™ื•ื“ืขื™ื ืฉืฆืจื™ื›ื™ื ื•ืžื ื’ื ื•ื ื™ ืจื™ืคืงื˜ื•ืจื™ื ื’ ื•ื‘ื“ื™ืงื•ืช ืฉื™ืขื–ืจื• ืœื ื• ืœื”ืžืฉื™ืš ื•ืœืชืงืŸ ืชื•ืš ื›ื“ื™ ืชื ื•ืขื”. ื•ื›ืŸ ื–ื” ืžื“ื›ื ื›ื™ ืื™ ืืคืฉืจ ื‘ืืžืช ืœื‘ื ื•ืช ืžื—ื“ืฉ ืจืง ืืช ืฉื›ื‘ืช ื”ืžื™ื“ืข ื‘ืœื™ ืœื’ืขืช ื‘ืงื•ื“ ื”ืžืžืฉืง ื•ืœื›ืŸ ืชื”ืœื™ืš ื›ื–ื” ื”ื•ื ื›ืžืขื˜ ื›ืชื™ื‘ื” ืžื—ื“ืฉ ืฉืœ ื”ืคืจื•ื™ืงื˜ ื‘ืคืขื ื”ืฉื ื™ื”.

ToCode
1 420
# ื‘ื•ืื• ื ืกื“ืจ ื˜ืงืกื˜ ื‘ื˜ื‘ืœื” ืขื ื”ืคืงื•ื“ื” column ื”ืคืงื•ื“ื” column ื ื•ืขื“ื” ื›ื“ื™ ืœืงื‘ืœ ื˜ืงืกื˜ ืืจื•ืš ื•ืœืฉื‘ื•ืจ ืื•ืชื• ืœืขืžื•ื“ื•ืช ื›ื“ื™ ืฉื™ื”ื™ื” ืงืœ ื™ื•ืชืจ ืœืงืจื•ื ืื•ืชื• ื‘ืœื™ ืœื’ืœื•ืœ, ื›ืžื• ื˜ื•ืจื™ื ื‘ื“ืฃ ืฉืœ ืขื™ืชื•ืŸ. ืืคืฉืจ ืœืจืื•ืช ื“ื•ื’ืžื” ืงืœื” ืœืฉื™ืžื•ืฉ ื‘ื” ื›ืฉื ืขื‘ื™ืจ ืืœื™ื” ืชื•ื›ืŸ ืฉืœ ืงื•ื‘ืฅ. ื›ืš ื ืจืื” ื”ืงื•ื‘ืฅ /etc/shells ืืฆืœื™:
$ cat /etc/shells

# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/dash
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/usr/local/bin/pwsh
ื•ื›ืš ื–ื” ื ืจืื” ืขื column:
$ cat /etc/shells | column

# List of acceptable shells for chpass(1).                      /bin/csh                                                        /bin/tcsh
# Ftpd will not allow users to connect who are not using        /bin/dash                                                       /bin/zsh
# one of these shells.                                          /bin/ksh                                                        /usr/local/bin/pwsh
/bin/bash                                                       /bin/sh
ืื‘ืœ ืœ column ื™ืฉ ืฉื™ืžื•ืฉ ื ื•ืกืฃ ืืคื™ืœื• ื™ื•ืชืจ ืžืขื ื™ื™ืŸ - ื”ืžืชื’ -t ืฉืœื• ื’ื•ืจื ืœืคืงื•ื“ื” ืœื–ื”ื•ืช ืงืœื˜ ืฉืžื—ื•ืœืง ืœืขืžื•ื“ื•ืช ื•ืœื”ื“ืคื™ืก ื‘ืฆื•ืจื” ื™ืคื” (ื›ืœื•ืžืจ ืžืจื•ื•ื—ืช) ืงืœื˜ ื–ื”. ืœื“ื•ื’ืžื” ื ื™ืงื— ืืช ืชื•ื›ื ื™ืช ื” bash ื”ื‘ืื” ืฉืžื“ืคื™ืกื” ืืช ืœื•ื— ื”ื›ืคืœ, ื‘ืœื™ ืœืกื“ืจ ื™ืคื” ืืช ื”ืคืœื˜:
#!/bin/bash

end=${1:-10}

for ((i=1; i <= $end; i++))
do
  for ((j=1; j <= $end; j++))
  do
    printf "%d " $((i * j))
  done
  echo
done
ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ื”ื™ื ืœื”ื“ืคื™ืก ืขื“ 10 ืื‘ืœ ืืคืฉืจ ืœื”ืขื‘ื™ืจ ืคืจืžื˜ืจ ื›ื“ื™ ืœืงื‘ืœ ืœื•ื—ื•ืช ื’ื“ื•ืœื™ื ื™ื•ืชืจ. ื•ื ื›ื•ืŸ ืืคืฉืจ ืœื”ืชืื™ื ืืช ื” printf ื›ื“ื™ ืฉื”ืคืœื˜ ื™ื•ื“ืคืก ืžืจื•ื•ื— ื™ืคื” ื‘ืžืงืจื” ื”ื–ื” ืื‘ืœ ืื ื—ื ื• ืจื•ืฆื™ื ืœื“ื‘ืจ ืขืœ column. ื”ืคืขืœื” ืจื’ื™ืœื” ืฉืœ ื”ืชื•ื›ื ื™ืช ืžื“ืคื™ืกื”:
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100
ื”ืชื•ืกืคืช ืฉืœ column -t ื›ื‘ืจ ืขื•ืฉื” ืืช ื”ืงืกื:
$ bash table.bash | column -t

1   2   3   4   5   6   7   8   9   10
2   4   6   8   10  12  14  16  18  20
3   6   9   12  15  18  21  24  27  30
4   8   12  16  20  24  28  32  36  40
5   10  15  20  25  30  35  40  45  50
6   12  18  24  30  36  42  48  54  60
7   14  21  28  35  42  49  56  63  70
8   16  24  32  40  48  56  64  72  80
9   18  27  36  45  54  63  72  81  90
10  20  30  40  50  60  70  80  90  100
ื“ื‘ืจ ืื—ื“ ืฉืื•ืœื™ ืžืฆื™ืง ื›ืืŸ ื–ื” ื”ื™ื™ืฉื•ืจ ืœืฉืžืืœ. ื‘ื’ื™ืจืกืช ื” BSD ืฉืœ column ืฉืžื•ืชืงื ืช ืืฆืœื™ ืขืœ ื”ืžืง ืฆืจื™ืš ืคืฉื•ื˜ ืœื—ื™ื•ืช ืขื ื–ื”, ืื‘ืœ ื‘ืœื™ื ื•ืงืก ื”ืžืชื’ -R0 ื’ื•ืจื ืœื™ื™ืฉื•ืจ ื”ื˜ื‘ืœื” ื›ื•ืœื” ืœื™ืžื™ืŸ ื•ื–ื” ื ืจืื” ื›ืš:
ubuntu@primary:~/Home/tmp/blog$ bash table.bash |column -t -R0
 1   2   3   4   5   6   7   8   9   10
 2   4   6   8  10  12  14  16  18   20
 3   6   9  12  15  18  21  24  27   30
 4   8  12  16  20  24  28  32  36   40
 5  10  15  20  25  30  35  40  45   50
 6  12  18  24  30  36  42  48  54   60
 7  14  21  28  35  42  49  56  63   70
 8  16  24  32  40  48  56  64  72   80
 9  18  27  36  45  54  63  72  81   90
10  20  30  40  50  60  70  80  90  100

ToCode
1 420
# ื•ืื ื”ืชื•ืฆืื” ื”ื™ืชื” ืžื™ื™ื“ื™ืช? ื•ืื ืื—ืจื™ ื”ืกื™ื’ืจื™ื” ื”ืจืืฉื•ื ื” ื›ื‘ืจ ื”ื™ื™ืช ื—ื•ื˜ืฃ ืกืจื˜ืŸ ืจื™ืื•ืช? ื•ืื ืื—ืจื™ ื”ื’ื™ื•ืก ื”ื’ืจื•ืข ื”ืจืืฉื•ืŸ ื”ื—ื‘ืจื” ื”ื™ืชื” ืžืชืžื•ื˜ื˜ืช? ื•ืื ืื—ืจื™ ื—ื•ืจ ื”ืื‘ื˜ื—ื” ื”ืจืืฉื•ืŸ ื”ืืงืจื™ื ื”ื™ื• ืžืคื™ืœื™ื ืืช ื”ืžืขืจื›ืช? ืื ื—ื ื• ืžืžืฉ ื˜ื•ื‘ื™ื ื‘ืœื–ื”ื•ืช ืงืฉืจ ื‘ื™ืŸ ืกื™ื‘ื” ืœืชื•ืฆืื” ื›ืฉืชื•ืฆืื•ืช ืงื•ืจื•ืช ื‘ื“ื™ื•ืง ืื—ืจื™ ื”ืกื™ื‘ื•ืช ืฉืœื”ืŸ, ื•ื›ื›ืœ ืฉื”ื–ืžืŸ ื‘ื™ืŸ ื”ืกื™ื‘ื” ืœืชื•ืฆืื” ืžืชืืจืš ืงืฉื” ื™ื•ืชืจ ืœืจืื•ืช ืืช ื–ื”. ืœืงื— ื”ืจื‘ื” ืฉื ื™ื ืœื”ื‘ื™ืŸ ืฉื”ืกืจื˜ืŸ ืจื™ืื•ืช ืงืฉื•ืจ ืœืกื™ื’ืจื™ื•ืช, ืœื•ืงื— ื”ืจื‘ื” ื–ืžืŸ ืœื”ื‘ื™ืŸ ืฉื”ื™ืจื™ื“ื” ื‘ื‘ื™ืฆื•ืขื™ื ื”ื™ื ื‘ื’ืœืœ ื™ืจื™ื“ื” ื‘ืื™ื›ื•ืช ื›ื— ื”ืื“ื ื•ื”ืžื•ืŸ ื–ืžืŸ ืœื”ื‘ื™ืŸ ืฉื—ื•ืจื™ ื”ืื‘ื˜ื—ื” ื ื’ืจืžื™ื ื‘ื’ืœืœ ืชื”ืœื™ื›ื™ ืขื‘ื•ื“ื” ืœื ื ื›ื•ื ื™ื. ื›ืฉื”ืชื•ืฆืื•ืช ืงื•ืจื•ืช ืื ื—ื ื• ืขื•ืฉื™ื ืฉืชื™ ื˜ืขื•ื™ื•ืช: 1. ืื ื—ื ื• ืžื ืกื™ื ืœืชืงืŸ ืืช ื”ื‘ืขื™ื” ื‘ืืžืฆืขื•ืช ื˜ืœืื™. 2. ืื ื—ื ื• ืžื•ื•ืชืจื™ื ืขืœ ื”ื˜ื™ืคื•ืœ ื‘ื’ื•ืจื ื”ืืžื™ืชื™, ื›ื™ ืชื™ืงื•ืŸ ื‘ื“ืจืš ื–ื• ื™ื™ืงื— ื”ืžื•ืŸ ื–ืžืŸ ืื• ื›ื‘ืจ ืœื ืจื™ืืœื™ (ืœืชืงืŸ ืชื”ืœื™ื›ื™ ืขื‘ื•ื“ื”? ืœื’ื™ื™ืก ืื ืฉื™ื ื˜ื•ื‘ื™ื ื™ื•ืชืจ? ื›ืŸ ืื‘ืœ ื–ื” ื™ื™ืงื— ื”ืžื•ืŸ ื–ืžืŸ, ื‘ื•ืื• ื ื›ื‘ื” ืงื•ื“ื ืืช ื”ืฉืจื™ืคื”). ื”ื–ืžืŸ ื”ื›ื™ ื˜ื•ื‘ ืœื ื˜ื•ืข ืขืฅ ื”ื™ื” ืœืคื ื™ ืขืฉืจื™ื ืฉื ื”. ื”ื–ืžืŸ ื”ืฉื ื™ ื”ื›ื™ ื˜ื•ื‘ ื”ื•ื ืขื›ืฉื™ื•. ืœื ื‘ื˜ื•ื— ืฉื”ืชื™ืงื•ืŸ ื”ื ื›ื•ืŸ ื™ืขื‘ื•ื“ ื‘ื–ืžืŸ, ืื‘ืœ ื”ื•ื ื”ืกื™ื›ื•ื™ ื”ื™ื—ื™ื“ ืฉื™ืฉ ืœื ื•.

ToCode
1 420
# ืงื•ืจืก? ื™ื™ืขื•ืฅ? ืžื” ื‘ืขืฆื ืื ื™ ืฆืจื™ืš? ื‘ื™ื™ืขื•ืฅ ืžื’ื™ืขื™ื ืืœื™ื›ื ืœืจืื•ืช ืื™ืš ืืชื ืขื•ื‘ื“ื™ื ื•ืœืชืช ื˜ื™ืคื™ื ืฉื™ืขื–ืจื• ืœื›ื ืœืขื‘ื•ื“ ื‘ืฆื•ืจื” ื™ืขื™ืœื” ื™ื•ืชืจ. ื”ื™ื•ืขืฅ ื™ื•ื›ืœ ืœื”ื™ื›ื ืก ืืชื›ื ืœืขื•ื‘ื™ ื”ืงื•ืจื” ื•ืœืืชื’ืจื™ื ื”ืกืคืฆื™ืคื™ื™ื ืฉืœ ื”ืžืขืจื›ืช ืฉืœื›ื ื•ืœื”ืฆื™ืข ืฉื™ืคื•ืจื™ื ื‘ืชื•ืš ื”ืขื•ืœื ืฉืœื›ื. ื‘ืงื•ืจืก ืืชื ืžื’ื™ืขื™ื ืœืžืงื•ื ืื—ืจ, ืจื•ืื™ื ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืฉืขื•ื–ืจื•ืช ืœืื ืฉื™ื ืื—ืจื™ื ืœื”ืชืžื•ื“ื“ ืขื ืืชื’ืจื™ื ืื—ืจื™ื (ื“ื•ืžื™ื ืื• ืฉื•ื ื™ื ืœืืชื’ืจื™ื ืฉืœื›ื) ื•ืžืงื‘ืœื™ื ืจืขื™ื•ื ื•ืช ืฉืื•ืœื™ ืœื ื—ืฉื‘ืชื ืฉืชืฆื˜ืจื›ื•. ื‘ืงื•ืจืก ื”ื›ื™ื ื• ืขื‘ื•ืจื›ื ืžืกืœื•ืœ ืœื™ืžื•ื“ ืจื•ื—ื‘ื™ ืฉืžื›ืกื” ื”ืจื‘ื” ืคื™ืชืจื•ื ื•ืช ืœื”ืจื‘ื” ื‘ืขื™ื•ืช. ืœื›ืœ ืฉื™ื˜ืช ืขื‘ื•ื“ื” ื™ืฉ ืืช ื”ื™ื™ืชืจื•ืŸ ืฉืœื”, ืื‘ืœ ื”ื“ื‘ืจ ื”ื—ืฉื•ื‘ ื”ื•ื ืœื ืœืขืจื‘ื‘. ืื™ืŸ ื˜ืขื ืœื‘ื•ื ืœืงื•ืจืก ืื ื™ืฉ ืœื›ื ืฉื™ื˜ืช ืขื‘ื•ื“ื” ืžืื•ื“ ืกืคืฆื™ืคื™ืช ื•ื™ื™ื—ื•ื“ื™ืช ืื• ืฉืืชื ืžืื•ื“ ืžื•ื˜ืจื“ื™ื ื‘ื‘ืขื™ื•ืช ื‘ืžืขืจื›ืช ืฉืœื›ื ื•ืœื ืคื ื•ื™ื™ื ืœืฉืžื•ืข ืขืœ ืžืขืจื›ื•ืช ืื—ืจื•ืช ื•ืืชื’ืจื™ื ืื—ืจื™ื. ื•ื’ื ืœื”ื™ืคืš - ืื™ืŸ ื˜ืขื ืœืงื—ืช ื™ื•ืขืฅ ื›ื“ื™ ืฉื™ืกืคืจ ืœื›ื ืžืืคืก ืขืœ ืกื•ื’ื™ ื”ืคื™ืชืจื•ื ื•ืช ื”ืืคืฉืจื™ื™ื ืœื‘ืขื™ื” ืžืกื•ื™ืžืช ืื ืืชื ืขื“ื™ื™ืŸ ืœื ืžื›ื™ืจื™ื ืืช ื”ื‘ืขื™ื”. ื”ื‘ื ื” ื ื›ื•ื ื” ืฉืœ ื”ืžืฆื‘ ืฉืœื›ื ื•ืฉืœ ื”ื™ืขื“ื™ื ืฉืœื›ื ื”ื™ื ื”ืฆืขื“ ื”ืจืืฉื•ืŸ ืœืคื ื™ ืฉืžื—ืœื™ื˜ื™ื ืื™ื–ื” ืกื•ื’ ืขื–ืจื” ืœื—ืคืฉ.

ToCode
1 420
# ืชื–ื›ื•ืจืช ืž curl - ืžื™ ื‘ื™ืงืฉ ืžืžืš? ื”ื‘ืื’ ืฉื ื—ืฉืฃ ืืชืžื•ืœ ื‘ libcurl ื”ื•ื ื›ื–ื” ืฉืžืชื›ื ืชื™ื ืื•ื”ื‘ื™ื ืœืขืฉื•ืช ื•ืื•ื”ื‘ื™ื ืœื”ืชื—ืจื˜ ืขืœื™ื•. ื”ื™ื•ืฆืจ ืฉืœ curl ื“ื ื™ืืœ ืกื˜ื ื‘ืจื’ ืคืจืกื ืืช ื”ืคืจื˜ื™ื. ื‘ื’ื“ื•ืœ ื›ืฉืžื•ืฉื›ื™ื ื“ืฃ ื“ืจืš libcurl ืืคืฉืจ ืœื”ืฉืชืžืฉ ื‘ืคืจื•ืงืกื™, ื•ืื ืžืฉืชืžืฉื™ื ื‘ืคืจื•ืงืกื™ ืืคืฉืจ ืœื‘ื—ื•ืจ ืœืคืขื ื— ืœื‘ื“ ืืช ืฉื ื”ืฉืจืช ืืœื™ื• ืคื•ื ื™ื ื•ืœืชืช ืœืคืจื•ืงืกื™ ืืช ื›ืชื•ื‘ืช ื” IP, ืื• ืœื”ืขื‘ื™ืจ ืืช ืฉื ื”ืฉืจืช ืœืคืจื•ืงืกื™ ืฉื”ื•ื ื™ืฉื‘ื•ืจ ืืช ื”ืจืืฉ. ื™ืฉ ืœื• ื’ื ืžืฉืชื ื” ื‘ืฉื socks_proxy.proxytype ืฉื™ื›ื•ืœ ืœืงื‘ืœ ืืช ื”ืขืจืš CURLPROXY_SOCKS5 ื‘ืฉื‘ื™ืœ ืœืคืขื ื— ืœื‘ื“ ืืช ื›ืชื•ื‘ืช ื” IP ืืœื™ื” ืฆืจื™ืš ืœื”ืชื—ื‘ืจ, ืื• ืืช ื”ืขืจืš CURLPROXY_SOCKS5_HOSTNAME ื‘ืฉื‘ื™ืœ ืœื”ืขื‘ื™ืจ ืืช ืฉื ื”ืฉืจืช ื™ืฉื™ืจื•ืช ืœืคืจื•ืงืกื™ ืฉื”ื•ื ื›ื‘ืจ ื™ืฉื‘ื•ืจ ืืช ื”ืจืืฉ. ืื‘ืœ ื‘ืžืฆื‘ ืฉืฆืจื™ืš ืœื”ืขื‘ื™ืจ ืืช ืฉื ื”ืฉืจืช ื™ืฉ ื‘ืขื™ื” - ืฉืจืชื™ socks ืชื•ืžื›ื™ื ืจืง ื‘ืฉืžื•ืช ืฉืจืช ื‘ืื•ืจืš ืขื“ 255 ืชื•ื•ื™ื. ืขื›ืฉื™ื• ืžื” ื”ื™ื™ืชื ืขื•ืฉื™ื ืื ืžืฉืชืžืฉ ื‘ื—ืจ ื‘ืฉื™ื˜ืช ืขื‘ื•ื“ื” ืœื—ื™ื‘ื•ืจ "ืฉืœื— ืืช ืฉื ื”ืฉืจืช ืœืคืจื•ืงืกื™" ืื‘ืœ ืฉื ื”ืฉืจืช ืฉื”ื•ื ืžื ืกื” ืœื”ืชื—ื‘ืจ ืืœื™ื• ื™ืฆื ืืจื•ืš ื™ื•ืชืจ ืžืžื” ืฉืžืชืืคืฉืจ ืœืฉืœื•ื—? ื“ื ื™ืืœ ืขืฉื” ืžื” ืฉืจื‘ื™ื ืžืื™ืชื ื• ื”ื™ื• ืขื•ืฉื™ื ื•ืžืชื—ืจื˜ื™ื ืขืœื™ื• ื‘ื“ื™ืขื‘ื“ - ื‘ืจื’ืข ืฉื”ื•ื ืจืื” ืฉื ืฉืจืช ืืจื•ืš ื”ื•ื ื”ื ื™ื— ืฉืžื™ืฉื”ื• ื”ืขื‘ื™ืจ ื‘ื˜ืขื•ืช ืืช ื”ืขืจืš ื”ืœื ื ื›ื•ืŸ ืœืคืจืžื˜ืจ ืฉื‘ื•ื—ืจ ืžืฆื‘ ืขื‘ื•ื“ื”, ื•ืฉื™ื ื” ืืช ืžืฆื‘ ื”ืขื‘ื•ื“ื” ืœืคื™ืขื ื•ื— ืฉื ืฉืจืช ืžืงื•ืžื™. ื”ื‘ืขื™ื” ืฉื‘ื’ืœืœ ืžื‘ื ื” ื”ืงื•ื“, ื”ืฉื™ื ื•ื™ ืœื ืžืฉืคื™ืข ืขืœ ื›ืœ ื”ืžืฆื‘ื™ื ื•ืืคืฉืจ ืœืขืงื•ืฃ ืื•ืชื•. ืชื•ืงืฃ ื–ื“ื•ื ื™ ืฉืจื•ืฆื” ืœื”ืคื™ืœ ืืช ื” curl ืฉืœื›ื ื™ื›ื•ืœ ืœื‘ื ื•ืช ืฉืจืช ืฉื™ืฉืœื— Redirect ืขื ืฉื ืฉืจืช ืืจื•ืš ืžื“ื™ ื•ื‘ืžืฆื‘ื™ื ืžืกื•ื™ืžื™ื ื™ืขืงื•ืฃ ืืช ืฉื™ื ื•ื™ ืžืฆื‘ ื”ืขื‘ื•ื“ื” ื•ื™ื’ืจื•ื ืœ Heap Overflow ื‘ืงื•ื“ ื”ืœืงื•ื—. ื”ืงื•ื“ ื”ืคื’ื™ืข ื‘ื’ื“ื•ืœ ื”ื•ื:
  bool socks5_resolve_local =
    (conn->socks_proxy.proxytype == CURLPROXY_SOCKS5) ? TRUE : FALSE;
  const size_t hostname_len = strlen(sx->hostname);
  ssize_t len = 0;
  const unsigned char auth = data->set.socks5auth;
  bool allow_gssapi = FALSE;
  struct Curl_dns_entry *dns = NULL;

  DEBUGASSERT(auth & (CURLAUTH_BASIC | CURLAUTH_GSSAPI));
  switch(sx->state) {
  case CONNECT_SOCKS_INIT:
    if(conn->bits.httpproxy)
      infof(data, "SOCKS5: connecting to HTTP proxy %s port %d",
            sx->hostname, sx->remote_port);

    /* RFC1928 chapter 5 specifies max 255 chars for domain name in packet */
    if(!socks5_resolve_local && hostname_len > 255) {
      infof(data, "SOCKS5: server resolving disabled for hostnames of "
            "length > 255 [actual len=%zu]", hostname_len);
      socks5_resolve_local = TRUE;
    }
ื•ื–ื” ืคื’ื™ืข ื›ื™ ืฉื™ื ื•ื™ ื”ืขืจืš ืฉืœ ื”ืžืฉืชื ื” ื”ื‘ื•ืœื™ืื ื™ ืงื•ืจื” ืจืง ื‘ืžืงืจื” ืฉืœ CONNECT_SOCKS_INIT, ืื‘ืœ ืืคืฉืจ ืœื”ื™ื›ื ืก ืœืคื•ื ืงืฆื™ื” ื”ื–ืืช ื’ื ื™ืฉื™ืจื•ืช ืœ case-ื™ื ืื—ืจื™ื ื‘ืžืฆื‘ื™ื ืฉืœ ืฉืจืช ืคืจื•ืงืกื™ ืื™ื˜ื™. ื”ืžืกืงื ื” ืฉืœ ื“ื ื™ืืœ ื ื›ื•ื ื” ื’ื ืœื’ื‘ื™ื ื• ื•ืœื›ืœ ืงื•ื“ ืฉืื ื—ื ื• ื›ื•ืชื‘ื™ื. ื”ื•ื ื›ื•ืชื‘: > curl should not switch mode from remote resolve to local resolve due to too long host name. It should rather return an error and starting in curl 8.4.0, it does. ื”ื—ืœืคืช ืžืฆื‘ ื”ืคืขื•ืœื” ืจืง ื‘ื’ืœืœ ืฉื’ื™ืœื™ื ื• ื‘ init ืฉืฉื ื”ืฉืจืช ืืจื•ืš ืžื“ื™ ื”ื™ืชื” ื”ื˜ืขื•ืช, ื›ื™ ืžืฉืชืžืฉื™ื ืฉื‘ื™ืงืฉื• ืžืฆื‘ ืคืขื•ืœื” ืžืกื•ื™ื ืœื ืฆื™ืคื• ืœื”ืชื ื”ื’ื•ืช ื–ื•. ื–ืจื™ืงืช ืฉื’ื™ืื” ื‘ืžืงืจื” ื›ื–ื” ื”ื™ืชื” ื ื•ืชื ืช ืœืžืฉืชืžืฉื™ื ืืคืฉืจื•ืช ืœื‘ื—ื•ืŸ ื˜ื•ื‘ ื™ื•ืชืจ ืืช ื” use case ื•ืœื‘ื—ื•ืจ ืืช ืžืฆื‘ ื”ืคืขื•ืœื” ื”ื˜ื•ื‘ ื‘ื™ื•ืชืจ ืขื‘ื•ืจื.

ToCode
1 420
# ืคืฉื•ื˜ ื›ื™ ื›ื›ื” ืจืื™ืชื™ ื‘ื“ื•ื’ืžื” ืื– ืื ื™ ืœื•ืžื“ ืขื›ืฉื™ื• ื’ืจืžืœื™ืŸ ื•ืื—ื“ ื”ื“ื‘ืจื™ื ื”ื‘ื•ืœื˜ื™ื ื‘ืชื”ืœื™ืš ื”ื•ื ื”ื™ื—ืก ืœื›ื™ื•ื•ืŸ ื”ืงืฉืชื•ืช. ืืชื ืžื‘ื™ื ื™ื ื‘ื‘ืกื™ืก ื ืชื•ื ื™ื ื’ืจืคื™ ื™ืฉ ืœื ื• ืฆืžืชื™ื ื•ืงืฉืชื•ืช, ื”ืฆืžืชื™ื ืฉื•ืžืจื™ื ืžื™ื“ืข ื•ื”ืงืฉืชื•ืช ืžื—ื‘ืจื•ืช ื‘ื™ืŸ ื”ืฆืžืชื™ื ื•ืžื’ื“ื™ืจื•ืช ืืช ื”ื™ื—ืกื™ื (ื‘ืขื™ืงืจื•ืŸ ื’ื ืขืœ ืงืฉืชื•ืช ืืคืฉืจ ืœืฉืžื•ืจ ืžื™ื“ืข, ืื‘ืœ ื ืฉืื™ืจ ืืช ื–ื” ืจื’ืข ื‘ืฆื“). ืื– ื‘ื“ื•ื’ืžื” ืฉืœ ื‘ืœื•ื’ ื™ื”ื™ื” ืœื ื• ืฆื•ืžืช ืฉืžื™ื™ืฆื’ ืคื•ืกื˜, ืฆื•ืžืช ืฉืžื™ื™ืฆื’ ืงื˜ื’ื•ืจื™ื” ื•ืงืฉืช ื‘ื™ื ื™ื”ื ื›ื“ื™ ืœื”ื’ื™ื“ ืฉืคื•ืกื˜ ืฉื™ื™ืš ืœืงื˜ื’ื•ืจื™ื” ืžืกื•ื™ืžืช. ื‘ืจืฉืช ื—ื‘ืจืชื™ืช ื™ื”ื™ื” ืœื ื• ืฆื•ืžืช ืœื›ืœ ืžืฉืชืžืฉ ื•ืงืฉืช ืฉืžื—ื‘ืจืช ื‘ื™ืŸ ืžืฉืชืžืฉื™ื ืฉื”ื ื—ื‘ืจื™ื. ืขื“ ืคื” ืงืœ. ื”ืขื ื™ื™ืŸ ืขื ื‘ืกื™ืกื™ ื ืชื•ื ื™ื ื’ืจืคื™ื™ื ื”ื•ื ืฉืœืงืฉืชื•ืช ืฉื ื™ืฉ ื›ื™ื•ื•ืŸ. ื›ืœื•ืžืจ ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœื‘ื—ื•ืจ ื”ืื ื”ืงืฉืช ื™ื•ืฆืืช ืžื”ื‘ืœื•ื’ ืœืงื˜ื’ื•ืจื™ื” ืื• ืžื”ืงื˜ื’ื•ืจื™ื” ืœื‘ืœื•ื’. ืจื•ื‘ ื”ื–ืžืŸ ื”ืžื™ื“ืข ื”ื–ื” ืœื ื—ืฉื•ื‘ ื›ื™ ืชื”ื™ื” ืœื ื• ืจืง ืงืฉืช ืื—ืช ื‘ื™ืŸ ืฉื ื™ ืฆืžืชื™ื ื•ืžืžื™ืœื ื‘ื’ืœืœ ืื™ื ื“ืงืกื™ื ื‘ื’ืจืฃ ืื™ืŸ ื‘ืขื™ื” ืœื˜ื™ื™ืœ ืขืœ ืงืฉืชื•ืช ื‘ืฉื ื™ ื”ื›ื™ื•ื•ื ื™ื. ื›ืœื•ืžืจ ื‘ื“ื•ื’ืžื” ืฉืœ ื”ื‘ืœื•ื’ ื•ื”ืงื˜ื’ื•ืจื™ื” ื–ื” ืœื ืžืฉื ื” ืžืื™ืคื” ืชืฆื ื”ืงืฉืช ื•ืœืืŸ, ื‘ื›ืœ ืžืงืจื” ืืคืฉืจ ื™ื”ื™ื” ืœื”ืกืชื›ืœ ืขืœ ืงื˜ื’ื•ืจื™ื” ื•ืœืงื—ืช ืืช ื›ืœ ื”ืคื•ืกื˜ื™ื ืฉืœื”, ืื• ืœื”ืกืชื›ืœ ืขืœ ืคื•ืกื˜ ื•ืœืงื—ืช ืืช ื›ืœ ื”ืงื˜ื’ื•ืจื™ื•ืช ืœื”ืŸ ื”ื•ื ืฉื™ื™ืš. ื›ืœ ืฉืคืช ืฉืื™ืœืชื•ืช ืœื’ืจืคื™ื ืžืืคืฉืจืช ืœืฆื™ื™ืŸ ืืช ื›ื™ื•ื•ืŸ ื”ืงืฉืช ืื• ืœื”ืฉืžื™ื˜ ืื•ืชื•. ืื– ื‘ืกื™ื™ืคืจ ื™ื”ื™ื” ืœื™:
MATCH (tom:Person {name:'Tom Hanks'})-[rel:DIRECTED]-(movie:Movie)
RETURN tom.name, tom.born, movie.title, movie.released
ื›ื“ื™ ืœื”ื—ื–ื™ืจ ืืช ื›ืœ ื”ืกืจื˜ื™ื ื‘ื”ื ืฉื™ื—ืง ื˜ื•ื ื”ื ืงืก ื‘ืœื™ ืœื”ืชื—ื™ื™ื‘ ืขืœ ื›ื™ื•ื•ืŸ ื”ืงืฉืช DIRECTED, ืื• ืืช:
MATCH (:Person {name: 'Tom Hanks'})-[:DIRECTED]->(movie:Movie)
RETURN movie.title
ืฉืชื•ืคืกืช ืจืง ืืช ื”ืกืจื˜ื™ื ื›ืฉื›ื™ื•ื•ืŸ ื”ืงืฉืช ื”ื•ื ืžื”ืฉื—ืงืŸ ืœืกืจื˜. ื‘ื’ืจืžืœื™ืŸ ืื ื™ืฉ ืœื™ ื‘ื’ืจืฃ ืฆื•ืžืช ืžืกื•ื’ person ื‘ืฉื marko ื•ืžืžื ื• ื™ื•ืฆืืช ืงืฉืช ื‘ืฉื created ืœืฆื•ืžืช ืฉืžื™ื™ืฆื’ ืคืจื•ื™ืงื˜ ืฉืžืจืงื• ื™ืฆืจ ืื– ื”ืฉืื™ืœืชื”:
g.V().has('person','name','marko').out('created')
ืชื—ื–ื™ืจ ืืช ื”ืคืจื•ื™ืงื˜ ื‘ื”ื ื—ื” ืฉื›ื™ื•ื•ืŸ ื”ืงืฉืช ื”ื•ื ืžื”ื™ื•ืฆืจ ืืœ ื”ืคืจื•ื™ืงื˜, ื•ื”ืฉืื™ืœืชื”:
g.V().has('person','name','marko').both('created')
ืชื—ื–ื™ืจ ืืช ื”ืคืจื•ื™ืงื˜ ื‘ืœื™ ืœื”ืชื—ื™ื™ื‘ ืขืœ ื›ื™ื•ื•ืŸ ื”ืงืฉืช. ื•ืชื•ืš ื›ื“ื™ ืฉืื ื™ ืœื•ืžื“ ื’ืจืžืœื™ืŸ ืคืชืื•ื ืฉืžืชื™ ืœื‘ ืฉื‘ื’ืจืžืœื™ืŸ ืื ื™ ืžืฉืชืžืฉ ื‘ื›ืชื™ื‘ ืฉืžืชื—ื™ื™ื‘ ืขืœ ื›ื™ื•ื•ืŸ ื”ืงืฉืช, ืื‘ืœ ื‘ืกื™ื™ืคืจ ืื ื™ ืžืขื“ื™ืฃ ืืช ื”ื›ืชื™ื‘ ืฉืœื ืžืชื—ื™ื™ื‘ ืขืœ ื›ื™ื•ื•ืŸ ื”ืงืฉืช. ื–ืืช ืืคื™ืœื• ืฉืื ื™ ื›ื•ืชื‘ ืฉืื™ืœืชื•ืช ืœืื•ืชื• ื‘ืกื™ืก ื ืชื•ื ื™ื (ื›ืŸ ื”ืจื‘ื” ื‘ืกื™ืกื™ ื ืชื•ื ื™ื ื’ืจืคื™ื™ื ื™ื•ื“ืขื™ื ืœื“ื‘ืจ ื‘ืฉืชื™ ื”ืฉืคื•ืช). ืžืื™ืคื” ื ื•ืœื“ื” ื”ื”ืขื“ืคื” ื”ื–ืืช? ื‘ืžืงืจื” ืฉืœื™ ื”ืžืงื•ืจ ื”ื•ื ื”ื“ื•ื’ืžืื•ืช ื‘ืจืฉืช ื•ื—ื•ืžืจื™ ื”ืœื™ืžื•ื“ ืฉืœ ืฉืชื™ ื”ืฉืคื•ืช. ืจื•ื‘ ื”ื“ื•ื’ืžืื•ืช ืฉืœ ืกื™ื™ืคืจ ืžื’ื™ืขื•ืช ืขื ื”ื›ืชื™ื‘ ื”ื“ื•-ื›ื™ื•ื•ื ื™ ื•ื”ื“ื•ื’ืžืื•ืช ืฉืœ ื’ืจืžืœื™ืŸ ื‘ื“ืจืš ื›ืœืœ ื™ื’ื“ื™ืจื• ืืช ื›ื™ื•ื•ืŸ ื”ืงืฉืช. ืื– ื ื›ื•ืŸ ืžืฆื“ ืื—ื“ ื›ืฉืœื•ืžื“ื™ื ืฉืคื” ื—ื“ืฉื” ื›ื“ืื™ ืœืฉื™ื ืœื‘ ืœืกื˜ื ื“ืจื˜ื™ื ืฉืœ ืงื™ื“ื•ื“ ื•ืฆื•ืจืช ื”ืขื‘ื•ื“ื” ื”ืžื•ืžืœืฆืช ื•ืœื”ืฉืชืžืฉ ื‘ื›ืชื™ื‘ ื›ืžื” ืฉื™ื•ืชืจ ื“ื•ืžื” ืœื“ื•ื’ืžืื•ืช ื›ื“ื™ ืฉื™ื”ื™ื” ืœืื ืฉื™ื ืื—ืจื™ื ืงืœ ืœื”ื‘ื™ืŸ ืื•ืชื ื• ื•ืœื ื• ืงืœ ืœื”ื‘ื™ืŸ ืงื•ื“ ืฉืœ ืื—ืจื™ื, ืื‘ืœ ื‘ืื•ืชื” ื ืฉื™ืžื” ื—ืฉื•ื‘ ืœืฉื™ื ืœื‘ ืื™ืคื” ื”ืกืžื ื˜ื™ืงื” ื”ื—ื“ืฉื” ืฉื•ื ื” ืžื“ื‘ืจื™ื ืฉืื•ืœื™ ืขื–ืจื• ืœื ื• ื‘ืฉืคื•ืช ืื—ืจื•ืช, ื•ืœื‘ื—ื•ืจ ืืช ืฉื™ื˜ื•ืช ื”ืขื‘ื•ื“ื” ืฉืœื ื• ื‘ืฆื•ืจื” ืžื•ื“ืขืช ื•ืœืคื™ ืฆืจื›ื™ ื”ืคืจื•ื™ืงื˜, ื•ืœื ืจืง ืœืคื™ ืžื” ืฉื“ื•ืžื” ืœืžื” ืฉืจืื™ืชื™ ื‘ื“ื•ื’ืžื”.

ToCode
1 420
# ืžื” ื‘ืขืฆื ื‘ื“ืงืช ืฉื? ื ืชื‘ื•ื ืŸ ื‘ืงื•ื“ ื”ื‘ื“ื™ืงื” ื”ื‘ื ืžืชื•ืš leantime:
    #[Depends('Tests\Acceptance\LoginCest:loginSuccessfully')]
    public function createAUser(AcceptanceTester $I)
    {
        $I->wantTo('Create a user');
        $I->amOnPage('/users/showAll');
        $I->click('Add User');
        $I->waitForElement('#firstname', 120);
        $I->fillField('#firstname', 'John');
        $I->fillField('#lastname', 'Doe');
        $I->selectOption('#role', 'Read Only');
        $I->selectOption('#client', 'Not assigned to a client');
        $I->fillField('#user', 'john@doe.com');
        $I->fillField('#phone', '1234567890');
        $I->fillField('#jobTitle', 'Testing');
        $I->fillField('#jobLevel', 'Testing');
        $I->fillField('#department', 'Testing');
        $I->click('Invite User');
        echo $I->grabPageSource();
        $I->waitForElement('.growl', 120);
        $I->wait(2);
        $I
ืขื–ื‘ื• ืืช ื”ืคืจื˜ื™ื, ื–ื” php ืื•ืœื™ ืœื ืžื›ื™ืจื™ื ื•ืœื ื›ื–ื” ื—ืฉื•ื‘. ื™ื•ืชืจ ืžืขื ื™ื™ืŸ ืžื” ื”ืขืœื•ืช ื•ืžื” ื”ืชื•ืขืœืช ืฉื™ืฉ ืœื ื• ื›ืืŸ. ื”ื‘ื“ื™ืงื” ืžื ืกื” ืœื™ืฆื•ืจ ืžืฉืชืžืฉ ื•ืžื—ื›ื” ืœืจืื•ืช ืขืœ ื”ืžืกืš ื”ื•ื“ืขื” ืฉื”ืžืฉืชืžืฉ ื ื•ืฆืจ. ื‘ื ื•ืกืฃ, ื‘ืื•ืชื• ืงื•ื‘ืฅ ืื™ืŸ ื‘ื“ื™ืงื•ืช ื ื•ืกืคื•ืช ืœื™ืฆื™ืจืช ืžืฉืชืžืฉ, ื›ืš ืฉืื ื™ ืžื ื™ื— ืฉืžื™ืฉื”ื• ืกื•ืžืš ืขืœ ื”ื‘ื“ื™ืงื” ื”ื–ืืช. ืขื›ืฉื™ื• ื‘ื•ืื• ื ืจืื” ืžื” ื”ื‘ื“ื™ืงื” ืžื•ื•ื“ืืช, ื•ืื™ืš ื”ื™ื™ื ื• ื™ื›ื•ืœื™ื ืœื’ืฉืช ืœื–ื” ืื—ืจืช: 1. ื”ื‘ื“ื™ืงื” ืžื•ื•ื“ืืช ืฉืืคืฉืจ ืœืžืœื ืคืจื˜ื™ื ื‘ื˜ื•ืคืก ื•ืื™ืŸ ื•ื•ืœื™ื“ืฆื™ื™ืช ืฆื“-ืœืงื•ื— ืฉืžื•ื ืขืช ืžืžื ื™ ืœื”ื’ื™ืฉ ืื•ืชื•. 2. ื”ื‘ื“ื™ืงื” ืžื•ื•ื“ืืช ืฉื™ืฉ ื‘ HTML ืืœืžื ื˜ื™ื ืฉืœ ื˜ื•ืคืก ืขื ื”ืžื–ื”ื™ื ืฉืžื•ืคื™ืขื™ื ื‘ืงื•ื“ ื”ื‘ื“ื™ืงื”. 3. ื”ื‘ื“ื™ืงื” ืžื•ื•ื“ืืช ืฉื‘ื“ืฃ ืฉื—ื•ื–ืจ ืžื”ื˜ื•ืคืก ื™ืฉ ื”ื•ื“ืขื” ืฉืื•ืžืจืช ืฉืžืฉืชืžืฉ ื ื•ืฆืจ ื‘ื”ืฆืœื—ื”. 4. ื”ื‘ื“ื™ืงื” ืžื•ื•ื“ืืช ืฉื”ื˜ื•ืคืก ืžื•ื’ืฉ ื›ืฉื ื™ื’ืฉื™ื ืœ URL ืฉืžื•ืคื™ืข ื‘ืงื•ื“ ื”ื‘ื“ื™ืงื”. ื•ื›ืŸ ื™ืฉ ื’ื ื”ืจื‘ื” ื“ื‘ืจื™ื ืฉื”ื‘ื“ื™ืงื” ืœื ืžื•ื•ื“ืืช ื•ืื•ืœื™ ื”ื™ื” ืœื ื• ืžืขื ื™ื™ืŸ ืœื•ื•ื“ื ืื•ืชื: 1. ืื™ืŸ ื‘ื“ื™ืงื” ืฉืžืฉืชืžืฉ ืื›ืŸ ื ื•ืฆืจ ื‘ื‘ืกื™ืก ื”ื ืชื•ื ื™ื. 2. ืื™ืŸ ื‘ื“ื™ืงื” ืฉืคืจื˜ื™ ื”ืžืฉืชืžืฉ ืฉื ื•ืฆืจ ืงืฉื•ืจื™ื ืœืคืจื˜ื™ื ืฉื”ื•ื–ื ื• ื‘ื˜ื•ืคืก. 3. ืื™ืŸ ื‘ื“ื™ืงื” ืฉืคืจื˜ื™ื ืžืกื•ื™ืžื™ื ื™ื•ื‘ื™ืœื• ืœื›ื™ืฉืœื•ืŸ ื‘ื™ืฆื™ืจืช ืžืฉืชืžืฉ, ื•ื‘ืื™ื–ื” ืžืฆื‘ื™ื. 4. ืื™ืŸ ื‘ื“ื™ืงื” ืฉืžืฆื‘ื™ื ื—ื™ืฆื•ื ื™ื™ื ืžืกื•ื™ืžื™ื ื™ื•ื‘ื™ืœื• ืœื›ื™ืฉืœื•ืŸ ื‘ื™ืฆื™ืจืช ืžืฉืชืžืฉ, ืœืžืฉืœ ืื™ืŸ ื‘ื“ื™ืงื” ืฉืื ื™ืฉ ื›ื‘ืจ ืžืฉืชืžืฉ ืขื ื›ื–ื” ืื™ืžื™ื™ืœ ื‘ืžืขืจื›ืช ืื– ืื™ ืืคืฉืจ ื™ื”ื™ื” ืœื™ืฆื•ืจ ืื•ืชื•. ืจืฉื™ืžื” ื›ื–ืืช ื”ื™ื ื”ืฆืขื“ ื”ืจืืฉื•ืŸ ื‘ื“ืจืš ืœื”ืคื•ืš ื‘ื“ื™ืงื” ืงื™ื™ืžืช ืœืืคืงื˜ื™ื‘ื™ืช ื™ื•ืชืจ. ืื—ืจื™ ื–ื” ืืคืฉืจ ืœื”ื—ืœื™ื˜ ืžื” ืื ื—ื ื• ื‘ืขืฆื ืจื•ืฆื™ื ืœื‘ื“ื•ืง - ื”ืื ื–ื• ื‘ื“ื™ืงืช ืื™ื ื˜ื’ืจืฆื™ื” ืฉืฆืจื™ื›ื” ืœื•ื•ื“ื ืฉื›ืœ ื”ืžืขืจื›ืช ืขื•ื‘ื“ืช ื‘ืชื™ืื•ื? ืื ื›ืŸ ืฆืจื™ืš ืœื•ื•ื“ื ืฉื”ืžืฉืชืžืฉื™ื ืื›ืŸ ื ื›ื ืกื• ืœื‘ืกื™ืก ื”ื ืชื•ื ื™ื ื•ืœื”ื•ืกื™ืฃ ืขื•ื“ ื‘ื“ื™ืงื•ืช ืขืœ ื”ืžืฆื‘ื™ื ื”ืฉื•ื ื™ื ืฉืœ ื”ืฆืœื—ื” ื•ื›ื™ืฉืœื•ืŸ ื‘ื™ืฆื™ืจืช ื”ืžืฉืชืžืฉื™ื. ืื• ืฉืื•ืœื™ ื–ื• ื‘ื“ื™ืงืช ื™ื—ื™ื“ื” ืฉืฆืจื™ื›ื” ืœื•ื•ื“ื ืฉื”ื˜ื•ืคืก ืžื•ื’ืฉ ื•ืžื›ื™ืœ ืืช ื”ืืœืžื ื˜ื™ื ื”ืžืชืื™ืžื™ื? ืื ื–ื” ื”ืžืฆื‘ ื›ื“ืื™ ืœื”ืคืจื™ื“ ืื•ืชื” ืœื‘ื“ื™ืงื•ืช ืงื˜ื ื•ืช ื™ื•ืชืจ, ื›ืœ ื‘ื“ื™ืงื” ืชื›ื™ืœ ืืœืžื ื˜ ืกืคืฆื™ืคื™ ื›ื“ื™ ืฉื›ื™ืฉืœื•ืŸ ื‘ื‘ื“ื™ืงื” ื™ื•ื›ืœ ืœื”ืคื ื•ืช ืื•ืชื™ ืžื™ื“ ืœื–ื™ื”ื•ื™ ื”ืชืงืœื”. ื”ืฉืงืขื” ื‘ื‘ื“ื™ืงื•ืช ื”ื™ื ืžื—ื•ื™ื‘ื•ืช. ืœื•ืงื— ื–ืžืŸ ืœื›ืชื•ื‘ ืืช ื”ื‘ื“ื™ืงื” ื•ืื—ืจื™ ื–ื” ืœื•ืงื— ื–ืžืŸ ืœืชื—ื–ืง ืื•ืชื”, ื›ื™ ื”ื™ื ื™ื›ื•ืœื” ืœื”ื™ื›ืฉืœ ื‘ื›ืœ ืฉื™ื ื•ื™. ื›ืฉื”ื‘ื“ื™ืงื•ืช ืœื ืžืกืคื™ืง ืืคืงื˜ื™ื‘ื™ื•ืช ืื ื—ื ื• ืจืง ืžื‘ื–ื‘ื–ื™ื ื–ืžืŸ ื•ื™ื•ืฆืจื™ื ืชืกื›ื•ืœ. ืื ื›ื‘ืจ ื”ื—ืœื˜ืชื ืœื›ืชื•ื‘ ื‘ื“ื™ืงื•ืช, ืขืฉื• ืœืขืฆืžื›ื ื˜ื•ื‘ื” ื•ื”ืฉืงื™ืขื• ืืช ื”ืžืืžืฅ ื‘ื›ืชื™ื‘ืช ื‘ื“ื™ืงื•ืช ื™ืขื™ืœื•ืช, ื•ื”ืฉืื™ืจื• ื‘ืงื•ื“ ืจืง ื‘ื“ื™ืงื•ืช ืฉืžื‘ื™ืื•ืช ืขืจืš ืืžื™ืชื™.