نظرات مطالب
معرفی کتابخانه PdfReport
یکی از خوبی‌های کارهای سورس باز امکان مشارکت عموم برنامه نویس‌ها است. اگر علاقمند به مشارکت در آن بودید، می‌تونید وصله‌های خودتون رو در اینجا ارسال نمائید تا به پروژه یا مثال‌های آن اضافه شوند. با تشکر
اشتراک‌ها
ایجاد دکمه های دلخواه Bootstrap ای

اگر می‌خواهید درگیر مسائل کدنویسی برای ایجاد یک دکمه که باید شکلی خاص داشته باشه نشوید، لینک بالا کار را برای شما راحت کرده است.

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

نظرات نظرسنجی‌ها
به عنوان یک برنامه نویس به کدام گزینه بیشتر اهمیت می دهید؟
موافقم. ولی مبحث بیمه اونقدری مهم نیست که شما مثلا 1 میلیون کمتر از خواستتون بگیرین. 
به این دلیل که اکثر برنامه نویس‌ها در شرکت‌های خصوصی هستند و اگر خدای نکرده دو ماه نتونن برن سر کار بیمشون هم قطع میشه حتما. من تا حالا امتحان نکردم ولی یکی از دوستان من به طور کل خویش فرما بیمه رد میکنه برای خودش. 
از نظر این که سابقه بیمه ای مرتبط جایی لازم بشه هم بازم برنامه نویس‌ها زیاد کمکی بهشون نمیشه چون در نهایت باید تو مصاحبه خودشونو نشون بدن. سابقه بیمه ملاک خوبی نیست. میشه همون مدارک رو از شرکت هایی که فرد کار کرده هم به عنوان گواهی اشتغال به کار جمع آوری کرد.
موافقم برنامه نویس‌ها 35 به بالا باید مراقب باشند. ولی احتمال میدم خیلی از ماها 35 به بالا باید دنبال یه شغل دیگه باشیم مخصوصا اگر تو ایران موندیم. 
نظرات اشتراک‌ها
روان شناسی تیمی؛ 10 سؤالی که باید هر هفته‌ از اعضای تیم پرسید
روانشناسی!
چیزی که خیلی از مدیر پروژه‌ها و برنامه نویس‌ها به آن احتیاج دارند
MBTI برای هر مدیر پروژه ای و هر سرپرست تیم نرم افزاری ای میتونه مفید باشه
همچنین اگر مسئول سرو کله زدن با مشتری هم باشد
www.iranmbti.ir
اشتراک‌ها
زمان ارائه Windows 8.1 به عموم
مایکروسافت اینبار ویندوز 8.1 را ابتدا به سازنده‌های سخت افزار ارائه داده (نگارش RTM) و به برنامه نویس‌ها عنوان کرده که مانند سایرین صبر کنید تا بعد (برخلاف رویه گذشته که این نگارش، به مشترکین MSDN زودتر از بقیه ارائه می‌شد) و ... این مساله سبب دلخوری شده است.
زمان ارائه Windows 8.1 به عموم
نظرات اشتراک‌ها
دوراهی انتخاب NHibernate و Entityframework
مشکل عمومی در بین برنامه نویس‌ها وجود دارد و آن هم این است که فکر می‌کنند آنی که سریع‌تر است بهتر است. خیر! در ADO.NET خام تمام مسایلی که توضیح دادم مانند کش، ترجمه کوئری، نگاشت‌ها و رعایت بسیاری از best practices که در EF لحاظ شده، وجود ندارند. 50 قسمتی مطلب در موردش در سایت هست. در طول زمان همین کلاس‌های sql helper برای لحاظ این الگوها باید تغییر کنند و اینجا است که دست آخر به این نتیجه خواهید رسید، EF از تمام کارهای دست ساز بسیاری از برنامه نویس‌ها، سریعتر و بهینه‌تر است.
کار اصولی با بانک اطلاعاتی صرفا یک select ساده نیست که بر اساس آن کارآیی و یا بهتر بودن روشی را مشخص کنید. 
مطالب
Anti CSRF module for ASP.NET

CSRF یا Cross Site Request Forgery به صورت خلاصه به این معنا است که شخص مهاجم اعمالی را توسط شما و با سطح دسترسی شما بر روی سایت انجام دهد و اطلاعات مورد نظر خود را استخراج کرده (محتویات کوکی یا سشن و امثال آن) و به هر سایتی که تمایل دارد ارسال کند. این‌کار عموما با تزریق کد در صفحه صورت می‌گیرد. مثلا ارسال تصویری پویا به شکل زیر در یک صفحه فوروم، بلاگ یا ایمیل:

