تبليغاتX
کامپیوتر

کامپیوتر

مسائل مربوط به کامپیوتر

آموزشDirectX-Graphic (قسمت ششم)

از: پرشين بلاگ

موضوع : مفاهيم اوليه رسم اشکال سه بعدي در DirectX 8

در اين درس با استفاده از Direct3D يک مکعب را رسم مي کنيم . براي اين منظور ابتدا نياز به يک بافر داريم که بتوانيم شکل مورد نظر خود را در آن ذخيره کنيم :
Dim VBuffer as Direct3DVertexBuffer8
براي رسم مکعب از vertex هاي سه بعدي استفاده مي کنيم . براي اينکار نياز به تعريف يک تايپ جديد داريم :
Private Type LITVERTEX
x as single
y as single
z as single
color as long
specular as long
tu as single
tv as single
end type
توصيف گر اين فرمت ، بصورت زير است :
Const Lit_FVF = (D3DFVF_XYZ Or D3DFVF_DIFFUSE Or
D3DFVF_SPECULAR Or D3DFVF_TEX1)x
براي توصيف مکعب در اين درس از روشي غيرکارامد استفاده شده است . به اين ترتيب که از ۳۶ عدد vertex استفاده شده ( در درسهاي بعدي متدهايي معرفي خواهند شد که اجازه مي دهند از ۸ عدد vertex باري توصيف مکعب استفاده کنيد )
Dim cube(35) as LITVERTEX

سپس بايد يکسري ماتريس سه بعدي تعريف کنيم :

اولين ماتريس ، matworld است که نشان مي دهد چگونه vertex ها در فضاي سه بعدي قرار گرفته اند . دومين ماتريس ، matview است که نشان مي دهد دوربين ( نقطه ديد ) در کجا قرار گرفته و سومين ماتريس ، matproj است که نشان مي دهد دوربين چگونه دنياي سه بعدي را روي صفحه دو بعدي نشان مي دهد
Dim matworld as D3DMATRIX
Dim matview as D3DMATRIX
Dim matproj as D3DMATRIX
در تابع Initialize قبل از ساخت device بايستي چک کنيم که آيا مي توانيم از يک بافر Z شانزده بيتي استفاده کنيم يا نه ؟
If D3D.CheckDeviceFormat(D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL, DispMode.Format,
D3DUSAGE_DEPTHSTENCIL, D3DRTYPE_SURFACE,
D3DFMT_D16) = D3D_OK Then
D3DWindow.AutoDepthStencilFormat = D3DFMT_D16 '16 bit
Z-Buffer
حال بايستي متد D3DCreateDevice را اجرا کنيد . سپس بايد سيستم سايه زني vertex را با فرمت vertex مان تنظيم کنيم :
D3DDevice.SetVertexShader Lit_FVF
همچنين سيستم نورپردازي را غير فعال مي کنيم :
D3DDevice.SetRenderState D3DRS_LIGHTING, False
Direct3D هيچ مثلثي را که در ديد شما نباشد رسم نخواهد کرد . براي متوقف کردن اين امر بايستي حالت culling آنرا متوقف کنيد همچنين vertex ها را بترتيب عقربه هاي ساعت معرفي کنيد :
D3DDevice.SetRenderState D3DRS_CULLMODE,
D3DCULL_NONE
سپس بايد فرمت بافر Z را فعال سازيد :
D3DDevice.SetRenderState D3DRS_ZENABLE, 1
حال به بخش تعريف ماتريسها مي رسيم .

+ نوشته شده در  دوشنبه هفدهم مرداد 1384ساعت 11:49  توسط مینو  | 

آموزشDirectX-Graphic (قسمت پنجم)

از: پرشين بلاگ

موضوع : اختصاص بافت Texture به اشکال دو بعدي

در اين درس مي خواهيم يک مربع که داراي بافت مي باشد را رسم کنيم . براي اينکار از کتابخانه کمکي D3DX8 استفاده مي کنيم . همچنين شي Direct3DTexture8 را نيز استفاده مي نمائيم .
Dim D3DX as D3DX8
Dim Texture as Direct3DTexture8
حال بايستي در تابع Initialize بافت مربوطه را از روي يک فايل تصويري load کنيم :
Private Function Initialize as Boolean

