مقالات

9.1: إجراء الاتصالات


9.1: إجراء الاتصالات

31.1. وظائف التحكم في اتصال قاعدة البيانات

تتعامل الوظائف التالية مع إنشاء اتصال بخادم PostgreSQL الخلفي. يمكن أن يحتوي برنامج التطبيق على عدة اتصالات خلفية مفتوحة في وقت واحد. (أحد أسباب القيام بذلك هو الوصول إلى أكثر من قاعدة بيانات.) يتم تمثيل كل اتصال بواسطة ملف PGconn الكائن الذي تم الحصول عليه من الوظيفة PQconnectdb أو PQconnectdbParams أو PQsetdbLogin. لاحظ أن هذه الوظائف ستعيد دائمًا مؤشر كائن غير فارغ ، ما لم يكن هناك ذاكرة قليلة جدًا حتى لتخصيص ملف PGconn مفعول. يجب استدعاء الدالة PQstatus للتحقق من قيمة الإرجاع لاتصال ناجح قبل إرسال الاستعلامات عبر كائن الاتصال.

في نظام التشغيل Unix ، يمكن أن يؤدي إنشاء عملية باستخدام اتصالات libpq المفتوحة إلى نتائج غير متوقعة لأن العمليات الرئيسية والفرعية تشترك في نفس مآخذ التوصيل وموارد نظام التشغيل. لهذا السبب ، لا يوصى بمثل هذا الاستخدام ، على الرغم من أن إجراء exec من العملية الفرعية لتحميل ملف تنفيذي جديد يعد آمنًا.

ملحوظة: في نظام التشغيل Windows ، توجد طريقة لتحسين الأداء إذا تم تشغيل اتصال قاعدة بيانات واحدة وإيقاف تشغيله بشكل متكرر. داخليًا ، يستدعي libpq WSAStartup () و WSACleanup () لبدء تشغيل الاتصال وإيقاف تشغيله ، على التوالي. يعمل WSAStartup () على زيادة عدد مراجع مكتبة Windows الداخلية والذي يتم إنقاصه بواسطة WSACleanup (). عندما يكون عدد المراجع واحدًا فقط ، يؤدي استدعاء WSACleanup () إلى تحرير كافة الموارد ويتم إلغاء تحميل كافة مكتبات DLL. هذه عملية مكلفة. لتجنب ذلك ، يمكن للتطبيق استدعاء WSAStartup () يدويًا حتى لا يتم تحرير الموارد عند إغلاق آخر اتصال بقاعدة البيانات.

يقوم باتصال جديد بخادم قاعدة البيانات.

تفتح هذه الوظيفة اتصال قاعدة بيانات جديدًا باستخدام المعلمات المأخوذة من اثنين باطلصفائف منتهية. الأول، الكلمات الدالة، يتم تعريفها على أنها مجموعة من السلاسل ، كل منها كلمة رئيسية. الثاني، القيم، يعطي قيمة لكل كلمة رئيسية. على عكس PQsetdbLogin أدناه ، يمكن تمديد مجموعة المعلمات دون تغيير توقيع الوظيفة ، لذا يفضل استخدام هذه الوظيفة (أو نظائرها غير المحظورة PQconnectStartParams و PQconnectPoll) لبرمجة التطبيقات الجديدة.

متي expand_dbname غير صفري ، فإن dbname يُسمح بالتعرف على قيمة الكلمة الرئيسية كملف كونينفو سلسلة. انظر أدناه للحصول على التفاصيل.

يمكن أن تكون المصفوفات التي تم تمريرها فارغة لاستخدام جميع المعلمات الافتراضية ، أو يمكن أن تحتوي على واحد أو أكثر من إعدادات المعلمات. يجب أن تكون متطابقة في الطول. ستتوقف المعالجة مع آخر غير-باطل عنصر الكلمات الدالة مجموعة مصفوفة.

الكلمات الرئيسية للمعلمة المعترف بها حاليًا هي:

اسم المضيف المراد الاتصال به. إذا بدأ هذا بشرطة مائلة ، فإنه يحدد اتصال مجال Unix بدلاً من اتصال TCP / IP ، فالقيمة هي اسم الدليل الذي يتم تخزين ملف المقبس فيه. السلوك الافتراضي عندما مضيف لم يتم تحديده للاتصال بمقبس مجال Unix في / tmp (أو أي دليل مأخذ تم تحديده عند إنشاء PostgreSQL). على الأجهزة التي لا تحتوي على مآخذ مجال Unix ، يكون الوضع الافتراضي هو الاتصال مضيف محلي.

عنوان IP الرقمي للمضيف المراد الاتصال به. يجب أن يكون هذا بتنسيق عنوان IPv4 القياسي ، على سبيل المثال ، 172.28.40.9. إذا كان جهازك يدعم IPv6 ، فيمكنك أيضًا استخدام هذه العناوين. يتم استخدام اتصال TCP / IP دائمًا عند تحديد سلسلة غير فارغة لهذه المعلمة.

استخدام هوستادر بدلا من مضيف يسمح للتطبيق بتجنب البحث عن اسم المضيف ، والذي قد يكون مهمًا في التطبيقات ذات القيود الزمنية. ومع ذلك ، يلزم اسم مضيف لأساليب مصادقة Kerberos أو GSSAPI أو SSPI ، بالإضافة إلى تحقق من كامل التحقق من شهادة SSL. يتم استخدام القواعد التالية:

لو مضيف محدد بدون هوستادر، يحدث بحث عن اسم المضيف.

لو هوستادر محدد بدون مضيف، قيمة هوستادر يعطي عنوان شبكة الخادم. ستفشل محاولة الاتصال إذا تطلب أسلوب المصادقة اسم مضيف.

إذا كان كل من مضيف و هوستادر محددة ، قيمة هوستادر يعطي عنوان شبكة الخادم. قيمة مضيف يتم تجاهله ما لم تتطلبه طريقة المصادقة ، وفي هذه الحالة سيتم استخدامه كاسم مضيف.

لاحظ أن المصادقة من المحتمل أن تفشل إذا مضيف ليس اسم الخادم على عنوان الشبكة هوستادر. أيضا ، لاحظ ذلك مضيف عوضا عن هوستادر يستخدم لتحديد الاتصال في

بدون اسم مضيف أو عنوان مضيف ، سيتصل libpq باستخدام مقبس مجال Unix محلي أو على أجهزة بدون مآخذ مجال Unix ، سيحاول الاتصال به مضيف محلي.

رقم المنفذ المراد الاتصال به على مضيف الخادم ، أو ملحق اسم ملف المقبس لاتصالات مجال Unix.

اسم قاعدة البيانات. الافتراضي هو نفس اسم المستخدم.

اسم مستخدم PostgreSQL للاتصال كملف. الافتراضي هو نفس اسم نظام التشغيل الخاص بالمستخدم الذي يقوم بتشغيل التطبيق.

كلمة المرور التي سيتم استخدامها إذا طلب الخادم مصادقة كلمة المرور.

الحد الأقصى لانتظار الاتصال ، بالثواني (اكتب كسلسلة عدد صحيح عشري). صفر أو غير محدد يعني الانتظار إلى أجل غير مسمى. لا يوصى باستخدام مهلة أقل من ثانيتين.

هذا يضع ترميز العميل معلمة التكوين لهذا الاتصال. بالإضافة إلى القيم المقبولة بواسطة خيار الخادم المقابل ، يمكنك استخدام تلقاءي لتحديد التشفير الصحيح من الإعدادات المحلية الحالية في العميل (LC_CTYPE متغير البيئة في أنظمة Unix).

يضيف خيارات سطر الأوامر لإرسالها إلى الخادم في وقت التشغيل. على سبيل المثال ، تعيين هذا على -c geqo = إيقاف يحدد قيمة الجلسة لـ geqo المعلمة ل إيقاف. للحصول على مناقشة تفصيلية للخيارات المتاحة ، راجع الفصل 18.

يحدد قيمة لمعامل تكوين اسم التطبيق.

يحدد قيمة احتياطية لمعلمة تكوين application_name. سيتم استخدام هذه القيمة إذا لم يتم إعطاء قيمة لها اسم التطبيق عبر معلمة اتصال أو ملف PGAPPNAME متغيرات البيئة. يعد تحديد اسم احتياطي مفيدًا في برامج الأدوات المساعدة العامة التي ترغب في تعيين اسم تطبيق افتراضي مع السماح للمستخدم بتجاوزه.

يتحكم في ما إذا كان يتم استخدام احتفاظ TCP من جانب العميل أم لا. القيمة الافتراضية هي 1 ، بمعنى تشغيل ، ولكن يمكنك تغييرها إلى 0 ، بمعنى آخر ، إذا لم تكن هناك حاجة إلى keepalives. يتم تجاهل هذه المعلمة للاتصالات التي تم إجراؤها عبر مقبس مجال Unix.

