آبان ۵ ۱۳۹۷

خدمات لوله بازکنی-هزینه لوله بازکنی

این روزها استفاده از خدمات لوله بازکنی جهت رفع گرفتگی آشپزخانه، ظرفشویی، سرویس‌ بهداشتی از جمله گرفتاری‌های روزمره بحساب می آید. که اگر برای دریافت خدمات لوله بازکنی، با یکی از برچسب‌های تبلیغاتی تماس گرفته باشید بدونه تردید با تجربه بدی از هزینه‌های نا متعارف و خدمات ناقص مواجه خواهید بود.

مسددود شدن جزئی لوله ها ممکن است با مسائل جزئی از قبیل تخلیه کند آب سینک آشپزخانه یا سرویس یهداشتی آغاز گردد. اما می توانند به سرعت به مشکلات بزرگ تبدیل شوند؛ اهمیت دادن به این موضوع و رفع علت مسدود شدن جزئی لوله می تواند از تعمیرات پر هزینه لوله بازکنی  جلوگیری کند.

جالب است بدانید در آپارتمان ها به علت اشتراک لوله های فاظلاب و … در بسیاری موارد علت گرفتگی لوله ها ما نیستیم و مثلا بی مبلاتی یکی از همسایه‌ها یا حتی  مثلا  اتداختننوار بهداشتی در چاه توسط مهمان به علت خجالت باعث اختلال و گرفتگی لوله ها شده است در این مقاله سعی بر این است راهکار های به شما آموزش دهیم که ابتدا خودتان اقدام به باز کردن لوله ها گرفته شده کنید و در صورتی که موفق به این عمل نشدید به شما میگیویم با چه معیاری و با چه هزینه ای جهت لوله بازکنی از شرکت های فعال در این حوزه کمک بگیرید؛ که از شما هزینه دو چندان دریافت نگردد. با توجه به کلاهبرداری های زیاد در حوزه لوله بازکنی که حتی بازتاب رسمی در رسانه های ملی داشته است؛ پیشنهاد میگردد مطالب زیر را دقت دنبال کنید.

لوله بازکنی فوری

 


مهر ۱۹ ۱۳۹۷

آموزش خط فرمان: قسمت چهاردهم، بسط پارامتر (Parameter Expansion)

نوشته شده توسط فرشید نوتاش حقیقت.

به‌طور خلاصه در این درس بسط پارامتر (Parameter Expansion) را آموزش می‌دهیم و در دروس آتی به‌طور مفصل موضوع را پوشش خواهیم داد.

این ویژگی است که بیشتر اسکریپت‌های شل (Shell Scripts) کاربرد خواهد داشت تا به‌صورت مستقیم در خط فرمان.

بسیاری از قابلیت‌های آن با توانایی سیستم در ذخیره تکه‌های کوچکی از داده بر روی خود و سپس نام‌گذاری هر بخش در رابطه است. بسیاری از این تکه‌های داده که به بیانی بهتر متغیر نامیده می‌شوند برای آزمون‌های شما در دسترس هستند.

بسط پارامتر (Parameter Expansion)

برای بسط پارامتر و آشکارسازی محتوای USER به شیوه زیر عمل کنید:

مشاهده می‌شود که با تایپ echo $USER نام کاربر نمایان می‌شود.

برای مشاهده یک لیست از متغیرهای در دسترس این مورد را امتحان کنید:

شاید متوجه شده باشید که با دیگر انواع بسط اگر یک الگو را به اشتباه وارد کنید، بسط ایجاد نخواهد شد و فرمان echo به سادگی الگویی که به اشتباه وارد کرده‌اید را نشان می‌دهد. ولی در بسط پارامتر اگر نام متغیر را اشتباه تایپ کنید، بسط سر پا می‌ماند فقط نتیجه رشته خالی برمی‌گردد:

منبع: کتاب The Linux Command Line نوشته William E. Shotts

نوشته آموزش خط فرمان: قسمت چهاردهم، بسط پارامتر (Parameter Expansion) اولین بار در لینوکس سیزن پدیدار شد.


مهر ۱۸ ۱۳۹۷

آموزش خط فرمان: قسمت سیزدهم، بسط آکولاد (Brace Expansion)

نوشته شده توسط فرشید نوتاش حقیقت.

شاید عجیب‌ترین نوع بسط، بسط بریس یا همان آکولاد باشد. با استفاده از آن شما می‌توانید چندین رشته متنی از یک الگو حاوی بریس‌ها را ایجاد کنید.

بسط آکولاد (Brace Expansion)

