بایگانی برچسب: s

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

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

۱. 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

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

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

سلام دنیا

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

کد   
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

چه کار کنیم تا در صورت هک شدن، امنیتمان تامین باشد؟

پس از این که شبکه فیس‌نما (یا شبکه «وزین» خودخوانده) هک شد، و فایل هشت مگابایتی که حاوی پسورد های این شبکه، یوزرنیم و ایمیل ها بود، منتشر شد؛ تعداد زیادی از وبلاگ ها در موردش نوشتند. من هم تصمیم گرفتم تا در موردش کمی بنویسم! البته من بیشتر سمت کاربر رو در نظر میگیرم و نکاتی راجع به پسورد میگم.

نکاتی برای ادمین و طراح سایت

اول از همه، اگر قراره از اسکرپیت آماده استفاده کنید، نسخه های Null شده یا کرک شده به درد کار جدی نمیخورن! دلیلش هم پر واضحه، این اسکریپتها یه بلایی سرشون اومده و همین بلایی که کرکر سرشون آورده، میتونه کاملا باعث نابودی سایت شما، در صورت یک حمله حتی ساده بشه. نکته دوم، بعضی از اسکریپت ها به صورت پیشفرض امکان تنظیم پسورد رو دارن، مثلا تنظیم کنید پسورد حداقل ۸ کاراکتر باشه و … . اونهایی هم که ندارن، پلاگین ویژه این کار رو در اختیار کاربران میزارن، که میتونید یکی از همون پلاگین ها رو دریافت و نصب کنید (البته باز هم دقت کنید، یا پلاگینی رو استفاده کنید که خود توسعه دهنده ها ارائه کردند، یا اونی که توسعه دهنده های سرشناس و معتبر!). بهترین نمونه برای تامین امنیت پسورد، نصاب ویندوز سرور هست، که کاربر رو مجبور میکنه تا به شکل خاص پسورد گذاری کنه.
در آخر، اگر توانش رو ندارید که خودتون سیستم درست و حسابی طراحی کنید، یا اصلا سایت نزنید، یا از کسی کمک بگیرید که کارش تامین امنیته (یا این که خودتون یاد بگیرید و تست های لازم رو انجام بدید!).

کاربر ها چه کنند؟

خب اصولا کاربر ها مهمترین کاری که باید بکنند اینه که در وبگاه های ناشناس و نامعتبر عضو نشن ، اگر هم میخوان عضو شن، پسوردی متفاوت با اون چه که در ایمیل یا سایر اکانت ها استفاده میکنن، تعیین کنند. اگر هم دیدید که وبسایت مورد استفاده، حساسیتی روی این که شما چه پسوردی استفاده میکنید، نداره، بهتره بازم درش عضو نشید. قدم بعدی، پسورد و یوزرنیم رو دو عدد یا کلمه متفاوت انتخاب کنید. من در فایلی که هکر منتشر کرده، یوزرنیم هایی که با mehdi (یا Mehdi) شروع میشدند یا این یوزری که mehdi بود رو دیدم، و با خودم گفتم که بهتره که ببینم این یوزر، از چه پسوردی استفاده میکرده، کنجکاو شدم و با خودم گفتم که کلمه mehdi رو با استفاده از وبسایت OnlineMD5 هش کنم و توی این فایل دنبالش بگردم، بله! فوقع ما وقع! تعدادی از یوزرهایی که یوزرشون Mehdi بود یا با Mehdi شروع میشد، از پسورد mehdi استفاده میکردند! پسوردهای ناامنی مثل ۱۲۳۴۵۶ ، ۷۷۷۷ و ۱۱۱۱۱۱ هم به وفور در اون فایل مشاهده میشه. نکته دیگری که کاربر ها باید دقت کنن، این هست که سایتی که میخواید توش عضو شید، حتما یک ایمیل فعالسازی براتون بفرسته، وگرنه باز هم نمیشه به اون سایت اعتماد کرد، چون هکر میتونه با یک ایمیل fake یوزر بسازه و به راحتی شرارت کنه!
خب، من نکته دیگه ای به ذهنم نمیرسه، فعلا هم شاد باشید و بخندید تا هک بعدی!

Share

فراز هایی از زبان برنامه نویسی Ruby

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

کاربردها

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

نصب روبی

برای نصب روبی، زحمت زیادی لازم نیست، اگر کاربر اوبونتو هستید، کافیه کد زیر رو در ترمینال اجرا کنید :

sudo apt-get install ruby

خب، با استفاده از کد فوق، روبی روی سیستم شما، نصب میشه. روبی یک شل اینتراکتیو داره که میتونید در اون، به صورت Real Time نتیجه دستوراتی که مینویسید رو ببینید. شل اینتراکتیو این زبان هم از طریق دستور irb قابل دسترسیه.

مثالهای ساده متنی

همونطوری که گفتم، این زبان یکی از خوبی هاش اینه که برای کار با متن و آرایه ها، خیلی امکانات خوبی داره، به طوری که میتونه کمک خوبی باشه برای کسی که نیاز داره یک متن رو پردازش کنه! . خب، زیاد حرف زدم، الان کافیه توی ترمینال بزنید irb و این مثال ها رو اجرا کنید :

