Spec# – the successor to C#?

January 31, 2008

An interesting project from Microsoft Research called Spec# ("spec sharp"), is a programming system consisting of a an extension to the C# language that extends the CLR type system with various new features, all designed to enforce safety, hopefully resulting in "high-quality software" (at least this is the aspiration). The downloads include a plugin for VS 2005 that includes the compiler and several samples. Who knows, maybe this is the next great thing?
tags: , ,

Natural Language Processing (NLP) Library

January 17, 2008

בעיני התחום של הבינה המלאכותית (Artificial Intelligence, AI) הוא התחום המרתק ביותר בעולם המחשבים. אחד התת-תחומים המעניינים בו הוא הנושא של עיבוד שפה אנושית (Natural Language Processing - NLP). הנושא מורכב (בגלל מורכבות והרב משמעותיות של השפה האנושית) אבל מרתק. ספרייה מעניינת המבוססת על .NET 2.0 נקראת Proxeme וניתנת להורדה כאן (לאחר רישום קצר). הספרייה מאפשרת לבצע פעולות נפוצות בעולם של NLP כגון POS tagging, semantic analysis ולבסוף parsing מלא. הספרייה מאד מרשימה, וכרגע תומכת בשפה האנגלית בלבד (בעתיד מתוכננות שפות נוספות). שווה בדיקה!    
tags: , , ,

Interesting .NET Library

January 6, 2008

 An interesting library I came across a few months ago: AForge. AForge is a .NET 2.0 based library (licensed under the GNU General Public License) that includes sub-libraries, such as Imaging (various filters, image manipulations), Genetic algorithms, Artificial Neural Networks (ANNs), machine learning algorithms, Video (including some DirectShow support) and computer vision. It can help in research in various AI and image processing fields. A few articles on using the library can be found at CodeProject. A must for those who don't think that pure software technology is everything.
tags: ,
no comments

ThreadPool and Robotics Studio

 בעולם של ה-CLR לא קשה לבצע פעולות אסינכרוניות. למשל, כל delegate תומך אוטומטית בהפעלה אסינכרונית ע"י BeginInvoke ו-EndInvoke. מי שצריך לעבוד ללא delegate יכול להשתמש ב-ThreadPool שלו מספר מתודות סטטיות להפעלת method בצורה אסינכרונית. הבעיה ב-ThreadPool היא שהינו יחיד. כלומר, אם יש מצב שבו יש באפליקציה שתי סוגי בקשות, אחת בעדיפות רגילה ואחת בעדיפות גבוהה, הן ייזרקו לאותו תור שמנהל את הבקשות האסינכרוניות, ואם לדוגמא, יש 100 בקשות רגילות בתור ואז צריך להעביר בקשה בעדיפות גבוהה, הבקשה תאלץ לחכות עד לטיפול של ה-100 הקודמות (כי ה-ThreadPool לא ייצר 100 Threads). מה עושים? ב-Windows Vista קיים API חדש המאפשר לייצר Thread Pool פרטי (CreateThreadPool) ולעבוד איתו....
no comments

COM without registration

Those still using COM know that COM components must be registered in the Windows Registry to be workable. Sometimes this may not be acceptable. Sometimes you might want to run an application that may be using many COM DLLs, but don't want or can't (because of some policies) to register the components. Sometimes you want to run an application on some client's machine without any setup. Can this be done? Off the bat, that seems impossible. But there is actually a way.What I've done in a project (it was done a few years back) was this: when the main...

Upcoming .NET 3.x course

January 1, 2008

 לכל המתעניין, אני מעביר קורס בשם Essential .NET 3.0 (מספר 4191) במכללת הייטק בתאריכים 20,21,27,28 בינואר, 3 בפברואר (יומיים WCF, יומיים WPF ויום WF) שכשמו כן הוא - היסודות של טכנולוגיות .NET 3.x. לפרטים נוספים ניתן לפנות למכללה, או לאתר (http://www.hi-tech.co.il/college).