.
.
.
Set Texture=D3DX8.CreateTextureFromFile(D3DDevice,app.path & yourfilename) x
end function
تابع Render نيز بصورت زير خواهد بود :
Private Sub Render
D3DDevice.clear 0,byval 0,D3DCLEAR_TARGET,0,1#,0
D3DDevice.beginscence
D3DDevice.SetTexture 0,Texture
D3DDevice.DrawprimitiveUP D3DPT_TRIANGLESTRIP,2,Tripstrip(0),len(Tristrip(0))x
.
.
.
end function

+ نوشته شده در  دوشنبه هفدهم مرداد 1384ساعت 11:48  توسط مینو  | 

آموزشDirectX-Graphic (قسمت چهارم)

از: پرشين بلاگ

موضوع : آشنايي با برخي اصطلاحات


1- Mesh : مش ، مجموعه اي از face ها است که يک شي سه بعدي را روي صفحه تشکيل مي دهند .

۲ - Face : يک چند ضلعی است که توسط مجموعه ای از نقاط به نام vertex ساخته مي شود .

۳ - Vertex : يک نقطه در فضاي سه بعدي است که براي دادن موقعيت ، scale و زاويه يک face استفاده مي شود .

۴ - Direct3D از شيي بنام D3DVERTEX براي نمايش يک Vertex استفاده مي کند . براي ساخت face نيز از آرايه اي از vertex ها استفاده مي شود . آرايه هميشه بايستي قابل تقسيم به سه باشد زيرا اشکال از face هاي مثلثي ساخته مي شوند . هنگاميکه اين مثلثها کنار هم گذاشته شوند ، شي سه بعدي را مي سازند . Direct3D از بافري با نام Index Buffer استفاده مي کند که با direct3D مي گويد که با چه ترتيبي vertex ها را رسم نمايد . index ها بايستي هميشه در جهت عقربه هاي ساعت مشخص شوند .

+ نوشته شده در  دوشنبه هفدهم مرداد 1384ساعت 11:48  توسط مینو  | 

آموزشDirectX-Graphic (قسمت سوم)

از: پرشين بلاگ

موضوع : رسم اشکال دو بعدي

مروري بر object هاي DirectX8

1 DirectX8 : اين شي ، شي مرکزي براي directX است و به شما امکان دسترسي به توابع و اشيا DirectX را مي دهد .

۲ - Direct3D8 : شي اصلي براي کار با محيط سه بعدي مي باشد . هدف از آن ، ساخت Direct3DDevice8 است و همچنين شامل توابعي براي مشخص کردن توانايي هاي کارت گرافيک است .

۳ - Direct3DDevice8 : اين شي مسئول ساخت بافتها textures ، مديريت نورها در يک صحنه ، مديريت مواد materials و همچنين render صحنه است . در واقع اين شي ، قلب نمايشي کار شماست .

4 - D3DX8 : گر چه هميشه نيازي به استفاده از اين شي نيست ، اما اين شي شامل توابعي براي ساخت برنامه هاي userfriendly تر توسط DirectX است .

مثلاً ساخت اشيا سه بعدي ( مثل کره ، مکعب و ... ) ، ساخت بافتها ، ساخت سطوح و غيره

شروع کار براي رسم اشيا دوبعدي

ابتدا ثابت FVF را تعريف مي کنيم . اين ثابت توصيف " فرمت قابل انعطاف نقطه flexible-vertex-format " براي يک vertex دو بعدي انتقال يافته و ساده شده مي باشد .

سپس بايستي يک ساختار براي توصيف اين vertex معرفي کنيم :

Const FVF = D3DFVF_XYZRHW Or D3DFVF_TEX1 Or D3DFVF_DIFFUSE Or D3DFVF_SPECULAR
Private Type TLVERTEX
X As Single
Y As Single
Z As Single
rhw As Single
color As Long
specular As Long
tu As Single
tv As Single
End Type

فرض کنيد بخواهيم يک مربع را در صفحه رسم کنيم . براي رسم آن نياز به 4 عدد vertex داريم . بنابراين آرايه TriStrip را از نوع TLVERTEX تعريف ميکنيم
:Dim TriStrip (0 To 3) As TLVERTEX

حال به سراغ تابع initialize که در درس ۱ با آن آشنا شديد مي رويم و دستورات زير را به آن اضافه مي کنيم :

Private Function Initialize as Boolean

.
.
.

ابتدا سيستم سايه زني vertex را طوري تنظيم مي کنيم که از FVF استفاده کند .
D3DDevice.SetVertexShader FVF