يتحكم في عدد ثواني عدم النشاط التي يجب أن يرسل TCP بعدها رسالة نشطة إلى الخادم. تستخدم القيمة صفر القيمة الافتراضية للنظام. يتم تجاهل هذه المعلمة للاتصالات التي يتم إجراؤها عبر مقبس مجال Unix ، أو إذا تم تعطيل Keepalives. يتم دعمه فقط على الأنظمة التي يكون فيها ملف TCP_KEEPIDLE أو TCP_KEEPALIVE يتوفر خيار المقبس ، وليس له أي تأثير على Windows على الأنظمة الأخرى.

يتحكم في عدد الثواني التي يجب بعدها إعادة إرسال رسالة TCP قيد التشغيل لم يتعرف الخادم عليها. تستخدم القيمة صفر القيمة الافتراضية للنظام. يتم تجاهل هذه المعلمة للاتصالات التي يتم إجراؤها عبر مقبس مجال Unix ، أو إذا تم تعطيل Keepalives. يتم دعمه فقط على الأنظمة التي يكون فيها ملف TCP_KEEPINTVL يتوفر خيار المقبس ، وليس له أي تأثير على Windows على الأنظمة الأخرى.

يتحكم في عدد عمليات حفظ TCP قيد الحياة التي يمكن فقدها قبل اعتبار اتصال العميل بالخادم ميتًا. تستخدم القيمة صفر القيمة الافتراضية للنظام. يتم تجاهل هذه المعلمة للاتصالات التي يتم إجراؤها عبر مقبس مجال Unix ، أو إذا تم تعطيل Keepalives. يتم دعمه فقط على الأنظمة التي يكون فيها ملف TCP_KEEPCNT يتوفر خيار المقبس على الأنظمة الأخرى ، وليس له أي تأثير.

تم التجاهل (سابقًا ، كان هذا يحدد مكان إرسال إخراج تصحيح أخطاء الخادم).

انظر القسم 31.17 للحصول على وصف تفصيلي لكيفية عمل هذه الخيارات.

sslmode تم تجاهله من أجل اتصال مقبس مجال Unix. إذا تم تجميع PostgreSQL بدون دعم SSL ، باستخدام الخيارات يتطلب, تحقق- كاليفورنيا، أو تحقق من كامل سوف يسبب خطأ ، بينما الخيارات السماح و تفضل سيتم قبوله ولكن libpq لن يحاول بالفعل اتصال SSL.

تم إهمال هذا الخيار لصالح sslmode إعدادات.

تحدد هذه المعلمة اسم ملف شهادة SSL للعميل ، لتحل محل الاسم الافتراضي

/.postgresql/postgresql.crt. يتم تجاهل هذه المعلمة إذا لم يتم إجراء اتصال SSL.

تحدد هذه المعلمة موقع المفتاح السري المستخدم لشهادة العميل. يمكنه إما تحديد اسم الملف الذي سيتم استخدامه بدلاً من الاسم الافتراضي

/.postgresql/postgresql.key، أو يمكنه تحديد مفتاح تم الحصول عليه من "محرك" خارجي (المحركات هي وحدات OpenSSL قابلة للتحميل). يجب أن تتكون مواصفات المحرك الخارجي من اسم محرك مفصول بنقطتين ومعرف مفتاح خاص بالمحرك. يتم تجاهل هذه المعلمة إذا لم يتم إجراء اتصال SSL.

تحدد هذه المعلمة اسم ملف قائمة إبطال شهادات SSL (CRL). الشهادات المدرجة في هذا الملف ، إن وجدت ، سيتم رفضها أثناء محاولة مصادقة شهادة الخادم. الافتراضي هو

تحدد هذه المعلمة اسم مستخدم نظام التشغيل للخادم ، على سبيل المثال needpeer = postgres. عند إجراء اتصال بمقبس مجال Unix ، إذا تم تعيين هذه المعلمة ، يتحقق العميل في بداية الاتصال من أن عملية الخادم تعمل تحت اسم المستخدم المحدد إذا لم يكن كذلك ، يتم إحباط الاتصال مع وجود خطأ. يمكن استخدام هذه المعلمة لتوفير مصادقة خادم مماثلة لتلك المتوفرة مع شهادات SSL على اتصالات TCP / IP. (لاحظ أنه إذا كان مقبس مجال Unix بتنسيق / tmp أو أي موقع آخر قابل للكتابة بشكل عام ، يمكن لأي مستخدم بدء تشغيل خادم يستمع إليه. استخدم هذه المعلمة للتأكد من أنك متصل بخادم يديره مستخدم موثوق به.) هذا الخيار مدعوم فقط في الأنظمة الأساسية التي الأقران تم تنفيذ طريقة المصادقة ، انظر القسم 19.3.7.

اسم خدمة Kerberos المراد استخدامه عند المصادقة باستخدام Kerberos 5 أو GSSAPI. يجب أن يتطابق هذا مع اسم الخدمة المحدد في تكوين الخادم حتى تنجح مصادقة Kerberos. (انظر أيضًا القسم 19.3.5 والقسم 19.3.3.)

مكتبة GSS لاستخدامها في مصادقة GSSAPI. تستخدم فقط على نظام التشغيل Windows. ضبط ل gssapi لإجبار libpq على استخدام مكتبة GSSAPI للمصادقة بدلاً من SSPI الافتراضي.

اسم الخدمة المراد استخدامه للمعلمات الإضافية. تحدد اسم خدمة بتنسيق pg_service.conf الذي يحمل معلمات اتصال إضافية. يسمح هذا للتطبيقات بتحديد اسم الخدمة فقط بحيث يمكن الحفاظ على معلمات الاتصال مركزيًا. انظر القسم 31.15.

إذا كانت أي معلمة غير محددة ، فسيتم فحص متغير البيئة المقابل (انظر القسم 31.13). إذا لم يتم تعيين متغير البيئة أيضًا ، فسيتم استخدام القيم الافتراضية المضمنة المشار إليها.

لو expand_dbname غير صفري و dbname يحتوي على = علامة ، يتم أخذها على أنها كونينفو سلسلة بالطريقة نفسها تمامًا كما لو تم تمريرها إلى PQconnectdb (انظر أدناه). سيتم إبطال الكلمات الرئيسية التي تمت معالجتها مسبقًا بكلمات رئيسية في ملف كونينفو سلسلة.

بشكل عام ، تتم معالجة الكلمات الرئيسية من بداية هذه المصفوفات بترتيب الفهرس. تأثير ذلك هو أنه عند تكرار الكلمات الرئيسية ، يتم الاحتفاظ بآخر قيمة تمت معالجتها. لذلك ، من خلال التنسيب الدقيق لملف dbname الكلمة الرئيسية ، من الممكن تحديد ما يمكن تجاوزه بواسطة a كونينفو سلسلة ، وما قد لا.

يقوم باتصال جديد بخادم قاعدة البيانات.

تفتح هذه الوظيفة اتصال قاعدة بيانات جديدًا باستخدام المعلمات المأخوذة من السلسلة كونينفو.

يمكن أن تكون السلسلة التي تم تمريرها فارغة لاستخدام جميع المعلمات الافتراضية ، أو يمكن أن تحتوي على واحد أو أكثر من إعدادات المعلمات مفصولة بمسافة بيضاء. كل إعداد معلمة في النموذج الكلمة الرئيسية = القيمة. المسافات حول علامة التساوي اختيارية. لكتابة قيمة فارغة ، أو قيمة تحتوي على مسافات ، أحيطها بعلامات اقتباس مفردة ، على سبيل المثال ، الكلمة الرئيسية = "قيمة". يجب تخطي علامات الاقتباس المفردة والشرطة المائلة للخلف داخل القيمة بشرطة مائلة للخلف ، أي ، ' و \.

الكلمات الرئيسية للمعلمة المعترف بها حاليًا هي نفسها المذكورة أعلاه.

يقوم باتصال جديد بخادم قاعدة البيانات.

هذا هو سلف PQconnectdb مع مجموعة ثابتة من المعلمات. لها نفس الوظيفة باستثناء أن المعلمات المفقودة ستأخذ دائمًا القيم الافتراضية. اكتب باطل أو سلسلة فارغة لأي من المعلمات الثابتة التي سيتم افتراضها.

إذا كان الاسم يحتوي على = علامة ، يتم أخذها على أنها كونينفو سلسلة بالطريقة نفسها تمامًا كما لو تم تمريرها إلى PQconnectdb ، ثم يتم تطبيق المعلمات المتبقية على النحو الوارد أعلاه.

يقوم باتصال جديد بخادم قاعدة البيانات.

هذا ماكرو يستدعي PQsetdbLogin بمؤشرات فارغة لـ تسجيل الدخول و pwd حدود. يتم توفيره للتوافق مع الإصدارات القديمة مع البرامج القديمة جدًا.

PQconnectStartParams
ابدأ
PQconnectPoll

قم بإجراء اتصال بخادم قاعدة البيانات بطريقة غير محظورة.

تُستخدم هذه الوظائف الثلاث لفتح اتصال بخادم قاعدة بيانات بحيث لا يتم حظر مؤشر ترابط تنفيذ التطبيق الخاص بك على الإدخال / الإخراج البعيد أثناء القيام بذلك. الهدف من هذا الأسلوب هو أن فترات انتظار اكتمال الإدخال / الإخراج يمكن أن تحدث في الحلقة الرئيسية للتطبيق ، بدلاً من أسفل داخل PQconnectdbParams أو PQconnectdb ، وبالتالي يمكن للتطبيق إدارة هذه العملية بالتوازي مع الأنشطة الأخرى.

