همه نوشته‌ها

اینترنت بی‌طرف حق مسلم ماست

اینترنت بی‌طرف حق مسلم ماست

شاید شما یادتون نباشه اما من از اینترنت بدون فیلترینگ در ایران یادمه. چند سال دیگه شما می‌تونید به بچه‌های اون زمان بگید، اینترنت بی‌طرف رو یادتونه. چون داریم از دستش می‌دیم! داستان چیه؟ وزارت ارتباطات، ارائه‌کنندگان اینترنت رو مجبور کرده تا بر اساس تعرفه جدید خدمات بدهند و روی حجم ماهیانه رقابت کنند. شرکت‌ها هم ترافیک داخل کشور رو نصف قیمت ترافیک خارج کشور حساب می‌کنند و حتی بعضی برای ۵۰۰ سایت پربازدید داخلی ترافیک رو رایگان محاسبه می‌کنند و این نقض بی‌طرفی شبکه محسوب می‌شه.

کتابچه تست جوئل روی گیت‌بوک

کتابچه تست جوئل روی گیت‌بوک

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

وقت صحبت درباره افسردگی و بی‌انگیزه بودن برنامه‌نویسان فرا رسیده

وقت صحبت درباره افسردگی و بی‌انگیزه بودن برنامه‌نویسان فرا رسیده

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

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

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

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

شرکت، خانواده نیست!

شرکت، خانواده نیست!

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

سلام دنیا

سلام دنیا

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

ساختار تیم‌های مدرن نرم‌افزاری قسمت ششم: ارتباط با مشتریان

ساختار تیم‌های مدرن نرم‌افزاری قسمت ششم: ارتباط با مشتریان

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

۳۰ روز با TDD: روز هجدهم - بازبینی Refactoring قسمت اول

۳۰ روز با TDD: روز هجدهم - بازبینی Refactoring قسمت اول

توجه: قبل از این نوشته، آزمون‌های واحد (Unit testها) مربوط به تغییرات PlaceOrder نوشته قبلی را از اینجا می‌توانید دانلود کنید. در چند نوشته گذشته، متد PlaceOrder را از OrderService بیرون بردیم. برای مرور، متد فعلی این شکلی است: این متد کمی طولانی شده و همچنین داریم به محدوده نقض Single Responsibility Principel (برای مرور SRP روز پنجم را مطالعه کنید) وارد می‌شویم. در حال حاضر شش دلیل برای اینکه این متد باید تغییر کند شمردم:

«پریدن تیک» یا وقتی یک «نرم افزار» برای کشور مشکل ایجاد می‌کند

«پریدن تیک» یا وقتی یک «نرم افزار» برای کشور مشکل ایجاد می‌کند

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

۳۰ روز با TDD: روز هفدهم-تعیین ترتیب اجرا در mock ها

۳۰ روز با TDD: روز هفدهم-تعیین ترتیب اجرا در mock ها

امروز هم توسعه برنامه فروشگاهی که به روش TDD نوشتیم را با نگاهی نزدیک‌تر به سرویس Order Fulfillment که یک سرویس خارج از برنامه اصلی است، ادامه می‌دهیم. ارسال سفارش اگر نوشته قبلی را خوانده باشید، به یاد دارید که ما با یک سرویس خارج از برنامه اصلی برای اجرای سفارشات کار می‌کردیم. آن‌ها یک API فراهم کرده‌اند و ما OrderFulfillmentService را فراخوانی می‌کنیم. interface این API چندین فراخوانی و مجموعه‌ای از قوانین برای ترتیب فراخوانی‌ها دارد.

صادرات نرم‌افزار و خدمات نرم‌افزاری: خوب، بد، زشت

صادرات نرم‌افزار و خدمات نرم‌افزاری: خوب، بد، زشت

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

۳۰ روز با TDD: روز شانزدهم- استفاده از پارامترهای مشخص در Stub ها

۳۰ روز با TDD: روز شانزدهم- استفاده از پارامترهای مشخص در Stub ها

ما مثال چند نوشته قبلی این سری نوشته‌ها را پی خواهیم گرفت. نیازمندی نرم‌افزاری را در روز دوازدهم از Stub بیان کردیم. به عنوان بخشی از این نیازمندی، ما باید با یک سیستم ثبت سفارش خارجی ارتباط برقرار کنیم. تست کیس بعدی که می‌خواهم به آن بپردازم مربوط به همین ارتباط با سیستم خارجی ثبت سفارش است. به جای اینکه خودمان بخش ثبت سفارش را بنویسیم، مدیریت تصمیم گرفته که آن را برون‌سپاری (outsource) کنیم.

چطور (تقریباً) هر چیزی را در git به حالت قبلی برگردانیم؟ قسمت اول

چطور (تقریباً) هر چیزی را در git به حالت قبلی برگردانیم؟ قسمت اول

این نوشته ترجمه خلاصه شده‌ای است از How to undo (almost) anything with Git که در وبلاگ گیت‌هاب انتشار یافته است و از سهیل رشیدی برای معرفی آن در خبرنامه iDevCenter تشکر می‌کنیم. undo کردن تغییر عمومی (Public) سناریو:شما از دستورgit push استفاده کردید و تغییرات را به گیت‌هاب فرستادید و حالا متوجه شدید که یکی از commit ها مشکلی دارد، می‌خواهید آن commit را undo کنید. دستور Undo:برای سناریو بالا از دستور زیر استفاده کنید:

۱۰ اصل برای داشتن یک رابط کاربری خوب

۱۰ اصل برای داشتن یک رابط کاربری خوب

یک قول قدیمی وقتی درباره تست جوئل می‌نوشتم، در توضیحات مربوط به کاربردپذیری راهرویی قول دادم که درباره مواردی که به ایجاد یک UI خوب نرم‌افزاری می‌انجامد یک سری نوشته بنویسم. حالا بعد از نزدیک به یک سال و سه ماه از آن نوشته، از خلاصه اصول کاربردی برای داشتن یک UI خوب به روایت جیکوب نیلسن برایتان خواهم گفت. اگر از خوانندگان قدیمی وبلاگ آٰرایه باشید، احتمالاً آقای نیلسن را از نوشته مرتبط با قانون تجربه اینترنتی جیکوب به یاد دارید.

آگاهی امنیتی : چگونگی بدست آوردن کلمه عبور Application Pool های IIS

آگاهی امنیتی : چگونگی بدست آوردن کلمه عبور Application Pool های IIS

این نوشته را در دسته‌بندی برنامه‌نویسی شیرپوینت قرار دادم چرا که بیشترین زمانی که با Application Pool ها سر و کار داشتم زمان نصب و تنظیم شیرپوینت بوده است. کد اصلی مربوط به نوشته آقای Sahil Malikاست. در شیرپوینت ۲۰۰۷ می‌توانستیم با استفاده از SPApplicationPool.Password کلمه عبور Application Pool را بدست آوریم که در نسخه‌های بعدی دیگر استفاده نمی‌شود. برنامه‌ای به نام appcmd در آدرس c:\windows\system32\inetsrv وجود دارد که با استفاده از دستور زیر کلمه عبور Application Pool را به شما نمایش می‌دهد.