हम विदेशी भावों का अध्ययन करते हैं (और न केवल)

इस पोस्ट में, मैं आपको समय-समय पर पॉप-अप संदेश (उदाहरण के रूप में क्लासिक लैटिन अभिव्यक्तियों का उपयोग करके) प्रदर्शित करने के लिए GrowlNotify, Launchd और AppleScript का उपयोग करने का तरीका दिखाऊंगा। यह नोट शुरुआती लोगों के लिए बनाया गया है, पेशेवरों को अपने लिए कुछ भी नया नहीं मिलेगा।

उपरोक्त सभी साधनों के लिए एक संक्षिप्त अवलोकन दिया गया है ताकि आप न्यूनतम प्रयास के साथ वही कर सकें जो आपको चाहिए - घटनाओं के अनुस्मारक, सामाजिक नेटवर्क से नए संदेश, नेटवर्क सेवाओं की निगरानी और निदान आदि। या आप बस सब कुछ कर सकते हैं जैसा कि मैंने वर्णित किया है, और कुछ समय बाद अपने दोस्तों को लैटिन वाक्यांशों के बारे में मेरा ज्ञान दिखाते हैं। साइंटिया पोटेंशिया एस्ट।

GrowlNotify

Growl एक नोटिफिकेशन नोटिफिकेशन सॉफ्टवेयर है जो सभी Adium यूजर्स को अच्छी तरह से पता है। उबंटू में इसका समकक्ष अधिसूचित-ओएसडी पैकेज है। स्वाभाविक रूप से, न केवल एपीआई के माध्यम से, बल्कि कमांड लाइन के माध्यम से भी काम करना संभव है (उपरोक्त उपयोगिता का उपयोग करके)।

GrowlNotify उपयोगिता को Growl Extra से स्थापित करें (यह मानक Growl वितरण में शामिल है)। इसका उपयोग करना बहुत सरल है:
echo "Hello, world" | growlnotify

सभी उपयोगी विकल्पों को ग्रोनलोटिफाइ --help का उपयोग करके प्राप्त किया जा सकता है। इस आलेख में, हम --icon विकल्प (इसके दस्तावेज़ों की फ़ाइल एक्सटेंशन के आधार पर एप्लिकेशन आइकन का उपयोग करके) और --message का उपयोग करेंगे। आप अपने स्वयं के आइकन का उपयोग कर सकते हैं (देखें - निकॉन), और यह भी सुनिश्चित करें कि संदेश स्वचालित रूप से गायब नहीं होता है (देखें - बिट)।

पटकथा लिखना

AppleScript एडिटर में, हम स्क्रिप्ट लिखते हैं और डिबग करते हैं (मेरे मामले में, मैंने इसे ~ / दस्तावेज / edu / लैटिन में सहेजा है / latin.scpt नाम के तहत, हम यहाँ स्रोत लेते हैं ):
set filePath to "/Users/nuald/Documents/edu/latin/latin.txt"
set growlNotify to "/usr/local/bin/growlnotify"
set fp to open for access POSIX file filePath
set result to paragraphs of ( read fp as « class utf8 »)
set output to item ( random number from 1 to length of result ) of result
close access fp
do shell script growlNotify & " --icon scpt --message '" & output & "'"

ध्यान दें कि आपको सभी फ़ाइलों के लिए पूर्ण पथ निर्दिष्ट करना होगा, अन्यथा लॉन्चड उन्हें नहीं मिलेगा। स्क्रिप्ट डीबग करने के लिए, लॉग कमांड का उपयोग करना न भूलें।

इस उदाहरण में, Lat.txt फ़ाइल UTF-8 में एन्कोडेड है। यदि आप एक अलग एन्कोडिंग का उपयोग करना चाहते हैं, तो AppleScript भाषा गाइड में रीड कमांड देखें। फ़ाइल ही फॉर्म की लाइनों का एक सेट है:

...
रूसा क्रिया - कम शब्द
Paupertas non est vitium - गरीबी एक वाइस नहीं है
पैक्स vobiscum! - शांति आपके साथ है!
प्रति एस्परा विज्ञापन एस्ट्रा - सितारों के लिए कांटों के माध्यम से!
...

स्क्रिप्ट फ़ाइल को एक सरणी में पढ़ती है, एक यादृच्छिक तत्व का चयन करती है और बढ़ती हुई संख्या को खिलाती है।

