قطعه کد «سلام دنیا» در زبان های مورد علاقه من

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

۱. C .

میشه گفت، کیه که C رو نشناسه؟ در واقع یکی از زبانهایی که لازمه هرکسی تا حدودی بدوندش و باهاش کد بزنه. و این زبان بخاطر ذاتش، که سازندگی هست (تقریبا ۹۰٪ سیستم عاملهای موجود با C نوشته شدند).

کد   
#include <stdio.h>
 
int main(){
 puts("Hello, World!");
 return 0;
}

۲. ++C

خب اگر دقیقا از کتابخانه stdio استفاده کنید، هیچ فرقی با C نخواهد داشت. بنابراین از این کد می گذریم 🙂

۳. Java

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

کد   
system.out.println("Hello, World!");

۴. Go

خب این زبان هم که یک زبان جدید و توسعه یافته توسط گوگل هست، شباهت بسیاری به C داره. اگر کمی وارد این زبان بشید، متوجه منظورم خواهید شد!

کد   
package main
import "fmt"
 
func main(){
 fmt.Println("Hello, World!")
 }

۵. Lisp

خب لیسپ هم یک زبان جالب و در نوع خودش باحاله! ممکنه کسی از این زبان استفاده نکنه، ولی دونستنش بد نیست. بخصوص این که خیلی از کورس های پیاده سازی زبان برنامه سازی در اینترنت، پیاده سازی لیسپ به یک زبان مطرح هست.

کد   
(print "Hello, World")

۶. Haskell

این زبان هم مدتها یکی از زبان های مورد علاقم بود. گرچه یه سری ایرادات نسبتا بزرگی داره، ولی خب برای درک الگوریتم یکی از بهترین هاست.

کد   
putStrLn("Hello, World!")

۷. Coffee Script

خب، در زمونه ای که حتی با جاوااسکریپت کامپایلر C می نویسن، بد نیست خودش یا یکی از فک و فامیلاش رو بلد باشیم! Coffee Script هم یکی دیگر از زبان های مورد علاقه من هست که یادش گرفتم و ازش استفاده میکنم.

کد   
console.log "Hello, World!"

۸. Ruby

خب حتما همه میدونید که این زبان، زبانی هست که خیلی کارها توش/براش کردم. از نوشتن کتاب راهنما گرفته تا نوشتن بات تلگرام ! به نظرم که اگر برنامه نویس با زبانش کنار بیاد، مشکلی نخواهد داشت در فان ساختن با زبان 🙂

کد   
puts "Hello, World!"

۹. Perl

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

کد   
print "Hello,World!\n";

۱۰. php

زبان مورد علاقه من در زمینه وب!

کد   
<?php
 echo "Hello, World!\n";
?>

۱۱ . Python

این زبان، تا حدودی مورد علاقم هست البته نسخه ۲ش. قدرتش هم تقریبا در همه زمینه ها، به اثبات رسیده

کد   
print 'Hello, World!'

 

خب، امیدوارم از این پستم خوشتون اومده باشه 🙂

Share

شروع ساخت یک زبان برنامه نویسی ساده

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

هر زبانی، اون پشت توی مفسر یا کامپایلر، بخشی داره که هرچی که بهش دادیم رو میخونه. اصولا این بخش Parser نامیده میشه و هرچی توی یک خط برنامه هست رو میخونه، به یک تابع میفرسته و بعد عملیات رو روش انجام میده. برای مثال عبارت ۲ + ۲ رو در نظر بگیرید، این عبارت از ۳ کاراکتر تشکیل شده، ۲ و ۲ و +. این رو که به مفسر بدید، میفهمه که باید ۲ و ۲ با هم جمع شن و جواب بشه ۴ (یا شایدم ۵ 😀 ). ولی این کار چطوری توی مفسر اتفاق میفته؟ کد زیر توی روبی بهتون میگه :

کد   
a = "2 + 2"
a = a.split(' ')
sum = 0
for i in a
  sum += i.to_i
end
 
puts sum

توجه کنید که این کد بسیار کوتاه شده و اصولا منطق زبان درش رعایت نشده. ولی خب برای توضیح، کار راه اندازه. در خط اول، رشته ۲+۲ رو توی متغیر a ریختیم و بعدش توی یک آرایه قرارشون دادیم. دقت کنید که اینجا فاصله بسیار اهمیت داره ! چرا که جداسازی درون آرایه کاملا به فواصل وابستس. بعد از اون، اومدم یه متغیر ایجاد کردم به اسم sum و مقدارش رو صفر قرار دادم. بعد توی یک حلقه، تمام اعضای آرایه رو به عدد صحیح تبدیل کردم و بعد ریختم توی sum . به این شکل، عملیات جمع رو به زبان برنامه سازی فهموندیم. حالا برای بهتر شدن زبان، باید کلاس و تابع و … بنویسیم. وقتی نسخه جدید WENT رو نوشتم سعی میکنم اینجا در موردش یک مطلب کوتاه بنویسم.