به مثال زیر توجه کنید:

الگوهایی که با بریس بسط داده می‌شوند شاید شامل یک بخش پیشین با نام preamble و بخش انتهایی با نام postscript باشد. بسط آکولاد ممکن است خودش شامل اعداد صحیح و تک‌کاراکترها باشد که با کاما از هم جدا شده‌اند.

مثالی از لیست اعداد صحیح:

و در این مثال رنجی از حروف به ترتیب بر عکس آورده شده است:

و در این مثال بسط بریس‌های تودرتو آورده شده است:

کاربرد این بسط‌ها چیست؟

رایج‌ترین کاربرد و اپلیکیشن برای ایجاد لیست‌هایی از فایل‌ها و پوشه می‌باشد. برای مثال اگر ما عکاس بودیم و کلکسیون عظیمی از تصاویر را داشتیم که می‌خواستیم آن‌ها را بر اساس فرمت ماه و سال نامگذاری شده باشد. به این شیوه، نام پوشه‌ها به تریتب تاریخ مرتب خواهد شد. می‌توان یک لیست کامل از پوشه‌ها را تایپ کرد ولی این شیوه زمان زیادی می‌برد و خطای آن بالاست.

به مثال زیر توجه کنید:

منبع: کتاب The Linux Command Line نوشته William E. Shotts

نوشته آموزش خط فرمان: قسمت سیزدهم، بسط آکولاد (Brace Expansion) اولین بار در لینوکس سیزن پدیدار شد.


مهر ۱۸ ۱۳۹۷

platform چیست؟

نوشته شده توسط طیبه اسماعیل بیگی.

Platform یک hardware environment یا softwreی است که در ان یک program میتواند run شود. از آنجایی که operating system ها خودشان program ی هستند که بقیه program ها بر روی آنها run می شوند پس operating system ها خودشان platform هستند.

اکثر platform ها ترکیبی از operating system و hardware تحت کنترل آنها هستند. اما java platform فقط یک software platform است و خودش بر روی hardware-based platform ها run می شود.

Java platform دو component دارد:

  1. Java Virtual Machine
  2. Java Application Programming Interface(API)

API مجموعه ای بزرگ از software component هایی است که آماده استفاده اند و امکانات مفید زیادی را فراهم می کنند. API به library هایی تقسیم شده که هرکدام از آنها class ها و interface های مرتبط به هم را نگهداری می کنند. به این library ها package می گوییم.

چون java یک platform-independent environment است کمی کندتر از native code عمل می کند.

Java platform دارای featureهای زیر است:

  • Development tools
  • Application Programming Interface(API)
  • Deployment Technologies
  • User Interface Toolkits
  • Integrating Libraries

Development Tools :

این feature هر چیزی را که برای compile  کردن , run کردن , monitor کردن , debug کردن و document کردن application تان نیاز دارید را در اختیارتان می گذارد. احتمالا بیشترین tool هایی که به عنوان یک developer جدید جاوا به کار خواهید برد عبارت خواهند بود از :

  • javac compiler
  • java launcher
  • javadoc documentation tool

API :

این feature هسته عملیاتی java programming language را فراهم می کند. API آرایه ای عظیم از کلاسهای مفیدی را فراهم نموده که آماده اند تا در application تان از آنها استفاده کنید. API یک پل ارتباطی بین هر چیزی که در program تان وجود دارد را فراهم می کند خواه basic object باشد یا networking یا security یا XML generation و یا database access.

Deployment Technologies :

این feature مکانیزم استانداردی را برایتان فراهم می کند مانند Java Web Start Software یا Java Plug-In Software که برای deploy  کردن application تان از آنها استفاده می کنید.

User Interface Toolkit :

این feature شامل Java 2D toolkit, Swing, JavaFX می باشد که با استفاده از آنها می توانید GUI(Graphical User Interface) های پیچیده را بسازید.

Integration Libraries :

این feature شامل موارد زیر است :

  1. Java IDL API
  2. Java Naming and Directory Interface API(JNDI)
  3. JDBC API
  4. Java Remote Method Invocation over Internet Inter-ORB Protocol Technology (Java RMI-IIOP Technology)

که دسترسی به database  و دستکاری آنها را از راه دور امکانپذیر می کند.

می توانید با خودداری کردن از استفاده از library هایی که در دیگر language ها نوشته شده اند program تان را portable نگه دارید.

نوشته platform چیست؟ اولین بار در لینوکس سیزن پدیدار شد.


مهر ۱۷ ۱۳۹۷

