که در کد بالا، بخش condition یک عبارت است و بخش action هم دنبالهای از دستورها است. فایل ورودی به یکسری رکورد شکسته میشود. به طور پیشفرض، رکوردها با استفاده از کاراکتر newline از هم مجزا میشوند، بنابراین، فایل ورودی بر اساس خطوط موجود در آن تقسیمبندی میشود. برنامه به نوبت هر عبارتی که در بخش condition نوشته شده را بر روی رکورد فعلی آزمایش میکند، در صورتی که هر کدام از آن عبارات با رکورد فعلی تطابق داشت، بخش action مربوط به آن عبارت اجرا میشود. یکی از بخشهای condition یا action را میتوان ننوشت، اما حداقل یکی از آنها باید نوشته شود. رفتار پیشفرض برای conditionای که نوشته نشده این است که فرض میشود آن condition با تمام خطوط تطابق دارد. در صورتی که از نوشتن بخش action صرف نظر شود، به صورت پیشفرض این طور تصور میشود که قصد برنامهنویس چاپ کردن رکورد فعلی بوده است.
بخش condition علاوه بر اینکه میتواند شامل عبارتهای سادهای همچون foo == ۱ یا /^foo/ باشد، میتواند کلمات مخصوصی همچون BEGIN یا END هم باشد. در مورد BEGIN، بخش action متناظر پیش از خواندهشدن اولین رکورد اجرا میشود، و در مورد END، بخش action متناظر، پس از خواندهشدن آخرین رکورد اجرا میشود. بخش condition همچنین میتواند به صورت pattern1, pattern2 باشد که در این صورت، بخش action متناظر بر روی محدودهای از خطوط اجرا میشود که شروع این محدوده اولین خطی است که حاوی pattern1 است و پایان این محدوده هم خطی است که حاوی pattern2 است.
عبارات AWK علاوه بر اینکه میتوانند حاوی عملگرهای منطقی و محاسباتی عادی باشند، میتوانند حاوی عملگر تیلد tilde هم باشند (~) که این عملگر، یک عبارت باقاعده را بر روی یک رشته آزمایش میکند. به جای استفاده از این عملگر همچنین میتوان از سینتکس /regexp/ استفاده کرد. این سینتکس از sed گرفته شده است که sed هم آنرا از ویرایشگر ed گرفته است که در این ویرایشگر از کاراکتر / برای جستجو استفاده میشود.
#programming #awk @unixmens
بخش condition علاوه بر اینکه میتواند شامل عبارتهای سادهای همچون foo == ۱ یا /^foo/ باشد، میتواند کلمات مخصوصی همچون BEGIN یا END هم باشد. در مورد BEGIN، بخش action متناظر پیش از خواندهشدن اولین رکورد اجرا میشود، و در مورد END، بخش action متناظر، پس از خواندهشدن آخرین رکورد اجرا میشود. بخش condition همچنین میتواند به صورت pattern1, pattern2 باشد که در این صورت، بخش action متناظر بر روی محدودهای از خطوط اجرا میشود که شروع این محدوده اولین خطی است که حاوی pattern1 است و پایان این محدوده هم خطی است که حاوی pattern2 است.
عبارات AWK علاوه بر اینکه میتوانند حاوی عملگرهای منطقی و محاسباتی عادی باشند، میتوانند حاوی عملگر تیلد tilde هم باشند (~) که این عملگر، یک عبارت باقاعده را بر روی یک رشته آزمایش میکند. به جای استفاده از این عملگر همچنین میتوان از سینتکس /regexp/ استفاده کرد. این سینتکس از sed گرفته شده است که sed هم آنرا از ویرایشگر ed گرفته است که در این ویرایشگر از کاراکتر / برای جستجو استفاده میشود.
#programming #awk @unixmens
وقتی مهندسان اپل قهوهساز طراحی میکنند
بازهم یک دستگاه قهوهساز هوشمند به بازار آمده است. این بار این دستگاه قهوهساز که به یک شبکهی محلی وصل میشود، از طریق یک دوربین کوچک کدهای کیو.آر (QR Code) را اسکن میکند و شما میتوانید قهوهی مورد علاقهی خودتان را به دستگاه سفارش بدهید و آن را تحویل بگیرید.
بله درست خواندید. دستگاه قهوهساز «بلاسم وان» (Blossom One) که دارای سیستم کنترلی دقیق است، روی فرکانس رادیویی IEEE ۸۰۱/۱۱۱۱ به مجموعهای از دستورات دمآوری قهوه روی شبکه اینترنت متصل است.
دوربین ۱.۳ مگاپیکسلی جلوی این دستگاه کدها را اسکن میکند و با بازیابی قهوه مورد نظر، آن را طبق دستوری که شما میخواهید، دم میکند.
#coffee @unixmens
بازهم یک دستگاه قهوهساز هوشمند به بازار آمده است. این بار این دستگاه قهوهساز که به یک شبکهی محلی وصل میشود، از طریق یک دوربین کوچک کدهای کیو.آر (QR Code) را اسکن میکند و شما میتوانید قهوهی مورد علاقهی خودتان را به دستگاه سفارش بدهید و آن را تحویل بگیرید.
بله درست خواندید. دستگاه قهوهساز «بلاسم وان» (Blossom One) که دارای سیستم کنترلی دقیق است، روی فرکانس رادیویی IEEE ۸۰۱/۱۱۱۱ به مجموعهای از دستورات دمآوری قهوه روی شبکه اینترنت متصل است.
دوربین ۱.۳ مگاپیکسلی جلوی این دستگاه کدها را اسکن میکند و با بازیابی قهوه مورد نظر، آن را طبق دستوری که شما میخواهید، دم میکند.
#coffee @unixmens
با این فناوری تازه، تولیدکنندگان قهوه میتوانند برای دمآوری قهوه با طعم دلخواه، به آسانی روش تهیهی آن را در نرمافزار قهوهساز بلاسم ذخیره کنند. این نرمافزار برای انواع قهوهها یک کد کیو.آر ایجاد میکند و بعد آنها میتوانند کد کیو.آر را که شامل اطلاعاتی مانند روش برشتهکاری دانهی قهوه، شیوههای آسیاب کردن و دمآوری است، روی بستهبندی چاپ کنند.
نرمافزار قهوهساز بلاسم این امکان را ایجاد میکند که تولیدکنندگان قهوه، الگوی مصرف مشتریان خود را تحلیل و ارزیابی کنند. این تحلیل شامل اطلاعاتی دربارهی این است که آنها در چه ساعتهایی از روز، چه میزان از چه نوع قهوه مینوشند.
مصرفکنندهی نهایی فقط لازم است که کد کیو.آر قهوه را اسکن کند و از نوشیدن یک فنجان قهوه دلخواه خود، درست طبق دستور قهوهچی، لذت ببرد.
این دستگاه را بعضی از مهندسان اپل طراحی کردهاند.
#coffee @unixmens
نرمافزار قهوهساز بلاسم این امکان را ایجاد میکند که تولیدکنندگان قهوه، الگوی مصرف مشتریان خود را تحلیل و ارزیابی کنند. این تحلیل شامل اطلاعاتی دربارهی این است که آنها در چه ساعتهایی از روز، چه میزان از چه نوع قهوه مینوشند.
مصرفکنندهی نهایی فقط لازم است که کد کیو.آر قهوه را اسکن کند و از نوشیدن یک فنجان قهوه دلخواه خود، درست طبق دستور قهوهچی، لذت ببرد.
این دستگاه را بعضی از مهندسان اپل طراحی کردهاند.
#coffee @unixmens
من خودم یکی از طرفداران قهوه و فرهنگ قهوه و کافی شاپ هستم
قهوهسازی که قارچ خوراکی تولید میکند
بر اساس گزارش سازمان بینالمللی قهوه (ICO)، مردم دنیا در یک سال حدود ۱۵۰/۲ میلیون کیسه قهوه مصرف میکنند (وزن هر کیسه حدودا ۶۰ کیلوگرم است.) با این حال کمتر از ۱٪ از این مقدار صرف تهیهی نوشیدنی میشود و میلیونها تن از این مادهی مغذی به هدر میرود. با این همه انرژی بلااستفاده چه باید کرد؟
بر اساس گزارش سازمان بینالمللی قهوه (ICO)، مردم دنیا در یک سال حدود ۱۵۰/۲ میلیون کیسه قهوه مصرف میکنند (وزن هر کیسه حدودا ۶۰ کیلوگرم است.) با این حال کمتر از ۱٪ از این مقدار صرف تهیهی نوشیدنی میشود و میلیونها تن از این مادهی مغذی به هدر میرود. با این همه انرژی بلااستفاده چه باید کرد؟
قهوهساز هیفا (HIFA) طوری به این پرسش پاسخ داده که هم مقولهی پایایی (sustainability) را مد نظر قرار داده و هم یک فنجان قهوهی مطلوب به دست میدهد. شاید متعجب شوید اگر بدانید که … این قهوهساز قارچ تولید میکند! تفالهی قهوه در فرآیندی ساده، با انتقال به بخشی از دستگاه که برای پرورش قارچ در نظر گرفته شده، مورد مصرف دوباره قرار میگیرد.
این قهوهساز به گونهای طراحی شده که با رسیدن به حدی بهینه از تاریکی و رطوبت، محیطی مناسب برای رشد رشتههای مولد قارچ یا میسلیومها را فراهم میکند و در عین حال ابزاری فوقالعاده برای دمآوری قهوه، به سبک فرنچ پرس، به مصرفکننده ارائه میدهد. بدنهی دو جدارهی این دستگاه با جلوگیری از اتلاف حرارت، قهوه را برای مدتی طولانیتر داغ نگه میدارد. در عین حال تفالهی قهوه در بخش پایینی دستگاه ذخیره میشود تا برای تلقیح آماده شده و بعد از چند روز قارچهای خوردنی درجه یک تولید کنند.
این ایدهی نوآورانه البته در مرحلهی طراحیست و هنوز به تولید صنعتی نرسیده است.
این قهوهساز به گونهای طراحی شده که با رسیدن به حدی بهینه از تاریکی و رطوبت، محیطی مناسب برای رشد رشتههای مولد قارچ یا میسلیومها را فراهم میکند و در عین حال ابزاری فوقالعاده برای دمآوری قهوه، به سبک فرنچ پرس، به مصرفکننده ارائه میدهد. بدنهی دو جدارهی این دستگاه با جلوگیری از اتلاف حرارت، قهوه را برای مدتی طولانیتر داغ نگه میدارد. در عین حال تفالهی قهوه در بخش پایینی دستگاه ذخیره میشود تا برای تلقیح آماده شده و بعد از چند روز قارچهای خوردنی درجه یک تولید کنند.
این ایدهی نوآورانه البته در مرحلهی طراحیست و هنوز به تولید صنعتی نرسیده است.
مهندسی یعنی تبدیل تئوری به عمل