<img src="http://www.example.com/logout.aspx">

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

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

  • در برنامه خود قسمت Referrer header را بررسی کنید. آیا متد POST رسیده، از سایت شما صادر شده است یا اینکه صفحه‌ای دیگر در سایتی دیگر جعل شده و به برنامه شما ارسال شده است؟ هر چند این روش آنچنان قوی نیست و فایروال‌های جدید یا حتی بعضی از مرورگرها با افزونه‌هایی ویژه، امکان عدم ارسال این قسمت از header درخواست را میسر می‌سازند.
  • برنامه نویس‌ها نباید مقادیر حساس را از طریق GET requests ارسال کنند. استفاده از روش POST نیز به تنهایی کارآمد نیست و آن‌را باید با random tokens ترکیب کرد تا امکان جعل درخواست منتفی شود. برای مثال استفاده از ViewStateUserKey در ASP.Net . جهت خودکار سازی اعمال این موارد در ASP.Net، اخیرا HTTP ماژول زیر ارائه شده است:

تنها کافی است که فایل dll آن در دایرکتوری bin پروژه شما قرار گیرد و در وب کانفیگ برنامه ارجاعی به این ماژول را لحاظ نمائید.

کاری که این نوع ماژول‌ها انجام می‌دهند افزودن نشانه‌هایی اتفاقی ( random tokens ) به صفحه‌ است که مرورگر آن‌ها را بخاطر نمی‌سپارد و این token به ازای هر سشن و صفحه منحصر بفرد خواهد بود.

برای PHP‌ نیز چنین تلاش‌هایی صورت گرفته است:
http://csrf.htmlpurifier.org/


مراجعی برای مطالعه بیشتر
Prevent Cross-Site Request Forgery (CSRF) using ASP.NET MVC’s AntiForgeryToken() helper
Cross-site request forgery
Top 10 2007-Cross Site Request Forgery
CSRF - An underestimated attack method

مطالب
JQuery 1.3 ارائه شد

روز قبل، نگارش رسمی و نهایی jQuery 1.3 ارائه شد و بلافاصله هم فایل مخصوص آن جهت بکارگیری intellisense ویژوال استودیو، توسط علاقمندان تهیه و عرضه گردید.

تازه‌های این نگارش:
  • Sizzle : یک موتور CSS selector قدرتمند (400 درصد بهبود سرعت نسبت به عملکرد کتابخانه قبلی در این مورد)
  • بازنگری در نحوه مدیریت رخدادها
  • موتور تزریق HTML‌ بسیار سریع (تا 15 برابر سریعتر نسبت به کتابخانه قبلی)
  • موتور بسیار سریع موقعیت یابی
  • تشخیص نوع مرورگر در آن متوقف شده و بجای آن از تشخیص ویژگی‌ها برای ماندگاری بیشتر این کتابخانه در سال‌های آتی استفاده گردیده است. (بجای بررسی userAgent ، از باگ‌های شناخته شده یا ویژگی‌های خاص، جهت تشخیص مرورگر استفاده می‌شود تا بازه وسیعی از محصولات مشابه را بتوانند پوشش دهند)
لیست کامل این تغییرات را در این آدرس می‌توانید ملاحظه نمائید.
  • جهت مشاهده و آزمایش بهبود کارآیی این کتابخانه لطفا به این صفحه مراجعه کنید. (لیست کامل این آزمایشات در انتهای صفحه لیست تغییرات، قابل دسترسی است)
همچنین تیم مربوطه در پی آن است تا در طی یکی دو هفته آینده، نگارش jQuery 1.3.1 را نیز بر اساس بازخوردهای جدید جامعه برنامه نویس‌ها ارائه دهد.

مانند همیشه این کتابخانه در دو نگارش فشرده شده (جهت استفاده در سایت‌ها) و نگارش عادی و حجیم‌تر (جهت برنامه نویسی و دیباگ کردن کدها) ارائه شده است. چون کدها در Google code هاست شده احتمالا دسترسی به آن مشکل خواهد بود. این مجموعه را از این آدرس می‌توانید دریافت کنید.

توصیه می‌شود از سرورهای سریع گوگل بعنوان هاست کتابخانه جی‌کوئری سایت‌های خود استفاده کنید. برای این منظور از آدرس زیر می‌توان استفاده کرد:
http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js