موفق باشید 🙂

Share

ببخشید رمزتون؟ – مقاله ای در باب نقض حریم خصوصی

این روزها کمتر کسی رو میشه دید که حداقل یک کارت بانکی نداشته باشه، و از اون برای خرید در مغازه ها، فروشگاه ها و … استفاده نکنه. تقریبا همه ما هم با پدیده ای به نام «رمزتون؟» آشنا هستیم. سوالی که موقع پرداخت با کارت پرسیده میشه! در این مطلب، که پس از مدتی نسبتا طولانی نوشتم، به بررسی این موضوع و نقض حریم خصوصی مردم در خرید، پرداختم.

161018_515

خرید از کارتخوان

فکر کنید در یک روز گرم تابستانی، رفتید یک آبمیوه خنک بخرید. پول خرد همراهتون نیست که حساب کنید و دست به جیب میشید و کارت بانکیتون رو به فروشنده میدید. شخص دیگری هم در مغازه هست و منتظره تا کار شما تموم شه، و خرید کنه. فروشنده بعد از طی چند مرحله، از شما میپرسه «رمزتون؟» و شما هم با صدای رسا و بلند میگید«….» ! حالا سه فرضیه مطرح میشه :

  1. شخصی که در مغازه هست، کاری نداشته باشه.
  2. اون شخص، سارق باشه و کارت شما رو در موقعیت مناسب بزنه!
  3. اگر کارتتون در اون مغازه جا موند، فروشنده ازش سوء استفاده کنه.

خب، این فعلا بخشی از غلط بودن گفتن رمز هست. بخش دیگرش، روش غلط به کار گیری کارتخوان توسط فروشنده ها/سرویس دهنده هاست. فروشنده باید کارتخوان رو به سمت مشتری بذاره، و چنانچه مشتری بلد نبود با کارتخوان کار کنه، راهنمایی جزئی بهش بده (یا حتی یک تابلو یا کاغذ راهنما کنار دستگاه نصب کنه). از اونجایی که این دستگاهها عمدتا منوی فارسی دارند، پس شدیدا کار بیهوده ایه که همه چیز رو به فروشنده بسپاریم. گرچه فروشنده هایی هم هستند که این امکان رو به شما میدن که خودتون پرداخت کنید. برای مثال، مدتی پیش (هفته دوم خرداد) برای خرید وسیله ای به فروشگاهی رفتم، و فروشنده بعد از فاکتور کردن جنس، گفت برید کارت بکشید. خودم کارت رو کشیدم و پرداخت رو انجام دادم، بدون این که رمز رو به کسی بگم. یک بار دیگه هم در یک مغازه فست فودی چنین موردی برام پیش اومد. اما در عوض در فروشگاه های بزرگی مثل شهروند، که یکی از بزرگترین فروشگاههای زنجیره ای تهران هم به شمار میاد، می بینیم که فروشنده ها خیلی سریع کارت رو از دستتون میگیرن و رمز رو از شما میخوان. حالا چه کنیم که مشکلی برامون پیش نیاد؟

نکات ایمنی

  1. تا حد امکان سعی کنید خودتون کارت بکشید، یا حداقل رمز رو خودتون بزنید.
  2. رسید های دریافتی از این دستگاه رو همیشه پیش خودتون داشته باشید، تا در صورتی که مشکلی پیش اومد، بتونید بهش استناد کنید.
  3. بعد از چندین بار خرید به سبک اشتباه ایرانی، رمزتون رو عوض کنید.
  4. از نوشتن رمز روی کارت، خودداری کنید (بهترین جا برای یادداشت کردن رمز، ذهن شماست. اگر هم ممکنه فراموش کنید، در گوشی اون هم نوت اکانت گوگل یا اکانت های مشابه که نیاز به رمز دارند یادداشت کنید).
  5. همیشه بعد از خرید، موجودی حسابتون رو از یک خود پرداز (یا کارتخوان بدون اپراتور) چک کنید.

سخن آخر

در این مطلب سعی کردم هرچی لازم بود رو بگم، ممکنه موارد دیگری هم باشه که باید رعایت بشه، و چنانچه مواردی به ذهنتون میرسه از طریق کامنت اطلاع بدید 🙂

