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

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

چطور میتونم توی اسکریپت نوشتن واسه bash مسلط بشم؟

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

من به شکل کلی چیزها رو عمیق یاد نمی‌گیرم. حداقل عمیق شروعشون نمی‌کنم. در ضمن چیزی رو توی خلاء هم یاد نمی‌گیرم. همینه که از ریاضی فراری بودم همیشه ولی مثلا فیزیک رو بیشتر دوست داشتم. من باید یک سوال واقعی برای حل کردن داشته باشم و بعد برم به سراغ جمع کردن ابزار لازم.

قدم اول پیشنهادی من برای خودم، خوندن Tutorial است. خوندن راهنماهای سریع و مقدماتی. مثلا اگر بخوام بش رو یاد بگیرم، یک گوگل برای Bash Tutorial می کنم و بعد هفت هشت تا از صفحه‌هایی که به نظرم خوب بیان رو با میدل۰کلیک کردن باز می‌کنم. اونوقت توی همه اونها یک چرخ می‌زنم و یکی دو تا شون رو برای خوندن انتخاب می‌کنم. منطقا دنبال چیزهایی هستم که خیلی کوتاه نباشن ولی خیلی خیلی هم بلند نباشن و بشه یک بعد از ظهر یا چند ساعته خوندشون. اونوقت تند و تند می‌خونم.

نمی‌دونم چرا به هرکی اینو می‌گم می‌خنده:

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

