برنامه نویسی

ایده: جستجوی هوشمند

سلام،

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

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

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

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

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

به طور کلی این ایده جستجوی هوشمند بسیار جالب هست و می توان آن را به انواع مختلف بسط داد. یکی از دیگر ایده ها در این زمینه جستجوی کلمات بر اساس روشهای خوشه بندی است. مثلا اگر شما به دنبال کلمه نیکی می گردید بر اساس خوشه بندی موضوعی متوجه شود که کلمات مترادف آن کدام هستند و آنها را نیز در نتایج جستجو لحاظ کند مثلا کلماتی مانند: خوبی، خوب، نیکوکاری و…


نوشتن یک تابع با استفاده از عبارات منطقی برای تایید صحت email

نمیدانم شما چقدر از عبارات منطقی در برنامه نویسی استفاده میکنید، به طور کلی استفاده از عبارات منطقی بسیار لذت بخش و ساده هست و کدنویسی را مینیمم میکنه. قبلا یک تابع برای حذف کدهای html از درون متن در همین سایت گذاشته بودم. امروز میخوام یک تابع با استفاده از vb.net برای تشخیص اینکه پست الکترونیک به درستی وارد شده یا نه براتون بگذارم به امید اینکه مورد استفاده قرار بگیره.

تعجب نکنید کل این تابع فقط یک خط هست! البته میتوانید در asp.net هم از آن استفاده کنید:

Function isValidEmail(ByVal emailAddress As String) As Boolean
Return Regex.Match(emailAddress, “^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$”).Success
End Function


نوشتن برنامه بارکد در asp.net

سلام

من یادم هست که زمان دانشجویی در یک شرکت کارمیکردم که یکی از محصولاتش نرم افزار بارکد بود و اون نرم افزار را به قیمت نسبتا بالایی به کارخانجات می فروخت. یک بار که تصمیم گرفته بودند ورژن جدید نرم افزار را بنویسند من در اینترنت به دنبال این موضوع گشتم و دیدم منابع خیلی زیادی وجود داره و در نهایت شرکت به جای نوشتن ورژن جدید از یک نرم افزار کدباز استفاده کرد! و خیلی هم از محصول شرکت که دو سال روش کار شده بود بهتر بود….! این جریان برمیگرده با سال ۱۳۷۶ .

تقریبا دو ماه پیش برای یک پروژه تحت وب تصمیم گرفته شد که از بارکد استفاده کنیم و من با توجه به تجربیات قبلی برنامه بارکد را در ۲ ساعت نوشتم! در حال حاضر هم داره به خوبی کار میکنه… فقط یک موضوعی ذهن من را مشغول کرده و اون هم این هست :

برای چاپ بارکد نمونه کد، فونت و … به وفور در اینترنت پیدا میشه. من هم از یکی از آنها استفاده کردم و آن را توسعه دادم و ایراداتش را برطرف کردم. سورس کامل و مقالش را میتوانید در اینجا ببینید.

و اصول خواندن بارکد هم به این صورت هست که دستگاه بارکدخوان اطلاعات را خوانده و در فیلد مورد نظر تایپ میکند. (دقیقا مثل کیبورد).

نکته اینجاست که آیا ابزار تحت وب ای هست که پس از خوانده شدن بارکد آن را پردازش کند؟ و به جای تایپ کردن در فیلد مورد نظر به صورت دیتا به نرم افزار بفرستد؟ و اصولا این موضوع استاندارد هست یا اینکه برخی بارکد خوانها این قابلیت را دارند.


استفاده از Case When در update

سلام

احتمالا شما با دستور Case When  در Sql آشنا هستید. این دستوردر زبان SQL مانند همان دستور select case در vb.net و asp.net عمل میکنه  و بسیار دستور پرکاربردی هست.

در بر خی مواقع لازم هست که در دستور update خود از این شرط استفاده کنید و مقادیر فیلدهای خود را براساس یک شرط خاص به مقدار خاصی ذخیره کنید. مثلا فرض کنید که میخواهیم با استفاده از منطق فازی به ازائ هر قیمت خاص مشخص کنیم که آیا بودجه ما گران است؟ متوسط هست و یا ارزان هست و این مقدار را در جدول خود update کنیم.

برای این کار کافیست از دستور زیر استفاده کنیم :

SELECT title, price,
Budget = CASE price
WHEN price > 20.00 THEN ‘Expensive’
WHEN price BETWEEN 10.00 AND 19.99 THEN ‘Moderate’
WHEN price < 10.00 THEN ‘Inexpensive’
ELSE ‘Unknown’
END,
FROM titles

