دست نوشته های خودم

همه درددلها ، حرفها و یادداشتهای خودم …

بازی دایناسور T-Rex

نویسنده:
۹ دی ۹۴

chrome-canary-dinosaur-640x241

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

بازی دایناسور ، یک بازی مخفی در  مرورگر کروم هست که وقتی اینترنت قطع باشه فعال میشه. یک دایناسور تنها که ایستاده و کار خاصی نمیکنه اما کافیه کلید Arrow یا اسپیس رو بزنید تا شروع کنه به دویدن ! به کاکتوس ها میرسه که باید بپره و همینطور سرش رو بگیره پایین در مقابل پرنده ها ! بازی قابلیت ذخیره شدن هم حتی نداره. بازی بسیار ساده هست و البته اعتیاد آور. علاوه بر کروم دسکتاپ، کروم اندرویدی هم این قابلیت رو داره. اگر هوس این بازی رو داشتید ولی اینترنت گوشی وصل بود ، کافیه که گوشی رو در Airplane Mode قرار بدید و از این بازی لذت ببرید. اگر هم دوست دارید همین الان بازی کنید میتونید برید اینجا

جالب اینجاست که این بازی اینقدر محبوب شده که نسخه اندرویدیش هم به Google Play اومد.  که بیش از ۱۰ هزاز بار دانلود شده ! در گوگل پلی برای این بازی این توضیح باحال رو آورده :

This is a game about a Tyrannosaurus Rex that run and can jump. . Funnily enough, his solely goal in life is to avoid crashing into cacti, which apparently can get him killed or at least stuck until you start over again .

پی نوشت : خیلی دایناسوره رو دوست دارم !

 

Facebooktwittergoogle_pluslinkedinmail

         برنامه نویسی , کامپیوتر , وب سایت ها

         , , , ,

جستجو در مجموعه با متد find_in_set در MySql

نویسنده:
۲۶ خرداد ۹۴

index

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

برای مثال

select * from table where find_in_set(76,ShareWith) > 0 

در مثال بالا ، فیلد ShareWith مقداری اینچنین را دارد : ۲۵,۵۶,۷۶,۴۲ ، یا ۷۶,۹۲ یا ۹۲ . در این متد کلیه ردیف هایی که مقدار ۷۶ در فیلد ShareWith آنها قرار دارد در خروجی قرار میگیرند.

 

Facebooktwittergoogle_pluslinkedinmail

         برنامه نویسی

         , , ,

عدم لود (نمایش) آیکنهای SVN

نویسنده:
۲۴ خرداد ۹۴

subversion_logo-384x332

یکی از اصول اصلی مدیریت پروژه های بزرگ و تیمی ، داشتن ابزاری برای کنترل سورس ها بر روی سروری مطمین است. در صورتیکه تیم برنامه نویسی بیشتر از دو نفر را دارید و از این ابزار استفاده نمیکنید ، قطعا دچار مشکلات بزرگی خواهید شد. دلایل اهمیت این موضوع زیاد است ولی مهمترین دلایل به نظر من، مشکل عدم سینک شدن کدهای برنامه نویسهای شما  و همچنین ، اهمیت ثبت تاریخچه های تغییرات و … هستند.

برخی از ابزارهای معروف کنترل سورس ، عبارتند از GIT ، SVN ، TFS و …

چند وقت پیش ، با یک مشکلی برخورد کردیم توی شرکت که مربوط به کنترل سورس SVN بود. مشکل این است که بعد از اینکه SVN Client  رو نصب میکنید ، و استوریج خودتون رو مشخص میکنید ، در صورتی که فایل جدیدی ریخته باشید و Check-In نکرده باشید ، آیکن فولدرهای ویندوز شما باید تغییر کنه . در حالت بروز بودن سورس ها هم ، آیکن های ویندوز شما باید یک تیک در کنارشون داشته باشند. اما این اتفاق نیفتاده بود و آیکنها درست نمایش داده نشده بودند. ظاهرا این مشکل ، یک مساله رایج هست.

بعد از بررسی متوجه شدم که علت این مساله وجود نرم افزارهای دیگه ای هستند که قبلا نصب شده و آیکنهای ویندوز رو تغییر دادند براتون مثل SkyDrive ، یا DropBox یا …

برای رفع مشکل باید برید به رجیستری ویندوز و تغییراتی بدین. برای اینکار منوی Run رو باز کنید (کلید ویندوز + R). بعد تایپ کنید RegEdit و اینتر رو بزنید. رجیستری ویندوز براتون باز خواهد شد و سپس به بخش زیر بروید :

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers

