رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
پروژۀ Internet switcher
#1
این پروژه اخیر پایتون بنده هست: https://github.com/ferchang/Internet-switcher

قبلا هم چند برنامه کوچک ولی جالب و مفید رو با پایتون نوشته بودم. مثلا یه برنامه برای خاموش و روشن کردن راحت و سریع وایفای مودم محل کارم. کلا پایتون برای نوشتن اینطور برنامه های کوچک و یوتیلیتی ها زبان ایدئالیه. خوبیش اینه که یک کتابخانهء رابط گرافیکی هم همراه خودش داره (Tk) و میشه باهاش هم برنامه های کامندلاین و هم برنامه های با اینترفیس گرافیکی (یا ترکیبی از هردو) رو براحتی ساخت.

خب کار این برنامه Internet switcher چی هست؟
با این برنامه میشه اگر همزمان چند منبع اتصال به اینترنت به PC شما متصل باشه، مثلا همزمان اینترنت ADSL و موبایل، بین این منابع اینترنت براحتی سویچ کرد.
برای خود من در محیط کارم چنین نیازی بارها بوده به دلایل مختلف، که قبلا برای این کار از دستور route در خط فرمان ویندوز استفاده میکردم، ولی بعد دیدم بهتره یه برنامه کوچک راه دست درست کنم که دیگه نیازی نباشه در خط فرمان فرامین رو تایپ و اجرا کنم. و چه انتخابی بهتر از پایتون برای اینطور کارها!
البته این برنامه هم در پشت پرده داره از همون فرمان route استفاده میکنه، منتها کارها و فرامین خط فرمان لازم الان دیگه بصورت خودکار و سریع و راحتی توسط خود برنامه انجام میشن و ما یک رابط گرافیکی تمیز و قشنگ و هوشمند رو برای این امر در اختیار داریم فقط کافیه روی یک دکمه کلیک کنیم.

البته این برنامه رو هنوز دارم روش کار میکنم و چند ویژگی مفید دیگه میخوام بهش اضافه کنم که یکیش اینه که بتونیم برچسب سفارشی برای دکمه ها ست کنیم که مثلا بجای Gateway IP مثلا 192.168.1.1 روی دکمه ها برچسب هایی مثل ADSL، Mobile، Dial-up و غیره نمایش داده بشه.

اوه راستی یادم رفت بگم که این برنامه با پایتون نسخهء 3 هست و ضمنا فقط برای ویندوز نوشته شده (هرچند شاید در صورت نیاز بشه برای لینوکس اینا هم براحتی تطبیقش داد) و فقط روی ویندوز XP تستش کردم.


فایل‌های پیوست تصاویر بندانگشتی
   
پاسخ
تشکر شده توسط: ADMIN , YN97
#2
میشه بگید منظورتون از هوشمند چیه؟
وبلاگ من

System.out.PrintLn("Say to Prof.James Gosling Java Never Dies ! I HATE Microsoft and its Technologies ! ");
پاسخ
تشکر شده توسط:
#3
(30-06-1394، 12:08 ب.ظ)YN97 نوشته: میشه بگید منظورتون از هوشمند چیه؟
یعنی آیکیوش بالاهه Big Grin
نکته سنجی خوبی بود Tongue

خب مثلا اینکه اگر منبع اینترنت قطع یا وصل بشه برنامه از قبل run باشه میفهمه و گزینه هاش رو آپدیت میکنه. کلا هر 3 ثانیه یک بار تمام route ها رو چک میکنه اگر تغییر کرده باشن آپدیت میکنه.
بهرحال از خط فرمان خیلی راحتتر و سریعتره چون تمام اتصال ها رو شناسایی میکنه، اتصال فعال رو مشخص میکنه، و کارهای خاموش و روشن کردن route ها رو انجام میده هرکدام اگر احتمالا در شرایطی جایی بعلتی لازم باشه metric شون رو عوض میکنه و این حرفا. دیگه آدم خیالش از همه جهت راحته به تنظیمات و پشت پرده کاری نداره. قبلا باید همه اینا رو در خط فرمان میفهمیدم چک میکردم و دستورات لازم رو تایپ میکردم.

الان که نوشتم برنامش هم کوچکه شاید بنظر ساده بیاد، ولی فهمیدن و پیشبینی و هندل کردن تمام این موارد و جزییات کار آنچنان راحتی هم نبود آدم گیج گوجه میشه Big Grin
پاسخ
تشکر شده توسط: YN97
#4
کامپیوترم خراب شده بود چند وقت نتونستم تکمیل این برنامه رو ادامه بدم، ولی دیروز اینا رفتم بالاخره یه مادربورد دست دوم خریدم چون قبلی دیگه پوکیده بود هرکاری کردم درست نشد.

بالاخره سیستم راه افتاد و برنامه رو یخورده تکمیل کردم.
فعلا در این مرحله: https://github.com/ferchang/Internet-swi...f903ffff19

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

برای ست کردن برچسب سفارشی، باید روی دکمه مورد نظر کلیک راست کنید.

یه خورده تغییرات و بهبودهای جزیی دیگه هم توش داره.


فایل‌های پیوست تصاویر بندانگشتی
   
پاسخ
تشکر شده توسط: ADMIN , YN97 , saeid2him
#5
خب این پروژه هم تقریبا تموم شد.
مشاهده و دریافت آخرین نسخه از این آدرس: https://github.com/ferchang/Internet-switcher

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

یه چیزی که در جریان این پروژه برام برجسته شد (البته قبلا هم پیش آمده بود)، این بود که آدم از اول یا به تدریج در جریان درست کردن یه برنامه ممکنه امکانات و ویژگیها و جزییات و هوشمندی های زیادی بنظرش بیاد، ولی اونوقت وقت و انرژی زیادی باید سر این همه موارد و جزییات صرف بکنه و بسیاری از این موارد اونقدری ارزش ندارن یا نباید در حال حاضر بهشون پرداخت، و باید اول ویژگیها و امکانات اصلی و کلیت برنامه رو درست و درمون کرد؛ یعنی محوری ترین و اساسی ترین و پایه ای ترین چیزهای ضروری. بعدا اگر صرف میکرد و لازم/مفید بود میشه چیزهای دیگه رو بهش اضافه کرد، ولو مستلزم تغییراتی در بعضی بخشهای از قبل نوشته شده برنامه باشن.
البته شاید این مسئله بیشتر در مورد پروژه هایی صدق کنه که تاحالا مشابه اونا رو ننوشتیم و احاطهء خاصی بهشون نداریم. چون در چنین شرایطی از اول اگر آدم بخواد جزییات و امکانات زیادی رو همزمان هدف بگیره و مدیریت کنه کار بسیار دشواری میشه و مشکلات زیادی ایجاد میکنه و در این جریان اصل مسئله و کارایی های اصلی، بیش از حد پیچیده و گم و مخدوش میشه.
پس برنامه نویسی باید از مرکز شروع بشه، و بصورت دایره ای متعادل رشد کنه.
من خیلی برنامه ها رو دیدم که پر از زرق و برق و جزییات و امکانات فرعی هستن، ولی بیشتر کارایی و ویژگیهای اونا سطحی و پر از باگ و ناکاراییه. بنظرم این برنامه ها از اول با یک دید پر از ویژگی و امکانات و زلم زیمبو و بیش از حد گسترده و متفرق نوشته میشن، بجای اینکه به هسته و اصل و اساس، عمدهء اهمیت و اولویت داده بشه و از مرکز شروع به کار کنن.
پاسخ
تشکر شده توسط: YN97




کاربران در حال بازدید این موضوع: 1 مهمان