نوشته‌های یک برنامه‌نویس

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

نوشته‌های یک برنامه‌نویس

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

۹ مطلب در آذر ۱۳۹۱ ثبت شده است

با عرض سلام 

امروز یه قسمت از فریم‌ورک GearCloud را در خدمتتان قرار می‌دهم. این قسمت در بخش UI و مربوط به ساخت خودکار کدهای HTML است.


view = UI()
view.Tag('div',(('class','MyDiv1'),('id','MyID1')))
view.Tag('p',(('class','MyDiv2'),('id','MyID2')))
view.EndTag()
view.EndTag()
view.Tag('span',(('class','MyDiv3'),('font','Tahoma')))
view.EndTag()
print view.ToHtml()
با این کد نسبتاً ساده(!) چنین کدی کامپایل میگردد...

<div class="MyDiv1" id="MyID1" >
<p class="MyDiv2" id="MyID2" ></p>
</div>
<span class="MyDiv3" font="Tahoma" ></span>
تا بعد ;-)

به نام خدا

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

در کن‌ست ها مهم‌ترین بحث ، بحث الکترونیک است. اگر چه در کودکی و خردسالی زیاد با انواع مدارها و کیت‌ها کار کردم ولی باز نیاز به یک دوره کلی دارم. مخصوصاً با ورود AVR به این مبحث و بازشدن برنامه‌نویسی به الکترونیک فکر میکنم کار ساده‌تر شده است.

مسابقه ایران‌کن‌ست 2013 به هر حال در راه است و امیدوارم کن‌ست من بتواند در این مسابقه شرکت کند. 

 

به نام خدا

خب این هفته که در حال رفتن به سوی آن هستیم دارای چند اتفاق مهم است. 

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

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

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

چهارم هم اینکه تا اخر هفته وام خودرو من معلوم می‌شود. ایشالا که جواب OK باشد.

و دست اخر اینکه دوست دارم بخش کتابخانه را پر از کتب برنامه‌نویسی کنم. شاید روزی یک کتاب ...!  


به نام خدا

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

به هر حال وقتی حرف از اقتصاد مقاومتی می‌شود (که نقل بسیاری از محافل اقتصادی و سیاسی است) ، منظور اقتصادی است که در برابر چنین بحران‌ها بتواند مقاومت کند و قیمت تمام شده اجناس و کالا مصرفی بیشتر نشود. 

خب در صنعت نرم‌افزاری کشور از آنجا که "حقوق معنوی سازنده" یا همان CopyRight اصلاً رعایت نمی‌شود و قیمت نرم افزار از رایگان تا چندهزار دلاری در بازار ایران 1000 تومان است (که تنها دلیل گرانی افزایش نرخ CD یا DVD است) ما مشکل چندانی نمیبینم. فقط هزینه برنامه‌نویسان و دست اندر کاران و هزینه های ثابت (برگه ، جوهر پرینتر ، CD ، قطعات مصرفی و ... ) بالا میرود که باعث گرانی نرم‌افزارهای ایرانی میشود.

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

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

  1. کار آفرینی
  2. تولید شغل و افزایش اشتغال (این با مورد اول تفاوت دارد!)
  3. افزایش مهارت 
  4. کاهش هزینه بها تمام شده
  5. مقاومت بیشتر در برابر بحران‌های بازار
  6. تولید علم و پیشرفت عملی 
خب اینها مواردی بود که میتوان به سادگی حدس زد. اما چگونه تولید کنیم؟ 
شاید بر خلاف نظر بسیاری از مردم تولید سخت افزار کار سخت ، کسل کننده و طاقت فرسایی باشد. در جواب باید گفت کار با سخت افزار به دلیل ملموس بودن آن شیرین تر است. 
سخت افزارها با یک کامپیوتر داخلی (که بسیاری ان ها را به نام IC میشناسند) کار میکنند و تنها کافی است یک یا چند میکروکنترلر (یا میکروپروسسور) را برنامه‌نویسی و قطعات جانبی را با سیم به هم وصل کنیم! به همین سادگی.
وقتتون را نگیرم تنها خواستم کمی در این مورد صحبت کنم .در بعد بیشتر در مورد میکروکنترلرها و تولید سخت افزار خواهم نوشت. 
و تو چه می‌دانی debug چیست وقتی شب‌ها خواب خط به خط کدهایت را ندیده باشی ...