حالا باید تصویری مشابه تصویر زیر داشته باشید که احتمالا ندارید.

8s2Ul

پس مجبورید که اضافی ها رو پاک کنید تا این قسمت رجیستری شما مشابه تصویر بالا بشه. برای حذف مشابه تصویر پایین عمل کنید.

196-tortoisesvn-icons-reg

حالا در نهایت در اکسپلورر باید آیکنهای مربوط به اس وی ان اینطوری باشه :

196-tortoisesvn-icons-files

 

 

 

Facebooktwittergoogle_pluslinkedinmail

         برنامه نویسی , کامپیوتر

         , , , ,

خطای اتصال به TFS

نویسنده:
۴ اسفند ۹۳

  url

گاهی بعد از اینکه در سرور TFS ، تغییراتی اعمال می شود ، کاربران با این خطا  http code 503: Service Unavailable  روبرو می شوند و امکان اتصال به سرور TFS را ندارند و سورسهای خود را نه Get و نه Checkin میتوانند بکنند. یکی از دلایل این خطای پردردسر ، عدم استارت بودن سرویس  Application Pool مربوط به TFS است که بعضا به دلایل شبکه ای (مسایل مربوط به دومین کنترلر یا …) یا تغییرات در وضعیت امنیتی کاربر متصل به سرویس ، به وجود می آید .

tfs1-damage

راه حل این است که یک کاربر جدید که دسترسی administrator داشته باشد ، به عنوان کاربر جدید ست کنید. دقت کنید که سرویس های مربوط به SQL Server نیز باید Running باشد.

url2

Facebooktwittergoogle_pluslinkedinmail

         برنامه نویسی , عکس , کامپیوتر

         , , ,

بزرگان برنامه نویسی ، آندرس هجلزبرگ ، پدر C#

نویسنده:
۲۶ بهمن ۹۳

IMG_2025-400x300

آندرس هجلزبرگ (متولد دسامبر ۱۹۶۰) مهندس نرم افزار دانمارکی برجسته که او را برای طراحی چندین زبان برنامه نویسی محبوب و تجاری موفق میشناسیم. او نویسنده اصلی توربو پاسکال و معمار اصلی دلفی بوده است. او در حال حاضر برای مایکروسافت به عنوان معمار C# و توسعه هسته تایپ اسکریپت کار می کند.

او متولد کپنهاگ دانمارک است و دانشجوی دانشگاه فنی دانمارک بود که از این دانشگاه فارغ التحصیل نشد. او در سال ۱۹۸۰ شروع به نوشتن برنامه برای میکروکامپیوتر nascom کرد که شامل یک کامپایلر پاسکال بود. (Blue Label Software Pascal) او بلافاصله این کامپایلر را بازنویسی کرد و برای سیستم عامل DOS ارایه کرد که نام آن Poly Pascal بود. بعدها این کامپایلر را تحت لایسنس شرکت بورلند همراه با IDE مخصوص با نام توربو پاسکال عرضه شد. از این پس رقابتی بین Poly Pascal و Turbo Pascal شکل گرفت. آندرس و شرکایش ، تصمیم گرفتند تا یک فروشگاه رایانه ای راه اندازی کنند که نام ان را PolyData گذاشتند و توزیع محصولات مایکروسافت را بر عهده داشتند که آنها را در تقابل با بورلند قرار داده بود.
شرکت بورلند ، با استفاده از کامپایلر توربو پاسکال ، به یکی از موفقترین و بزرگترین شرکتهای جهان تبدیل شده بود و در این حین PolyData و هجلزبرگ در شرایط سخت مالی کار خود را ادامه میدادند تا در سال ۱۹۸۹ ، هجلزبرگ تصمیم گرفت به بورلند بپیوندد. او به کالیفرنیا مهاجرت کرد و مهندس ارشد بورلند شد. او در طی این سالها تا ۱۹۹۶ پاسکال را باز هم ارتقا داد و همچنین معمار ارشد تیم دلفی شد.