آموزش خط فرمان: قسمت دوازدهم، بسط حسابی (Arithmetic Expansion)

نوشته شده توسط فرشید نوتاش حقیقت.

Shell اجازه می‌دهد تا عملیات حسابی توسط بسط انجام شود. این به ما اجازه می‌دهد تا از Shell به عنوان یک ماشین حساب استفاده کنیم:

بسط حسابی (Arithmetic Expansion)

بسط حسابی به این شکل استفاده می‌شود:

$((expression))

که در این صورت expression یک عبارت حسابی است که متشکل از مقادیر و عملگرهای حسابی است.

بسط حسابی فقط اعداد صحیح (اعداد کامل و غیراعشاری) را پشتیبانی می‌کند ولی می‌تواند عملیات‌های مختلفی را انجام دهد. جدول زیر لیست عملگرهای پشتیبانی شده را نشان می‌دهد:

فاصله‌ها در بسط‌های حسابی، معنادار و مهم نیستند و ممکن است در عبارت‌ها گنجانده شوند. برای مثال ۵ به توان ۲ ضرب در ۳:

تک‌پرانتزها ممکن است برای گروه‌بندی چندین زیرعبارت استفاده شود. با این تکنیک، می‌توان مثال قبلی را به‌صورت زیر بازنویسی نمود و همان نتیجه مشابه را دریافت کرد:

این هم یک مثال با استفاده از عملگرهای تقسیم و باقیمانده. به تاثیر تقسیم Integer توجه کنید:

بسط حسابی در آموزش‌های آینده به تفصیل شرح داده خواهد شد.

منبع: کتاب The Linux Command Line نوشته William E. Shotts

نوشته آموزش خط فرمان: قسمت دوازدهم، بسط حسابی (Arithmetic Expansion) اولین بار در لینوکس سیزن پدیدار شد.


مهر ۱۶ ۱۳۹۷

آموزش خط فرمان: قسمت یازدهم، بسط با تیلدا (Tilde Expansion)

نوشته شده توسط فرشید نوتاش حقیقت.

بسط با تیلدا (~)

اگر به خاطر داشته باشید، در مبحث فرمان cd کاراکتر ~ معنایی خاص دارد. وقتی عملگر ~ در اول یک کلمه استفاده می‌شود، این عملگر مسیر را به دایرکتوری home کاربر بسط می‌دهد و یا اگر کاربری نامگذاری نشده باشد به دایرکتوری کاربر اخیر بسط می‌دهد:

اگر کاربر foo حساب کاربری داشته باشد، بنابراین:

منبع: کتاب The Linux Command Line نوشته William E. Shotts

نوشته آموزش خط فرمان: قسمت یازدهم، بسط با تیلدا (Tilde Expansion) اولین بار در لینوکس سیزن پدیدار شد.


مهر ۱۵ ۱۳۹۷

آموزش خط فرمان: قسمت دهم، بسط نام مسیر (Pathname Expansion)

نوشته شده توسط فرشید نوتاش حقیقت.

مکانیزمی که توسط آن wildcardها کار می‌کنند بسط نام مسیر (Pathname Expansion) نامیده می‌شود. اگر برخی از تکنیک‌هایی که در دروس قبلی یاد گرفتیم را امتحان کنیم خواهیم دید که آن‌ها واقعاً بسط هستند.

بسط نام مسیر (Pathname Expansion)

یک دایرکتوری home دارای فایل‌ها و پوشه‌های زیر است:

حال، آن‌ها را با استفاده از بسط‌های زیر ببینید:

و

و یا

و فراتر از دایرکتوری خانگی ببینید:

مثال‌ها واضح هستند. استفاده از wildcardها سبب می‌شود که به‌سادگی نام مشخص یک مسیر را بسط دهیم و به حالت‌های مختلف نمایش دهیم.

منبع: کتاب The Linux Command Line نوشته William E. Shotts

نوشته آموزش خط فرمان: قسمت دهم، بسط نام مسیر (Pathname Expansion) اولین بار در لینوکس سیزن پدیدار شد.


مهر ۱۴ ۱۳۹۷

چگونه یک برنامه جاوا را بنویسم؟

نوشته شده توسط طیبه اسماعیل بیگی.

Java هم یک programming language است و هم یک platform.

زبان جاوا، زبانی سطح بالاست که خصوصیات زیر را داراست:

Simple , Object Oriented , Distributed , Multithreaded , Dynamic , Architecture Neutral Portable , High Performance Robust Secure