باستخدام PQconnectStartParams ، يتم إجراء اتصال قاعدة البيانات باستخدام المعلمات المأخوذة من ملف الكلمات الدالة و القيم المصفوفات ، ويتم التحكم فيها بواسطة expand_dbname، كما هو موضح أعلاه لـ PQconnectdbParams.

باستخدام PQconnectStart ، يتم إجراء اتصال قاعدة البيانات باستخدام المعلمات المأخوذة من السلسلة كونينفو كما هو موضح أعلاه لـ PQconnectdb.

لن يتم حظر PQconnectStartParams ولا PQconnectStart ولا PQconnectPoll ، طالما تم استيفاء عدد من القيود:

ال هوستادر و مضيف يتم استخدام المعلمات بشكل مناسب لضمان عدم إجراء استعلامات الاسم والعكس. راجع توثيق هذه المعلمات ضمن PQconnectdbParams أعلاه للحصول على التفاصيل.

إذا قمت باستدعاء PQtrace ، فتأكد من أن كائن الدفق الذي تقوم بالتتبع فيه لن يتم حظره.

عليك التأكد من أن المقبس في الحالة المناسبة قبل استدعاء PQconnectPoll ، كما هو موضح أدناه.

ملاحظة: استخدام PQconnectStartParams يماثل PQconnectStart الموضح أدناه.

لبدء طلب اتصال غير محظور ، اتصل conn = PQconnectStart ("connect_info_string"). لو كون فارغ ، إذن لم يتمكن libpq من تخصيص ملف PGconn هيكل. خلاف ذلك ، صالح PGconn تم إرجاع المؤشر (على الرغم من عدم تمثيله لاتصال صالح بقاعدة البيانات). عند العودة من PQconnectStart ، اتصل الحالة = PQstatus (conn). لو الحالة يساوي اتصال سيئة، فشل PQconnectStart.

إذا نجح PQconnectStart ، فإن المرحلة التالية هي الاستقصاء عن libpq بحيث يمكنه متابعة تسلسل الاتصال. استخدم PQsocket (conn) للحصول على واصف المقبس الأساسي لاتصال قاعدة البيانات. التكرار التالي: إذا تم إرجاع PQconnectPoll (conn) آخر مرة PGRES_POLLING_READING، انتظر حتى يصبح المقبس جاهزًا للقراءة (كما هو موضح بواسطة تحديد () أو استطلاع () أو وظيفة نظام مماثلة). ثم اتصل بـ PQconnectPoll (conn) مرة أخرى. على العكس من ذلك ، إذا تم إرجاع PQconnectPoll (conn) آخر مرة PGRES_POLLING_WRITING، انتظر حتى يصبح المقبس جاهزًا للكتابة ، ثم اتصل بـ PQconnectPoll (conn) مرة أخرى. إذا كان لا يزال يتعين عليك الاتصال بـ PQconnectPoll ، أي بعد المكالمة إلى PQconnectStart مباشرة ، فتصرف كما لو تم إرجاعها مؤخرًا PGRES_POLLING_WRITING. استمر في هذه الحلقة حتى يعود PQconnectPoll (conn) PGRES_POLLING_FAILED، يشير إلى فشل إجراء الاتصال ، أو PGRES_POLLING_OK، مما يشير إلى أن الاتصال قد تم بنجاح.

في أي وقت أثناء الاتصال ، يمكن التحقق من حالة الاتصال عن طريق استدعاء PQstatus. إذا عادت هذه المكالمة اتصال سيئة، ثم فشل إجراء الاتصال إذا عادت المكالمة CONNECTION_OK ، فسيكون الاتصال جاهزًا. يمكن اكتشاف كلتا الحالتين بشكل متساوٍ من القيمة المرجعة لـ PQconnectPoll ، الموضحة أعلاه. قد تحدث حالات أخرى أيضًا أثناء إجراء اتصال غير متزامن (وخلاله فقط). تشير هذه إلى المرحلة الحالية من إجراء الاتصال وقد تكون مفيدة لتقديم ملاحظات للمستخدم على سبيل المثال. هذه الحالات هي:

في انتظار إجراء الاتصال.

اتصال جيد في انتظار الإرسال.

في انتظار رد من الخادم.

تم استلام المصادقة في انتظار انتهاء بدء تشغيل الواجهة الخلفية.

التفاوض بشأن تشفير SSL.

التفاوض على إعدادات المعلمات التي تعتمد على البيئة.

لاحظ أنه على الرغم من أن هذه الثوابت ستبقى (من أجل الحفاظ على التوافق) ، يجب ألا يعتمد التطبيق مطلقًا على هذه الثوابت التي تحدث بترتيب معين ، أو على الإطلاق ، أو على أن تكون الحالة دائمًا واحدة من هذه القيم الموثقة. قد يقوم أحد التطبيقات بعمل شيء مثل هذا:

ال ربط مهلة يتم تجاهل معلمة الاتصال عند استخدام PQconnectPoll ، فمن مسؤولية التطبيق أن يقرر ما إذا كان قد مضى وقت زائد. بخلاف ذلك ، فإن PQconnectStart متبوعًا بحلقة PQconnectPoll تكافئ PQconnectdb.

لاحظ أنه إذا قام PQconnectStart بإرجاع مؤشر غير فارغ ، فيجب عليك استدعاء PQfinish عند الانتهاء منه ، للتخلص من البنية وأي كتل ذاكرة مرتبطة. يجب القيام بذلك حتى إذا فشلت محاولة الاتصال أو تم التخلي عنها.

يُرجع خيارات الاتصال الافتراضية.

يُرجع مصفوفة خيارات الاتصال. يمكن استخدام هذا لتحديد جميع خيارات PQconnectdb الممكنة وقيمها الافتراضية الحالية. تشير قيمة الإرجاع إلى مصفوفة من PQconninfoOption الهياكل ، والتي تنتهي بإدخال به قيمة لاغية كلمة رئيسية المؤشر. يتم إرجاع المؤشر الفارغ إذا تعذر تخصيص الذاكرة. لاحظ أن القيم الافتراضية الحالية (فال الحقول) على متغيرات البيئة والسياق الآخر. يجب أن يتعامل المتصلون مع بيانات خيارات الاتصال على أنها بيانات للقراءة فقط.

بعد معالجة مجموعة الخيارات ، حررها بتمريرها إلى PQconninfoFree. إذا لم يتم ذلك ، يتم تسريب قدر صغير من الذاكرة لكل استدعاء لـ PQconndefaults.

إرجاع خيارات الاتصال التي تم تحليلها من سلسلة الاتصال المتوفرة.

يوزع سلسلة اتصال ويعيد الخيارات الناتجة كمصفوفة أو إرجاع باطل إذا كانت هناك مشكلة في سلسلة الاتصال. يمكن استخدام هذه الوظيفة لاستخراج خيارات PQconnectdb في سلسلة الاتصال المتوفرة. تشير قيمة الإرجاع إلى مصفوفة من PQconninfoOption الهياكل ، والتي تنتهي بإدخال به قيمة لاغية كلمة رئيسية المؤشر.

لاحظ أن الخيارات المحددة صراحةً فقط في السلسلة سيتم تعيين قيم لها في مصفوفة النتيجة ولا يتم إدراج أي قيم افتراضية.

لو إرمسج ليس باطل، من ثم * إرسمسج تم تعيينه على باطل على النجاح ، وإلا إلى سلسلة خطأ malloc تشرح المشكلة. (من الممكن أيضا ل * إرسمسج ليتم ضبطها على باطل ووظيفة العودة باطل يشير هذا إلى حالة نفاد الذاكرة.)

بعد معالجة مجموعة الخيارات ، حررها بتمريرها إلى PQconninfoFree. إذا لم يتم ذلك ، يتم تسريب بعض الذاكرة لكل استدعاء لـ PQconninfoParse. على العكس من ذلك ، إذا حدث خطأ و إرمسج ليس باطل، تأكد من تحرير سلسلة الخطأ باستخدام PQfreemem.

يغلق الاتصال بالخادم. يحرر أيضًا الذاكرة المستخدمة من قبل PGconn مفعول.

لاحظ أنه حتى في حالة فشل محاولة الاتصال بالخادم (كما هو موضح بواسطة PQstatus) ، يجب على التطبيق استدعاء PQfinish لتحرير الذاكرة المستخدمة بواسطة PGconn مفعول. ال PGconn يجب عدم استخدام المؤشر مرة أخرى بعد استدعاء PQfinish.

يعيد تعيين قناة الاتصال إلى الخادم.

ستغلق هذه الوظيفة الاتصال بالخادم وتحاول إعادة إنشاء اتصال جديد بنفس الخادم ، باستخدام جميع المعلمات نفسها المستخدمة سابقًا. قد يكون هذا مفيدًا لاستعادة الأخطاء في حالة فقد اتصال يعمل.

قم بإعادة تعيين قناة الاتصال إلى الخادم بطريقة غير محظورة.

