الأحد، 31 أكتوبر، 2010

Synch Framework vs. Gears


Microsoft Sync Framework
is a data synchronization platform from Microsoft that can be used to synchronize data across multiple data stores. Sync Framework can be used for offline access to data, by working against a cached set of data and submitting the changes to a master database in a batch, as well as to synchronize changes to a data source across all consumers (publish/subscribe sync) and peer-to-peer synchronization of multiple data sources
Unlike Gears, which Google launched in late May, Sync Framework's purpose is not only to provide a way to save data both locally and in the cloud -- a prerequisite for enabling a Web-based application to work offline.
"It's a general purpose tool. It's not just for applications, but also for services and devices," Carrabino said
According to the download site, Microsoft Sync Framework will enable "collaboration and offline scenarios for applications, services and devices." That includes P2P synchronization of relational databases, NTFS/FAT file systems and all sorts of data ranging from contacts to music, videos, and user settings

We're doing something different from Google, said Anthony Carrabino, a senior product manager for SQL Server. "Sync Framework is really a tool that lets developers build applications that can sync any data -- files, contacts, it could be anything -- over any type of protocol.



Google Gears
is software offered by Google that "enables more powerful web applications, by adding new features to your web browser. It allows some online files to be used offline

it's important to note that because the database portion of Gears is really just a client-side database accessible from javascript, there's nothing in Gears that specifies a specific server-side implementation, or even a specific server api. Thus, doing things like the data partitioning you describe are up to the developer, as is interfacing with the server in general


Several web applications from a variety of companies have used Gears at some point, including Google (Gmail, YouTube, Docs, Reader, Picasa for mobile, Calendar, Wave), MySpace (Mail Search), Zoho (Writer, Mail), Remember The Milk, and Buxfer.[15] WordPress 2.6 added support for Gears, to speed up the administrative interface and reduce server hits

References:
Microsoft launches Google Gears competitor
A quick overview of Gears
Microsoft: Sync Framework isn't Google Gears
wikipedia-Microsoft_Sync_Framework
wikipedia-Google Gears

الجمعة، 15 أكتوبر، 2010

Version Control Systems



Version Control System (VCS) is a software that allows to manage changes of documents, programs, images and other information that is stored in form of computer files.

Some popular Version Control Systems:
Subversion - cross-platform open source VCS with great User Interface implementations (TortoiseSVN is the most known implementation for Windows shell integration).
Git - open-source VCS for distributed development that does not require a central server, yet lacks a convenient UI.
Mercurial - yet another distributed open source version control system which is less popular than Git (5 times less popular, if you trust Google).
TFS - is a Microsoft product offering source control, data collection, reporting, and project tracking, and is intended for collaborative software development projects. It is available either as stand-alone software, or as the server side back end platform for Visual Studio Team System (VSTS).

Martin Fowler conducted the survey on 99 developers in his company ThoughtWorks and its the result
The results were this
:











































































































Tool

BestOKProblematicDangerousNo
Opinion
Active ResponsesApproval %

Subversion


20


72


6


1


0


99


93%


git


65


19


1


0


14


85


99%


Mercurial


33


27


2


0


36


62


97%


ClearCase


0


3


14


41


41


58


5%


TFS


0


0


32


22


44


54


0%


CVS


0


14


59


11


15


84


17%


Bazaar


1


13


3


0


80


17


82%


Perforce


1


26


16


1


54


44


61%


VSS


1


1


11


64


22


77


3%


الثلاثاء، 8 يونيو، 2010

زوجتي ام حمزه



النهارده ان شاء الله وبعد كمية المقالات العلميه انا قلت عايز اطلع من قلبي حبة مشاعر واحاسيس

انا عايز اتكلم عن الحلم اللي بحلم بيه كل يوم تقريبا
قاعد انا وام حمزه في الصاله وحمزه واسماء عمالين يذاكروا واحنا بنراجعلهم دروسهم اكيد انت عرفتوا الموضوع هيبقي عن ايه؟

الموضوع هيبقي عن زوجتي ان شاء الله وانا بحلم بزوجه مواصفاتها كالتالي

ان تكون ملتزمه دينيا وده هيبقي ظاهر علي ملابسها طبعا تكون ملابس فضفاضه لا تشف والألوان طبعا تكون هاديه

ان تكون علي قدر علمي جيد حيث لا اشعر بفجوه في النقاش

ان تكون من اسره طيبه متوسطه الحال وان تكون مشهوره بالأدب وبالتردد علي المسجد والأب مشهور بالصلاح وان تكون الأسره خاليه من الأمراض الوراثيه

لا بد ان ام حمزه تكون راضيه تتقبل الأزمات الماليه وان تساعدني علي اجتياز المحن اي ان تكون خير معين

ياسلام بقي لو ام حمزه طلبت ان تنتقب يااااااااااااه وتساعدني علي الإلتزام طبعا ان هحاول اساعدها بحيث ننهض سويا الي الصلاح