Share

به برنامه نویس ها اعتماد کنید!

پس از مدت نسبتا طولانی، قصد کردم تا دوباره مطلبی در وبلاگ بنویسم و این بار سعی کردم کمی ته مایه طنز هم داشته باشه. همونطور که میدونید، برنامه نویسی یک شغل (و گاهی یک تفریح) بسیار عالی به حساب میاد، چه از نظر درآمد، چه از نظر نوع کار! حالا توی این پست در مورد قابل اعتماد بودن قشر برنامه نویس بحث میکنیم 🙂

11336813_10153358102309433_4448978108491518217_o

برنامه نویس ها قابل اعتمادند، چون بدون آنها کامپیوتر شما کار نمی کند!

یک لحظه فکر کنید برنامه نویسی در دنیا نبود، آیا اون موقع کامپیوتر شما قادر بود کاری کنه؟ یا اصلا کامپیوتری ساخته می شد؟ و این اولین دلیلی هست که برنامه نویس رو به یک شخص قابل اعتماد تبدیل میکنه. همچنین، برنامه نویس ها بودند که سیستم عامل ها رو ساختند، و کامپیوتر بدون سیستم عامل مثل ماشین بدون موتور می مونه!

… چون کار شما رو ساده تر میکنند

این هم دلیل دوم، شما ممکنه یه مساله ریاضی رو بخواید در مدت زمان کوتاه حل کنید، بهترین کار استفاده از کامپیوتر و نرم افزاری مثل متلب و … هست، متلب هم یک نرم افزار هست و توسط یک سری برنامه نویس ساخته شده! یا مثلا میخواید یک نامه بنویسید، قاعدتا سراغ مایکروسافت آفیس یا لیبرآفیس میرید، که اونها هم توسط برنامه نویس ها ساخته شدند.

… برای شما سرگرمی میسازند

همه ما بدون شک یکی دو تا بازی روی کامپیوترمون داریم، بازی ها هم توسط برنامه نویس ساخته میشن. یه بخش بزرگی از بازی ها که مربوط به هوش مصنوعی و منطق میشه، توسط برنامه نویس ها نوشته میشه و شما وقتی بازی میکنید درواقع دارید دستوراتی که برنامه نویس به بازی داده رو اجرا میکنید.

… برای شما کار میکنند!

و آخرین مورد همینه، برنامه نویس برای کسی کار نمیکنه جز کاربر! پس این هم نشون میده کسی که همه فکر و ذکرش راحتی شماست، یک انسان کاملا قابل اعتماده.

در این مطلب، سعی کردم تا حدود زیادی شما رو با برنامه نویس ها آشتی ( 😀 ) بدم، و البته باز هم از این دست مطالب در وبلاگ خواهم گذاشت.

موفق باشید.

Share

مقدمه ای بر شی گرایی در ++C

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

خب، در این مطلب صرفا ساخت کلاس و ایجاد یک شیء توسط کلاس رو بررسی خواهم کرد. باقی مفاهیم شیء گرایی رو هم خرد خرد در ادامه، در وبلاگ قرار خواهم داد.

ساخت کلاس

ساخت کلاس، به غایت ساده است. در واقع ساخت یک کلاس جدید به این شکل صورت میگیره :

کد   
class CLASSNAME {
 	....
 };

درون بدنه کلاس، میتونیم متغیرهای مربوط به کلاس، و متدها رو تعریف کنیم. که اونها هم سه نوع public و private و protected دارن. نوع public نوعیه که همه بهش دسترسی دارن. نوع private نوعی هست که فقط خود کلاس (و دوستانش! که بعدا مفهومشون رو توضیح خواهم داد) بهش دسترسی داره و نوع protected هم نوعیه که فقط و فقط خود کلاسمون بهشون دسترسی داره. هرچیزی که توی کلاس تعریف کنیم، پیشفرض private در نظر گرفته میشه. و خودمون میتونیم مشخص کنیم که private یا public یا protected باشن.

خب، فرض کنید الان میخوایم کلاسی بسازیم به اسم student و نیازه که اسم، فامیل و شمار دانشجویی واردش بشه. خیلی ساده کدش رو مینویسیم :

کد   
class Student {
	public:
	int number;
	string name;
	string lastname;
};

این کلاس، یک کلاس کامل به شمار میره. تنها چیزی که الان نیاز داریم، یک متد هست که این اطلاعات رو چاپ کنه! پس باید یک تابع درون کلاسمون تعریف کنیم تا این کار رو برامون انجام بده!