स्वाभाविक रूप से, AppleScript का उपयोग पूरी तरह से वैकल्पिक है, और आप किसी भी प्रोग्रामिंग भाषा में लिखे गए प्रोग्राम को चला सकते हैं। लेकिन AppleScript में एक फायदा है - सिस्टम के साथ सुविधाजनक एकीकरण (देखें एप्लिकेशन का "शब्दकोश" फ़ाइल-> ओपन डिक्शनरी)। संदर्भ के लिए, मैं आपको / लाइब्रेरी / लिपियों / में नमूना स्क्रिप्ट पढ़ने की सलाह देता हूं।

लॉन्च को कस्टमाइज़ करें

लॉन्चड रनिंग प्रक्रियाओं के लिए एक डेमॉन है, और इसे Apple द्वारा क्रोन, xinetd, mach_init और init के प्रतिस्थापन के रूप में तैनात किया गया है। स्वाभाविक रूप से, आप क्रोन का उपयोग कर सकते हैं, लेकिन लॉन्च में दिलचस्प विकल्प और विशेषताएं हैं जो सभी के लिए बहुत दिलचस्प होंगे। विवरण के लिए मैनुअल देखें: आदमी launchd.plist

स्क्रिप्ट को शेड्यूल पर चलाने के लिए, कॉन्फ़िगरेशन फ़ाइल (प्लिस्ट) लिखें और इसे ~ / लाइब्रेरी / लॉन्चएगेंट्स (मेरे मामले में, फ़ाइल को edu.latin.plist कहा जाता है) में सहेजें

हम संपत्ति सूची संपादक को खोलते हैं और निम्नलिखित की रचना करते हैं (हालांकि संपादन के लिए पहले से ही इस संपादक का उपयोग करना बेहतर है, और खरोंच से लिखने के लिए नहीं, क्योंकि प्लिस्ट एक सामान्य XML फ़ाइल है):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version= "1.0" >
<dict>
<key> Label </key>
<string> edu.latin </string>
<key> ProgramArguments </key>
<array>
<string> osascript </string>
<string> /Users/nuald/Documents/edu/latin/latin.scpt </string>
</array>
<key> StartInterval </key>
<integer> 900 </integer>
</dict>
</plist>

लेबल आवश्यक है और सिस्टम के लिए अद्वितीय होना चाहिए। ऑसस्क्रिप्ट के माध्यम से स्क्रिप्ट चलाएँ। अंतराल को StartInterval पैरामीटर द्वारा समायोजित किया गया है और सेकंड में निर्दिष्ट किया गया है।

यह कॉन्फ़िगरेशन निम्न लॉगिन के साथ काम करेगा, लेकिन आप इसे तुरंत शुरू कर सकते हैं:
$ launchctl load edu.latin.plist

लॉन्चक्टल में कार्यों के साथ सुविधाजनक कार्य के लिए कई अन्य दिलचस्प कमांड हैं, विशेष रूप से सूची कमांड:
$ launchctl list | grep edu.latin
- 0 edu.latin

यदि दूसरे कॉलम में 0 दर्शाया गया है, तो सब कुछ ठीक है (यह निकास कोड दिखाता है)। यदि नहीं, तो log /var/log/system.log देखें।

अनुलेख

यह कार्यक्षमता MacOSX के लिए अद्वितीय नहीं है - लिनक्स में, उदाहरण के लिए, आप क्रोन और नोटिफ़िकेशन-बिन-लिबनेटिफ़-बिन पैकेज से डुप्लिकेट कर सकते हैं। विंडोज में विंडोज के लिए ग्रोथ और टास्क शेड्यूलर है। हालाँकि, सामान्य तौर पर, MacOSX में, कुछ चीजें सुविधाजनक और सरल होती हैं (मैं आपको खुद को लॉन्च करने के लिए अलग-अलग मापदंडों के साथ परिचित करने की सलाह देता हूं। विशेष रूप से वॉचपैथ और स्टार्टऑनमाउंट में), और मुझे उम्मीद है कि यह नोट आपको अपने काम की दक्षता बढ़ाने की अनुमति देगा, और समझेगा कि कुछ आवश्यक चीजों का अनुकूलन कैसे करें। आप कार्य करते हैं।

Source: https://habr.com/ru/post/In103643/


All Articles