نشر مع المشاركات: نتائجنا لعام 2019


© رالف ماكوري

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

أبطال حسب التصنيف


ما تعلمته من تجربتي المريرة (أكثر من 30 عامًا في تطوير البرمجيات) ( AloneCoder )


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

كيف أرسلنا رسالة قصيرة من الكهف ( Qubique )


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

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

ورشة نجار افعلها بنفسك: التوقعات والواقع ( zipp3r )


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

أكثر الأخطاء المخزية في حياتي المهنية في البرمجة (حاليًا) ( AloneCoder )


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

استعادة الصور باستخدام الشبكات العصبية ( kitashov )


أنا أعمل كمبرمج أبحاث في فريق رؤية الكمبيوتر لمجموعة Mail.ru. بالنسبة ليوم النصر هذا العام ، قررنا إنشاء مشروع لاستعادة الصور العسكرية. ما هو استعادة الصور؟ يتكون من ثلاث مراحل:

  • نجد جميع عيوب الصورة: فواصل ، يجرجر ، ثقوب.
  • الطلاء على العيوب الموجودة على أساس قيم بكسل من حولهم ؛
  • تلوين الصورة.

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

نماذج عامة وبرامج metaprogramming: Go و Rust و Swift و D وغيرها ( AloneCoder )


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

أجد أن الأدوية العامة هي خيار مثير للاهتمام ، لأنها حالة خاصة بسيطة لمشكلة البرمجة العامة العامة: كتابة البرامج التي يمكنها إنشاء فئات من البرامج الأخرى. كدليل على ذلك ، سأوضح كيف يمكن اعتبار ثلاث طرق مختلفة وعامة تمامًا لبرمجة metaprograming امتدادات متعددة الاتجاهات في فضاء الأنظمة العامة: اللغات الديناميكية مثل Python ، وأنظمة الماكرو الإجرائية مثل Template Haskel ، والتجميع المرحلي مثل Zig و Terra.

لماذا لا تسرع const رمز C / C ++؟ ( AloneCoder )


قبل بضعة أشهر ، ذكرت في منشور واحد أن هذه خرافة ، كما لو أن const يساعد في تمكين تحسينات برنامج التحويل البرمجي في C و C ++. قررت أن هذا البيان يجب أن يشرح ، خاصة لأنني كنت أؤمن بهذه الأسطورة من قبل. سأبدأ بالنظرية والأمثلة الصناعية ، ثم انتقل إلى التجارب والمعايير بناءً على قاعدة الكود الحقيقية - SQLite.

رؤوس HTTP للمطور المسؤول ( AloneCoder )


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

المطورين ربط الناس.
المطورين مساعدة الناس.
المطورين إعطاء الناس الفرص.

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

نماذج للعدوى والمضادات الحيوية وغيبوبة نهاية العالم ( randall )


تسببت البكتيريا ، وليس السرطان ، والإرهابيون والكوارث في مقتل عدد كبير من الناس. Yersinia pestis وحدها (الطاعون عصا) أسفرت عن وفاة 150 مليون شخص. إن تناول المضادات الحيوية هو الطريقة الرئيسية لمكافحة الالتهابات البكتيرية. لكن ماذا لو توقفت الأدوية عن العمل؟

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

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

العمل مع المناطق الزمنية في JavaScript ( randall )


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

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

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

الأبطال من خلال التعليقات


EDC من أخصائي تكنولوجيا معلومات صحي: أحمل كل شيء معي ( براير )


نحمل معنا بعض الأشياء المفيدة التي نستخدمها ، إن لم يكن كل يوم ، ثم في كثير من الأحيان. كل هذا غير المرغوب فيه يسمى EDC - حمل كل يوم. واليوم ، مع وفرة لا تصدق وسهولة الوصول إلى جميع أنواع الأدوات والأدوات والأجهزة ، الضالة و nishtyachki الصغيرة ، في جيوبنا والحقائب لدينا يمكنك العثور على مجموعات مثيرة للاهتمام أكثر من الأشياء. وعلى dailycarry.com ، يمكنك تحميل صور EDC وتوقيع كل عنصر. جمعنا المجموعات الأكثر إثارة للاهتمام من متخصصي تكنولوجيا المعلومات من هناك. كما طلبوا منا أن نظهر ما يكمن في جيوب وحقائب ظهر موظفينا.

لماذا نحتاج إلى الأدوية البديلة في Go؟ ( AloneCoder )