خوش باشید.


حذف کدهای html از متن در ASP.NET

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

برای این منظور یک تابع ساده با استفاده از عبارات منطقی به صورت زیر می توان نوشت:

Public Shared Function removeHTML(ByVal html As String) As String
If String.IsNullOrEmpty(html) Then
Return “”
Else
Return System.Text.RegularExpressions.Regex.Replace(html, “<[^>]*>”, String.Empty)
End If
End Function

خوش باشید!


۷ نشانه برای پی بردن به برنامه نویس بودن یک نفر

۱- به نور خورشید حساسیت دارد

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

۲- بدنش قدرت دفاعی ندارد

همانطور که مستحضر می باشید انسان دارای یک سیستم دفاعی می باشد که بدن را در مقابل ویروس ها و … محافظت می کند ولی برنامه نویس از این قاعده مستثنی می باشد و اکثر مواقع مریض می باشد . شما همیشه شاهد این هستید که در طول ۳۶۵ روز یک سال برناه نویس دماغش را بالا می کشد . همیشه در موقع بیدار شدن از خواب احساس گلو درد دارد . خلاصه ویروس ها علاوه بر اینکه در کامپیوتر ها هستند در بدن برنامه نویس ها هم جولان می دهند .

۳- هیچ مهارتی در زمینه زندگی واقعی ندارند

یک برنامه نویس واقعی عمرا بتواند روغن موتور یک ماشین را عوض کند و یا یک برنامه نویس واقعی عمرا بتواند برای یک وعده خود غذا تهیه کند (البته به غیر از نیمرو یا خانواده نیمرو و یا همبرگر ) .

۴- اجتماعی بودن در حد صفر – کامپیوتر > بشر

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

۵- احساس میکند باهوش تر از دیگران هست

برنامه نویس همیشه فکر می کند بسیار باهوش تر از دیگران است و احساس برتری به دیگران دارد . بدلیل اینکه دیگران نمی دانند Delegate چیست ؟ و یا دیگران نمی دانند که تریگر چیست … البته در بسیاری از موارد مشاهده شده است که این حس کاذب می باشد .

۶- مد و ظاهر == null

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

۷-   چشم های پف کرده

این مورد هم که به دلیل استفاده ۱۸ ساعته در هر روز از کامپیوتر می باشد .

نکته آخر : اگر شما هم برنامه می نویسید یعنی کد تایپ می کنید , ولی لزوما این نشانگر این نیست که شما یک برنامه نویس می باشید . برنامه نویس بودن به همین سادگی ها که فکر می کنید هم نیست . علاوه بر این که شما باید مسلط به زبان های برنامه نویسی باشید ,  باید دارای این ۷ نشانه هم باشید .


درست کردن فایلPDF با ASP.NET

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

بهترین راه حل برای این مشکل گرفتن فایل خروجی از برنامه به فرمت های استاندارد مثل Excel و PDF است. برای این کار می توانید از نرم افزارهای گزارش ساز مثل Crystal reports استفاده کنید که هم استفاده از آنها راحت هست و هم انواع فایل خروجی را پشتیبانی می کنند. اما در برخی موارد شما احتیاج به یک برنامه سبک تر دارید که از نظر License هم برای شما مشکلی ایجاد نکند. در این حالت بهترین کار استفاده از نرم افزار کدباز iTextSharp است.

شما با این نرم افزار می توانید فایل PDF بسازید و دستورات HTML خودتون را به خروجی PDF تبدیل کنید. برای دانلود این نرم افزار میتوانید به آدرس زیر مراجعه کنید:

iTextSharp


Group کردن SQL بر اساس فیلدهای تاریخ

نمیدونم تا به حال به این مشکل برخوردید یا نه … زمانی که میخواهید یک QUERY بنویسید که براساس یک فیلد با نوع datetime گروه بندی شود به دلیل اینکه مقدار فیلد علاوه بر تاریخ شامل ساعت هم هست به مشکل بر میخورد. برای حل این مشکل میتوانید از Query زیر استفاده کنید:

   ۱: select  dateadd(dd,0, datediff(dd,0,dateCreated)) as Date,count(*) TotalCount  from tblRecords
   2: group by dateadd(dd,0, datediff(dd,0,dateCreated))

فرمت email های html

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

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

فرمت درست email های html



حق چاپ © 1996-2010 راهی که در پیش است. تمامی حقوق محفوظ است.