(((: درسته. من معمولا چیزی که نیاز به کلاس و اینها داشته باشه نمی‌نویسم. استفاده می‌کنم ولی خودم نمی‌نویسم چون کلا اسکریپت‌های کوچیک بیشترین چیزی است که دنبالشم.

من اینها رو توی این راهنماهایی که پیدا کردم یاد می گیرم و بعد سرچ می‌کنم. مثلا اگر بخوام کل فایل‌های توی یک دایرکتوری که ممکنه توشون فاصله هم داشته باشن رو یکی یکی پروسس کنم، گوگل می کنم دنبال bash script loop files in directory space in filename (: دقیقا. اون مطلبی که قبلا نوشته بودم با نتیجه اولین جستجویی است که اینجا اومده.

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

در آخرش سه تا نکته رو اضافه می کنم:

  • توی این مقاله هی گفتم «من». مال یادآوری این بود که این روش منه. هر کس به شیوه ای متفاوت یاد می گیره و این بدترین نکته در کل نظام آموزشی است که انتظار دارن همه یک جور یاد بگیرن. شما باید روش خودتون رو کشف کنین.
  • روش من سرعتش بسیار زیاده و برای من پر از لذت اما عمق نداره. اگر می خواین مثلا متخصص پرل باشین، لازمه بعد از خوندن توتریال‌ها و نوشتن برنامه‌ها و اینها برین سراغ کتاب های واقعی، کد واقعی نگاه کنین و …
  • در نهایت اگر دوست داشتین نگاهی به این پادکست هم بندازین: چگونه برنامه نویس بشیم.

چرا گنو/لینوکس رو دوست دارم: انتقال کلی کتاب به پوشه هم نامشون

یک دوست ایمیل زده که:

۱۲۰۰ تا کتاب دارم که همه در یک دایرکتوری هستن. می خوام یک دایرکتوری برای هر یک کتاب ساخته بشه و کتاب بره توی دایرکتوری خودش. یعنی می خوام ۱۲۰۰ تا دایرکتوری بسازم و هر کتاب رو کپی کنم سر جاش.

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

jadi@freebasse:/tmp/books$ cat ../p.sh
#!/bin/bash

SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
for f in books/*
do
  mkdir "$f"_dir
  mv "$f" "$f"_dir/
  echo "$f"
done
IFS=$SAVEIFS

یک حلقه for است که همه فایل ها رو یکی یکی می ندازه وسط دایره. هر کی وسط باشه اول یک فولدر براش ساخته می شه با _dir و بعد یک mv روش اجرا می شه و خلاص. اون IFS متغیری است که توی بش تعریف می کنه جدا کننده فیلدها از هم باید چی باشه. معمولا اسپیس است اما چون اینجا ممکنه اسم فایل توش اسپیس داشته باشه، کردیمش «سرخط».

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

آپدیت: دوست خوبم مهدی بیگی توی کامنت ها این شیوه راحت تر و بهتر رو پیشنهاد داده:


find -type f -exec mkdir '{}'.tmp \; -exec mv '{}' '{}'.tmp \; -exec mv '{}'.tmp '{}' \;

که فقط یک دستور است. دستور find می تونه چیزهای مختلف رو پیدا کنه و اینجا با سوییچ f دنبال فایل می گرده. بعد روی تک تک اون فایل ها چیزی که جلوی سوییچ exec هست رو اجرا می کنه و هر بار به جای {} یکی از فایل های پیدا شده رو می ذاره. در نهایت هم اسلش سمی کالن می گه چیزی که جلوی سوییچ exec بوده تموم شده.

چرا گنو/لینوکس رو دوست دارم: نقشه استان‌هایی از ایران که رفته‌ایم

ایده ساده است: یک برنامه باشه که بتونیم باهاش نقشه‌ای درست کنیم از استان‌هایی از ایران که بهشون سفر کردیم. مثلا مال من می‌شه این:

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

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

چرا به گنو/لینوکس عشق می ورزم: خاطرات یک هکر

می‌دونین که من سفر کاری خیلی زیاد می رم . در یکی از از سفرها قرار شد یک دستگاه رو با یک دستگاه دیگه عوض کنن ولی یک سوال مهم باقی موند:

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

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

9370333**** ea9bf866d98db73eb0909fa9c1cc1b11
9370050**** fcbfab2f4cda26061ed9e3ee96a4fd61
9370750**** 6a130f1dc6f0c829f874e92e5458dced
9370001**** 9ad97add7f3d9f29cd262159d4540c96

هش یک الگوریتم یکطرفه است که می‌تونه یک استرینگ رو به یک استرینگ پیچیده تبدیل کنه. مثلا الان پسورد نفر اول بعد از هش شدن (با الگوریتم md5) تبدیل شده به ea9bf866d98db73eb0909fa9c1cc1b11. این هش غیرقابل برگشت به پسورد اصلی است اما وقتی طرف مثلا سعی می کنه لاگین کنه و پسوردش رو لاگین می‌کنه، سیستم می‌تونه پسورد جدیدا وارد شده رو هش کنه و ببینه بازهم به همون هش سابق که ذخیره کرده (یعنی ea9bf866d98db73eb0909fa9c1cc1b11) می‌رسه یا نه. این تکنیک اجازه می‌ده ما چک کنیم طرف پسورد صحیح رو داره یا نه بدون اینکه مجبور باشیم پسوردش رو جایی ذخیره کنیم. حالا قراره این سیستم با یک سیستم دیگه که با هش متفاوتی کار می کنه جایگزین بشه و لازمه بی دردسر بودن جریان اینه که بشه پسوردها رو از این هش‌ها استخراج کرد. اما هش ساخته شده تا معکوس نشه – یعنی از نظر علمی از هش نمی شه به هش‌شده رسید.

خب حالا راه حل ما چیه؟ یک راه که بهش «بروت فورث» می‌گن اینه که یکی یکی هر چیز ممکن رو هش کنیم. یعنی اول ۱ رو هش کنیم ببنیم به اون چیزی که اونجا هست می‌رسیم یا نه. بعد ۲ رو هش کنیم. بعد ۱۲ رو بعد ۱۱ رو و خلاصه هر چیز ممکن رو. اینکار یک نیروی کور است و بسیار وقت گیر. اما یک راه هوشمندانه تر هم داریم که بهش می‌گن رنگین کمان / rainbow. تکنیک رنگین کمان اینه که تمام کارهای بالا رو بکنیم (یعنی مثلا اگر اکثر افراد در موبایل از پسوردهای عددی استفاده می کنن از ۰ تا ۹۹۹۹۹ رو هش کنیم و رمز و هش اون رو بریزیم توی یک دیتابیس) و بعد یکی یکی هش ها رو توی دیتابیس سرچ کنیم و پسورد رو نشون بدیم… خب آماده‌اید؟

برای ایجاد همه پسوردهای ۰۰۰۰۰ تا ۹۹۹۹۹ و هش کردن اونها این برنامه پایتون رو نوشتم. مطمئنا می‌تونه بهتر هم نوشته بشه ولی این کار من رو راه انداخت:

#!/usr/bin/python

import MySQLdb

db = MySQLdb.connect("localhost","jadi","password","break" )

# prepare a cursor object using cursor() method
cursor = db.cursor()


for i in range(0, 10000):
    pre = '';
    if i < 10:
        pre += '0';
    if i < 100:
        pre += '0';
    if i < 1000:
        pre += '0';
    num = "%s%s" % (pre, i);
    print num;
    # execute SQL query using execute() method.
    cursor.execute("insert into rainbox values ('%s', md5('%s'));"%(num,num));

# Fetch a single row using fetchone() method.
#data = cursor.fetchone()

# disconnect from server
db.close()

همین برنامه رو برای پسوردهای ۰۰۰۰۰ تا ۹۹۹۹۹ و ۰۰۰ تا ۹۹۹ و ۰۰ تا ۹۹ و ۰ تا ۹ هم کم و زیاد کردم و رنگین کمانی شامل ۱۱۱۱۱۰ پسورد و هش اون ساختم:

mysql> select count(*) from rainbox;
+----------+
| count(*) |
+----------+
|   111110 |
+----------+
1 row in set (0.07 sec)

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

mysql> ALTER TABLE rainbox ADD primary index (hash);

حالا وقت شکستن رمزها است. فایلی دارم به اسم users.csv که این شکلی است (چهار رقم آخر تلفن ها رو ستاره کردم که پرایوسی آدم‌ها حفظ بشه):

9370333**** ea9bf866d98db73eb0909fa9c1cc1b11
9370050**** fcbfab2f4cda26061ed9e3ee96a4fd61
9370750**** 6a130f1dc6f0c829f874e92e5458dced
9370001**** 9ad97add7f3d9f29cd262159d4540c96

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

#!/usr/bin/python

import MySQLdb
import csv

db = MySQLdb.connect("localhost","jadi","password","break" )

# prepare a cursor object using cursor() method
cursor = db.cursor()

spamReader = csv.reader(open('users.csv', 'rb'), delimiter=' ', quotechar='|')
for row in spamReader:
    tofind = row[1];
    try:
        cursor.execute("select pass from rainbox where hash = '%s'"%tofind);
        data = cursor.fetchone()[0];
        print row[0], tofind, data;
    except: #this hash was not in db
        print row[0], tofind, "later" 

# disconnect from server
db.close()

برنامه بالا رو اجرا می‌کنم و زمان می‌گیرم:

jadi@jubun:~/w$ wc -l users.csv && time python break.py > out.txt
316590 users.csv

real    0m57.226s
user    0m25.362s
sys 0m4.856s

واو! سیصد و شونزده هزار پسورد رو توی کمتر از یک دقیقه شکستیم (: یک نگاه به فایل آوت.تکست می‌گه:

jadi@jubun:~/w$ head out.txt 
93703334*** ea9bf866d98db73eb0909fa9c1cc1b11 7523
93700508*** fcbfab2f4cda26061ed9e3ee96a4fd61 8510
93707500*** 6a130f1dc6f0c829f874e92e5458dced 7496
93700013*** 9ad97add7f3d9f29cd262159d4540c96 9538
93700177*** c902514ac30b6e23dbb0c3dc80ec7d4a later
93700858*** ee676ed9ce5bd51b4452ddfbdf962ef7 later
93707848*** 8c249675aea6c3cbd91661bbae767ff1 1986

ظاهرا پسوردهای چهار رقمی مد هستن (: ظاهرا تعداد later ها هم کم نیست. بذارین یک نگاه هم به اونها بندازیم:

jadi@jubun:~/w$ grep later out.txt | wc -l 
1558

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

jadi@jubun:~/w$ grep later out.txt  > later.txt && \
                                cut later.txt -f2 -d' ' | uniq -u | wc -l 
5536

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

jadi@jubun:~/w$ cut later.txt -f2 -d' ' | sort | uniq -u | wc -l 
767

هها! نگفته بودم؟ کل این شش هزار نفر باقیمونده، فقط از ۷۶۷ پسورد استفاده کردن. این ۷۶۷ پسورد رو می‌ریزیم توی یک فایل مجزا برای کشف کردنشون در پست بعدی.

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

و در نیتجه کافیه من یک برنامه بنویسم که همه هش‌های هنوز کشف نشده رو از فایل ورودی بخونه و اونها رو به این سایت پست کنه و منتظر خروجی بمونه. بعد توی خروجی اچ تی ام ال دنبال چنین خطی بگرده:

Found: md5("zaka") = 00a3b206c4ad2cae515e28745423093a

و zaka رو یک جایی ذخیره کنه. کافیه این کار رو برای همه هش‌هایی که هنوز کشف نشدن ادامه بدیم. مشخصه که هنوز یکسری کشف نشده خواهند موند ولی بذارین ببینیم به چی می رسیم. این مرحله به خاطر فرستادن درخواست به اینترنت کندتر است و یک راه حل خوبه اینه که فایل hard.txt و برنامه رو روی یک سرور وی پی اس آپلود کنیم و اونجا اجراش کنیم. همین کار رو می کنم و برنامه پایتون رو هم اینجوری می‌نویسم که یکی یکی هش ها رو برداره، به اون سایت بفرسته و توی خروجی اچ تی ام ال که بر می گرده، خطی که پسورد رو نشون می ده رو جدا کنه. اگر این هش اونجا هم نبود می نویسیم too difficult و از خیرش می گذریم (: بریم ببینیم چی می شه:

#!/usr/bin/python

import urllib
import csv
import re

spamReader = csv.reader(open('hard.txt', 'rb'), delimiter=' ', quotechar='|')
for row in spamReader:
    try:
        # This is here for copy/pasters....
        # Originally by Jadi at jadi.net
        params = urllib.urlencode({'term':row[0], 'crackbtn': 'Crack that hash baby!'})
        f = urllib.urlopen("http://md5crack.com/crackmd5.php", params)
        page = f.read()
        password = re.search('Found: md5\("(.*)"\) = %s' % row[0], page)
        print row[0], password.group(1)
    except: 
        print "too difficult"

و برای اجرا می‌زنیم:

user@remotehost:/tmp$nohup python onlinebreak.py > easy.txt & 

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

jadi@jubun:~/w$ time python break.py > out.txt &&  grep later out.txt | wc -l 

real    0m58.863s
user    0m27.706s
sys 0m5.756s
1558

عالی (: حالا دیگه فقط ۱۵۵۸ نفر داریم که پسوردشون کشف نشده. از سیصد هزار نفری که اول داشتیم، پیشرفت عالیی است (: این هزار و پونصد نفر که پسوردهای غیرمعمول گذاشتن هم می‌تونن زنگ بزنن به پشتیبانی و بگن از امروز پسوردشون کار نمی کنه و اونها براشون ریست می کنن (:

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

jadi@jubun:~/w$ cut out.txt -f3 -d' ' | sort | uniq -c | sort -b -n -r | head
 192019 1234
  11780 2222
  10532 123
   9734 1111
   7547 5555
   5293 12345
   4512 4444
   4473 0000
   2568 3333
   2192 444

و این شما و این پر استفاده‌ترین پسوردهای این سیصد هزار نفر. جالبه که ۶۰٪ از کاربران پسوردشون رو گذاشتن ۱۲۳۴۵. فوق العاده نیست؟

اخبار دنیای آزاد در هفته ای که گذشت – ۲ آذر ۱۳۹۰

من هر هفته در یک پادکست خیلی کوتاه اخبار دنیای آزاد رو برای پادکست رادیو ۲۴ وبلاگینا می خونم که نصف دوم برنامه پخش می شه. اخبار دنیای آزاد این هفته رو از اینجا دانلود کنین یا به شکل مستقیم بهش گوش بدین:

[audio:radio24-23-November-2011.mp3]

انتشار سورس اندروید ۴ و هانی کامب. از اول امسال که تبلت‌های اندروید ۳ ارائه شدن مردم منتظر سورس این سیستم عامل بودن اما گوگل هی اون رو به تاخیر می انداخت. حالا گوگل این سورس و سورس اندروید ۴ رو منتشر کرده و به همراهش کیت توسعه نسخه ۷ رو هم داده که روش می شه برای اندروید ۴ هم برنامه نوشت +

کامپیوتر آرم بیس اوبونتوی به اندازه یک یو اس بی دیسک. علم واقعا داره سریع پیش می ره. اسمش هم آبنبات پنبه ای پشمک و واقعا جذابه. به اندازه یک کول دیسک که یک سرش یو اس بی داره و یک سرش یک پورت HDMI. فقط تصور کنین که چیزی شبیه یک کول دیسک دارین که یک سرش رو می زنین به یک مونیتور اچ دی ام آی و مونیتور با اوبونتو بوت می شه و وای فای و بلوتث و میکرو اس دی و یک گیگ رم و یک سی پی یوی دوال کور آرم ۱.۲ گیگاهرتز داره. +

آیا شاهد تلفن آمازون خواهیم بود؟. گفته می شه که آمازون داره یک گوشی به اسم کیندل فون درست می کنه که اواخر سال ۲۰۱۲ عرضه خواهد شد. قیمت؟ فقط بین ۱۵۰ تا ۱۷۰ دلار! از مدت ها پیش اخطار داده بودیم که باید حواستون به آمازون باشه: آمازون با داشتن یک شبکه توزیع فیزیکی وسیع و داشتن یک اکوسیستم بزرگ داره گستره محصولاتش رو کامل می کنه. از کتاب تا تبلت تا تلفن تا بازار اندروید خودش. اگر اهل سهام خریدن هستین، الان وقتشه. +

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

کروم بوک، زیر سیصد دلار! گوگل اعلام کرد که نسخه فقط وای فای لپ تاپ های کروم بوک ایسر و سامسونگ از جمله تمام نسخه های جدید رو با قیمت ۲۹۹ دلار می فروشه. گوگل همچنین فرم ور این لپ تاپ ها رو منتشر کرده و تغییراتی توی اونها داده. مشخصه که کروم بوک ها هنوز خیلی مشتری ها رو به خودشون جذب نکردن ولی به هرحال قدمی هست در رفتن به سمت ابرها و زندگی جذاب اون تو. البته به شرطی که اینترنت قطع نشه. اگر اطلاعات بیشتر می خواین دنبال Life with a Chromebook بگردین که یک نفر خاطرات استفاده اش از کروم بوک رو به شکل مفصل و کامل نوشته. +

دولت هند و تبلیغ استفاده از اوپن سورس. تبلیغ دولت ها برای استفاده از لینوکس و نرم افزار آزاد و اوپن سورس رو که همیشه شنیدیم ولی اینبار بحث جالبتره. هند در این حد عقلش رسیده که در یک سند به اسم «سیاست دیوایس درایورهای سخت افزارهای خریداری شده توسط ای-گاورننس» منتشر کرده که توش می گه اگر دولت سخت افزاری می خره لازمه کسب اطمینان کنه که این سخت افزار قابلیت استفاده از سیستم های اوپن سورس (که اینجا معنی لینوکس می ده ) رو هم داشته باشه. از دیدن دولت های نسبتا عاقل، خوشحالیم. +

مسابقه طراحی بک گراوند برای کی دی ای ۴.۸. ایرانی ها سابقا خوب نشون دادن و الان بازهم فرصت دارن هنرنمایی کنن. انتشار کی دی ای ۴.۸ ( که می گن خیلی خیلی باگ هاش کم شده و پایداره ) خیلی نزدیکه و انبار مستر نونو پین هیرو (که کاغذدیواری های قبلی رو ساخته بوده) از جامعه خواسته تا اونها تصاویر بک گراوند درست کنن و بفرستن. فرصت خوبیه برای یک کار خوب. دنبال plasma-workspaces-wallpaper-contest بگردین و تو مسابقه شرکت کنین. حتی عکس هم قبوله ولی باید طبق قوانین باشه. مثلا والپیپیر شما باید یکی از ارزش‌های مرکزی کی دی ای (الگانس، آزادی و راحتی استفاده) رو نشون بده. +

زنان در جامعه آزاد: وظیفه مردان سنگین تره. این جمعه روز جهانی خشونت علیه زنانه. یکی از توسعه دهندگان مهم دنیای فاس (راسل کاکر – توسعه دهنده دبیان و مشاور لینوکس) گفته که وقتی زنی در جامعه فاس شروع می کنه از حقوقش حرف زدن یا علیه تبعیض اعتراض کردن، دقیقا این مردهای دنیای فاس هستن که بهش حمله می کنن و جلوی مطرح شدن این مباحث رو می گیرن. اون گفته که «وقتی مشکلات توسط مردها ایجاد می شن و هزینه صحبت کردن در مورد موضوع برای مردها نسبت به زن ها کمتره، هیچ مرد نجیبی نمی تونه کنار بایسته و حرف نزنه». +

پیروزی مطلق لینوکس در دنیای سوپرکامپیوترها

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

در این فهرست لینوکس ۴۵۷ کامپیوتر از ۵۰۰ کامپیوتر برتر جهان رو راه می‌ندازه که می‌شه ۹۱.۴٪. رتبه بعدی سیستم‌عامل در دست یونیکس است با ۳۰ کامپیوتر و ۶٪ و بعد سیستم‌عامل‌های ترکیبی (۲.۲٪) و در انتهای جدول سیستم‌عامل هم ویندوز مایکروسافت رو می‌بینیم که فقط یک کامپیوتر از ۵۰۰ سوپر کامپیوتر برتر جهان ازش استفاده می‌کنه.

نگاهی کمی عمیق‌تر به ۹۱.۴٪ لینوکسی‌ها بهمون نشون می‌ده که ۴۱۴ کامپیوتر در این مجموعه توزیع‌های شخصی شده هستن و بعدش توزیع لینوکس AIX آی بی ام ایستاده و بعدش هم انواع لینوکس‌های مبتنی بر زوزه یا ردهت.

تصویر بالای متن، سریعترین سوپرکامپیوتر جهان یعنی K computer, SPARC64 VIIIfx 2.0GHz ژاپنی است با سیستم عامل لینوکس، ۷۰۵۰۲۴ هسته و مصرف ۱۲ مگاوات برق و ۱۴۱۰۰۴۸ گیگا حافظه!

اخبار دنیای آزاد رادیو ۲۴ – ۱۸ آبان ۱۳۹۰

گوش کنید: [audio:radio24-9-November-2011.mp3]
دانلود کنید: رادیو بیست و چهار . چهارشنبه ۹ نوامبر ۲۰۱۱

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

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

نوکیا و کیوت

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

۵ آلترناتیو سیری روی اندروید
سیری اتفاق بزرگی بود روی آی فونی ها. نسبتا هم خوب کار می کنه. اندرویدی های هم در حال جواب دادن هستن. بامزه‌ترین برنامه ایریس بود که هشت ساعته نوشته شد و به همین دلیل خیلی مشهور شد ولی برنامه‌های بهتری هم هستن. مثلا ولینگو که نه فقط به سوال ها جواب می ده و اسمس می زنه و تلفن می کنه، که می‌تونه فیسبوکتون رو آپدیت کنه یا توییت کنه براتون یا حتی توی فوراسکوئر چک این کنه. برای دیدن پنج تا از بهترین آلترناتیوهای سیری، دنبال 5 Best Free Siri Alternatives for Android سرچ کنید و مقاله رو بخونید. لینک

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

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

گفتگوهای استالمن!
یک وبلاگ ساده است که گاهی با کاریکاتور و گاهی با متن، گفتگوهای استالمن با افراد مختلف رو می ذاره! ارزش خاصی نداره ولی بانمکه. لینک

اخبار دنیای آزاد رادیو بیست و چهار – ۲۷ مهر ۱۳۹۰

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

یا از اینجا بشنوید:

[audio:http://weblogina.com/files/radio24/radio24-19-October-2011.mp3]

تمام شدن پهنای باند لینوکس دات اورگ

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

دنیس ریچی هم مرد

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

بازی های جدید هم که همینطور می یان دیگه

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

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

اگر به این سبک بازی‌ها که سال‌ها توی محیط متنی بازی می‌شد علاقمند هستین یا می‌خواین یک نمونه ۲۰۱۱ش رو امتحان کنین، از مخازن اوبونتو با پنج دلار دانلودش کنین. اگر هم دنبال گرافیک و این حرفها هستین که خب برین سراغ Oil Rush Beta که تازه منتشر شده. + و +

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