او در سال ۱۹۹۶ ، بورلند را ترک و به مایکروسافت پیوست. او J++ را راه اندازی کرد و پس از آن Windows Foundation Classes را ایجاد کرد. او به یکی از ارکان مهم مایکروسافت تبدیل شد و سپس در سال ۲۰۰۰ زبان قدرتمند و مشهور C# را تولید کرد. او باز هم فعالیت های چشمگیر خود را ادامه داد و در سال ۲۰۱۲ پروژه جدید خود با نام TypeScript را معرفی کرد. (اینجا)
به یاد داشته باشیم ، او هرگز از دانشگاهی فارغ التحصیل نشد. او همچنان در شرکت مایکروسافت مشغول به فعالیت است. از او کتابهایی نیز به انتشار رسیده است که مشهور ترین آن The C# Programming Language است. (اینجا)

Facebooktwittergoogle_pluslinkedinmail

         برنامه نویسی

         , , , , , ,

AAA چیست ؟

نویسنده:
۲۵ بهمن ۹۳

internet

یکی از موضوعاتی که تقریبا یک ساله در کارهای روزمره شرکت درگیرش هستیم AAA و سامانه Real-time اتصال کاربران به اینترنت هست. در طی این یک سال ، با دوست خوبم عماد کارآمد روی این سیستم کار میکردیم که البته زحمت دولوپ و توسعه با اون بود. و باید بگم در ابتدا واقعا اطلاعاتمون خیلی کم بود و مجبور بودیم مطالعات زیادی داشته باشیم.

اما AAA (تریپل ای) یعنی چه ؟

AAA یک پروتکل شبکه کامپیوتری و به عبارتی مخفف سه کلمه برای احراز هویت، مجوز و حسابرسی است. (Authentication , Authorization , Accounting) البته در مفهمو عام تر و واقع بینانه ، این یک معماری امنیتی برای کنترل دسترسی به منابع شبکه هست یعنی اینکه این پروتکل برای هر سامانه ای که قراره کاربرانی داشته باشه و کاربران اون سیستم اعتبار داشته باشند و بتونن به سیستم وارد بشن ، مورد نیاز هست و کارآیی داره.

در این سیستم  هر کاربر از طریق پروتکولهای اتصال شبکه ، سعی میکنه تا به سرور مربوطه متصل بشه. برای این اتصال ، از پکتهای مخصوص استفاده میشه. برای مثال اگر شما از روش اتصال RADIUS استفاده میکنید (همین سامانه اتصال اینترنت فعلی کشورمون) ، سیستم پکتهای مخصوص Radius رو ارسال میکنه که دو تا از اونها به شرح زیر هستند.

  • در خواست احراز هویت : کاربر نام کاربری و رمز عبورش رو توی مودم یا کانکشن زده و درخواست اتصال میکند
  • درخواست به روز رسانی اعتبار : BRAS (به عبارتی NAS های شبکه کارشون اینه ترافیک رو کنترل میکنن و BRAS ها ترافیک های مربوط به پکت های مختلف رو از سیستم شما به ISP منتقل میکنند)  اطلاعات دریافتی از کاربر را در طی مدت زمان مشخصی (مثلا هر ده دقیقه) به سرور AAA ارسال میکند تا از مقدار استفاده و اعتبار کاربر مطلع شوند و به عبارتی میزان استفاده کاربر از اینترنت در سیستم ثبت شود.

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

aaa_basic_model_1

  1. درخواست کاربر برای اتصال به DSLAM های متصل به خط تلفن کاربر می رود (در صورتی که خط تلفن شما رانژه شده باشد)
  2. DSLAM ، اطلاعات شما رو به BRAS ارسال می کند. (DSLAM ها )
  3. BRAS اطلاعات کاربری شما (نام کاربری و رمز عبور) را به سرور AAA ارسال میکند (درخواست احراز هویت) تا مشخص شود که شما اطلاعات رو به درستی وارد کرده اید (نام کاربری و رمز عبورتون و همینطور مک مودم و PITP خط تلفنتون) و اعتبار دارید یا خیر (شارژ حجم و زمان).
  4. در صورتی که جواب مرحله سه درست باشه ، شما به ابر اینترنت متصل خواهید شد در غیر اینصورت شما کد خطای مربوطه رو مشاهده میکنید و متصل نخواهید شد. اینکار با پاسخ  AAA به BRAS انجام می شود (پاسخ احراز هویت)
  5. BRAS ها هر چند دقیقه یک بار (مثلا هر ۱۰ دقیقه یک بار) اطلاعات مصرف اینترنت شما رو به سرور AAA میفرستند و AAA  هم آخرین مانده اعتبار زمان و حجم شما رو به روز میکند در سیستم. (درخواست BRAS برای به روز رسانی اعتبار در AAA ، پاسخ دریافت اطلاعات از  AAA به BRAS)
  6. در مواقع خاص ، برای تغییر سرعت کاربران ،  یک درخواست از AAA به BRAS ارسال می شود.

 