ستغلق هذه الوظائف الاتصال بالخادم وتحاول إعادة إنشاء اتصال جديد بنفس الخادم ، باستخدام جميع المعلمات نفسها المستخدمة سابقًا. يمكن أن يكون هذا مفيدًا لاستعادة الأخطاء في حالة فقد اتصال يعمل. وهي تختلف عن PQreset (أعلاه) من حيث أنها تعمل بطريقة غير محظورة. تعاني هذه الوظائف من نفس قيود PQconnectStartParams و PQconnectStart و PQconnectPoll.

لبدء إعادة تعيين الاتصال ، اتصل بـ PQresetStart. إذا أعادت القيمة 0 ، فهذا يعني أن إعادة التعيين فشلت. إذا أعاد 1 ، فقم باستقصاء إعادة التعيين باستخدام PQresetPoll بنفس الطريقة تمامًا التي ستنشئ بها الاتصال باستخدام PQconnectPoll.

يقوم PQpingParams بالإبلاغ عن حالة الخادم. يقبل معلمات الاتصال المماثلة لتلك الخاصة بـ PQconnectdbParams ، الموضحة أعلاه. ومع ذلك ، ليس من الضروري توفير اسم مستخدم أو كلمة مرور أو قيم اسم قاعدة بيانات صحيحة للحصول على حالة الخادم.

ترجع الدالة إحدى القيم التالية:

الخادم قيد التشغيل ويبدو أنه يقبل الاتصالات.

الخادم قيد التشغيل ولكنه في حالة لا تسمح بالاتصالات (بدء التشغيل أو إيقاف التشغيل أو استرداد التعطل).

تعذر الاتصال بالخادم. قد يشير هذا إلى أن الخادم لا يعمل ، أو أن هناك خطأ ما في معلمات الاتصال المحددة (على سبيل المثال ، رقم المنفذ الخاطئ) ، أو أن هناك مشكلة في الاتصال بالشبكة (على سبيل المثال ، جدار ناري يحظر طلب الاتصال).

لم يتم إجراء أي محاولة للاتصال بالخادم ، لأنه من الواضح أن المعلمات المقدمة كانت غير صحيحة أو كانت هناك مشكلة من جانب العميل (على سبيل المثال ، نفاد الذاكرة).

تقارير PQping عن حالة الخادم. يقبل معلمات الاتصال المماثلة لتلك الخاصة بـ PQconnectdb ، الموصوفة أعلاه. ومع ذلك ، ليس من الضروري توفير اسم مستخدم أو كلمة مرور أو قيم اسم قاعدة بيانات صحيحة للحصول على حالة الخادم.


9.1.2 لماذا نحتاج إلى نموذج

في الوقت نفسه ، يحتاج كل معلم ومعلم ومتعلم بشكل متزايد إلى اتخاذ قرارات في هذا المجال ، غالبًا على أساس يومي. هناك حاجة إلى نموذج لاختيار التكنولوجيا وتطبيقها بحيث يكون له الخصائص التالية:

  • ستعمل في مجموعة متنوعة من سياقات التعلم
  • يسمح باتخاذ القرارات على مستوى استراتيجي على مستوى المؤسسة ككل وعلى مستوى تكتيكي وتعليمي
  • أنها تولي اهتماما متساويا للقضايا التعليمية والتشغيلية
  • سيحدد الاختلافات الحاسمة بين الوسائط والتقنيات المختلفة ، مما يتيح اختيار مزيج مناسب لأي سياق معين
  • من السهل فهمها وواقعية وفعالة من حيث التكلفة
  • سوف تستوعب التطورات الجديدة في التكنولوجيا.

لهذه الأسباب ، سأستمر في استخدام نموذج Bates & # 8217 SECTIONS ، مع بعض التعديلات لمراعاة التطورات الأخيرة في التكنولوجيا والبحث والنظرية. يعتمد نموذج SECTIONS على البحث ، وقد صمد أمام اختبار الزمن ، ووجد أنه عملي. SECTIONS تعني:

الشكل 9.1.2 الصورة: شيلا جاغاناثان ، البنك الدولي ، 2020

سأناقش كل معيار من هذه المعايير في الأقسام التالية ، ثم سأقترح كيفية تطبيق النموذج.


يمكنك الوصول إلى كل طالب من خلال إقران هذا النص بـ Mastering A & ampP