puts "Hello, World"

دستور بالا، دقیقا همون کار دستور زیر رو در زبان Go میکنه :

Println("Hello World")

خیلی خوب، یک سری مثال دیگه (با قرار دادن اسم خودم در متغیر name) :

name = "Muhammadreza"
puts name
puts name.reverse

که در خط اول، من اسم خودم رو به متغیر name نسبت دادم، در خط دوم خواستم اسمم رو چاپ کنه، و در خط سوم، اسمم رو برعکس چاپ کنه! (این برعکس چاپ کردن، میتونه خیلی وقتا، خیلی مفید باشه 🙂 ).

و مثالهای بیشتر …؟

متاسفانه، اینجا نمیتونم مثالهای بیشتری بیارم، ولی سعی میکنم بزودی هرچی از Ruby میدونم رو درون یک فایل PDF منتشر کنم تا همه کسانی که به این زبان علاقه دارند، بتونند در این زبان راه بیفتن.

موفق باشید!

Share

چه افزونه هایی را روی وردپرس نصب کنیم؟

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

مشکلات پیش روی ما چه هستند؟

کامنت های اسپم

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

پست شدن اتوماتیک مطالب در شبکه اجتماعی

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

کدام افزونه ها مشکلات من رو حل کردند؟

Akismet

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

WP to Twitter

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

Jetpack

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

افزونه های بیشتر

من از افزونه های Site Closed برای بستن ایندکس سایت و همچنین Page Links To برای ساخت صفحه هایی که در واقع لینک هستن، استفاده میکنم 🙂

خب، سعی کردم توی این پست هر چیزی که لازم هست رو بگم، از همه مهم تر این که اهمیت افزونه های مختلف برای یک وبلاگ نویس و بویژه یک وردپرس کار رو هم مشخص کنم 🙂

 

Share

چالش توسعه و سهم من

از معرفی چالشی موسوم به IranDevChallenge که در واقع چالش توسعه ایران یا به صورت دقیق تر، چالش توسعه دهنده های ایرانی هست، مدت نسبتا زیادی میگذره. این رو بگم که آغازگر این چالش آرش بود، و آرش خودش رو به چالش کشید. من گفته بودم که باید مدتی فکر کنم و بعد بگم که چه چیزی میخوام عرضه کنم. در این چالش قرار هست که یک سرویس تحت وب یا به عبارتی همون Web Application رو طراحی و تولید کنیم  و شش ماه وقت داریم. یعنی اگر از امروز، یکم مهر 1393 شروع کنیم، یکم فروردین 1394 پروژه باید آماده باشه. البته میشه طور دیگه به قضیه نگاه کرد، پروژه ممکنه بیش تر از شش ماه طول بکشه، ولی با کیفیت بیشتر انجام بشه.

من خودم رو در حوزه موبایل به چالش میکشم. مدتها پیش، من دامنه پاسارگاد موبایل رو تهیه کردم. تا شاید بتونم یه فروم موبایلی روش نصب کنم. چیزی که بسیار کم هست 😀 . خب، حتما از اسمایلی به کار رفته فهمیدید که نه، اصلا هم کم نیست و خب چه کاریه؟ از طرفی مدیریت ایران بی اس دی هست، و در چند فروم دیگر هم فعالیت زیادی دارم و تگ های متنوع. پس چرا یک فروم جدید؟ اواسط بهمن ماه 1392 بود که تصمیم گرفتم یک اپ استور آنلاین برای iOS درست کنم، که تبلیغ شدن سیبچه در تلویزیون باعث شد که از این کار هم پشیمون بشم. آخرش که چی؟ یک رقیب سرسخت که پر از نرم افزار کرک هست و ادعا میکنه قانونی داره اپلیکیشن ها رو توزیع میکنه (البته در مورد اون دسته اپ هایی که برنامه نویس ها میفرستن، قانونیه ولی بعید میدونم OpenVPN یا Instagram خودشون اپلیکشن رو در سیبچه گذاشته باشن). و پشتیبانی هم داره.

پس نتیجه چی شد؟

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

بیشتر توضیح بده، متوجه منظورت نشدم!

خب، F-Droid میگرده نرم افزارهایی که مجوز آزاد دارند، مثل GPL, Apache, LGPL, … رو پیدا میکنه، و درون مارکت خودش قرار میده. یا برنامه نویسی که اپلیکشن رو نوشته، اپ رو درون اف-دروید قرار میده تا دوستانی که نیاز دارند، دانلودش کنن و لذت ببرن. حالا، من تصمیم دارم همین رو بصورت فارسی ایجاد کنم ولی با تفاوت عمده 🙂

چه تفاوتی؟

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

آیا سرویس های جانبی هم راه اندازی خواهی شد؟

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

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

موفق باشید.

Share

چالشی برای زندگی بهتر

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

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

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

موفق باشید!

Share