Facebooktwittergoogle_pluslinkedinmail

         برنامه نویسی , کامپیوتر

         , , , , ,

تبدیل عدد به رشته فارسی در PHP

نویسنده:
۱۹ آبان ۹۱

کد تابع تبدیل عدد به رشته فارسی رو چند روز پیش نیاز داشتم و از اینجا تونستم پیدا کنم. بعد کمی تغییر دادم و اینی شد که در اینجا میبینید.

قراره این تابع ،  رشته فارسی معادل یک عدد رو برای حالتهایی مثل دومین ، یا هشتاد و هشتمین و مشابه آن تولید کنه.

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

ممنون و سلامت باشید

 

Facebooktwittergoogle_pluslinkedinmail

         برنامه نویسی , کامپیوتر

         , ,

Sphinx چیست ؟

نویسنده:
۲۴ شهریور ۹۱

Sphinx ، یک سرویس ایندکس گزاری رایگان است که اطلاعات دیتابیس رو میتونه به روش های بسیار مفیدی ایندکس کنه. در حال حاضر این سیستم روی My SQL  و چند دیتابیس دیگر قابل استفاده هست. از مزیت های عمده این سرویس ، سرعت بالا و راحتی کار با اون هست. برای اینکه از این سیستم بتونید استفاده کنید باید ، Sphinx رو از اینجا  دانلود کنید. نحوه نصب اسفینکس کمی قلق داره و میتونید طبق این لینک  قدم به قدم اینکار رو انجام بدید ولی توصیه من این هست که از متخصص این سیستم بهره بگیرید.

ویکی پدیا ، برخی از صفات اسفینکس رو اینجا شرح داده و البته این مساله رو هم ذکر کرده که تعداد بسیار زیادی از وب سایتهای دنیا از اسفینکس استفاده میکنند که یکی از اونها BoardReader.com هست که چیزی در حدود ۱۶ بیلیون رکورد رو داره !! و شلوغ ترین وب سایت که از اسفینکس استفاده میکنه ، سایت  Craigslist.org  است که در روز چیزی حدود ۲۰۰ میلیون کواری درخواست اطلاعات رو دریافت میکنه !!

بعد از اینکه اسفینکس رو دریافت و نصب و تنظیم کردید ، میتونید برای استفاده ، صفحه یا برنامه جستجو از دیتابیس رو برنامه نویسی کنید. من یک پکیج خوب و ساده برای استفاده از اسفینکس پیدا کردم که با کمک اون در دات نت و زبان C# یک برنامه ساده نوشتم. این پکیج رو از اینجا میتونید دانلود کنید. کدهای برنامه نویسی به شرح زیر هست :

SphinxClient cli = new SphinxClient(“localhost”, 9312);   //here , you can see the database server name and also the port that use for sphinx

cli.AddQuery(TextBox1.Text, “*”); //here you send the string for search

SphinxResult[] results = cli.RunQueries ();// here fetch result

