راه اندازی جلوه‌های تصویر کارت‌های گرافیک اینتل در اوبونتو ۹.۰۴

24 05 2009

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

توضیح این که این مدل از کارت‌های گرافیک در اوبونتو Jaunty Jackalope یا همین ۹.۰۴ توی لیست سیاه جلوه‌های ویژه قرار گرفته البته به دلیل وجود یک باگ. البته با رفع شدن این مشکل خود به خود از لیست سیاه حذف می‌شه ولی اگه شما هم مثل من نمی‌تونید صبر کنید، بهتره به صورت دستی اون رو از لیست سیاه خارج کنید. کار سختی نیست:


mkdir -p ~/.config/compiz/ && echo SKIP_CHECKS=yes >> ~/.config/compiz/compiz-manager

دستورات بالا رو توی محیط متنی (Alt+F2 و بعد gnome-terminal البته در اوبونتو! و Alt+F و بعد konsole در کوبونتو) اجرا کنید. به این ترتیب چک کردن مدل کارت گرافیک لغو می‌شه و شما می‌تونید جلوه‌ها رو اجرا کنید.

منبع: اینجا





اینترنت دانشگاهی

21 05 2009

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





مسئله چیست؟

10 05 2009

بنا به تعريف Pounds در سال 1969، يك مسئله تفاوت ميان وضعيت موجود و وضيعت مطلوب مي‌باشد.





الگوی امنیتی به کار گرفته شده در چیچک

21 04 2009

چیچک یک مشکل امنیتی داشت و اون این بود که گذرواژه‌‌های وب‌سایت‌های مختلف رو به صورت ناامن ذخیره می‌کرد. خب برای رفع این ضعف من مدتی روی الگوریتم‌های مختلف کار کردم تا در نهایت این مشکل رو حل کردم.

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

خب مشکل استفاده از این الگوریتم این بود که نمی‌شد به حافظه‌ی کاربر اعتماد کرد و کلید ۱۶ بایتی این الگوریتم رو به حافظه‌ی کاربر سپرد. خب راه حل بهتری (و البته نه غیر قابل نفوذ، مثل بقه‌ی الگوریتم‌های ایمن) که من استفاده کردم این بود که برای هر کامپایل از کاربر بخوام که کلید ذخیره شده توی سورس کد رو تغییر بده و برنامه رو کامپایل کنه. من هم برای نسخه‌ی باینری یک کلید رو وارد می‌کنم و اون رو پیش خودم نگه می‌دارم. خب، به نظر راه حل ایمنی بود، نه؟

اما جاوا نویس‌ها می‌تونن برای رمز نگاری کردن یک جریان داده‌ی ورودی به نام inputStream اینطور عمل کنن:

java.io.InputStream inputStream = ...
java.security.Key key = ...
javax.crypto.Cipher c =
javax.crypto.Cipher.getInstance("AES");
cipher.init(javax.crypto.Cipher.DECRYPT_MODE, key);
javax.crypto.CipherInputStream decryptingInputStream =
new javax.crypto.CipherInputStream(inputStream, cipher);

و برای رمز نگاری جریان داده‌ی خروجی به نام outputStram اینطور:

java.io.OutputStream outputStream = ...
java.security.Key key = ...
javax.crypto.Cipher c =
javax.crypto.Cipher.getInstance("AES");
cipher.init(javax.crypto.Cipher.ENCRYPT_MODE, key);
javax.crypto.CipherOutputStream encryptingOutputStream =
new javax.crypto.CipherOutputStream(outputStream, cipher);

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

javax.crypto.KeyGenerator keygen =
javax.crypto.KeyGenerator.getInstance("AES");
java.security.SecureRandom random =
new java.security.SecureRandom();
keygen.init(random);
java.security.Key key = keygen.generateKey();





یه سوال از متخصصین برنامه نویس

15 04 2009

من تو قسمت امنیت چیچک به یه مشکل برخوردم که پرس و جو از دوستان و استاد ها برام نتیجه ای در بر نداشت. مساله اینه: چیچک یه فایل Properties داره که اطلاعاتی مثل نوع Look And Feel و وضعیت System Tray توی اون ذخیره می شه. از جمله چیز های دیگه که توی این فایل ذخیره می شه User name و Password وبسایت هایی مثل Twitter هستش که از نظر امنیتی این وضع خوبی نیست. من باید بتونم Password ها رو با یه الگوریتم بازگشت پذیر (دقت کنید که توابع Hash مثل MD5 به کار نمیاد) این ها رو کد کنم و در موقع نیاز اون ها رو بازیافت.

پیشاپیش بگم که RSA بهم جواب نمی ده یا حد اقل نمی تونم راهی به دست بیارم که با RSA این وضع رو کنترل کنم.
فراموش نکنید که چیچک یه برنامه ی Open Source هم هست و از هر الگوریتمی که استفاده کنم، به راحتی می شه الگوریتم رو خوند و پیدا کرد.

منتظر نظراتتون هستم.


بعد نوشت:

خب مساله رو می شه یکم تغییر داد به این صورت که من یه data دارم به اسم d و یه کلید عمومی دارم به pubKey و یه کلید اختصاصی دارم به نام privKey. خب d رو با pubKey کد می کنم (حالا با هر الگوریتمی) و d کد شده رو که اسمش cd هست رو یه جایی ذخیره می کنم. کنار cd هم می تونم برای کد کردن های بعد به راحتی pubKey رو ذخیره کنم. مشکل جدید این privKey هستش به این معنی که هر جایی که این رو ذخیره کنم، امنیت به خطر میفته و اگه این privKey رو نداشته باشم، از cd نمی تونم به d برسم. نمی تونم از حافظه ی کاربر برای نگه داری این privKey استفاده کنم چون:

  1. ممکنه این privKey مقدار خوش قلقی برای حفظ کردن نداشته باشه.
  2. کاربر ممکنه privKey رو فراموش کنه که در این صورت d هم از بین می ره.
  3. privKey رو الگوریتم به من می ده و نمی تونم خودم اون رو تولید کنم.