یعنی کلاس ما و متدش به این شکل تعریف میشن :

کد   
class Student {
	public:
	int number;
	string name;
	string lastname;
	void PrintInfo();
};
 
void Student::PrintInfo() {
	cout<<"Name: "<<student.name<<endl;
	cout<<"Last name: "<<student.lastname<<endl;
	cout<<"Number: "<<student.number<<endl;
}

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

ساخت یک شیء

یادتان نرود که با تعریف کلاس ها، در واقع یک variable type جدید ساختید. پس تعریف یک شیء بسیار آسان است! چرا که صرفا کافیست اسم کلاس + اسم متغیر را نوشته و بعد برنامه را اجرا کنیم!

برنامه ما به این شکل در میاد آخر سر :

کد   
#include <iostream>
#include <string.h>
using namespace std;
class Student {
public:
int number;
string name;
string lastname;
void PrintInfo(void);
};
void Student::PrintInfo(void) {
cout<<"Name: "<<name<<endl;
cout<<"Last name: "<<lastname<<endl;
cout<<"Number: "<<number<<endl;
}
int main(){
Student s1;
s1.name = "Muhammadreza";
s1.lastname = "Haghiri";
s1.number = 12;
s1.PrintInfo();
return 0;
}

 

همونطور که می بینید، شیء s1 بلافاصله بعد از کلاس مربوطه، تولید شده. و بعد هم ویژگی های مربوطه اضافه شدند و بعدش هم متد مربوطه رو فراخوانی کردیم.

به همین سادگی!

تا آموزش بعدی، بدرود!

Share

ملاقات با اوبونتو ۱۵.۰۴

Screenshot from 2015-04-24 16:09:07پنجشنه، نسخه جدید اوبونتو، یعنی ۱۵.۰۴ منتشر شد. این نسخه، اولین نسخه منتشر شده در سال ۲۰۱۵ و در ماه آپریل، یعنی ماه چهارم هست و طبیعتا بخاطر همین نامش میشه ۱۵.۰۴ . در این تاپیک قصد بررسی فنی ندارم، فقط تنها خوبیش برام این بود که مینت مزاحم رو پاک کردم و این رو جاش نصب کردم. نسخه بعدی، ۶ ماه دیگه یعنی در ماه ۱۰ میلادی منتشر میشه. هنوز جزئیاتی ازش منتشر نشده. در مورد این نسخه بخوام بگم (۱۵.۰۴) باید بگم که در یک کلام «عالی» بود. تقریبا همه نسخه هایی که روی لپتاپی که یک سال از عمرش میگذره نصب کردم، خیلی خیلی خوب جواب دادن. تست ها و Review های دیگر هم همینو میگن :).

نرم افزار پخش ویدئوی این نسخه هم ظاهر جالبی پیدا کرده :

Screenshot from 2015-04-25 01:24:41تقریبا این نرم افزار رو ظاهرش  رو به مینیمالیست ترین شکل ممکن باز-طراحی کردن (بابت عکس ترسناکش معذرت! این کنسرت تنها ویدئوی موجود بود اون موقع که داشتم تست میکردم نرم افزارها رو!).

خلاصه که تغییرات زیادی کرده این نسخه و در یک مطلب طولانی، در موردش بیشتر خواهم نوشت 🙂

Share

لقمه را دور سر نچرخانیم – برعکس کردن یک رشته در سی شارپ

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

مثلا این سوال رو در نظر بگیرید :

برنامه ای بنویسید که یک رشته کاراکتری از ورودی دریافت کرده و سپس آن را برعکس در خروجی قرار دهد. 

اگر فقط بخواهیم از System استفاده کنیم و یک تابع ساده بنویسیم، کد ما میشه این :

کد   
using System;
 
namespace ReverseName
{
	class MainClass
	{
		public static void NameReverse(string name){
			for (int i = name.Length; i > 0; i--){
				Console.Write(name.Substring(i-1, 1));
			}
		}
		public static void Main (string[] args)
		{
			//Challenge Accepted!
			Console.Write ("Enter a name: ");
			string n = Console.ReadLine ();
			NameReverse (n);
		}
	}
}

(اون Challenge Accepted داستانی داره که بعدا تعریف خواهم کرد 😀 ).

خب با یکم بررسی می بینید که این کد، خروجی به صورت رشته ای نداره (دستور Console.Write) و نمیشه ازش جاهایی که لازمه، استفاده کنیم. پس بهتره به جای System از System.Linq استفاده کنیم و کد رو خلاصه کنیم :