- من

به نام او

سلام

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

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

سوم: فردا آزمون تعیین سطح IELTS دارم و هیچی نخوندم. راستش حال خوندنشم ندارم. شاید این ترم رو تکرار کنم...

چهارم: بوی امتحانات داره میاد. کم کم نگران دارم میشم. این ترم هم زیاد چیزی نخوندم.

پنجم: دوتا پروژه حدوداً ریز مونده که باید خیلی زود تحویلشون بدم. 

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

هفتم: کار ساخت اسلایدهای ارائه MBA مونده. این باید تا 5 شنبه تموم بشه.

آخرش: چند وقته یک جمله از دکتر علی شریعتی به گوشم آویزون شده:

"ساعت ها را بگذارید بخوابند بیهوده زیستن را نیازی به شمارش نیست."

یا حق

به نام او

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

Net Add:   10.x.y.z
Sub Add:   255.0.0.0

قابلیت هایی که میتوان گفت : 
  1. دسترسی بالا به اطلاعات
  2. نگهداری فیزیکی اطلاعات در ایران 
  3. عدم نیاز به خرید پهنای باند از بیرون از کشور (امارات و ترکیه)
  4. کاهش مسیریابی برای دسترسی به شبکه 
  5. امنیت (هم داخلی و هم شخصی)
  6. اجرا سیستم های VOIP ، IPTV و سایر سرویس هایی که به اینترنت سرعت بالا نیاز دارد
  7. ...
خب حالا معایب : 
  1. از خارج از کشور به اطلاعات دسترسی پیدا نخواهند کرد ! (مگر set کردن IP دیگر)
  2. دوستانی که خواهان مخفی بودن هستند کمی دچار تزلزل خواهند شد !
  3. فیلترینگ اشتباه! 
و نکته آخر اینکه با این حرکت نه تنها اینترنت قطع نخواهد شد بلکه سرعت دسترسی به برخی از سایت ها بسیار بیشتر خواهد شد...


سلام

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

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

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

و دکتر گفت "این جوری اقتصاد ارواح به وجود اومد!" ...


به نام خدا 

چند وقتی هستش به فکرم زده که یک فریم ورک ایرانی با پایتون بنویسم! فریم ورک یاهمون چهار چوب نرم افزاری یک سری تابع و کتابخانه جهت استفاده بهینه در کد نوشتن هستش. برای مثال شما فکر کنید که می خواهیم یک ایمیل بسیار ساده بفرستیم. برای همین ارسال ما نیاز به برنامه نویسی چندین خط شامل قضایای زیر هستیم :

  • چک باز بودن پورت 25 (پورت 25 ، پورت پیش فرض ارسال ایمیل یا همان SMTP هست)
  • تبدیل نامه ، عنوان و ضمیمه به یک سری کد
  • Auth کردن یا همان تایید کاربر از طریق سرور
  • نوشتن بر روی پورت 
  • ...
حالا به جای این همه کار میشه یک تابع ساده نوشت و این همه کار را در یک خط انجام داد! (مثل php مثلاً با تابع mail). خب این یک مثال بود برای اینکه بگم یک خط به جای چندین خط !

هدف بعدی که دارم اینه که کاربر به جای اینکه چندین زبان رو بلد باشه فقط کافیه یک زبان را چندین بار بلد باشه (مثل شعار کتاب های گاج D:) . همین طراحی یک سایت دینامیک را در نظر بگیرید! ... شما باید چنین چیز هایی را بلد باشید

  • HTML
  • CSS
  • JavaScript
  • PHP
  • MySQL
  • Ajax
  • ...
خوب میشه کاری کرد که طرف حداقل زبان ها را بلد باشه! 

تنها نگرانیم الان اپن سورس یا کلوز سورس بودن محصول‌ام هست. مانده‌ام که چه کنم؟ سرویسی مانند AppEngine گوگل باشم یا جی‌کوئری ؟! ... 

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