Mastering ™ هي منصة التدريس والتعلم التي تمكنك من الوصول كل طالب. من خلال الجمع بين محتوى المؤلف الموثوق به والأدوات الرقمية التي تم تطويرها لإشراك الطلاب ومحاكاة تجربة ساعة العمل في المكتب ، يُخصص إتقان التعلم ويحسن النتائج لكل طالب. يدعم إتقان مهام A & ampP الميزات التفاعلية في دليل المختبر ويتضمن أنشطة تدريب فيديو جديدة قبل المختبر ، وأنشطة فيديو تشريح جديدة من Cat ، وأنشطة تدريب فيديو تشريح خنزير الجنين ، و PAL 3.1 بالإضافة إلى PAL 3.1 الجديدة القابلة للتخصيص ، والبطاقات التعليمية القابلة للتخصيص ، وحوافز التعلم ، الرسوم المتحركة للعضلات A & ampP Flix ثلاثية الأبعاد ، ومجموعة متنوعة من أسئلة وضع العلامات الفنية ، وأسئلة التطبيق السريري ، والمزيد. تعرف على المزيد حول إتقان A & ampP.

  • الجديد! أنشطة تدريب الفيديو قبل المختبر ركز على المفاهيم الأساسية الموضحة في النشاط ثم إرشاد الطلاب خلال إجراءات وخطوات نشاط المختبر. يتضمن كل منها أسئلة "وقفة وتوقع". تشمل الموضوعات:
    • المجهر المركب (الوحدة 4)
    • الانتشار والتناضح (الوحدة 5)
    • تقلص العضلات (الوحدة 12)
    • تمدد المنعكسات (الوحدة 16)
    • تحديد الهيماتوكريت (الوحدة 19)
    • تصنيف الدم (الوحدة 19)
    • ECG (الوحدة 21)
    • ضغط الدم (الوحدة 23)
    • قياس التنفس (الوحدة 26)
    • الأميليز اللعابي (الوحدة 28)
    • مراجع! فن الملصقات والتعيينات الفنية يتم تحديثها.
    • مراجع! مهام ما بعد المعمل تقييم فهم الطلاب للأنشطة المعملية.
    • الجديد! أنشطة تدريب فيديو تشريح القط وتشريح خنزير الجنين مساعدة الطلاب على الاستعداد للتشريح وتحديد الهياكل التشريحية الرئيسية. يتضمن كل مقطع فيديو مقارنات 1-2 مع الهياكل البشرية.
    • تحسن! يمكن الآن الوصول إلى Practice Anatomy Lab ™ (PAL ™ 3.1) بشكل كامل على جميع الأجهزة المحمولة بما في ذلك الهواتف الذكية والأجهزة اللوحية وأجهزة الكمبيوتر المحمولة. PAL هي أداة لدراسة وممارسة علم التشريح الظاهري التي لا غنى عنها والتي تمنح الطلاب إمكانية الوصول على مدار الساعة طوال أيام الأسبوع إلى العينات المعملية الأكثر استخدامًا بما في ذلك الجثث البشرية والنماذج التشريحية والأنسجة والقطط والخنزير الجنيني. PAL 3.1 سهل الاستخدام ويتضمن نطقًا صوتيًا مدمجًا وعظامًا قابلة للدوران وامتحانات عملية معملية محاكية لملء الفراغ.
    • الجديد! PAL 3.1 بطاقات تعليمية قابلة للتخصيص يسمح للطلاب بإنشاء مجموعة مخصصة ومتوافقة مع الأجهزة المحمولة من البطاقات التعليمية والاختبارات بناءً على صور من PAL. يقوم الطلاب بإنشاء بطاقات تعليمية مخصصة عن طريق اختيار الهياكل المشمولة في الدورة التدريبية الخاصة بهم فقط. تتوفر أداة الدراسة الجديدة هذه في منطقة دراسة إتقان A & ampP.
    • بنك الاختبار 3.1 PAL في مكتبة العناصر يتضمن أكثر من 6000 سؤال اختيار من متعدد وملء الفراغات.
    • أنشطة تدريب فيديو العظام والتشريح مساعدة الطلاب على تحديد العظام وتعلم كيفية إجراء تشريح الأعضاء.
    • & ampP Flix الرسوم المتحركة عبارة عن رسوم متحركة تشريح بجودة أفلام ثلاثية الأبعاد تتضمن أصول العضلات وإدخالاتها وحركاتها وأعصابها (أكثر من 60 صورة متحركة) وحركات ومفاصل العضلات الجماعية (أكثر من 50 رسمًا متحركًا).
    • دراسات الحالة السريرية و السيناريوهات السريرية زيادة مهارات حل المشكلات وإعداد الطلاب للوظائف المستقبلية في مجال الصحة المساعدة. يمكن تعيينه كنشاط تدريب في MasteringA & ampP. استراتيجيات التدريس المتطابقة ، المتوفرة في موارد المعلم في MasteringA & ampP ، تمكن المدرسين من "قلب" الفصل الدراسي من خلال تقديم نصائح قيمة حول وقت وكيفية استخدام دراسات الحالة السريرية. هذه الحالات وأوراق العمل المقابلة متاحة أيضًا للطلاب في منطقة الدراسة الخاصة بالإتقان.
    • PhysioEx ™ 9.1 المحاكاة المعملية في علم وظائف الأعضاء مكملات أو بدائل المختبرات الرطبة التقليدية بأمان وفعالية من حيث التكلفة من خلال توفير محاكاة معملية سهلة الاستخدام ، الآن مع تنوع بيانات الإدخال (بما في ذلك اختبارات الممارسة وأوراق المراجعة القابلة للطباعة).
    • مهام PhysioEx 9.1 في إتقانها تضمين اختبارات ما قبل المعمل وما بعده وأوراق المراجعة القابلة للطباعة.
    • الجديد! نصوص إلكترونية من Pearson ، مُحسَّن للجوال ، يدمج مقاطع الفيديو والوسائط الغنية الأخرى بسلاسة مع النص ويمنح الطلاب إمكانية الوصول إلى كتبهم المدرسية في أي وقت وفي أي مكان. يتوفر Pearson eText مع Mastering A & ampP عند تعبئته مع كتب جديدة ، أو كترقية يمكن للطلاب الشراء عبر الإنترنت. يقدم تطبيق Pearson eText للجوال:
      • الوصول دون اتصال بالإنترنت على معظم الهواتف والأجهزة اللوحية التي تعمل بنظامي التشغيل iOS و Android.
      • إمكانية الوصول (قارئ الشاشة جاهز)
      • إعدادات القراءة القابلة للتكوين ، بما في ذلك النوع القابل لتغيير الحجم ووضع القراءة الليلية
      • المعلم والطالب تدوين الملاحظات ، والتمييز ، والإشارات المرجعية ، وأدوات البحث
      • مقاطع فيديو مضمنة لتجربة تعليمية أكثر تفاعلية
      • محفزات التعلم تساعد ™ في إنشاء نقاش في الفصل وتخصيص المحاضرات وتعزيز التعلم من نظير إلى نظير باستخدام تحليلات في الوقت الفعلي. تعمل Learning Catalytics كأداة لاستجابة الطلاب ، حيث تستخدم الهواتف الذكية أو الأجهزة اللوحية أو أجهزة الكمبيوتر المحمولة للطلاب لإشراكهم في مهام وتفكير أكثر تفاعلية.
        • الجديد! قم بتحميل مجموعة PowerPoint ® كاملة لإنشاء أسئلة حول الشرائح بسهولة.
        • ساعد طلابك على تطوير مهارات التفكير النقدي.
        • راقب الردود لمعرفة أين يعاني طلابك.
        • اعتمد على بيانات الوقت الفعلي لتعديل استراتيجية التدريس الخاصة بك.
        • قم بتجميع الطلاب تلقائيًا للمناقشة والعمل الجماعي والتعلم من نظير إلى نظير.

        ساعد الطلاب على الاستعداد لتطبيق المفاهيم في المختبر

        • الجديد! "ما تحتاج إلى معرفته قبل أن تبدأ هذه الوحدة" في بداية كل وحدة ، يساعد الطلاب على معرفة ما يحتاجون إلى مراجعته قبل المختبر مواد أساسية محدثة يساعد الطلاب على القدوم إلى المختبر بشكل أفضل من خلال تلخيص المفاهيم الأساسية وتعزيز الموضوعات التي يتم تدريسها في المحاضرة و مهام ما قبل المختبر واسعة النطاق مواجهة التحدي المتمثل في عدم استعداد الطلاب للمختبر. مراجع! مهام ما بعد المختبر في نهاية كل مختبر ، ساعد الطلاب على التركيز على المفاهيم الأساسية وتحسين مهارات التفكير النقدي.
        • موسع! نداءات وسائل الإعلام إلى مقاطع الفيديو المقابلة قبل المختبر ومقاطع الفيديو الخاصة بالتشريح والعظام والرسوم المتحركة للعضلات والوسائط المعملية الأخرى في جميع أنحاء دليل Whiting Lab ، قم بتوجيه الطلاب إلى الوسائط الجاهزة للجوال والتي يمكنهم الوصول إليها بسهولة ومراجعتها قبل وأثناء وبعد المختبر.
        • الجديد! أدلة النطق تساعد في تقليل إحباط الطلاب المرتبط بتعلم مفردات جديدة ومعقدة و نصائح سريعة تقديم تلميحات لأداء الأنشطة أو فن الإستذكار لتذكر المصطلحات الأساسية.
        • تشمل الأدوات الإضافية لمساعدة الطلاب ما يلي:
          • أسئلة إرشادية ضمن الأنشطة ، يساعد الطلاب على التفكير في المفاهيم ذات الصلة وكيفية تطبيقها على النشاط.
          • الاتصال السريري تسلط المربعات الضوء على الأمراض أو الحالات ذات الصلة وتساعد في تعزيز تعلم المفاهيم الأساسية.

          زيادة مشاركة الطلاب في المختبر

          • مجموعة متنوعة غنية من الأنشطة العملية مثل وضع العلامات والرسم واللمس والتشريح والتفاعل في مجموعات والتنبؤ تساعد على إشراك الطلاب في الأنشطة المعملية. تعزيزات المختبر ادعُ الطلاب للقيام بالعروض التوضيحية العملية للمفاهيم الأساسية.
          • مراجع! عمل مخططات التوصيلات تعزيز قدرة الطلاب على الربط بين المفاهيم التي تم تعلمها في المحاضرة وتطبيقها في المختبر. تم اختصار بعض مخططات "تكوين الروابط" للإصدار الثاني حتى يسهل إكمالها أثناء المعمل.
          • الجديد! الرسوم التوضيحية وصور الجثث والنماذج التشريحية والصور المجهرية تعكس الفن الجديد والمعدّل في إيرين أميرمان علم التشريح البشري وعلم وظائف الأعضاء، الطبعة الثانية.
          • مفهوم رسم الخرائط في مهام ما بعد المختبر ، تتحدى الطلاب لتحديد العلاقات بين المفاهيم الأساسية.
          • مراجع! أنشطة BIOPAC® التي تستخدم نظام الحصول على بيانات BIOPAC Student Labs مدرجة في الوحدة 12 "مقدمة في الجهاز العضلي: الأنسجة العضلية" ، الوحدة 15 "الجهاز العصبي المركزي: الدماغ والحبل الشوكي" ، الوحدة 22 "فسيولوجيا القلب" ، والوحدة 27 "فسيولوجيا الجهاز التنفسي." تم تنقيح الوحدتين 12 و 15 من أنشطة BIOPAC.
          • تعليمات لأنظمة الحصول على البيانات الأخرى بما في ذلك iWorx و Intellitool و PowerLab يمكن الوصول إليها في موارد المعلم في إتقان A & ampP.
          • خيارات التخصيص لدليل معمل البياض - تمنحك Pearson Collections القدرة على إنشاء مواد الدورة التدريبية التي تريدها لدورة المعمل الخاصة بك. باستخدام موقع ويب سهل الاستخدام ، يمكنك اختيار الأنشطة التي تريدها من دليل المعمل هذا و / أو منتجات Pearson الأخرى وإضافة المواد الخاصة بك. والنتيجة هي مواد الدورة التدريبية المخصصة الفريدة من نوعها ، وكلها في مكان واحد ، والتي تركز الطلاب على الاحتياجات والمتطلبات الفريدة لدورتك التدريبية. البدء سهل. ما عليك سوى استخدام إحدى مجموعاتنا الرقمية المنسقة ثم جعلها خاصة بك عن طريق إضافة المحتوى وحذفه وإعادة ترتيبه. أو ابدأ بنفسك من الصفر. للمزيد من المعلومات قم بزيارة مجموعات بيرسون على www.pearsonhighered.com ، أو اتصل بممثل Pearson لديك.

          تحقق من المقدمة للحصول على قائمة كاملة بالميزات وما الجديد في هذا الإصدار.

          جديد في هذا الإصدار

          إضفاء الطابع الشخصي على التعلم مع إتقان A & ampP

            • المجهر المركب (الوحدة 4)
            • الانتشار والتناضح (الوحدة 5)
            • تقلص العضلات (الوحدة 12)
            • تمدد المنعكسات (الوحدة 16)
            • تحديد الهيماتوكريت (الوحدة 19)
            • تصنيف الدم (الوحدة 19)
            • ECG (الوحدة 21)
            • ضغط الدم (الوحدة 23)
            • قياس التنفس (الوحدة 26)
            • الأميليز اللعابي (الوحدة 28)
            • فن الملصقات والتعيينات الفنية يتم تحديثها.
            • مهام ما بعد المعمل تقييم فهم الطلاب للأنشطة المعملية
            • أنشطة تدريب فيديو تشريح القط وتشريح خنزير الجنين help students prepare for dissection and identify key anatomical structures. Each video includes 1-2 comparisons to human structures.
            • Practice Anatomy Lab™ (PAL™ 3.1) is now fully accessible on all mobile devices including smart phones, tablets and laptops. PAL is an indispensable virtual anatomy study and practice tool that gives students 24/7 access to the most widely used lab specimens including human cadaver, anatomical models, histology, cat, and fetal pig. PAL 3.1 is easy to use and includes built-in audio pronunciations, rotatable bones and simulated fill-in-the-blank lab practical exams.
            • PAL 3.1 Customizable Flashcards allows students to create a customized, mobile-friendly deck of flashcards and quizzes based on images from PAL. Students generate personalized flashcards by selecting only those structures covered in their course. This new study tool is available in the Study Area of Mastering A&P.
            • Pearson eText, optimized for mobile, seamlessly integrates videos and other rich media with the text andgives students access to their textbook anytime, anywhere. Pearson eText is available with Mastering A&P when packaged with new books, or as an upgrade students can purchase online. The Pearson eText mobile app offers:
              • Offline access on most iOS and Android phones/tablets.
              • Accessibility (screen-reader ready)
              • Configurable reading settings, including resizable type and night reading mode
              • Instructor and student note-taking, highlighting, bookmarking, and search tools
              • Embedded videos for a more interactive learning experience

              Help students prepare for and apply concepts in lab

              • “What You Need to Know Before You Start This Unit” at the beginning of each unit helps students know what they need to review before lab updated background material helps students come to lab better prepared by summarizing key concepts and reinforcing topics taught in lecture and extensive pre-lab assignments address the challenge of students not preparing for lab. REVISED! Post-lab Assignments at the end of each labhelp students focus on key concepts and improve critical-thinking skills
              • Media Call-outs to corresponding pre-lab videos, dissection and bones videos, muscle animations, and other lab media throughout the Whiting Lab Manual direct students to mobile-ready media that they can easily access and review before, during, and after lab.
              • Pronunciation guides help reduce student frustration associated with learning a new, complex vocabulary and Quick Tips provide hints for performing activities or mnemonics for remembering key terms.
              • Additional tools to help students include:
                • Guided questions within the activities help students think about the relevant concepts and how they apply to the activity.
                • Clinical Connection boxes highlight relevant diseases or conditions and help reinforce learning of key concepts.

                Increase student engagement in lab

                • Making Connections Charts foster students’ ability to make connections between concepts learned in lecture and their application in the lab. Some Making Connections charts have been shortened for the 2nd Edition so they’re easier to complete during lab.
                • Illustrations, cadaver and anatomical model photos, and photomicrographs reflect the new and revised art in Erin Amerman’s Human Anatomy & Physiology, 2nd Edition.
                • BIOPAC® activities that utilize the BIOPAC Student Labs data acquisition system are included in Unit 12 “Introduction to the Muscular System: Muscle Tissue”, Unit 15 “The Central Nervous System: Brain and Spinal Cord”, Unit 22 “Physiology of the Heart”, and Unit 27 “Physiology of the Respiratory System.” Units 12 and 15 BIOPAC activities have been revised.

                Check out the preface for a complete list of features and what's new in this edition.


                Clearly and Simply

                Build Network Graphs in Tableau

                Visualize Relationships, Connections and Associations in Networks with Tableau Software

                Clearly and Simply proudly presents a new guest article: Michael Martin of Business Information Arts , Tableau Partner, Tableau Certified Consultant and leader of the Toronto Tableau User Group shows us how to visualize Network Graphs using Tableau Software. Enjoy.

                Network Graphs can help us see and measure relationships and connections between people, places, and things over time. This can be expressed as identifying, measuring and understanding process flows, the mix of products in shopping carts, social network and email traffic, affinities and interests people share (or don’t share), and the “hierarchies of influence” in business and / or social systems by identifying who or what triggers events, and the impacts they have on others.

                Today’s post describes how you can build Network Graphs using Tableau Software versions 6 or 7, including a detailed how-to tutorial and some information on the background of Network Theory.

                What is a Network Graph? A Picture says more than 1,000 words

                What are Network Graphs for? Here are just a few practical examples:

                Contacts Between Philanthropic Twitter Users

                The Organization of Hierarchical Communities

                The Path to Products People Buy

                Last, but not least a Network Graph built in Tableau:

                Association of Food Groups, Brands and Flavorس

                Tableau’s Out of the Box Network Graphs

                Tableau Desktop is one of my favorite data analysis and reporting tools. Other excellent products such as Visokio Omniscope support network graphs as one of a wide number of supported view types. But what I have always found so impressive about how Tableau is engineered is how various “loosely coupled” features can be re-assembled to create new ones. Examples of this include double axis graphs, bullet charts, and the support for bubble graphs and tree maps in the upcoming Tableau 8 release (Q1 of 2013). Tableau is a fabulous “Swiss Army Knife” for visualizing data.

                Build Network Graphs with Tableau – The How to

                My implementation of network graphs in Tableau leverages features that have been around since version 1, the circle and the line mark types, and support for scatter plots – and ability to draw double axis graphs (hackable for years before being officially supported as “combo charts” in version 6). With a little bit of data preparation, this is all you need to draw a network graph in Tableau.

                For me, the fun really starts when other great Tableau functionalities (actions, parameters, page field animation, filtering, highlighting, size by, color by, table calculations to name just a few) are brought into play.

                تحضير البيانات

                Key to my implementation is data preparation given the requirement to connect elements in the form of a transaction and lay out the design of the network graph in the Tableau view:

                If you want to follow the step-by-step below using my example data, here is the Excel workbook with the data for free download:

                Demo – A simple Network Graph

                Here’s a simple network graph based on the example data.

                The Step-by-Step Tutorial

                Step 1 – The Basic Set Up

                To get started, put the “Line Y” field to the Row Shelf and “Line X” field on the Column shelf. Tableau will automatically set the mark type to circle and render a basic scatterplot. The “Line Y” and “Line X” co-ordinates in the source data are visible via the field value headers.

                Step 2 – Dual Axis

                Add the “Circle Y” to View on the rows shelf as a double axis, and synchronize the two Y axes (right click on the axis, and click on “Synchronize axis”).

                Step 3 – Multiple Mark Types

                The next step is to format the Tableau Marks Card to show "Multiple Mark Types“. Then cycle to the "Circle Y” mark and set mark type as "Pie“. Drag the "Node Name" field to the Label Pill. You can optionally color the “Node Name” field by ID by dragging ID to Level of Detail Shelf Resize the Pie mark to make larger – each pie slice represents a Transaction ID.

                Step 4 – Connect the Dots

                Then cycle to the "Line Y" Mark. Drag the “ID” and “Relationship” fields to Level of Detail shelf. Set the mark type to “Line”. Tableau will connect the dots – and you have a simple Network Graph. Resize the Line Y series to make lines thinner and color the lines as desired.

                Optionally, you can format the canvas to include grid lines and turn brushing on in the Color Legend. Uncheck the “Show Header” in the “Line X”, “Line Y”, and “Circle Y” fields in the row and column shelves.

                Step 5 – The Tooltips

                If you hover over nodes in the view with the mouse, you’ll see Tableau generated tooltip text:

                We can do a few things to make the Tooltips more meaningful. With the “Line Y” Mark selected in the Marks Card, place the “Relationship” and “Sales vs Sales For Display” fields in the Level of Detail Shelf.

                The “Sales For Display” field is a calculated field that I will describe shortly.

                Then cycle to the “Circle Y” field in the Marks Card and place the “Total Sales”, “InDegree”, “OutDegree”, “Node Name”, and “ID” fields in the Level of Detail Shelf.

                Step 6 – Calculated Fields and the Tooltips again

                The next step is to define a simple calculation which I named “Sales vs Sales For Display” in my workbook:

                IF Sum([Sales])=0 THEN Sum([Sales For Display]) ELSE Sum([Sales]) END

                The output of this calculation is the value of either the “Sales” or the “Sales For Display” data fields associated with a single transaction. My implementation needs this calculation because without this calculation the value of the “Sales” field will change to zero (or change from zero to the value of the sale) as you pass the halfway point between two connected nodes when traversing the line between connected nodes with the mouse.

                If you take another look at the source data, you’ll see that the value of the “Sales For Display” field is the same as the value for “Sales” in the previous row for a given transaction ID. As Tableau aggregates the “Sales” and “Sales For Display” metrics by Transaction ID, the value of the calculation will change as you pass the halfway point in the line connecting the nodes in the transaction with the mouse.

                Then edit the tooltip text is shown in the figure below.

                The first two lines will appear when the mouse hovers over a line connecting two nodes (the “Line Y” field). The remaining four lines will display when the mouse hovers over a Node (the “Circle Y” field).

                Step 7 (optional) – A Summary Table

                You can optionally make a summary sales table that sums the “Sales” field by the “Node Name” field which includes creating a calculation named “Sales Label” that suppresses the display of zero values in the “Sales Field”.

                If you look at the source data, you’ll see that the “Relationship” field is encoded to show who the seller and buyer were. The value Ken à Bill describes a transaction where Ken was the seller and Bill was the buyer. Ken is listed as the “Initiating Person” and Bill is listed as the “Secondary Person”. The “Direction” field explains this in another way from Ken’s point of view as the “Initiating Person”, this is an “Out Degree” connection. From Bill’s point of view as the buyer, this is an “In Degree” connection.

                Step 8 (optional) – Filter Actions

                You can optionally define a Tableau Filter Action to filter data that will appear in the “Summary Sales Table” based in which transactions in the view are selected with the mouse. In my implementation, the Action is set to run “On Select” based on the values of the “ID” and “Node Name” data fields.

                For more information on how to use Actions in Tableau, have a look at this how-to tutorial: The Power of Tableau Actions.

                Step 9 (optional) – Animated View

                You can optionally animate the view by dropping the “ID” field into the Pages Shelf and inserting the Pages Shelf into the Dashboard by selecting “Current Page”.

                After you start the Page Player, transactions will come into the view sorted by the Transaction ID number. With the use of calculations and “Page History” settings, you can create very interesting animated views of transaction oriented data.

                The Result

                Here is the example packaged Tableau workbook for free download:

                Network Metrics

                ال “Network Density” metric is commonly calculated as the number of actual possible connections divided by the number of possible connections. There are 9 actual connections and 56 possible connections in the example data, resulting in a Network Density value of .1607 which depending on the context could be considered to be low or high.

                ال “Network Centralization” metric tells us how “centered” the network is around the member(s) of the network with the highest number of connections. In a network with three members, this metric is of little value – but in a network with thousands or millions of connections, knowing the people or persons the network is centralized around is meaningful to our understanding of the network. In the data driving my implementation, Jane is involved in four of the nine transactions which would be commonly calculated as (4 / 9) = .444. This would be considered a high value in most cases, so you could say that the total network is highly centralized (around Jane).

                ال “Network Homophily” metric describes the degree that connected nodes share similar characteristics - i.e. are connected nodes largely alike? The richer the source data is, the more important and interesting this metric can be as the row count increases. This metric is of particular interest to marketers.

                Switching to Node specific metrics the “In Degree” metric is the count of in-coming connections to a Node from other nodes in the network. The “Out Degree” metric is the count of outgoing connections from a single node to other nodes in the network. These two metrics are often used to help analysts and marketers understand how “social” products within particular retail categories are with products in similar or different retail categories.

                ال “Betweeness” metric helps us understand how important a particular node is to the overall “performance” of the network from the perspective of a particular metric or class of metrics. The example data describes connections through “Sales”. If Sally and Roger had made huge sales to each other or to Jane, removing Jane from the network would lower the “total value” of the network because Roger and Sally are in the network by virtue of their relationships to Jane.

                ال “Closeness” metric helps us understand how useful a given network member is for getting a message from outside the network circulated within the network as soon as possible. If an outside person wanted to circulate a message within the network described in the example data, the go-to person is Jane because she is directly connected (one hop away) to five other network members, who in turn are a hop away from the remaining network members (Roger and Ken).

                Although the “Betweenness” and “Closeness” metrics are important, they don’t necessarily predict the ranking of members in a network by the governing metric (in this example, sales). The top seller in the network is Wayne by virtue of a 20k sale to Marjory. If you size the “Node ID” field by “Sales”, you would immediately realize how important Wayne is to the network from a sales performance point of view.

                ال “Eigenvector Centrality” metric explains the degree to which a given node is connected to the most important node in the network. In a given network, an “introverted” member with low “in degree” and “out degree” metrics and has little or no “betweenness” or “closeness” could in fact be quite important due to its influence on members who are very well connected. If Jane is heavily influenced by Sally’s purchasing recommendations, Sally’s role in shaping the profile of the network is important given Jane’s position in the network as the most important buyer in the network.

                Recommended Further Resources

                There are many great resources on and off the web for learning about network theory and metrics. Here are a few that I’ve found helpful, with apologies to other great resources that I haven’t encountered yet.

                University of Maryland Human / Computer Interaction Lab contains links to many interesting data visualization projects and white papers related to network data visualizations.

                Node XL is an Excel add-in for visualizing network graphs.

                Analyzing Social Media Networks With NodeXL by Derek Hansen, Ben Schneiderman and Mark Smith, published by Morgan Kaufman.

                Gephi is an open source tool for visualizing network graphs.

                Aaron Koblin provides a great visualization of airline flight patterns over North America.

                About Michael

                Michael Martin (email Michael) works internationally in a variety of business sectors that include market research, consumer packaged goods and retail, banking, hospitality, commercial construction, entertainment, governmental, and non-profit.

                His project deliverables include business performance forecasts, strategic and operational case study white papers, operational dashboards and scorecards, associative and neural networks, customer / product segmentation and market-basket analyses.

                Michael is a Tableau Partner, a Certified Tableau Consultant and leads the Tableau Toronto User Group.

                Robert’s Note

                A big time thank you very much to Michael for contributing this fantastic article. If you enjoyed what you have read, please drop Michael a line to say thank you by email (email link see above) or leave him a comment here.


                Set Up and Operation

                The JBL BAR 9.1 comes with everything you need to install, set up and optimise it in the box, but before we get on to the good stuff, a quick gripe: the included two-pin power cables for the soundbar and subwoofer are ludicrously short at 0.9m. So, unless your power sockets are fortuitously close to both units – mine weren’t – you’re going to need to replace them with longer cables.

                That moan aside, everything you need to have a fully-functioning 5.1.4 sound system is present and correct. Aside from the ‘bar, sub and rears, there’s also an HDMI cable, and the aforementioned side caps. There’s also a template and wall mounts for the soundbar, along with mounts for the rear speakers that you can hook them on to when they’re in use and unhook them when you want to recharge them.

                Everything you need to set up and optimise the BAR 9.1 is in the box, even if the power cables are ludicrously short

                In terms of placement, make sure the upward-firing drivers aren’t being blocked and for the best results you’ll need a reflective ceiling. JBL recommend sitting between 2.5 and 3m from the main unit, and a ceiling height of about 3m. For best results make sure the surround speakers are just behind you, and at about ear level. The sub should go at the front of the room, in either the left or right hand corner.

                In terms of connections, you can attach the soundbar directly to the HDMI-ARC input on your TV using the provided cable. If your TV doesn’t support ARC, you’ll need to use the optical digital connection. If your TV supports eARC, you might as well connect all your sources directly to the TV because you can send lossless audio back via HDMI-ARC. That approach also makes sense if your TV and 4K disc player both support HDR10+, but if your TV doesn’t support eARC (or you have a lot of sources) you can use the HDMI input on the bar instead.

                If you want to connect a Bluetooth device just press the dedicated button on the remote and pair the two. If you want to connect a different Bluetooth device, press and hold the Bluetooth button for three seconds, this will clear the previous device and allow you to pair the new one. To connect to your home network, you can either use a wired Ethernet connection or set up a wireless connection using the Google Home app or AirPlay for iOS devices. Both are straightforward, and by doing this you can not only enjoy the benefits of Chromecast and AirPlay 2, but you can also easily update the BAR 9.1's firmware, although when doing this the rear speakers must be attached to the main unit.

                Once everything is connected and you’ve powered up the system, the subwoofer should wirelessly connect automatically (although this can also be done manually if the two need reconnecting). The rear speakers will take three hours to fully charge, and should also connect to the main unit automatically when detached. There is the option to charge the rear speakers without connecting them to the main unit by using Micro USB, but initially you need to attach the speakers to the main unit so they wirelessly connect.

                Unlike a lot of soundbar manufacturers, JBL has included an automated audio calibration feature

                When the rear speakers are charged and connected, place them on either side of the seating position (sweet spot), and press and hold the HDMI button on the remote for five seconds. There’s a countdown from five to one, before the audio calibration starts. When 'Calibration-1 Done' is displayed, the calibration of the listening zone is successfully completed.

                Then place the rear speakers in their desired position, and press and hold the HDMI button on the remote again for five seconds. Once again there will be a countdown from five to one, before the second audio calibration starts. When 'Calibration-2 Done' is displayed, the calibration of the position is successfully completed.

                This is a great feature, and something of a rarity with very few soundbar manufacturers offering an automated audio calibration feature. The Atmos setting defaults to middle, but you can choose low or high if you feel you’re not getting enough of an effect. The same goes for the Rear setting, and the Bass setting defaults to 3 but you can go down to 1 or up to 5, depending on the low frequency response of your room.

                The Smart mode is the default setting, and this automatically applies processing to non-Atmos/DTS:X content. If you’d rather use the Standard mode which applies no processing, press the mute button for five seconds and then ‘+’ on remote. Conversely, if you want to engage the Night mode so as not to disturb others, press the mute button for five seconds and then ‘-’ on remote. Note that the BAR 9.1 will revert back to Smart mode every time it’s turned off or in standby.

                A few other useful dual controls on the remote include checking the battery charge on the rear speakers by holding the mute button for five seconds and then pressing the Atmos button on the remote. You can restore the factory settings by holding down the power and source buttons on soundbar for more than 10 seconds. Finally, if you want to know which software version your Bar 9.1 is running without using Google Home, hold down the source and volume down buttons simultaneously for 10 seconds and it'll appear on the bar's display.

                For testing I connected a Panasonic DP-UB820 4K Blu-ray player to the soundbar using the available HDMI input, while a Manhattan T3-R Freeview set-top box was connected directly to the TV and its audio sent back via HDMI ARC. The soundbar's ARC capability with Atmos was tested using the built-in Netflix and Amazon apps on an LG 77C9, and the UB820 was also connected directly to the C9 to allow lossless audio to be sent back to the BAR 9.1 to test its eARC capabilities.


                Ways to Revise Your Thesis

                You can cut down on irrelevant aspects and revise your thesis by taking the following steps:

                1. Pinpoint and replace all nonspecific words, such as people, كل شىء, society، أو life, with more precise words in order to reduce any vagueness.

                Working thesis: Young people have to work hard to succeed in life.

                Revised thesis: Recent college graduates must have discipline and persistence in order to find and maintain a stable job in which they can use and be appreciated for their talents.

                The revised thesis makes a more specific statement about success and what it means to work hard. The original includes too broad a range of people and does not define exactly what success entails. By replacing those general words like people و work hard, the writer can better focus his or her research and gain more direction in his or her writing.

                2. Clarify ideas that need explanation by asking yourself questions that narrow your thesis.

                Working thesis: The welfare system is a joke.

                Revised thesis: The welfare system keeps a socioeconomic class from gaining employment by alluring members of that class with unearned income, instead of programs to improve their education and skill sets.

                A joke means many things to many people. Readers bring all sorts of backgrounds and perspectives to the reading process and would need clarification for a word so vague. This expression may also be too informal for the selected audience. By asking questions, the writer can devise a more precise and appropriate explanation for joke. The writer should ask himself or herself questions similar to the 5WH questions. (See Chapter 8 “The Writing Process: How Do I Begin?” for more information on the 5WH questions.) By incorporating the answers to these questions into a thesis statement, the writer more accurately defines his or her stance, which will better guide the writing of the essay.

                3. Replace any linking verbs with action verbs. Linking verbs are forms of the verb to be, a verb that simply states that a situation exists.

                Working thesis: Kansas City schoolteachers are not paid enough.

                Revised thesis: The Kansas City legislature cannot afford to pay its educators, resulting in job cuts and resignations in a district that sorely needs highly qualified and dedicated teachers.

                The linking verb in this working thesis statement is the word نكون. Linking verbs often make thesis statements weak because they do not express action. Rather, they connect words and phrases to the second half of the sentence. Readers might wonder, “Why are they not paid enough?” But this statement does not compel them to ask many more questions. The writer should ask himself or herself questions in order to replace the linking verb with an action verb, thus forming a stronger thesis statement, one that takes a more definitive stance on the issue:

                • Who is not paying the teachers enough?
                • What is considered “enough”?
                • What is the problem?
                • What are the results

                4. Omit any general claims that are hard to support.

                Working thesis: Today’s teenage girls are too sexualized.

                Revised thesis: Teenage girls who are captivated by the sexual images on MTV are conditioned to believe that a woman’s worth depends on her sensuality, a feeling that harms their self-esteem and behavior.

                It is true that some young women in today’s society are more sexualized than in the past, but that is not true for all girls. Many girls have strict parents, dress appropriately, and do not engage in sexual activity while in middle school and high school. The writer of this thesis should ask the following questions:

                • Which teenage girls?
                • What constitutes “too” sexualized?
                • Why are they behaving that way?
                • Where does this behavior show up?
                • What are the repercussions?

                التمرين 3

                In the first section of Chapter 8 “The Writing Process: How Do I Begin?”, you determined your purpose for writing and your audience. You then completed a freewriting exercise about an event you recently experienced and chose a general topic to write about. Using that general topic, you then narrowed it down by answering the 5WH questions. After you answered these questions, you chose one of the three methods of prewriting and gathered possible supporting points for your working thesis statement.

                Now, on a separate sheet of paper, write down your working thesis statement. Identify any weaknesses in this sentence and revise the statement to reflect the elements of a strong thesis statement. Make sure it is specific, precise, arguable, demonstrable, forceful, and confident.

                Collaboration

                Please share with a classmate and compare your answers.

                Writing at Work

                In your career you may have to write a project proposal that focuses on a particular problem in your company, such as reinforcing the tardiness policy. The proposal would aim to fix the problem using a thesis statement would clearly state the boundaries of the problem and tell the goals of the project. After writing the proposal, you may find that the thesis needs revision to reflect exactly what is expressed in the body. Using the techniques from this chapter would apply to revising that thesis.


                لقطات

                This plugin provides 4 blocks.

                How do I install Connections?

                Using the WordPress Plugin Search

                1. Navigate to the Add New sub-page under the Plugins admin page.
                2. Search for connections business directory .
                3. The plugin should be listed first in the search results.
                4. Click the Install Now link.
                5. Lastly click the Activate Plugin link to activate the plugin.

                Uploading in WordPress Admin

                  and save it to your computer.
              • Navigate to the Add New sub-page under the Plugins admin page.
              • Click the Upload link.
              • Select Connections Business Directory zip file from where you saved the zip file on your computer.
              • Click the Install Now button.
              • Lastly click the Activate Plugin link to activate the plugin.
                1. and save it to your computer.
        • Extract the Connections Business Directory zip file.
        • Create a new directory named connections directory in the ../wp-content/plugins/ directory.
        • Upload the files from the folder extracted in Step 2.
        • Activate the plugin on the Plugins admin page.
        • How do I display the business directory on my site?

          We have a QuickStart available that’ll walk you thru the most basic setup. Basically all you need to do is, create a page, and add the [connections] shortcode and then start adding entries to your directory.

          Will it work with my theme?

          Connections Business Directory has been designed to work with any theme.

          Is Connections Business Directory translation-ready?

          Yes it is. Connections Business Directory comes with many user supplied translations. We use Transifex to manage translations. This service make it easy for us manage and easy for you to translate. To read more, see this page.

          Is Connections Business Directory compatible with WordPress Multisite?

          Yes it is. However, do not Network activate Connections. Activate it on only the subsites that you wish to use Connections.

          Is it possible to share entries with other sites within a WordPress Multisite installation?

          Yes this is possible but there is a special setup required to do so. It is recommended this is done before added entries to your business directory.

          1. Activate Connections Business Directory the primary site.
          2. Add define( 'CN_MULTISITE_ENABLED', FALSE ) to your wp-config.php file. ملاحظة: If you have added any entries to any of your subsites, that data will be lost as Connections will read the directory entry data from the primary site’s database tables.
          3. Activate Connections Business Directory on the subsites you wish to use Connections.

          What are the requirements to run Connections?

          • WordPress version: >= 4.4
          • PHP version: >= 5.2.4 ( >= 7.0 is highly recommended)
          • ملاحظة: Upgrading from version 0.6.1 and newer only, is supported. Previous version must upgrade to 0.6.1 before upgrading to the current version.

          Text to 9-1-1

          Making voice contact with 911 directly is the easiest and most reliable way to get help in an emergency or to report a crime in progress. If you can call 911 for help, please do, but for those times when you can’t call, there is now ‘Text-to-9-1-1'.

          Texting 911 improves Telecommunication Officers' ability to communicate with:

          • Citizens who are unable to call 911 because doing so may expose them to further danger.
          • Citizens who are hearing or speech impaired.
          • Citizens who cannot speak due to a medical emergency.
          • Citizens who are in an area with limited or poor cellular coverage.

          How to text 9-1-1 in an emergency:

          • Enter the numbers “911” in the “To” field
          • The first text message to 9-1-1 should be brief and contain the location of the emergency and type of help needed
          • Push the “Send” button.
          • Be prepared to answer questions and follow instructions from the 9-1-1 call taker.
          • Text in simple words – do not use abbreviations.
          • Keep text messages brief and concise.

          Below are a few things to know if you need to text 9-1-1:

          • Text location information is not equal to current location technology.
          • As with all text messages, 9-1-1 messages can take longer to receive, can get out of order or may not be received.
          • Text-to-9-1-1 is not available if you are roaming.
          • A text or data plan is required to place a text-to-9-1-1
          • If texting to 9-1-1 is not available in your area, or is temporarily unavailable, you will receive a message indicating that texting 9-1-1 is not available and to contact 9-1-1 by other means.
          • Photos and videos cannot be sent to 9-1-1 at this time.
          • Text-to-9-1-1 cannot include more than one person. Do not send your emergency text to anyone other than 9-1-1.
          • Do not text and drive!

          Please help keep 9-1-1 available for those who need it. DO NOT send test texts. Text-to-9-1-1 is not for anonymous tips. Text-to-9-1-1 is only available in English at this time.


          17.9.3. Creating a Self-signed Certificate

          To create a quick self-signed certificate for the server, use the following OpenSSL command:

          Fill out the information that openssl asks for. Make sure you enter the local host name as "Common Name" the challenge password can be left blank. The program will generate a key that is passphrase protected it will not accept a passphrase that is less than four characters long. To remove the passphrase (as you must if you want automatic start-up of the server), run the commands:

          Enter the old passphrase to unlock the existing key. Now do:

          to turn the certificate into a self-signed certificate and to copy the key and certificate to where the server will look for them. Finally do:

          because the server will reject the file if its permissions are more liberal than this. For more details on how to create your server private key and certificate, refer to the OpenSSL documentation.