برای نوشتن برنامه جاوا، شما می توانید تمام source code of Java program را درون یک Plain text file مثل Notepad بنویسید و extension آنرا java. قرار دهید. – همانطور که می دانید extension همان پسوند فایل است. –

کامپایلر جاوا javac نام دارد و برای کامپایل کردن programتان، کافی است درون ترمینال source code را به class. فایل، ترجمه کنید. به این منظور کافی است درون ترمینال، دستور زیر را تایپ کرده و Enter را فشار دهید.

javac nameOfFileWhichContainsProgram.java

class. فایل، processor native code شما را شامل نمی شود. این فایل شامل bytecode است. Bytecode زبان Java Virtual Machine(JVM) است.این یعنی اینکه شما کد را به زبان جاوا می نویسید و کامپایلر آنرا به کدی ترجمه می کند که برای JVM قابل درک است اما هنوز برای processor کامپیوتر شما قابل درک نیست. برای اینکه کامپیوتر بتواند این کد را اجرا کند ابتدا باید کد به زبان native ماشین ترجمه شود. این کار را java launcher tool(JRE) برای شما انجام میدهد. در واقع application , JRE شما را run میکند. پس اگر برنامه ای به زبان جاوا نوشتید و آنرا به bytecode تبدیل کردید یا کامپیوتر مقصدتان، که باید کد روی آن اجرا شود؛ باید حتما نسخه ای از JRE را داشته باشد و به وسیله آن کد را اجرا کند، یا به طریقی که بعدا خواهیم گفت کدتان را به jar. و بعد به exe. تبدیل کرده و سپس از آن استفاده می کنید.

برای اجرای bytecode به وسیله JRE کافیست درون ترمینال دستور زیر را تایپ کرده و سپس کلید Enter را فشار دهید:

java nameOfClassWhichContainsBytecode

و البته همانطور که قبلا ذکر شد bytecode درون کلاسی قرار دارد که extension آن class. است اما هنگام نوشتن این دستور class. را به انتهای نام فایل اضافه نفرمایید.

اجازه دهید با نوشتن برنامه ساده ای از جاوا مطلب را واضح تر کنیم. معمولا در چنین مواقعی برنامه Hello World نوشته می شود، خب اجازه دهید کمی محیط را خصوصی تر کرده و ابتدا به خودمان سلامی عرض کنیم. 🙂

public class HelloIranian {
    public static void main(String[] args) {
         System.out.println("Hello Iranian!");
    }
}

تمام کدی که برای چاپ یک متن نیاز داریم همین است، و … البته قبول دارم که هنوز آنقدرها کوتاه به نظر نمیرسد اما جاوا تکنیکهایی دارد که شگفت انگیز و واقعا زیبا هستند و در کوتاه کردن کدها کمک می کنند و قرار است که کم کم با آنها آشنا شویم.

همین کد کوتاه هم نکاتی دارد که اجازه دهید در مقاله بعدی آنها را توضیح دهم. در این مقاله فقط آنرا درون یک plain text file مثل Notepad تایپ کنید . نام آنرا HelloIranian.java بگذارید – نام فایل حاوی کلاس همواره باید با نام کلاس یکی باشد و بزرگ و کوچک بودن حروف هم اهمیت دارد – . پس از آن درون ترمینال به مسیری بروید که فایل HelloIranian.java شما آنجا ذخیره شده است. مثلا اگر این فایل درون مسیر

D:/Java/Examples/HelloIranian.java

قرار دارد ابتدا با دستور زیر دایرکتوری خود را به D تغییر دهید:

:d

و Enter را فشار دهید.پس از آن برای کامپایل کردن کد، درون ترمینال تایپ کنید

javac HelloIranian.java

و Enter را فشار دهید. اکنون کامپایلر جاوا باید یک فایل HelloIranian.class برای شما تولید کرده باشد که در کنار فایل HelloIranian.java قرار دارد. این فایل حاوی bytecode برنامه شما است.

برای اجرای آن دستور زیر را در ترمینال تایپ کنید

java HelloIranian

و کلید Enter را فشار دهید. اکنون عبارت Hello Iranian باید در ترمینال شما ظاهر شده باشد. این تمام مراحلی است که باید انجام میدادید.