این ها برای الگوریتم های asymmetric بود ولی دقیقا همین مشکل رو برای الگوریتم های symmetric هم دارم.

نظر شما چیه؟


بعد نوشت:

الگوریتم AES (لینک تکمیلی) هم بررسی شد، جزو symmetric الگوریتم هاست و مشکل بالا همچنان برقراره.


راه حل:

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

به زودی این مشکل امنیتی چیچک رو برطرف می کنم.





انتشار چیچک

9 04 2009

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

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

کاربران ویندوز می تونن فایل اجرایی «چیچک» رو از این لینک بگیرن وکاربران سیستم عامل های دیگه (و البته ویندوز) فایل JAR «چیچک» (که قابل اجرا روی تمام سیستم عامل های پشتیبانی شده هست) رو از این لینک دانلود کنن.

منتظر نظراتتون برای بهبود «چیچک» هستم.





چیچک

5 04 2009
قابلیت های جدید چیچک
قابلیت های جدید چیچک

به پیشنهاد دوست عزیزم، حسن، قابلیت ارسال یادداشت ها به وب سایت Tumblr، رو به چیچک اضافه کردم. البته کتابخونه ی خوبی برای کار با این سایت پیدا نکردم و خودم دست به کار شدم و پایه ی پروژه ی JTumblr که یک کتابخونه ی کار با Tumblr رو با Java شروع کردم. البته فعلا به این کتابخونه قابلیت ارسال پست های معمولی رو اضافه کردم. در آینده تمام Tumblr API رو برای این کتابخونه پیاده خواهم کرد.

اما قسمت دیگه ی اضافه شده به چیچک، قابلیت به اشتراک گذاشتن یادداشت ها تو سایت FriendFeed هستش که با وجود کتابخونه های مختلف برای کار کردن با این سایت، ترجیح دادم برای سنگین نشدن پروژه با امکانات بلا استفاده، خودم به صورت دستی ارسال به FriendFeed رو پیاده کنم.

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

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

تصاویری از قابلیت های جدید چیچک ببینید:

فرندفید و چیچک

فرندفید و چیچک

تامبلر و چیچک

تامبلر و چیچک





چیچک

1 04 2009

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

وردپرس و چیچک

وردپرس و چیچک

باز هم منتظر نظرات و پیشنهادات شما هستم و بی صبراته در انتظار یه تیم توسعه‌ام.





چیچک

31 03 2009

در ادامه ی طراحی «چیچک»، یک قابلیت مهم به اون اظافه کردم که ارسال یادداشت ها به توییتر با استفاده از Twitter4J هستش. تصویر های زیر رو ببینید:

منتظر پیشنهاداتون هستم و شدیداً از اونها استقبال می کنم.
در ضمن اگه می خواین به من تو تکمیل این پروژه کمک کنید، تو قستم نظرات اعلام کنید.





چیچک

29 03 2009

تقریبا پیش از نوروز، وقتی که برگشته بودم خونه، به لیست فیلم هایی که دوست عزیزم کیان به من داده بود رو می دیدم که فیلم π (فیلم پی) نظرم رو به خودش جلب کرد و شبونه نشستم و اون رو تماشا کردم. یه چیز جالب توی این فیلم بود و اون «یادداشت های شخصی» شخصی بنام «ماکس کوهن (Max Cohen)» نقش اول فیلم بود. کار جالبی به نظرم می رسید و به همین خاطر من هم یک دفترچه یادداشت گرفتم تا این کار رو تقلید کن.

از اونجا که برنامه نویس جماعت همیشه دنبال ساختن راهی برای دیجیتالی کردن کارها هستن، و البته من خودم رو برنامه نویس می دونم! شروع به ساختن برنامه ای به نام «چیچک» با زبون جاوا کردم با هدف دیجیتالی کردن اون دفترچه یادداشت. و امروز پروژه به جایی رسیده که می خوام اون رو به شما و مخصوصاً دوستان برنامه نویس معرفی کنم و البته منتظر نظرات ایشون باشم. برای توسعه ی بیشتر و البته با هدف تمرین بیشتر برای جاوا.

Chichak Main Window

اما قسمتی از خصوصیات «چیچک»:

  • پایگاه داده ی «چیچک» با استفاده از موتور پایگاه داده ی «SQL Lite» طراحی و پیاده سازی کردم.
  • «چیچک» از رابط گرافیکی Swing بهره می بره و ظاهر اون رو با تم های JTattoo آراسته کردم.
  • برای «چیچک» یک System Tray Icon هم در نظر گرفتم تا بتونه به صورت پنهان در حال اجرا بمونه و با فرمان کاربر ظاهر بشه.
  • کنترل محتویات Clipboard یکی دیگه از قابلیت هاییه که توی «چیچک» در نظر گرفتم.

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

فراموش نکنید که برنامه مستقل از بستر اجرائیه به به راحتی روی هر بستری قابل اجراست. پروژه رو ببینید و از قدرت جاوا به شگفت بیاین.

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

پایین تر چند تا تصویر از محیط برنامه رو هم ببینید:

editnotenotemenunotetoolbartrayicon