مندرجہ ذیل پوسٹ ڈویلپرز کے لئے لکھنا: Piotr Sarna اور Cynthia Dunlop کی طرف سے پڑھی جانے والی بلاگز کے باب 8 سے نکال دیا گیا ہے. ڈویلپرز کے لئے لکھنا: بلاگز جو پڑھنے لگتے ہیں بوگ شکار ہم اسے X میں دوبارہ لکھتے ہیں ہم کس طرح تعمیر کرتے ہیں سیکھنے کا درس ٹرینوں کے بارے میں سوچیں غیر مارکیٹ کی مصنوعات کے نقطہ نظر Benchmarks اور ٹیسٹ کے نتائج کے "بگ ہینٹ" بلاگ پوسٹ کے ماڈل ایک ڈائریکٹری کی کہانی کے پروگرامنگ کی دنیا کے برابر ہے. اس میں ایک موضوع، ایک بنیادی قصہ، جزوی قصے، ایک اہم کردار (آپ)، ایک مخالف (مثال کے طور پر آپ بھی، پہلی جگہ میں دو ہفتوں قبل بگ کو پیش کرتے ہوئے) ہے. یہ جذباتی ہے، قارئین کو حوصلہ افزائی میں رکھتا ہے، اور ایک مطمئن قصہ ٹویٹ، یا ایک تکنیکی cliffhanger کے ساتھ ختم ہوتا ہے. اور سب سے بہترین حصہ ... یہ پڑھنے سے بھی زیادہ مذاق ہے! 8.1 مقاصد ایک بیگ شکار مضمون لکھنا چند مقاصد کی خدمت کرتا ہے، شکار کی کامیابی پر منحصر ہے، جہاں غلطی آخر میں گر گئی، اور کچھ دیگر عوامل. 8.1.1 علم کے ڈپریشن حقیقت یہ ہے کہ ایک بیگ ظاہر ہوا ہے اور ٹھیک کیا گیا ہے اس بات کو یقینی طور پر اہم ہے. لیکن اس سے بھی زیادہ اہم ہے کہ یہ دوبارہ ہونے کا امکان کم کرنا ہے - اور اگر ایسا ہوتا ہے تو کیا کرنا ہے جاننے کے لئے. چند مرنے والوں کا خاتمہ ایک بہت مطمئن سرخ ہیرنگ ایک آلہ جو ابتدائی طور پر مددگار لگتا تھا، لیکن اس کے ساتھ کوئی تعلق نہیں تھا ایک اور آلہ جو بہت مفید ثابت ہوا 2014 سے کچھ بلاگ پوسٹ جو آپ کو بنیادی وجہ کا پتہ لگانے میں لایا ان تمام مراحل ایک اور اسی طرح کے مسئلہ کے مستقبل کے ڈبگجر کے لئے بہت مفید ہیں (شاید آپ دوبارہ، دو ہفتوں کی عمر میں ہیں). ماضی کے مردوں کے اختتام اور تفریح کے بارے میں واقفیت یہاں خاص طور پر مفید ہے. ایک مشہور سرخ ہیرنگ کی تیزی سے شناخت مستقبل کے ڈبگجر (آپ) کو کچھ گھنٹے غیر مصنوعی تحقیق سے بچا سکتا ہے. آپ کو بگ شکار بلاگ پوسٹوں کو قدیم علم (دو ہفتے یا اس سے زیادہ) کے رولز کے طور پر علاج کرسکتے ہیں، جو آپ کے ماضی (آپ) نے پیدا کیا ہے تاکہ اس کو مستقبل کے نسلوں (آپ بھی) کو منتقل کر سکیں. 8.1.2 عالمی بیگ کی شناخت یہ کمیونٹی کے لئے واپسی کا وقت ہے! امکان یہ ہے کہ آپ نے ٹھیک کیا ہے کہ بگ آپ کے منصوبے کے لئے منفرد طور پر لاگو نہیں ہے. اس کے بجائے، یہ آپ کی پسند کی زبان، لائبریریوں میں سے ایک، یا مخصوص ہارڈ ویئر میں سے ایک میں ایک چھاپہ کی وجہ سے ہوا ہے. آپ کا مضمون واقعی دوسروں کو سوچنے کے لئے حوصلہ افزائی کر سکتا ہے "ہاں، ہمارے پاس بالکل اسی سیٹ اپ ہے - مجھے تعجب کرتا ہے ..." یہ بھی اس ٹیکنالوجی کے پیچھے ٹیم کو اس طرح کے طریقوں پر غور کرنے کے لئے حوصلہ افزائی کر سکتا ہے کہ دوسروں کو اسی غلطی سے روکنے کے لئے. اس کے نتیجے میں، ایک کہانی لکھنے کے بارے میں کس طرح آپ نے ایک دلچسپ بیگ کو ٹھیک کیا ہے اس کے نتیجے میں دنیا بھر میں ایک ہی قسم کے چند دیگر بیگ کو ٹھیک کیا جا سکتا ہے. یہ ایک سپر طاقت ہے! Bloeding Edge سافٹ ویئر جدید ہارڈ ویئر ایک نوجوان کھلے ذریعہ کمیونٹی یہ تیزی سے ترقی کرتے ہیں اور صنعت کے معیار کے مقابلے میں بہت کم ٹیسٹ کی پوشیدہیت رکھتے ہیں صرف اس وجہ سے کہ وہ اہم منصوبوں میں لاگو کرنے کے لئے بہت نوجوان ہیں. آپ اس مقصد کو پہلے بیان کردہ "علم ڈیمپ" کا ایک بیرونی ورژن کے طور پر سوچ سکتے ہیں - یہ ایک علم ڈیمپ ہے جو آپ ہر کسی کے لئے لکھتے ہیں، نہ صرف آپ کے لئے یا آپ کی ٹیم کے لئے. 8.1 بائبل ٹیکنالوجی کی دنیا کی تعریف - صحیح خوراک پر - آپ اور آپ کے ساتھیوں کے لئے اچھا ہے. کچھ دلچسپ کرنے کے بارے میں تعریف کرنا، جیسے شکار اور ایک بیگ کو حل کرنے، آپ کو اور آپ کے قارئین کو مدد ملتی ہے: It's educational. Your audience can presumably learn something by reading how you achieved your goal. It broadens your professional network. People intrigued by similar technologies and challenges will likely reach out to you as we outlined in Chapter 1. It feels good. There’s no shame in acknowledging that attention is one of the benefits of telling the world that you did something. It yields free criticism – hopefully constructive criticism, but valuable either way. The (often illusory) sense of anonymity on the Internet makes it easy to criticize others, so you can count on lots of comments and nitpicks after your article goes public. But after filtering out the vitriol, you can often learn something new, or even revisit your whole approach to the problem. 8.2 زائرین بوجھ شکار ایک تکنیکی موضوع ہے، اور بوجھ شکار بلاگ پوسٹوں کے زائرین بنیادی طور پر صرف تکنیکی ہیں. People with a similar background (which means they are potentially susceptible to introducing or suffering from similar bugs in their systems) لوگ جن کا کام پیدا کرنے اور پیداوار بگ کو ٹھیک کرنے میں ہے مردوں کے درمیان ایک اسی طرح کے بائبل شکار وہ لوگ جو اس قسم کے بگ کو دوبارہ دوبارہ ہونے سے روکنے میں کامیاب ہوسکتے ہیں (جو اس ٹیکنالوجی کے پیچھے ہیں جہاں بگ واقع ہوا یا نقصانات کی روک تھام کے اوزار پر کام کرتے ہیں) Detective fiction aficionados آپ کے ساتھی غیر طلبہ مشورے میں مہارت کے لئے پیشہ ورانہ انٹرنیٹ انتباہ یہ فرض کرنے کے لئے محفوظ ہے کہ زائرین کسی ایسے شخص ہیں جو: پہلے سے ہی آپ کے مضمون میں استعمال ہونے والے تکنیکی اصطلاحات اور زبانوں کو سمجھنے کے لئے کافی پیشہ ورانہ پس منظر ہے اگر نہیں، وہ ان کو دیکھنے اور سیکھنے کے لئے تیار ہے اگر نہیں، تو یہ صرف ایسا لگتا ہے کہ وہ سمجھتے ہیں کہ یہ بالکل ٹھیک ہے لہذا، یہ ٹھیک ہے کہ ایک بیگ شکار بلاگ پوسٹ کو "شامل سطح" (یا اس سے اوپر) قارئین کو ہدایت کے طور پر علاج کرنے کے لئے، اور "نئی آؤٹ" نہیں ہے. 8.3 مثالیں کیونکہ بگ کسی بھی جگہ ہوسکتے ہیں، اس طرح بگ شکار بلاگ پوسٹس بھی ہوسکتے ہیں. جنگلی میں، آپ بگ شکار پوسٹس کو مختلف بلاگز پر شائع کر سکتے ہیں: بڑے ٹیک، یونیکورن، شروع، اور ذاتی بلاگز. عام طور پر، بڑے اعلی پروفائل کمپنیوں کی طرف سے شائع ہونے والے بگ شکار پوسٹس حیرت انگیز طور پر کم عام ہیں (اور زیادہ محفوظ ہیں) شروع کاروں کے مقابلے میں، اور انفرادی شراکت داروں کو کھلی ذرائع میں حصہ لینے اور ہفتے کے آخر میں منصوبوں کے بارے میں لکھتے ہیں. یہاں "بگ شکار" نمونہ کو لاگو کرنے والے بلاگ پوسٹوں کے کچھ بہترین مثالیں ہیں، ہر ایک پر Piotr کی تبصرہ کے ساتھ. 8.3.1 Hunting a NUMA Performance Bug Michał Chojnowski Author: زمرہ:تصویریں ( ) Source: https://www.scylladb.com/2021/09/28/hunting-a-numa-performance-bug/ Summary مضمون NUMA (Non-Uniform Memory Access) ڈیزائن کے ساتھ جدید ہارڈ ویئر پر ہونے والی کارکردگی کی رجسٹریشن کی وضاحت کرتا ہے. اس رجسٹریشن کو نصف چلانے پر تصادفی طور پر ہونے لگتا تھا، جس نے اسے پتہ لگانے کے لئے بہت مشکل بنا دیا. مضمون کو اس مسئلہ کو تشخیص کرنے کے لئے کچھ ناکام (لیکن مہارت اور متاثر کن) کوششوں کا اشتراک کرتا ہے. پھر، ایک تبصرہ براہ راست ایک اختتام اور ایک حیرت انگیز طور پر چھوٹا حل بناتا ہے - کوڈ لائنوں کے ساتھ پیمانے پر. Commentary یہ بوجھ شکار بلاگ پوسٹوں کا سب سے اوپر ہے. یہ بہت تکنیکی ہے، لیکن ایک ہی وقت میں پیروی کرنے کے لئے آسان ہے. کم تجربہ شدہ قارئین کو تھوڑا سا چھوٹا سا تفصیلات کو ہیک کر سکتے ہیں اور اب بھی بہت کچھ سیکھ سکتے ہیں. مسئلہ کا تشخیص کرنے کی تمام ناکام کوششیں تعلیماتی ہیں، اور مستقبل میں ڈبگنگ میں یقینی طور پر استعمال کیا جا سکتا ہے. مصنف کی غیر معمولی مہارت جو executable binaries کو براہ راست ترمیم کرتے وقت ظاہر کرتا ہے جیسے کہ وہ ٹیکسٹ فائلوں ہیں، بلاگ پوسٹ کو ایک انتہائی خوشگوار پڑھنے کے لئے بناتا ہے. 8.3.2 میرے رسٹ کی تعمیر اتنی جلدی کیوں ہے؟ اموس ونگر Author: ہوم ترجمہ کریں ( Source: https://fasterthanli.me/articles/why-is-my-rust-build-so-slow) Summary یہ وسیع بلاگ پوسٹ ایک Rust پروجیکٹ کے لئے کمپیلنگ وقت کے مسائل کی تحقیقات کرتا ہے. یہ کمپیلر خود کو پروفائل کرنے کے لئے چند تکنیکوں کو ظاہر کرتا ہے، کمپیلنگ کے عمل کو منظم ٹکڑوں میں تقسیم کرتا ہے، اور ہر ٹکڑا کتنا وقت لیتا ہے اور کیوں کا اندازہ کرتا ہے. یہ تصاویر، کوڈ ٹکڑے، اور آپ استعمال کرسکتے ہیں کہ بیکٹیریا کے آلے کی وضاحتیں پر مشتمل ہے. مضمون کا نتیجہ واقعی کسی بھی انفرادی جدوجہد نہیں ہے، لیکن اس سے زیادہ صادق مشورہ ہے کہ آپ اپنے Rust بنائی وقت کے ساتھ ناامید ہیں تو اوپر تمام وسیع تکنیکوں کو لاگو کریں. Commentary ایک اوسط تکنیکی بلاگ پوسٹ کے مقابلے میں، یہ ایک ہگ ہے - خالص طور پر مثبت معنی میں! یہ آسانی سے ایک مہارت پڑھنے کے لئے ایک نصف گھنٹہ لگ سکتا ہے، اور یہ شاید ایک اچھا خیال ہے کہ اسے تین یا چار حصوں میں ضم کرنے کے لئے، اسکرین سے وقفے لینے کے لئے چمک اور ڈپلوپیا سے بچنے کے لئے. یہ ایک مثبت خصوصیت ہے کیونکہ یہ مضمون کو باہر نکالتا ہے. بہت سے تکنیکی مضامین پڑھنے کے 4 سے 6 منٹ میں ممکنہ طور پر زیادہ سے زیادہ معلومات کو دبا کرنے کی کوشش کرتے ہیں. اور یہ مناسب ہے، ایک انسان کی توجہ کی اوسط لمبائی اسمارٹ فون پر بڑھائی جاتی ہے اور ہر وقت کارٹون کے وقفے کے ساتھ باہر کھیلنے کے بجائے. تاہم، ایک طویل مضامین پرانے اسکول کے لوگوں کو پکارے گا جو ایک وقت میں ایک کتاب پڑھنے کے قابل تھے. مضمون کا ایک منفرد سٹائل ہے جس میں مصنف کے alter ego، Cool Bear، شامل ہوتا ہے، جو منظم طور پر مختصر مزاحیہ تبصرے شامل کرتا ہے - پڑھنے والے کو (مطابق) پڑھنے کے عمل کے دوران منسلک رکھتا ہے. کے اس قسم کی ایک بیگ شکار بلاگ پوسٹ بھی Rust کمپیوٹر کو ڈبگ کرنے کے لئے تکنیکوں کی ایک انجکشن کے طور پر خدمت کرتا ہے. میں نے اسے بک مارکیٹ کیا ہے، صرف اس صورت میں کہ مجھے کبھی بھی اپنے منصوبوں میں لنکنگ وقت کو پیمانے پر اپنے علم کو تازہ کرنے کی ضرورت ہے. نتیجہ بھی کافی غیر معمولی ہے: کشیدگی کی تعمیر کے بجائے اور آخر میں ایک حیرت حل کے ساتھ قارئین کو پیش کرنے کے بجائے، یہ صرف حوصلہ افزائی کے ساتھ ایک صادق خلاصہ ہے. 8.3.3 کس طرح ایک ہی لائن کوڈ نے ایک 24-کوریٹ سرور کو ایک لیپ ٹاپ کے مقابلے میں سست کر دیا Piotr Kołaczkowski کے بارے میں Author: زمرہ:سورہ البقرہ کی کتابیں ( ) Source: https://pkolaczk.github.io/server-slower-than-a-laptop/ Summary بلاگ پوسٹ پر بیان کیا جاتا ہے کہ کس طرح مقامی بینچ مارک بہت سی CPU کورس کے ساتھ مشینوں پر ایک بوتل کو پتہ چلتا ہے. مصنف ایک کارکردگی کے تجزیہ کا اشتراک کرتا ہے، کچھ پروفائلنگ کرتا ہے، پھر یہ بتاتا ہے کہ جدید CPU کیسے ہیک کے نیچے کام کرتا ہے اور پروسیسر کیک کیسے میموری کا انتظام کرتا ہے. مشورہ دیا گیا حل مضمون میں پہلے تک پہنچنے والے نتیجے کا ایک قدرتی نتیجہ ہے: پروسیسر یونٹز کے درمیان مشترکہ ریاست کی مقدار کو کم کرنے سے بوتل کو ختم ہوتا ہے. Commentary اس کا عنوان تھوڑا سا clickbaity ہے، لیکن اب بھی معمولی ایڈجسٹنگ سافٹ ویئر کی طرف سے منسلک ہونے سے بچنے کے لئے کافی عمدہ ہے. تکنیکی تفصیلات Chojnowski کے NUMA بلاگ پوسٹ (اس سیکشن میں پہلے بیان) میں ان سے کہیں زیادہ عام طور پر سمجھا جاتا ہے. اس مضمون کے بارے میں دلچسپی سے تعلیم یافتہ ہے، اس طرح کے چیزوں پر غور کرتے ہوئے "انٹیل Xeon پر L3 کیش تک رسائی کے اوسط میں کتنے نانو سیکنڈ لیتا ہے." یہ بہت اچھا طریقہ ہے؛ یہ ان تفصیلات کو قارئین کے ذہنوں میں کھینچ دیا جاتا ہے جب تک کہ وہ یہ سمجھتے ہیں. کون جانتا ہے - شاید ایک دن یہ پتہ چلتا ہے کہ ایک دوسرے منصوبے میں ایک کارکردگی کی خرابی کو حل کرنے میں مدد ملے گی. 8.3.4 ڈبگنگ سے سیکھنے کے لئے ایک مشکل براہ راست میموری چوری سانچائی جاوایا Author: زمرہ:انگریزی ویکیپیڈیا کے صفحات ( ) Source: https://medium.com/pinterest-engineering/lessons-from-debugging-a-tricky-direct-memory-leak-f638c722d9f2 Summary Pinterest کی ترقی کی ٹیم ان کے تجربات کا اشتراک کرتا ہے جو ایک سٹریم پروسیسنگ کوڈ میموری پھیلاؤ کے لئے شکار کرتے ہیں جس نے ان کے تقسیم سسٹم میں کاسڈنگ ناکامیوں کی وجہ سے کیا. یہ جاوا ماحول کے لئے ڈیبگنگ کی تکنیکوں کے بارے میں ہے اور پھر آخر میں ایپلی کیشن کوڈ میں ایک بیگ کا پتہ چلتا ہے جو میموری پھیلاؤ کی وجہ سے ہوا. Commentary یہ ایک کلاسیکی خرابی شکار مضمون ہے – اتنا کہ یہ جاوا کوڈ میں تقریبا کسی بھی مسئلہ کے شکار کے لئے ایک بلاگ پوسٹ ماڈل کے طور پر استعمال کیا جا سکتا ہے. اس میں معمول کی تحقیقات کے اقدامات شامل ہیں، مندرجہ ذیل کی نگرانی کے آلات سے اسکرین شاٹ کے ساتھ ساتھ. بھی اپنی مرضی کے مطابق، کلائنٹ کے باب کو "The Fix" کہا جاتا ہے. یہ وضاحت کرتا ہے کہ گناہ گار جاوا میں زبانی جمع کے میکانیزم کی طرف سے غیر جانبدار طور پر کی وجہ سے ایک اور میموری چوری مسئلہ تھا. تجاویز: یہ ہمیشہ ہے! اس سلسلے میں، نتیجہ واقعی زمین کی طرف متوجہ نہیں ہے، لیکن یہ یقینی طور پر قارئین کی توقعات کو پورا کرتا ہے. میں شرط لگاتا ہوں کہ زیادہ تر قارئین سوچتے ہیں "اے، میں نے شروع سے جانا تھا" اصل وجہ کو سیکھنے کے بعد. 8.3.5 ZFS مشہور طور پر میری CPU کھا رہا ہے برانڈن گرگ Author: زمرہ:جنگل کے بلاگ ( ) Source: https://www.brendangregg.com/blog/2021-09-06/zfs-is-mysteriously-eating-my-cpu.html Summary یہ بلاگ پوسٹ تجزیہ کے اوزار کے ساتھ ایک واحد تقریب کال کے لئے کانگریسوں کو کم کرنے کے لئے کس طرح دکھاتا ہے اور ZFS میں ایک حیرت انگیز کارکردگی بگ کے ساتھ ختم ہوتا ہے - ایک فائل سسٹم ایپلی کیشن. Commentary عنوان خود جذباتی ہے، لیکن پھر یو آر ایل میں کچھ آپ پر چلا جاتا ہے: یہ برینڈن گرگ کی طرف سے ہے، آگ گراف کی تخلیق کرنے والا! یہ ایک عظیم مثال ہے کہ کیوں ذاتی برانڈ اتنا اہم ہے. جب میں "برینڈن گرگ" دیکھتا ہوں، میں فوری طور پر فرض کرتا ہوں کہ مضمون دلچسپ ہے ... اور میں کم از کم غلط نہیں تھا. گرگ کے تجربے کو دیکھتے ہوئے، مسئلہ کا تجزیہ قدرتی طور پر گرگ گراف میں شامل تھا. اصل وجہ بہت حیرت انگیز ہے، اور گرگ نے اسے ایک بہت غیر معمولی اور مضحکہ خیز طریقے سے بیان کیا. بلاگ پوسٹ بھی بہت مختصر ہے: تین منٹ کی پڑھائی، یہاں تک کہ اگر آپ اس گرگ گراف کے اسکرین شاٹ کو دیکھنے کے لئے کچھ وقت خرچ کرتے ہیں. یہ واضح طور پر دکھاتا ہے کہ آپ کو بہت سے علم، تجاویز، اور دلچسپ تکنیکی تفصیلات میں پریشان کرنے کے لئے ہزاروں الفاظ لکھنے کی ضرورت نہیں ہے. مزید تازہ ترین "Bug Hunt" بلاگ پوسٹیں دیکھیں writethat.blog پر مزید تازہ ترین "Bug Hunt" بلاگ پوسٹس دیکھیں میں لکھتا ہوں ۔ بلاگ میں لکھتا ہوں ۔ بلاگ 8.4 خصوصیات بگ ہینٹ بلاگ پوسٹس حقیقی بگ شکار کے طور پر بہت مختلف ہوسکتے ہیں - لیکن وہ مندرجہ ذیل خصوصیات کا اشتراک کرتے ہیں: وہ کہانی chronologically کہتی ہیں، اس وقت سے جب برا بگ خود ظاہر ہوا، جب یہ مردہ اعلان کیا گیا تھا وہ بنیادی طور پر شکار کے مزاحمت (اور درد) پر توجہ مرکوز کرتے ہیں وہ آزادانہ طور پر شکار کے دوران جمع شدہ ثبوت کا اشتراک کرتے ہیں تاکہ قارئین اپنے ڈیکٹائٹ چپس پر ڈال سکتے ہیں اور ساتھ کھیل سکتے ہیں. یہ بنیادی طور پر تجربہ کار ڈویلپرز کے لئے ڈیزائن کیا جاتا ہے جو بات چیت کرنے والی ٹیکنالوجیوں کو جانتے ہیں (یا آگے بڑھتے ہوئے سیکھنے کے لئے تیار ہیں) وہ تکنیکی nuggets پیش کرتے ہیں جو اب دلچسپ ہوسکتے ہیں، بعد میں زندگی بچانے ہر ایک کی طرف سے ایک نظر ڈالیں. 8.1 کرومولوجی طور پر بیگ شکار بلاگ پوسٹس اکثر ایک مخصوص ساخت کی پیروی کرتے ہیں کیونکہ وہ ڈیکٹائٹ کی کہانیوں کا تکنیکی مساوات ہیں. (اگر آپ ایک ڈیکٹائٹ کی کہانی کی ساخت پر ایک انٹرویو یا اپ ڈیٹ کرنا چاہتے ہیں تو، پیدا شدہ AI یہاں ایک مناسب کام کرتا ہے). انٹرویو پیراگراف بہت زیادہ تفصیلات ظاہر نہیں کرتا ہے اور یقینی طور پر حل کے بارے میں ایک سپائیلر نہیں فراہم کرتا ہے. Once the problem is defined, the hunt begins, usually with a few failed (but educational) attempts. The tension builds until the author reaches their aha moment, which is followed by the fix description (and that section is customarily titled "The Fix"). After the solution is revealed, the blog post concludes by describing preventive measures to stop this bug from recurring – and often a concise apology to any affected users. 8.4.2 Heavy on the hunt The meatiest part of the article is the path towards identifying the issue. Spending around 80% of the post explaining the investigation process is a good rule of thumb. For example, here’s how much time each of the example blog posts above spent on the investigation (based on word count): 85% hunt Chojnowski: 83% hunt Wenger: 83% hunt Kołaczkowski: 82% hunt Javeria: 93% hunt Gregg: 8.3 ہر جگہ ثبوت Bug hunt blog posts are usually full of forensic evidence. Readers want to see flame graphs, numbers, charts, scripts, and code samples. This lets them step into your detective shoes and try to figure out the riddle before the big reveal. For example, here’s some of the evidence shown in the example blog posts: Chojnowski: ڈیٹا بیس کی نگرانی گراف (سچڈ پر لکھا جاتا ہے)، نیٹ ورک اور ڈسک کی کارکردگی گراف، CPU اعداد و شمار، flame گراف اور ہدایات کی سطح کی خرابیوں، CPU کی کارکردگی کی پیمائش کی نگرانی یونٹ (PMU) واقعات، اور ایک قسم کی کوشش کی کوڈ کی اصلاحات Wenger: Cargo کی تعمیر کے وقت، کمپیلنگ یونٹس کی ایک وقت لائن، CPU کا استعمال اور موازنہ گراف، ڈیبگ کی معلومات، فلیٹ گراف، Chromium اور Perfetto کے ذریعے ٹریکنگ، کوڈ کی تصدیق کی کوشش، انفرادی گراف Kołaczkowski: بینچ مارکیٹنگ کے آلے کے ڈیزائن کا ایک نظر، ٹرانسپورٹ کے نتائج (اپنے 4-Core لیپ ٹاپ پر 24-Core سرور پر)، flame graphs Javeria: out-of-memory غلطی کی تفصیلات، backpressure ٹیسٹ، اور کئی forays میں میموری کی نگرانی Gregg: Flame گراف (بالکل!), ZFS انسٹال کی تفصیلات، arcstats، اور ایک GitHub لنک کے ذریعے تمام منبع کوڈ کے Flame graphs are particularly common across bug hunting blog posts. They offer a great way to visualize your debugging and performance profiling process. And they’re interactive – users can zoom in to the interesting parts, filter out only the events that match a particular regular expression, and much more. Flame graphs can be created from the output of popular tools, such as Linux's perf profiler or Rust's cargo flame graph command. 8.4 ماہر دوست بیگ شکار مضامین عام طور پر ماہر دوستانہ ہیں. مصنف عام طور پر فرض کرتا ہے کہ زائرین کو مضامین میں استعمال ہونے والی ٹیکنالوجی کے ساتھ مہارت (یا کم از کم واقف) ہے. کوڈ نمونے اور مضامین جن میں مضامین میں اشتراک کیا جاتا ہے وہ عام طور پر قارئین کے لئے ہدف ہیں جو استعمال ہونے والے پروگرامنگ زبانوں سے واقف ہیں. ان اقسام کے مضامین بنیادی زبان کے مفادات کی وضاحت کرنے کے لئے حوصلہ افزائی نہیں کرتے ہیں؛ اگر قارئین "یہ" نہیں کرسکتے ہیں، تو انہیں اس کے ذریعے لڑنے یا صرف آگے بڑھنے کی ضرورت ہوسکتی ہے. یہ دیگر بلاگ پوسٹ کے ماڈلوں کے مقابلے میں واضح طور پر مختلف ہے، جیسے "ہم نے اسے ایکس میں دوبارہ لکھا ہے" (پہلے باب 9 میں بحث کی). بلاگ پوسٹ اس ماڈل میں ان لوگوں کے لئے زیادہ مناسب ہیں جو صرف دی گئی ٹیکنالوجی کے ساتھ شروع کر رہے ہیں اور اکثر ایک "نئی زبان میں داخلہ" سیکشن شامل ہیں. 8.4 تعلیم اس نمونے کی پیروی کرنے والے بلاگ پوسٹز متاثرہ ٹیم کے علاوہ ڈویلپرز کے لئے کافی تعلیمی ہوسکتے ہیں. گوشت کا حصہ، بگ کی شناخت، اس کے بارے میں تفصیلات میں بہت زیادہ ہے کہ کس طرح اسی طرح کے مسائل کی جانچ پڑتال کرنے کے بارے میں. مزید اہم بات یہ ہے کہ، یہ سیکشنز دوبارہ کی تفصیلات میں بہت زیادہ ہیں: وہ جو تمام قسم کے اسی طرح کے مسائل کو حل کرنے کے لئے مفید ہوسکتے ہیں جو قارئین کو مستقبل میں سامنا ہوسکتا ہے. بلاگ پوسٹ اس کے مقاصد کی خدمت کرتا ہے اگر یہ قارئین کو چند مزید ٹریکز کے ساتھ سامان دے دیتا ہے جو وہ استعمال کرسکتے ہیں، صرف اس صورت میں کہ وہ کبھی بھی ان کی زندگی میں کسی بھی وقت ایک اسی طرح کے بگ کا سامنا کرتے ہیں. مثال کے طور پر، یہاں ایک اعلی درجے کی نقطہ نظر ہے جو قارئین ہمارے ہر مثال بلاگ پوسٹ سے سیکھ سکتے ہیں: The kinds of issues you might encounter with complex memory architecture (NUMA), especially with ARM processors Chojnowski: Ways to improve your Rust build times Wenger: How modern CPUs work under the hood and how the processor caches manage memory Kołaczkowski: Java is evil Javeria: How to apply analysis tools like an absolute expert Gregg: 8.5 دو اور نہیں The best blog posts are born from the most torturous bug hunts. Driven by the glorious feeling of finally solving the mystery, strike while the iron is hot. Write your impressions before the high of the hunt wears off and help your peers solve their next case faster. یہاں آپ کے اپنے Bug Hunt بلاگ پوسٹ لکھنے کے لئے کچھ تجاویز ہیں. 8.5.1 چیک کریں کہ اگر کوئی شخص (آپ کے باس، آپ کے باس کے وکیل) آپ کی شفافیت سے پریشان ہو جائے گا یہ خاص طور پر اہم ہے اگر آپ نے ایک خرابی کا شکار کیا ہے جو صارفین پر قابل ذکر اثر پڑتا ہے - یا اگر اس خرابی کی وضاحت آپ کی کمپنی کی رائے اور / یا اہم اسٹاک کی قیمت کو منفی طور پر متاثر کرسکتی ہے. Before you publish code snippets of your heavily guarded corporate secrets, make sure that your boss and any interested parties are fine with it. Even if you skip the code, your superiors still may be averse to making certain information public, especially if the bug was related to security, or ended with an unfortunate data leak. Use this rule of thumb: Ask first, write and publish later. 8.5.2 ایک تکنیکی گہری سواری کریں Technical details are a must in any, well, بلاگ پوسٹ. اگر آپ کے مضمون کوڈ نمونے، استعمال ہونے والی درست ٹیکنالوجی کے بارے میں تفصیلات، قدم پر قدم کی ہدایات، وغیرہ کے طور پر تفصیلات کی کمی ہوتی ہے تو، بہت سے قارئین ناپسندیدہ رہیں گے. اس سے بھی بدتر، وہ آپ کی صحت پر شک کرسکتے ہیں. شاید ناپسندیدہ ٹکڑوں کو مصنوعات کو بہتر نظر آتے ہیں؟ اگر آپ کو فکر ہے کہ آپ بہت زیادہ تکنیکی تفصیلات شامل کر رہے ہیں تو، زیادہ سے زیادہ کی جانب سے غلطی. قارئین کو ہمیشہ ان پر بھاگ سکتے ہیں اگر وہ ان کو دلچسپ نہیں سمجھتے ہیں. تکنیکی Bug hunting blog posts are especially expected to be loaded with tips, tricks, code, benchmark results, as well as links to open-source repositories and documentation. Otherwise, you rob readers of the fun opportunity to draw their own conclusions from the copious evidence. As noted earlier, it's fine to be expert-friendly here. You can assume that the audience is either already familiar with the technology described, or willing to catch up (with the help of your blog post). 8.5.3 اپنے تمام ناکامیوں کے بارے میں براہ راست صادق رہیں آپ کی ناکامیوں اور غمگینیاں قارئین کو اس کٹارٹک اثر کے ساتھ فراہم کرتی ہیں جو انہیں سب سے پہلے آپ کے بلاگ پوسٹ پر لاتا ہے! وہ بھی بوجھ شکار مضامین کے سب سے زیادہ تعلیمی پہلو کو پیدا کرتے ہیں. آخر میں، غلطیوں سے سیکھنے کے لئے بہت اچھا ہے، لیکن پہلے کسی اور کی غلطیوں سے سیکھنے کے لئے بہتر ہے. بیگ شکار بلاگ پوسٹوں کو عام طور پر اصل وجہ کی شناخت کے بعد لکھا جاتا ہے اور بیگ کو ٹھیک کیا جاتا ہے. سب سے زیادہ درد اور رکاوٹ پہلے حصوں میں بیان کیا جاتا ہے، سب سے بہتر آخری پھیلاؤ نظر آتا ہے. ایسے قارئین جو اسی طرح کے مسائل کے ساتھ جدوجہد کر رہے ہیں، فعال طور پر انٹرنیٹ پر اسی طرح کے مسائل کی وضاحتوں کے لئے تلاش کریں گے، لہذا تمام غمگین کلیدی الفاظ جیسے "کاٹ گیا،" "ہلاک،" یا "FUBAR" دوہری مقاصد کی خدمت کرتے ہیں - وہ مصنف کی ناکامی کے لئے ایک جذباتی آؤٹ ہیں، اس کے علاوہ وہ بھی بلاگ پوسٹ کو آن لائن تلاش کرنے کے لئے آسان بناتے ہیں. ایک کامل، غیر معمولی بوجھ شکار کے ذریعے بات چیت کرنے کی کوشش نہ کریں. مُردوں کے اختتام اور ناکام کوششوں میں مطالعہ کے معیار کے ٹن لاتا ہے. پروگرامرز (جو یقینی طور پر "بہترین دماغوں" کے لئے ایک نمونہ ہے) اسی طرح سوچتے ہیں. اس کا مطلب یہ ہے کہ کچھ قارئین کو اسی مُردوں کے اختتام میں پکڑا جا سکتا ہے - اگر وہ پہلے آپ کی خبردار کی کہانی پڑھیں تو. 8.5.4 اعداد و شمار، بینکنگ مارک، میٹرک اور گرمی گراف شامل کریں بینچ مارک کے نتائج، میٹرک، اور تمام قسم کے اعداد و شمار ڈیکٹائٹ فائنل کی دنیا سے اشارے اور ثبوت کے برابر ہیں.بگ شکار بلاگ پوسٹز کم legit نظر آتے ہیں اگر وہ "ہماری نظام اب بہت تیزی سے ہے." نتائج پر فخر ہے، تو آپ انہیں پوسٹ کریں گے ..." آپ کے میٹرک سے اسکرین شاٹ (یا اس سے بھی بہتر، انٹرایکٹو اعداد و شمار جیسے گرمی گراف) قارئین کی آنکھوں کو پکڑتے ہیں، مضمون کو زیادہ قابل اعتماد اور پڑھنے کے لئے زیادہ لطف اندوز بناتے ہیں. واقعی 8.5.5 بہت جلدی نہیں چھوڑیں - کشیدگی کی تعمیر کو برقرار رکھیں سب سے زیادہ بلاگ پوسٹس کے لئے، ہم TL;DR کو ابتدائی طور پر اشتراک کرنے کی سفارش کرتے ہیں تاکہ قارئین جلد ہی فیصلہ کرسکتے ہیں کہ وہ جاری رکھنا چاہتے ہیں یا نہیں. یہاں نہیں! بگ شکار بلاگ پوسٹس کے ساتھ، کسی بھی قیمت پر Spoilers سے بچنے کے لئے! کشیدگی کو صبر سے تیار کیا جانا چاہئے جب تک کہ aha کے وقت ہوتا ہے، اور حل ظاہر ہوتا ہے. یہ قارئین کو اجازت دینے کے لئے اہم ہے (جیسا کہ وہ جلدی نہیں کرتے ہیں، کم از کم) سب سے زیادہ ڈیکٹائٹ کی کہانیوں کو سب سے اوپر کی طرف سے تجربہ کرنے کے لئے، اس کے تمام گھومنے اور گھومنے کے ساتھ. وہ شاید پہلے سے ہی شک کرتے ہیں کہ مضمون ایک خوشگوار اختتام کے ساتھ ختم ہوتا ہے، کیونکہ دوسری صورت میں اسے شائع نہیں کیا جائے گا. 8.5.6 پرسکون قارئین کو اصلاح کے لئے بہت سخت شکار نہ کریں یہ کہا جاتا ہے کہ، کچھ قارئین پریشان ہو جائے گا. شاید وہ صرف چند حصوں کے بعد ان کے اپنے نتیجے کو نکالنے کے بعد اور فوری طور پر اس بات کی تصدیق کرنے کی فوری رضامندی چاہتے ہیں کہ وہ حق حاصل کر رہے ہیں، فوری طور پر، آپ کے برے پرانے آپ کے برعکس. شاید یہ دوازده جاوا بگ شکار بلاگ پوسٹ ہے کہ وہ اس مہینے میں آتے ہیں اور وہ دیکھنا چاہتے ہیں کہ کیا یہ ایک اور ہے جہاں گھوڑے کی جمع کرنے والے آخر میں گناہ کا الزام ہے. اچھا ہو اور ایک اچھا مشہور عنوان کے ساتھ "صحیح" کا نشان بنائیں تاکہ وہ سگریٹ کے گولی پر آگے بڑھ سکتے ہیں. ایک بونس کے طور پر، ایک واضح طور پر لیبل ٹھیک کرنے کے لئے ان لوگوں کے لئے بھی مددگار ہے جو آپ کے بلاگ پوسٹ پر واپس آتے ہیں کیونکہ وہ اب ایک اسی طرح کے مسئلہ میں مبتلا ہیں. واپس جب وہ اس کو مذاق کے لئے پڑھ رہے تھے، وہ آپ کے شکار کی حوصلہ افزائی کے ساتھ ساتھ ضرور پیروی کرتے ہیں. لیکن اب جب ٹیبلوں کو تبدیل کر دیا گیا ہے، وہ آپ کے ٹھیک کرنے کے لئے براہ راست جانا چاہتے ہیں اور دیکھیں گے کہ یہ ان کو اپنے ناامیدی کے وقت میں بچائے گا. 8.5.7 جہاں ضرورت ہو تو ٹوٹنے کے پوائنٹس شامل کریں Bug hunt articles can get long, especially if you’re covering every little twist and turn (as you absolutely should!) If you end up writing a blog post that will take over 20 minutes or so to read, consider adding a few clear breaking points for readers, in case they opt to consume your article in more than one sitting. مثال کے طور پر، آپ اب تک کی تحقیقات کی ترقی کی ایک مختصر تجزیہ پیش کر سکتے ہیں. آپ کو ایک واضح نوٹ شامل کر سکتے ہیں کہ اوپر بیان کردہ اقدامات ایک مٹھی کے اختتام تک پہنچ چکے ہیں، ایک نئی ڈسٹیشن کی وجہ سے. 8.5.8 زندگی کو اس سے نکالنے کی کوشش نہ کریں Readers aren't here to read an official failure report. The captivating bits are the personal story, the struggle, and the final joy of figuring out what was wrong. The best bug hunting blog posts use an informal conversational tone, and anecdotes are very much welcome. آپ کی ذاتی نقطہ نظر سے اس کی کہانی بتائیں. آپ کے دماغ کے ذریعے کیا ہوا تھا کے بارے میں اشتراک کرنے میں شک نہیں کریں جب اس راز کو ظاہر کیا گیا تھا. اس کے علاوہ، رینڈر لائن لازمی ہیں اور توقع کی جاتی ہیں - معقول خوراک میں، بالکل. اوپر تفصیل سے بیان کردہ "تغییر کی تعمیر" اور "تغییر کے لئے مکمل رسائی فراہم کرنے" نقطہ نظر، قارئین کو شامل رکھنے کے دو بنیادی طریقے ہیں (ہاں، وہ ایک حقیقی ڈائریکٹر کی کہانیوں سے خفیہ طور پر چوری کی گئی ہے). اس کے علاوہ، آپ چاہتے ہیں ہو سکتا ہے: ہیں Write in an extremely casual tone, sacrificing “proper” grammar as needed to keep it conversational Create a faux dialog with the reader: ask them questions so they’re encouraged to step back and form their own hypotheses (which you will proceed to confirm or disprove) Write as if you’re in the thick of the hunt (e.g., “Let’s see if …” vs. “Then we checked if…’’) Share exactly what popped into your head (no matter how silly it seems in retrospect) as you encountered each new piece of information Explicitly call out critical moments like “plot twist,” “dead end,” and “the aha moment” to ensure readers are in the right mindset at every point 8.5.9 شکار میں مدد کرنے والوں کا شکریہ ادا کرنے کے لئے مت بھولنا آپ کے تعاون کرنے والوں کو عوامی طور پر تسلیم کرنے کے لئے سب سے اہم وجہ خالص دوستی ہے. بگ شکار کمپیوٹر پروگرامنگ کے سب سے زیادہ غصے والے حصوں میں سے ایک ہیں، اور غم کمپنی سے محبت کرتا ہے. آپ کے تعاون کرنے والے شاید اس درد کو تھوڑا تھوڑا تھوڑا کم پریشان کر دیتے ہیں؛ اگر آپ اس کی تعریف کرتے ہیں تو، یہاں ان کا شکریہ ادا کریں. نہ ہی اس طرح empathic لوگوں کے لئے، آپ کے تعاون کرنے والوں کا شکریہ ادا کرنے کے لئے pragmatic (بس: خودکشی) وجوہات بھی ہیں. آپ کا تسلیم ان کو اگلے بگ شکار میں مدد کرنے کے لئے زیادہ امکان بن سکتا ہے. اس کے علاوہ، اگر آپ کسی کو بلاگ پوسٹ میں نام دیتے ہیں تو، آپ بہت زیادہ ضمانت دے سکتے ہیں کہ وہ اسے پڑھیں گے - اور 8.5 ایکسچینج براہ مہربانی مخصوص غلطیوں (مثال کے طور پر، "Our Rust code had a bug") سے زیادہ عام مسائل (مثال کے طور پر، "Rust standard library makes it easy to deadlock in this particular use case.") Bug hunting blog posts are also opportunities to shine some light on pain points you have with a particular technology. You have managed to attract a captive audience, interested in what you have to say. Why not take advantage of that? If you noticed something problematic with the language or library you used, bite the bullet and suggest that something should be fixed upstream. 8.6 خلاصہ ایک بیگ شکار مضمون لکھنے کے لئے معلومات کا اشتراک کرنے کے لئے خدمت کرتا ہے، آپ کو ملنے والے بیگ کے بارے میں آگاہی کو بڑھانے کے لئے، اور آپ کی کامیابیوں کو ظاہر کرنے کے لئے. ایک بیگ شکار بلاگ پوسٹ ایک تکنیکی زائرین کو ہدف دیتا ہے، ماہرین سے شوقین تک، عام طور پر (جیسے کم از کم) اصطلاحات کے درمیان علم کا خیال رکھتا ہے. بگ شکار بلاگ پوسٹز عام طور پر تحقیقات کی تفصیلات پر بھاری ہیں، جس میں اعداد و شمار، بینچ مارک، نتائج، اور گرافوں کی شکل میں تکنیکی ثبوت دکھایا جاتا ہے. Top tips: Check for transparency issues Do a technical deep dive Be brutally honest Include numbers and benchmarks Avoid spoilers Clearly mark “the fix” Make it personal Thank your collaborators *مزید آپ اس کتاب کے بارے میں مزید دیکھ سکتے ہیں (don’t miss the and ) براہ مہربانی نوٹ کریں کہ الفاظ ہمارے کنٹرول سے باہر کسی ظاہری طور پر عارضی نقطہ نظر میں جھگڑا ہو جاتا ہے. /¯ on the Manning site foreword by Bryan Cantrill Scott Hanselman کی طرف سے (ツ) کے