تسرطن برامج go

قراءة لمدة 11 دقيقة. بطل صورة سرطان البحر-غزو صورة تم إنشاؤها بواسطة Waifu Diffusion v1.3 (float16) - السرطانات ، الغزو ، الشاطئ ، أشجار النخيل ، منطقة التل الأخضر ، استوديو جيبلي ، سجلات xenoblade 2 ، البوكيمون ، كين سوجيموري ، الخطوط العريضة السميكة ، الحبر بحاجة إلى تضمين هذه المكتبة المكتوبة بلغة أخرى في برنامجك. لقد كان خيطًا مشتركًا بين المبرمجين منذ زمن سحيق. لقد كانت دائمًا عملية محفوفة بالمزالق ، والخوف ، والعذاب ، والمناديل المبللة برائحة الليمون لسبب ما.

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

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

هذه مشكلة كبيرة فقط على المستوى العام ، وهذا هو سبب وجود Nix و NixOS. تخيل مدى تعقيد الأمر عندما تقوم برمي مكونات نظام تشغيل للأغراض العامة في المزيج. إنه لأمر مدهش أن يعمل كل شيء.

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

لقد فعلت ذلك بحزمة أسميها mastosan وإليك سبب وجودها وكيف فعلت ذلك. لماذا

تخزن Mastodon الملفات بتنسيق HTML وتقدم ذلك HTML لعملاء واجهة برمجة التطبيقات. يعد HTML أمرًا رائعًا جدًا لعرضه في المتصفح ، ولكنه ليس مفيدًا للروبوت. خاصةً إذا كان هدفك هو استخدام Slack webhook.

عند النظر إلى أداة مثل هذه في واجهة برمجة التطبيقات:

يبدو محتواها على النحو التالي:

اختبر إشارةxe حتى أتمكن من رؤية ما يفعله HTML الطاغوت

من الناحية المثالية نود أن تكون متطابقة لغويًا في Slack ، ربما شيء من هذا القبيل: أذكر الاختبار حتى أتمكن من رؤية ما يفعله HTML الطاغوت

سيعرض هذا الارتباط في Slack مثل أي ارتباط تشعبي آخر. عندما تصبح الأمور أكثر تفصيلاً ، سوف يقوم Mastodon بمزيد من الغرابة الدلالية مثل النطاقات غير المرئية والأشياء الأخرى التي تجعل مشاهدة الأشياء على Slack مملًا. تخيل الفرق بين هذين الأمرين: https://tailscale.com/blog/introducing-tailscale-funnel/ https://tailscale.com/blog/introducing-tailscale-funnel/

يسهل على البشر فهم أحدهما أكثر من الآخر. كيف

تتمثل إحدى الخصائص الرئيسية لفلسفة UNIX في الفكرة القائلة بأن البرامج عبارة عن عوامل تصفية بسيطة تعمل شيئًا واحدًا جيدًا ثم تسمح لك بتكوينها بطرق جديدة ومثيرة للاهتمام. إذا سبق لك استخدام curl و jq معًا للقيام بأشياء مثل قراءة البيانات من JSONFeed ، فأنت تعلم كيف يعمل ذلك عمليًا: $ curl https://xeiaso.net/blog.json -qsSL | jq .items [0] .title -r تستمر عصافير العصافير

تسرطن برامج go
قراءة لمدة 11 دقيقة. بطل صورة سرطان البحر-غزو صورة تم إنشاؤها بواسطة Waifu Diffusion v1.3 (float16) - السرطانات ، الغزو ، الشاطئ ، أشجار النخيل ، منطقة التل الأخضر ، استوديو جيبلي ، سجلات xenoblade 2 ، البوكيمون ، كين سوجيموري ، الخطوط العريضة السميكة ، الحبر بحاجة إلى تضمين هذه المكتبة المكتوبة بلغة أخرى في برنامجك. لقد كان خيطًا مشتركًا بين المبرمجين منذ زمن سحيق. لقد كانت دائمًا عملية محفوفة بالمزالق ، والخوف ، والعذاب ، والمناديل المبللة برائحة الليمون لسبب ما.

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

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

هذه مشكلة كبيرة فقط على المستوى العام ، وهذا هو سبب وجود Nix و NixOS. تخيل مدى تعقيد الأمر عندما تقوم برمي مكونات نظام تشغيل للأغراض العامة في المزيج. إنه لأمر مدهش أن يعمل كل شيء.

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

لقد فعلت ذلك بحزمة أسميها mastosan وإليك سبب وجودها وكيف فعلت ذلك. لماذا

تخزن Mastodon الملفات بتنسيق HTML وتقدم ذلك HTML لعملاء واجهة برمجة التطبيقات. يعد HTML أمرًا رائعًا جدًا لعرضه في المتصفح ، ولكنه ليس مفيدًا للروبوت. خاصةً إذا كان هدفك هو استخدام Slack webhook.

عند النظر إلى أداة مثل هذه في واجهة برمجة التطبيقات:

يبدو محتواها على النحو التالي:

اختبر إشارةxe حتى أتمكن من رؤية ما يفعله HTML الطاغوت

من الناحية المثالية نود أن تكون متطابقة لغويًا في Slack ، ربما شيء من هذا القبيل: أذكر الاختبار حتى أتمكن من رؤية ما يفعله HTML الطاغوت

سيعرض هذا الارتباط في Slack مثل أي ارتباط تشعبي آخر. عندما تصبح الأمور أكثر تفصيلاً ، سوف يقوم Mastodon بمزيد من الغرابة الدلالية مثل النطاقات غير المرئية والأشياء الأخرى التي تجعل مشاهدة الأشياء على Slack مملًا. تخيل الفرق بين هذين الأمرين: https://tailscale.com/blog/introducing-tailscale-funnel/ https://tailscale.com/blog/introducing-tailscale-funnel/

يسهل على البشر فهم أحدهما أكثر من الآخر. كيف

تتمثل إحدى الخصائص الرئيسية لفلسفة UNIX في الفكرة القائلة بأن البرامج عبارة عن عوامل تصفية بسيطة تعمل شيئًا واحدًا جيدًا ثم تسمح لك بتكوينها بطرق جديدة ومثيرة للاهتمام. إذا سبق لك استخدام curl و jq معًا للقيام بأشياء مثل قراءة البيانات من JSONFeed ، فأنت تعلم كيف يعمل ذلك عمليًا: $ curl https://xeiaso.net/blog.json -qsSL | jq .items [0] .title -r تستمر عصافير العصافير

What's Your Reaction?

like

dislike

love

funny

angry

sad

wow