اكتر حاجه تضايقني في البنات انهن يضيفوا ولاد علي الفيس بوك والمسنجر ود بيسمح بحدوث انهيار في الجانب الأخلاقي عند البنات

ان تشعر بالمسئوليه دوما اي لديها القدره علي حل المشاكل بسهوله ويسر

أن تبني البيت علي اساس ديني متين لا يتزعزع ابدا

أرجو من الجميع التعليق بالإتفاق او الإختلاف وتوضيح نقاط الإختلاف وهل من الممكن ايجاد زوجه بالمواصفات ده ؟
واختم بهذا الحديث الشريف
يامعشر الشباب من استطاع منكم الباءة فليتزوج فانه اغض للبصر وأحصن للفرج

الخميس، 29 أبريل، 2010

HTML 5 -Bye Flash & SilverLight & Java FX


HTML5 is being developed as the next major revision of HTML (HyperText Markup Language), the core markup language of the World Wide Web.
It aims to reduce the need for proprietary plug-in-based rich internet application (RIA) technologies such as
Adobe Flash
Microsoft Silverlight
Sun JavaFX
Markup
HTML5 introduces a number of new elements and attributes that reflect typical usage on modern Web sites
new functionality through a standardized interface, such as the audio and video elements
The HTML5 syntax is no longer based on SGML despite the similarity of its markup
New APIs
The canvas element for immediate mode 2D drawing
Timed media playback
Offline storage database
Document editing
Drag-and-drop
Cross-document messaging
Browser history management
MIME type and protocol handler registration

Ref : http://en.wikipedia.org/wiki/HTML5

الأربعاء، 24 مارس، 2010

SQL Injection



SQL injection is a code injection technique that exploits a security vulnerability occurring in
the database layer of an application

Example
SELECT * FROM users WHERE name = 'a';DROP TABLE users; SELECT * FROM userinfo WHERE 't' = 't';

If this code were to be used in an authentication procedure then this example could be used to force the selection of a valid username because the evaluation of 't'='t' is always true.

Reference : http://en.wikipedia.org/wiki/SQL_injection

الثلاثاء، 23 فبراير، 2010

Anders Hejlsberg author of C# and Turbo Pascal



Anders Hejlsberg was the original author of Turbo Pascal, the chief architect of Delphi, and currently works for Microsoft as the lead architect of the C# programming language.

In 1996, Hejlsberg left Borland and joined archrival Microsoft. One of his first achievements was the J++ programming language and the Windows Foundation Classes; he also became a Microsoft Distinguished Engineer and Technical Fellow. Since 2000, he has been the lead architect of the team developing the C# programming language.

He received the 2001 Dr. Dobb's Excellence in Programming Award for his work on Turbo Pascal, Delphi, C# and the Microsoft .NET Framework.


الأحد، 10 يناير، 2010

Aspect Oriented Programming

In computing, aspect-oriented programming (AOP) is a programming paradigm in which secondary or supporting functions are isolated from the main program's business logic. It aims to increase modularity by allowing the separation of cross-cutting concerns, forming a basis for aspect-oriented software development.

AOP addresses the problem of cross-cutting concerns, which would be any kind of code that is repeated in different methods and can't normally be completely refactored into its own module, like with logging or verification. So, with AOP you can leave that stuff out of the main code and define it vertically like so:

function mainProgram()
{ var x = foo();
doSomethingWith(x);
return x;
}

aspect logging
{ before (mainProgram is called):
{ log.Write("entering mainProgram");
}

after (mainProgram is called):
{ log.Write( "exiting mainProgram with return value of "
+ mainProgram.returnValue);
}
}

aspect verification
{ before (doSomethingWith is called):
{ if (doSomethingWith.arguments[0] == null)
{ throw NullArgumentException();
}

if (!doSomethingWith.caller.isAuthenticated)
{ throw Securityexception();
}
}
}


And then an aspect-weaver is used to compile the code into this:



function mainProgram()
{ log.Write("entering mainProgram");

var x = foo();

if (x == null) throw NullArgumentException();
if (!mainProgramIsAuthenticated()) throw Securityexception();
doSomethingWith(x);

log.Write("exiting mainProgram with return value of "+ x);
return x;
}


There are two different ways AOP programs can affect other programs, depending on the underlying languages and environments:
(1) a combined program is produced, valid in the original language and indistinguishable from an ordinary program to the ultimate interpreter
(2) the ultimate interpreter or environment is updated to understand and implement AOP features.

The following are some standard terminology used in AOP:

  • Cross-cutting concerns: Even though most classes in an OO model will perform a single, specific function, they often share common, secondary requirements with other classes.
  • Advice: This is the additional code that you want to apply to your existing model.
  • Pointcut: This is the term given to the point of execution in the application at which cross-cutting concern needs to be applied.
  • Aspect: The combination of the pointcut and the advice is termed an aspect.
AOP has been implemented (in either the language itself or as external library) for the following programming languages & tools:
  1. Java AspectJ
  2. .Net framework (C# & VB.Net)
  3. C/C++
  4. PostSharp