if (results != null && results.Length > 0)// here checking
}
for (int i = 0; i < results.Length; i++) //here loop
}
Response.Write(results[i].totalFound.ToString() + ” ITEM FOUNDS <br><br>”); //here show count
foreach (SphinxMatch match in results[i].matches) //here item by item
Response.Write(“DocumentId ” + match.docId ); // here show document id — id of record
{
{

برای استفاده از سرویس اسفینکس ، توصیه میکنم این راهنما رو حتما بخونید.

Facebooktwittergoogle_pluslinkedinmail

         برنامه نویسی , کامپیوتر

         , ,

به روز رسانی ترتیب وار در MySQL

نویسنده:
۳۱ تیر ۹۱

چند هفته ای به علت درگیری های بعد از ازدواج نتونستم درست به وبلاگ سر بزنم و شرمنده دوستانی که کامنت گذاشته بودند شدم.

امروز یک کواری رو نوشتم که بهانه خوبی برای به روز رسانی وبلاگ شد. قضیه از این قرار بود که ، در عین ناباوری دیدم که در یکی از جدولهای پر رکورد دیتابیس سایت ، فیلد آی دی از حالت اتواینکریمنت بیرون رفته ، و در نتیجه حدود ۳۰۰ هزار رکورد ، با آی دی صفر ذخیره شده اند. در نتیجه تصمیم گرفتم که به نحوی مقادیر رو به روز رسانی کنم.

اولین کار این بود که شناسه آخرین رکورد ( بر اساس فیلد تاریخ) را به دست آوردم و سپس کلیه رکوردهایی که شناسه با مقدار صفر داشتند رو لیست کردم. حالا باید با یک کواری (بدون حلقه for یا …) رکوردهای با مقادیر شناسه ۰ رو یکی یکی به روز رسانی میکردم. یعنی مقدار آخرین شناسه ای که به دست آورده بودم رو برای هر رکورد ، یک به یک اضافه میکردم.

//متغیری که قرار است مرتبا افزایش یابد و مقدارش در فیلد آی دی قرار بگیرد

SET @StartValue = 209111  ;//variable

//دستور کواری که مقدار فیلد آی دی را به روز خواهد کرد

UPDATE mytable SET id = @StartValue:=@StartValue+1 WHERE  recdate > ‘2011-09-30’; // update query

نکته اینکه : شرطی که ما قرار داده ایم برای این است که  آی دی های رکوردهای قبلی خراب نشود.

حال برای یک جدول که فیلد آی دی همه رکوردهای آن صفر می باشد ، کد زیر را اجرا میکنیم :

SET @StartValue = 1;//variable

UPDATE mytable SET id = @StartValue:=@StartValue+1 ‘;//update query

Facebooktwittergoogle_pluslinkedinmail

         برنامه نویسی , کامپیوتر

         , , ,

فونت های دلخواه در صفحات وب

نویسنده:
۹ اردیبهشت ۹۱

واسه وب دیزانرها (Web Designers) خیلی پیش میاد که با خودشون میگن ، کاش میشد از فونت فارسی خاصی برای سایت استفاده کنیم. حتما میدونید که سیستم عامل ها ، به صورت پیش فرض ، فونتهای خاص منظوره ما رو ندارند. مثلا فونت B Nazanin که یک فونت معروف فارسی هست رو باید بعد از راه اندازی سیستم عامل ، نصب کنید.

خوشبختانه راه حل خوبی برای این مساله پیدا شده. راه حل به شرح زیر است :

۱ – ابتدا به اینجا وصل شده و فونت مورد نظر خودتون رو به استاندارد مخصوص استفاده در وب تبدیل کنید. (تصویر شماره یک)  در این قسمت ، امکان انتخاب با گزینه Add Font File به شما داده میشه. بعد از زدن کلید ، یک فایل زیپ به شما داده میشه. (تصویر شماره ۲) – در فایل زیپ حاصل ، تعدادی فایل می بینید که برای استفاده از فونت مورد نظر به شما داده شده است. (تصویر شماره ۳) در واقع این فایلها  ، فونت های شما هستند که ازش استفاده خواهید کرد.

تصویر شماره یک

تصویر شماره دو

تصویر شماره ۳

۲ – فونت ها را به روی سایت خودتون منتقل کنید و آدرس اون رو مد نظر داشته باشید.

۳ – کد CSS تولید شده مخصوص استفاده از فونت در فایل Stylesheet.css هست که اون رو باید توی فایل CSS اصلی سایتتون بزارید !!! من نمونه اون کد رو اینجا گذاشتم براتون (البته دقت کنید که URL رو باید درست بزنید ، یعنی همون آدرسی رو که گفتم بهتون رو باید قبل از اسم فایلتون قرار بدید در کدهای زیر

@font-face {
font-family: ‘BNazaninRegular’;
src: url(‘bnazanin-webfont.eot’);
src: url(‘bnazanin-webfont.eot?#iefix’) format(’embedded-opentype’),
url(‘bnazanin-webfont.woff’) format(‘woff’),
url(‘bnazanin-webfont.ttf’) format(‘truetype’),
url(‘bnazanin-webfont.svg#BNazaninRegular’) format(‘svg’);
font-weight: normal;
font-style: normal;

۴ – سپس در هر جایی که میخواین از فونت استفاده کنید .باید کد زیر رو قرار بدید

font-family: b nazanin

۵ – اینجا ، یک سایت موقتی و الکی هست که من صرفا برای تست همین مورد ، ساختمش ! می بینید که از نازنین به راحتی استفاده میکنه ، چه روی سیستم کلاینت ، فونت نازنین باشه چه نباشه !

Facebooktwittergoogle_pluslinkedinmail

         برنامه نویسی , دست نوشته , کامپیوتر

         ,