حال سيستم lighting را براي vertex هاي دو بعدي غير فعال مي کنيم زيرا نيازي به آن نداريم :
D3DDevice.SetRenderState D3DRS_LIGHTING,false
حال بايستي تابع initializeGeometry را اجرا کنيم . اين تابع را در ادامه توضيح خواهم داد . اگر نتيجه اين تابع true باشد دراينصورت initialize به درستي انجام شده است :
if initializeGeometry()=true then initialize=true
end function

تابع initializeGeometry در اين درس ، تابعي ساده است که تنها آرايه Vertex ها را مقدار دهي مي کند . براي رسم يک مربع نياز به مقداردهي ۴ vertex در جهت عقربه هاي ساعت داريم ( اين مربع شامل ۲ مثلث است )
Private Function InitialiseGeometry() As Boolean
On Error GoTo BOut:
color = RGB(200, 100, 0)
TriStrip(0) = CreateTLVertex(100, 100, 0, 1, color, 0, 0, 0)
TriStrip(1) = CreateTLVertex(300, 100, 0, 1, color, 0, 0, 0)
TriStrip(2) = CreateTLVertex(100, 300, 0, 1, color, 0, 0, 0)
TriStrip(3) = CreateTLVertex(300, 300, 0, 1, color, 0, 0, 0)
InitialiseGeometry = True
Exit Function
BOut:
InitialiseGeometry = False
End Function

همانطور که مشاهده مي کنيد براي تعريف vertex از تابع CreateTLVERTEX استفاده شده است . اين تابع صرفاً مقادير ساختار TLVERTEX را مقداردهي مي کند :

Private Function CreateTLVertex(X As Single, Y
As Single, Z As Single, rhw As Single, color As Long, specular
As Long, tu As Single, tv As Single) As TLVERTEX


نکته : ضمن اينکه شما مي توانيد مقادير اعشاري floating point را براي مختصاتهاي x و y و z بکار ببريد ، Direct3D مختصاتها را با گردکردن آنها تخمين مي زند و بنابراين ممکنست باعث ايجاد نتايج ناخواسته شود .
CreateTLVertex.X = X
CreateTLVertex.Y = Y
CreateTLVertex.Z = Z
CreateTLVertex.rhw = rhw
CreateTLVertex.color = color
CreateTLVertex.specular = specular
CreateTLVertex.tu = tu
CreateTLVertex.tv = tv
End Function
حال بايستي تابع Render را بنويسيم :
Public Sub Render()
D3DDevice.Clear 0, ByVal 0, D3DCLEAR_TARGET, 0, 1#, 0
D3DDevice.BeginScene
D3DDevice.DrawPrimitiveUP D3DPT_TRIANGLESTRIP, 2, TriStrip(0), Len(TriStrip(0))x
D3DDevice.EndScene
D3DDevice.Present ByVal 0, ByVal 0, 0, ByVal 0
End Sub

ساختار اصلي براي اجراي توابع فوق بصورت زير است :
--Main part—
Initialize
Do While yourevent=true
Render
DoEvents
Loop

+ نوشته شده در  دوشنبه هفدهم مرداد 1384ساعت 11:46  توسط مینو  | 

آموزشDirectX-Graphic (قسمت دوم)

از: پرشين بلاگ

موضوع : بدست آوردن مشخصات و تواناييهاي گرافيکي يک سيستم توسط DirectX-Graphic

1 - شمارش تعداد آداپتورهاي گرافيکي يک سيستم : فرض کنيد متغير nAdapters متغيري از نوع long باشد . همچنين شي D3DADAPTER_IDENTIFIER8 يک ساختار است که اطلاعات مربوط به آداپتور را نگه مي دارد . در اينصورت روتين enumerateAdapters بصورت زير خواهد بود :
Dim adapterinfo as D3DADAPTER_IDENTIFIER8
Private Sub EnumerateAdapters
Dim i as integer
nadapters=D3D.Getadaptercount

براي بدست آوردن جزئيات آداپبورها بصورت زير عمل مي کنيم :
for i=0 to nadapters-1
D3D.GetadapterIdentifier i ,0,adapterinfo
نام اين آداپتور بصورت ليستي از کدهاي اسکي است که بايستي آنها را درون يک string قرار دهيم :
for j=0 to 511
name=name & chr$(adapterinfo.description(j)) x
next j
name=replace(name,chr$(0)," ") x
end sub
بنابراين در متغير name نام آداپتور قرار خواهد گرفت .