هذا المقال يدور حول معنى إضافة مواد جنيسة إلى Go ، ولماذا أعتقد أننا يجب أن نفعل هذا. سوف أتطرق أيضًا إلى أي تغيير محتمل في بنية اللغة من أجل إضافة الأدوية العامة.

تم إصدار Go في 10 نوفمبر 2009. بعد أقل من يوم واحد ، ظهر أول تعليق حول الأدوية الجنيسة. يذكر أيضًا الاستثناءات التي أضفناها إلى اللغة في شكل حالة من الذعر والتعافي في بداية عام 2010.

لمدة ثلاث سنوات من الملاحظة ، ظل غياب الأدوية الجنيسة دائمًا قائمة بثلاث مشاكل رئيسية تحتاج إلى إصلاح في اللغة.

ما يجب قراءته ومشاهدته من الخيال العلمي الجديد: المريخ ، سايبورغس و AI المتمرد ( بارايار )


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

أبطال إضافة إلى المفضلة


بالنسبة لأولئك الذين يعرفون مع آذانهم: دبليو للمطورين ( براير )


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

كيفية إنشاء تطبيق من الموقع ووضعه على Google Play في غضون ساعات قليلة. الجزء 1/2: تطبيق الويب المتقدم ( macket )


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

  1. رمز التطبيق موجود على الشاشة الرئيسية للهاتف الذكي.
  2. يفتح التطبيق في نافذة منفصلة.
  3. يرسل التطبيق إخطارات الدفع.

تتم إزالة جميع النقاط الثلاث بفضل تطبيق Progressive Web App أو PWA. الآن ، بالانتقال إلى الموقع من متصفح الجوال ، يمكننا "تنزيله" ، وبعد ذلك سنرى الأيقونة على الشاشة الرئيسية. بالإضافة إلى ذلك ، عند بدء التشغيل ، تظهر شاشة البداية ، كما هو الحال في تطبيقات الأجهزة المحمولة ، وإذا كنت ترغب في ذلك ، يمكنك تكوين إرسال إعلامات الدفع.

ويبدو أن كل شيء على ما يرام! ولكن للأسف ، لأكثر من 10 سنوات من عصر الجوال ، اعتاد المستخدمون جدًا على البحث عن التطبيقات على متجر Google Play ومتجر التطبيقات. تعد كسر عادات المستخدم مهمة ناكر للشفاء ، وبالتالي قرر شباب Google (بالمناسبة ، Google هي مطور PWA) أنه إذا لم يذهب الجبل إلى Magomed ، فعندئذ ... بشكل عام ، وفي الآونة الأخيرة ، في 6 فبراير 2019 ، قاموا بتوفير استخدام أنشطة الويب الموثوق بها لـ حسابات تطبيق الويب على Google Play.

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

محركات جافا سكريبت: كيف تعمل؟ من مكدسات الاتصال إلى الوعود ، (تقريبًا) كل ما تحتاج إلى معرفته ( AloneCoder )


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

مشاهدة الأبطال


الغضب من الكود: المبرمجون والسلبية ( AloneCoder )


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

كيف يمكن القيام بهذا الشيء؟ أغطي وجهي وأشرب من خلال الضحك. يسأل زملائي ماذا حدث ، وأعيد سرد "الزيارات الأسوأ لـ BulkDataImporter.js 2018" بالألوان ، وكل إيماءة تعاطف معي وتوافق على: كيف يمكن أن يفعلوا هذا بنا؟

ميزات JavaScript الحديثة التي قد لا تعرف عنها ( AloneCoder )


على الرغم من حقيقة أنه في السنوات السبع الماضية ، أكتب في جافا سكريبت يوميًا تقريبًا كل يوم عمل ، يجب أن أعترف أنني لا أبدي اهتمامًا كبيرًا بالأخبار حول الابتكارات من ES. الميزات الرئيسية مثل المزامنة / الانتظار والوكلاء هي شيء واحد ، ولكن كل عام يوجد مجموعة من التغييرات الصغيرة التي لا تقع في مجال رؤيتي ، لأن هناك دائمًا شيء أكثر أهمية للدراسة.

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

يتم دائمًا إساءة استخدام XML ( AloneCoder )


تم اختراع لغة XML في عام 1996. بالكاد ظهر قبل أن يساء فهم إمكانات تطبيقه ، وللأغراض التي حاولوا تكييفه من أجله ، لم يكن هو الخيار الأفضل.

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

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

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

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

أدناه ، سأقدم بعض الأمثلة الأكثر شيوعًا للدوائر التي تم إنشاؤها بشكل غير صحيح.

* * *
شكرا لكل من قرأها. ومع المجيء!

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


All Articles