JRE قسمتی از JVM است و هنگامیکه JVM را بر روی سیستم خود نصب می کنید JRE هم بر روی سیستمتان نصب میشود. JVM برای operating system های مختلفی وجود دارد و فایل class. بر روی JVM , run می شود،بنابراین شما می توانید کدی را که کامپایل کرده اید را بر روی اکثر operating systemها، بدون هرگونه تغییری run کنید. درواقع دلیلی که کامپایلر جاوا، source code برنامه را به bytecode تبدیل می کند همین است. اوراکل برای سیستم عاملهای مختلف، JVM های مختلفی را آماده کرده است که بر روی آنها اجرا می شوند.بنابراین به جای آنکه شما مجبور باشید کدتان را برای سیستم عاملهای مختلفی بنویسید، اوراکل JVM هایش را برای سیستم عاملهای مختلف نوشته و کامپایلرش، کد را به bytecode ی تبدیل می کند که این JVM ها همگی قادر به اجرای آن هستند.درواقع شما یکبار کد را مینویسید و بعد  bytecode را بر روی اکثر سیستم عاملها بدون تغییر اجرا می کنید.

مطمئنم متوجه شده اید که سعی می کنم اکثر کلمات تخصصی را به زبان انگلیسی بنویسم. خب در هر حال زبان برنامه نویسی، زبان انگلیسی است و اگر بخواهیم با خودمان صادق باشیم ما در کشورمان، در این زبان، چندان قوی نیستیم. اما در اکثر مواقع بهترین منابع برای یادگیری کامپیوتر، به زبان انگلیسی بوده اند. به نظرم بهتر است کم کم این زبان را بیاموزیم تا بتوانیم با جهان هماهنگ شویم و دانش کامپیوترمان را به حد قابل قبول و حتی ممتازی در جهان برسانیم. شاید خواندن این مقاله ها در ابتدا برایتان سخت باشد اما این مزیت را دارند که کم کم به اصطلاحات آن عادت می کنید و خواندن منابع به زبان انگلیسی، برایتان راحتتر خواهد شد.

امیدوارم این شروع خوبی برای یادگیری زبان جاوا برایتان باشد.

سعی می کنم در طی آموزشها، مثالهای مفیدی را نیز برایتان فراهم کنم و درون گیت هابم قرار دهم که اگر تمایل داشتید از آنجا، آنها را دریافت کنید.

نوشته چگونه یک برنامه جاوا را بنویسم؟ اولین بار در لینوکس سیزن پدیدار شد.


مهر ۱۴ ۱۳۹۷

آموزش خط فرمان: قسمت نهم، بسط (Expansion)

نوشته شده توسط فرشید نوتاش حقیقت.

زمانی که شما یک خط فرمان در ترمینال می‌نویسید و کلید Enter را فشار می‌دهید، Bash چندین پروسه را قبل از اجرای فرمان، انجام می‌دهد. مواردی را دیده‌ایم که چگونه یک کاراکتر کوچک مثل * معانی زیادی می‌تواند در Shell داشته باشد. پروسه‌ای که باعث انجام این کار می‌شود را بسط (Expansion) می‌نامند.

بسط (Expansion)

با بسط (Expansion) شما چیزی را وارد خط فرمان می‌کنید و قبل از اجرا و انجام، آن به چیز دیگری در Shell تبدیل می‌شود. در ادامه نگاهی به فرمان echo خواهیم انداخت.

echo فرمانی درون‌ساخت در Shell بوده که وظیفه بسیار ساده‌ای دارد. فرمان echo آرگومان متنی را که به آن می‌دهیم در خروجی استاندارد چاپ می‌کند:

پس هر آرگومانی که به echo بدهیم برای ما نشان داده می‌شود. مثالی دیگر را امتحان می‌کنیم:

پس چرا فرمان echo کاراکتر * را برای ما چاپ نکرد؟ اگر خاطرتان باشد در مبحث Wildcardها کاراکتر * چنین معنایی داشت: «هر کاراکتری را در نام فایل تطبیق بده.» حال Shell قرار است این کار را چگونه انجام دهد.

پاسخ اینجاست که Shell عملگر * را قبل از اجرای فرمان echo به چیز دیگری (در این مثال نام فایل در دایرکتوری جاری) بسط می‌دهد. زمانی که شما کلید Enter را می‌فشارید، Shell به‌صورت خودکار هر کاراکتر دارای صلاحیت را در خط فرمان بسط می‌دهد و به همین دلیل است که هیچگاه خود عملگر * در خروجی دیده نخواهد شد؛ بلکه نتیجه عمل آن مشاهده می‌شود. البته توجه داشته باشید که روش‌هایی برای نادیده گرفتن بسط وجود دارد که فعلاً به این موضوع نخواهیم پرداخت.

منبع: کتاب The Linux Command Line نوشته William E. Shotts

نوشته آموزش خط فرمان: قسمت نهم، بسط (Expansion) اولین بار در لینوکس سیزن پدیدار شد.