کد   
using System;
using System.Linq; 
namespace ForEach
{
	class MainClass
	{
		public static void Main (string[] args)
		{
			Console.Write ("Enter your name: "); 
			string name = Console.ReadLine (); 
			foreach (char c in name.Reverse()) {
				Console.Write (c);
			}
 
		}
	}
}

و اگر دقت کنید به جای اون for ، از foreach استفاده کردم که بسیار کار رو راحت تر کرده.

امیدوارم هر وقت خواستید کد بزنید، به این شکل و به خلاصه ترین شکل ممکن کدتون رو بنویسید.

موفق باشید 🙂

Share

یک فنجان قهوه با طعم جاوا اسکریپت و روبی لطفا!

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

سلام دنیا

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

کد   
alert "Hello, World!"

این کد، یک پنجره پیام باز میکنه و پیام Hello World رو به کاربر نشون میده. بعد از اجرای دستور :

coffee --compile ./path/to/coffee/file

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

کد   
alert("Hello, World!");

حالا قطعه کد پیچیده تری رو بررسی میکنیم.

تابع فاکتوریل

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

کد   
a = (x) -> 
    if(x == 0)
       return 1
    else
       return x * a(x-1)

و این کد، همین تابع در جاوااسکریپت :

کد   
var a;
 
a = function(x) {
  if (x === 0) {
    return 1;
  } else {
    return x * a(x - 1);
  }
};

اجرای دو کد، با یک عدد خاص (مثلا ۴) ، یک نتیجه رو به ما بر میگردونه، چرا که کافی صرفا یک رابط نوشته شده با روبی برای جاوااسکریپت به حساب میاد.

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

موفق و پیروز باشید.

Share

تاسیس وبگاه توسعه دهندگان روبی

198px-Ruby_logo.svg

با سلام و تبریک سال ۱۳۹۴ خدمت تک تک دوستانی که وبلاگ رو میخونن. بعنوان اولین پست در سال ۱۳۹۴، قصد دارم تا «پایگاه توسعه دهندگان روبی» رو معرفی کنم. این پایگاه رو در ایام تعطیلات نوروز ایجاد کردم و قراره که مطالبی در این پایگاه قرار داده شه که قبل تر در وب فارسی نبوده، یا اگر هم مثل و مانندی داره، این طرف ما متمرکز تر و تخصصی تر مطلب رو پیگیری کنیم. بهرحال، هدف سایت، تامین منابع آموزشی فارسی برای زبان روبی و متعلقات (ریلز و …) و همچنین گردآوری علاقمندان و متخصصان روبی دور هم است.

برای دسترسی به سایت، از این لینک استفاده کنید.

موفق باشید 🙂

Share

راه اندازی یک وب سرور ساده با استفاده از روبی

پس از مدت نسبتا طولانی، اقدام به نوشتن یک پست تازه کردم. در این پست، میخوام ساخت یک وب سرور ساده در روبی رو توضیح بدم. اول بگم که اگر پایتون کارید، قطعا با این دستور آشنایید :

کد   
python -m SimpleHTTPServer 8000

این دستور، فولدری که درونش هستید رو به یک روت برای وب سرور تبدیل میکنه. و میتونید توی اون فولدر، فایل هاتون رو قرار بدید و اون چیزی که لازمه رو، تست کنید. خب، روبی چنین ماژولی نداره و ما باید شبیه سازیش کنیم. البته شبیه سازی کردن این ماژول کار دو سوته 😀 .

فرمورک ریلز، از جم rack برای درست کردن وب سرور استفاده میکنه. اگر rails رو نصب دارید، قطعا این جم هم نصب شده. اگر نصب نداریدش و میخواید فقط از رک استفاده کنید، با دستور زیر میتونید نصبش کنید :

کد   
sudo gem install rack

خب حالا که نصب شده، چنین کدی رو نیاز داریم که بنویسیم :

کد   
#!/usr/bin/env rackup
#\ -E deployment
 
use Rack::ContentLength
 
app = Rack::Directory.new Dir.pwd
run app

و بعد به اسم webserver.ru ذخیره میکنیم و با دستور زیر اجراش میکنیم :

کد   
rackup ./webserver.ru -p 8585

که در اینجا سوییچ p و عدد مقابلش، دارن پورت رو مشخص میکنند. همچنین، میتونید به فایل webserver.ru پرمیشن اجرایی بدید و بدون نیاز به rackup اجراش کنید.

موفق باشید.

Share

وبلاگ شخصی محمدرضا حقیری، برنامه‌نویس، گیک و یک شخص خوشحال