۲ - مشخص کردن نوع Rendering : فرض کنيد شي D3DCAPS8 توانايي rendering آداپتور را نشان دهد . در اينصورت روتين EnumerateDevices بصورت زير خواهد بود :
Private EnumerateDevices
On Local Error resume next
Dim Caps as D3DCAPS8
deviceindex=0 'For Example
D3D.Getdevicecaps deviceindex,D3DDEVTYPE_HAL,caps
if err.number=D3DERR_NOTAVAILABLE then

اگر آداپتور امکان رندر سخت افزاري نداشته باشد در اينصورت :
MsgBox("Reference Rasterizer(REF)") x
else
MsgBox("Hardware Acceleration(HAL)+Reference
Rasterizer(REF)") x
end if
end sub

3 - شمارش تعداد Mode نمايشي آداپتور :
فرض کنيد در صورت REF بودن امکان رندر ، متغير r=2 و در غيراينصورت
r=1 باشد . همچنين شي D3DDISPLAYMODE اطلاعات مدهاي نمايشي را در خود دارد . همچنين فرض کنيد متغير nModes از نوع longباشد . در اينصورت روتين enumeratedispmodes بصورت زير خواهد بود :
Private Sub EnumerateDispModes(r as Long,n as Long) x
Dim i as integer
Dim mode_tmp as D3DDISPLAYMODE
deviceindex=0 'For Example
nModes=D3D.Getadaptermodecount(deviceindex) x
for i=0 to nModes-1
D3D.EnumAdapterModes(deviceindex,i,mode_tmp) x
ابتدا Mode ها را به دو گروه ۱۶ بيتي و ۳۲ بيتي تقسيم مي کنيم :
if mode_tmp.format=D3DFMT_R8G8B8 or
mode_tmp=D3DFMT_X8R8G8B8 or
mode_tmp=D3DFMT_A8R8G8B8 then
حال چک مي کنيم که device قابل پذيرش و معتبر است يا نه :
if
D3D.checkdevicetype(deviceindex,r,mode_tmp.format,mode_tm
p.format,Flase)>=0 then
MsgBox(mode_tmp.width & "X" & mode_tmp.height & "32 Bit
FMT:" & mode_tmp.format ) x & "
end if
else
if D3D.checkdevicetype(deviceindex,r,mode_tmp.format,mode_tm
p.format,Flase)>=0 then
MsgBox(mode_tmp.width & "X" & mode_tmp.height & "16 BitFMT:" & mode_tmp.format ) x &
end if
end if
next i

4 - مشخص کردن توانايي هاي آداپتور گرافيکي : فرض کنيد در صورت REF بودن امکان رندر ، متغير r=2 و در غيراينصورت r=1 باشد :
Private Sub EnumerateHardware(r as long) x
Dim caps as D3DCAPS8
D3D.Getdevicecaps deviceindex,r,caps
If Caps.MaxActiveLights = -1 Then
MsgBox "Maximum Active Lights: Unlimited" x
Else
MsgBox "Maximum Active Lights: " & Caps.MaxActiveLights
End If
MsgBox "Maximum Point Vertex size: " & Caps.MaxPointSize
MsgBox "Maximum Texture Size: " & Caps.MaxTextureWidth
& "X" & Caps.MaxTextureHeight
MsgBox "Maximum Primatives in one call: " &
Caps.MaxPrimitiveCount
If Caps.TextureCaps And
D3DPTEXTURECAPS_SQUAREONLY Then
MsgBox "Textures must always be square" x
End If
If Caps.TextureCaps And D3DPTEXTURECAPS_CUBEMAP
Then
MsgBox "Device Supports Cube Mapping" x
End If
If Caps.TextureCaps And
D3DPTEXTURECAPS_VOLUMEMAP Then
MsgBox "Device Supports Volume Mapping" x
End If
If Caps.DevCaps And D3DDEVCAPS_PUREDEVICE Then
MsgBox "Device supports the Pure Device Option" x
End If
If Caps.DevCaps And
D3DDEVCAPS_HWTRANSFORMANDLIGHT Then
MsgBox "Device supports hardware transform and lighting" x
End If
If Caps.DevCaps And D3DDEVCAPS_HWRASTERIZATION
Then
MsgBox "Device can use Hardware Rasterization" x
End If
If Caps.Caps2 And D3DCAPS2_CANCALIBRATEGAMMA
Then
MsgBox "Device can Calibrate Gamma" x
End If
If Caps.Caps2 And D3DCAPS2_CANRENDERWINDOWED Then
MsgBox "Device can Render in Windowed Mode" x
End If
If Caps.Caps2 And D3DCAPS2_FULLSCREENGAMMA Then
MsgBox "Device can calibrate gamma in fullscreen mode" x
End If
If Caps.RasterCaps And D3DPRASTERCAPS_FOGRANGE
Then
MsgBox "Device supports range based fog calculations" x
End If
If Caps.RasterCaps And D3DPRASTERCAPS_ANISOTROPY
Then
MsgBox "Device supports Anisotropic Filtering" x
End If
If Caps.RasterCaps And
D3DPRASTERCAPS_ZBUFFERLESSHSR Then
MsgBox "Device does not require a Z-Buffer/Depth Buffer" x
End If

+ نوشته شده در  دوشنبه هفدهم مرداد 1384ساعت 11:45  توسط مینو  | 

آموزش DirectX-Graphic (قسمت اول)

از: پرشين بلاگ

موضوع : ساخت يک واسط direct3D

DirectX8 ابزاري براي ساخت تصاوير ثابت و متحرک دو بعدي و سه بعدي مي باشد .

براي کار با DirectX8 ابتدا بايستي آنرا روي سيستم خود نصب کنيد . سپس در محيط vb از منوي project گزينه References را انتخاب کنيد . در فرمي که ظاهر مي شود اطمينان حاصل کنيد که گزينه DirectX8 for VB type library فعال باشد .

براي کار با DirectX8 بايستي از تعريف نمودن شي پايه DirectX8 شروع نمود:
Dim Dx as DirectX8
شي Direct3D8 براي کنترل اشيا‌‌ سه بعدي بکار مي رود :
Dim D3D as Direct3D8
شي Direct3DDevice8 ، سخت افزار مربوط به رندر تصاوير را مشخص مي کند :
Dim D3DDevice as Direct3DDevice8
حال براي شروع کار با Direct3D ، تابع ( ) initialise را تعريف مي کنيم . اگر اينکار درست انجام شود تابع ، مقدار true را برمي گرداند :
public function initialise () as Boolean
Dim DispMode as D3DISPLAYMODE
شي D3DISPLAYMODE حالت نمايش را مشخص مي نمايد .
Dim D3Dwindow as D3DPRESENT_PARAMETERS
شي فوق مشخص مي کند که viewport شما چگونه باشد .
حال شي اصلي DirectX8 را مي سازيم : Set Dx=New DirectX8
سپس شي اصلي ساخت واسط سه بعدي را مي سازيم :
()set D3D.Dx.Direct3Dcreate
سپس حالت فعلي نمايش را با دستور زير استخراج مي کنيم :
D3D.getadapterdisplaymode D3DADAPTER_DEFAULT,dispmode
حال دو حالت براي کار با DirectX داريم :
1 - windowed mode
2 - fullscrean mode

1 - براي کار با حالت پنجره اي ابتدا اين موضوع را به DirectX اطلاع مي دهيم:
D3Dwindow.windowed=1
سپس نوع referesh تصوير را مشخص مي کنيم:
D3Dwindow.swapeffect=D3DSWAPEFFECT_COPY_VSYNC
سپس بايستي فرمت بافر نگهدارنده تصاوير را مشخص کنيم :
D3Dwindow.backbufferformat=dispmode.format

2 - براي کار با حالت تمام صفحه ، ابتدا نوع refresh را مشخص کرده سپس تعداد بافر هاي تصوير و سرانجام نوع و سايز بافر را مشخص مي نمائيم :
D3Dwindow.swapeffect=D3DSWAPEFFECT_DISCARD
D3Dwindow.backbuffercount=1
D3Dwindow.backbufferformat=dispmode.format
D3Dwindow.backbufferheight=dispmode.height
D3Dwindow.backbufferwidth=dispmode.width
سپس پنجره نمايش مشخص مي گردد :
D3Dwindow.hdevicewindow=frmMain.hwnd

@حال بايستی يک device ساخته شود که يا از طريق سخت افزار و يا نرم افزار تصاوير را رندر نمايد :

Set D3DDevice=D3Dcreatedevice(D3DADAPTER_DEFAULT
,D3DDEVTYPE_HAL,
frmMain.hwnd,D3DCREATE_SOFTWARE_VERTEXPROCESSING,
D3Dwindow)x,
end sub
درصورتي که کارت گرافيک شما امکانات رندر سخت افزاري تصاوير را ندارد از D3DDEVTYPE_REF بجاي D3DDEVTYPE_HAL استفاده کنيد .
حال بايستي روتين render را بنويسيم . البته در اين درس تصويري براي رندر نداريم و تنها چگونگي نوشتن اين روتين را بيان خواهم کرد :
۱ - ابتدا بايستي device مربوط به رندر ، قبل از کشيدن تصوير در آن پاک شود :
D3DDevice.clear 0,byval 0,D3DCLEAR_TARGET,&H0,1#,0
عدد hex اي که در دستور فوق آمده رنگ زمينه صفحه را مشخص مي کند

۲ - سپس بايستي تصاوير مورد نظر را رندر کنيم . اينکار توسط دستورات زير انجام مي شود :
D3DDevice.beginscence
all rendering calls go between these two lines '
D3DDEvice.endscence

3 - در پايان بايستي صفحه را update کنيد :
D3DDevice.present byval 0,byval 0,0,byval 0

+ نوشته شده در  دوشنبه هفدهم مرداد 1384ساعت 11:44  توسط مینو  | 

تصاویر پرتاب سفینه Discovery را از اینترنت بارگذاری کنید

تلویزیون HDNet اعلام کرد؛ یک کلیپ ویدئویی 20 دقیقه‌ای از پرتاب آخرین سفینه Discovery را برای بارگذاری روی شبکه اینترنت قرار داده است.

به گزارش بخش خبر شبكه فن آوري اطلاعات ايران ، از خبرگزاري سلام، این شبکه که مرکز آن در دالاس آمریکا واقع است، معمولا کلیپ‌های با کیفیتی را از رویدادهای ورزشی، کنسرت‌ها یا شوهای تلویزیونی پخش می‌کند و ظاهرا به اینترنت به عنوان ابزاری برای افزایش تعداد بینندگانش می‌نگرد.
مقامات این شبکه امیدوارند تا این فیلم 3/1 گیگابایتی را از طریق شبکه‌های P2P هم در دسترس علاقه‌مندان قرار دهند. برای اطلاعات بیشتر می‌توانید به آدرس http//:www.hd.net مراجعه کنید.

+ نوشته شده در  دوشنبه هفدهم مرداد 1384ساعت 11:41  توسط مینو  | 

رايانه‌ها زبانهاي تازه‌اي مي‌آموزند

متخصصان رايانه برنامه تازه‌اي را تكميل كرده‌اند كه مي‌تواند زبانهاي تازه‌اي را به رايانه بياموزد.

به گزارش بخش خبر شبكه فن آوري اطلاعات ايران ، از ايرنا، اگر به اين نرم افزار متن جديدي به هر زباني، خواه فارسي، انگليسي، چيني و... عرضه شود، نرم افزار جديد مي‌تواند با تحليل محتواي متن و ساختار عبارتها و جمله‌بندي‌هاي آن، اقدام به توليد عبارات معنادار جديد در آن زبان كند.

در تمام نرم‌افزارهايي كه در حال حاضر براي انجام وظيفه ترجمه رايانه‌اي و خودكار از يك زبان به زبان ديگر به كار گرفته مي‌شود قواعد دستوري زبانهاي مورد نظر از پيش درج شده است.

اما به نوشته هفته نامه علمي "نيو ساينتيست" ، نرم افزار جديد كه "آديوس ‪ "ADIOS‬مخفف عبارت "‪ "Distillation of Structure Automatic(‬تحليل خودكار ساختار) نام گرفته و محققان دانشگاه كورنل آن را تكميل كرده‌اند با استفاده از فرايندهاي آماري و جبري، بخشهاي اصلي تشكيل‌دهنده دستور زبان متن ناآشنا شناسايي مي‌شود.

اين نرم افزار با جستجو در الگوهايي كه در متن پيدا مي‌كند ساختارهاي دستور زباني ، زبان تازه را مشخص مي‌سازد و با استفاده از آن عبارات جديد در اين زبان توليد مي‌كند.

به اعتقاد محققاني كه نرم‌افزار تازه را تكميل كرده‌اند از اين نرم‌افزار مي‌توان در علوم شناختي و بايو انفورماتيكس و نيز كاربردهايي مانند تشخيص صدا استفاده كرد.

+ نوشته شده در  دوشنبه هفدهم مرداد 1384ساعت 11:38  توسط مینو  | 

توصیه های عملی برای پیشگیری از آلوده شدن کامپیوتر به spyware

از: لابراتوار آنتي ويروس پاندا

علاوه بر استفاده خوب و مؤثر از آنتی ویروس ها، کاربران اینترنت برای کاهش خطرات ناشی از بدافزارها باید برخی عادت های اینترنتی خود را نیز کنار بگذارند.
این واقعیت که نود درصد کامپیوتر ها آلوده به spyware هستند نشان دهنده میزان تأپیر گذاری و سماجت بیش از اندازه این نوع بد افزار است که از هر رخنه و سوراخ کوچکی برای ورود به کامپیوتر استفاده می کند. به همین دلیل تنها راه پیشگیری از ابتلای به آنها محافظت تمام عیار از کامپیوتر است.
پایه و اساس مقابله مؤثر با spyware ها استفاده از راه حل های مناسب تکنیکی است؛ شیوه هایی که در آن پیشگیری و درمان هر دو لحاظ شده باشد. با این وجود مسئله دیگری که تأثیر مستقیم و قابل توجهی در احتمال آلوده شدن سیستم دارد عادت های کاربران اینترنتی است. با در نظر گرفتن این موضوع راهکار های عملی زیر توصیه می شود تا کاربران بیش از پیش کامپیوترشان را در برابر این نوع بدافزار محافظت کنند:
• از آنجا که بسیاری از spyware ها با بهره گیری از بخش های آسیب پذیر نرم افزارها وارد سیستم می شوند، نصب آخرین وصله های امنیتی نرم افزار که معمولا در سایت اینترنتی مربوط به آن در اختیار کاربران قرار می گیرد، بسیار ضروری است.
• قبل از نصب و استفاده از نرم افزار شرایط کار با آن را به دقت بخوانید. برخی از نرم افزار های رایگان یا مدت دار همراه با نرم افزار مربوطه انواع مختلفی از spyware ها را نیز روی سیستم نصب می کنند. (در ازای استفاده مجانی از نرم افزار این spyware ها اطلاعات قابل استفاده کاربر را برای شرکت سازنده ارسال می کنند.)
• هنگام وارد کردن آدرس اینترنتی در مرورگر خود کاملأ دقت کنید. بسیاری از سازندگان spyware ها از صفحات اینترنتی با آدرس مشابه سایت های مشهور برای قالب کردن بدافزار های خود استفاده می کنند. (googkle.com یکی از مثال های واقعی این نوع سوء استفاده است.)
• از برنامه های غیر قانونی که معمولا به صورت رایگان در اینترنت ارائه می شود استفاده نکنید؛ همین طور از برنامه های ارائه دهنده موسیقی و فیلم مجانی. صرف نظر از غیر قانونی بودن آنها، این برنامه ها معمولآ سرشار از انواع بدافزار ها از جمله spyware ها هستند.
• از سایت های زیرزمینی دوری کنید. (سایت هایی که به داونلود غیرقانونی فایلها، ابزار و روش های هک کردن و ... مربوط می شود.) نه تنها بسیاری از این سایت ها در واقع فقط به منظور داونلود اتوماتیک spyware ها طراحی می شوند، بلکه ممکن است حاوی نرم افزار هایی باشند که پس از نصب شدن روی سیستم انواع و اقسام بدافزار را راهی کامپیوتر کند.
لوئیس کورونس، مدیر PandaLabs در این باره می گوید: برای محافظت در برابر spyware ها مهمترین مسئله این است که آنتی ویروس مناسبی داشته باشید که بتواند spyware های شناخته شده و ناشناخته را از کار بیندازد. اما یادتان باشد که هیچ آنتی ویروسی بدون خطا نیست و به همین دلیل شیوه استفاده کاربران از اینترنت نیز می تواند در کاهش شانس بدافزارها برای نفوذ به سیستم مؤثر باشد. همان طور که هیچ راننده عاقلی، هر چقدر هم که سیستم های امنیتی اتومبیلش پیشرفته باشد، با سرعت 200 کیلومتر در ساعت یک دفعه دور کامل نمی زند، هیچ کاربر با هوشی با تصور امن بودن سیستمش، در سایت های آلوده و خطرناک گشت و گذار نمی کند.

+ نوشته شده در  دوشنبه هفدهم مرداد 1384ساعت 11:36  توسط مینو  |