Saturday, December 15, 2007

Amazon Architecture

This is a wonderfully informative Amazon update based on Joachim Rohde's discovery of an interview with Amazon's CTO. You'll learn about how Amazon organizes their teams around services, the CAP theorem of building scalable systems, how they deploy software, and a lot more. Many new additions from the ACM Queue article have also been included.

Amazon grew from a tiny online bookstore to one of the largest stores on earth. They did it while pioneering new and interesting ways to rate, review, and recommend products. Greg Linden shared is version of Amazon's birth pangs in a series of blog articles

http://www.highscalability.com/amazon-architecture

others:

Wednesday, November 21, 2007

Microsoft Sync Framework Runtime

http://msdn2.microsoft.com/en-us/sync/default.aspx

Microsoft Sync Framework (MSF) is a comprehensive synchronization platform enabling collaboration and offline for applications, services and devices. Developers can build sync ecosystems that integrate any application, any data from any store using any protocol over any network. MSF features technologies and tools that enable roaming, sharing, and taking data offline.

A key aspect of MSF is the ability to create custom providers using the MSF Runtime. Providers enable any data sources to participate in the MSF synchronization process allowing peer to peer synchronization to occur.

A number of providers have been included out-of-the-box that support many common data sources. Although they are not required, to minimize development, it is recommended that developers use these providers wherever possible. The following are the providers included:

  • Sync Service for ADO.NET: Synchronization for ADO.NET enabled data sources 
  • Sync Service for File Systems: Synchronization for files and folders 
  • Sync Service for SSE: Synchronization for Simple Sharing Extensions such as RSS and ATOM feeds
Developers can ultimately use any of the out-of-the-box providers or can create custom providers to exchange information between devices and applications.

Participants
A participant is the location where information from the data source is retrieved.

Participants Type
  • Full Participants : (Laptop, Smartphone) allow developers to create applications and new data stores directly on the device.
  • Partial Participants : (SD Card) Partial participants describe devices that have the ability to store data either in the existing data store or another data store on the device. These devices, however, do not have the ability to launch executables directly from the device.
  • Simple Participants : (RSS Feeds, Web Services) Simple participants describe devices that are only capable of providing information when requested.

Keywords

  • Sync Service Provider
  • MSF Runtime
  • Sync Session
  • Data Source
  • Metadata : Versions, Knowledge, Tick Count, Replica ID, Tombstones

Tuesday, November 20, 2007

An Introduction to LDAP

http://www.ldapman.org/articles/intro_to_ldap.html
http://www.gracion.com/server/whatldap.html

LDAP, Lightweight Directory Access Protocol, is an Internet protocol that email and other programs use to look up information from a server.

Sunday, November 11, 2007

What's F#?

F# is a statically typed functional programming language that targets the .NET framework. It shares a common core language with OCaml, another popular functional programming language, and draws ideas from many other programming languages, including Haskell, Erlang, and C#. In a nutshell this means that F# is a programming language that has a nice succinct syntax that feels a bit like scripting as we are able to execute the code interactively but has all the type safety and performance of a compiled language. This article is not indented to be an introduction to F#, but there are many resources on the web intended to make learning F# easy. See "F# Resources" later on in the article for a list of these.

http://www.infoq.com/articles/Beyond-Foundations-FSharp

F# Resources

There are a growing number of F# resources available on the web, here's a summary of some of the best ones:

  1. The Official F# Site, find the latest version of the compiler and the F# manual
  2. Don Syme, F#'s lead developer's, Blog, a great place to keep an eye on for F# announcements and short articles about making the most of F#.
  3. The Hub-FS, an F# community site with blogs and forums.
  4. Robert Pickering's F# tutorials and resources.
  5. Flying Frog Consultancy's F# tutorials and resources.

Monday, September 3, 2007

Christopher Alexander Talking About Patterms in CS and other fields

link: http://www.patternlanguage.com/archive/ieee/ieeetext.htm

The Origins of Pattern Theory
the Future of the Theory,
And The Generation of a Living World
by Christopher Alexander

The following presentation was recorded live in San Jose, California, October of 1996, at The 1996 ACM Conference on Object-Oriented Programs, Systems, Languages and Applications (OOPSLA).

Monday, August 13, 2007

Sftp Vs. Ftps

Totally different things.

SFTP and FTPS (FTP over SSL) are indeed very different and are often confused. The SFTP protocol is actually a subsystem of the SSH protocol whereas the FTPS protocol runs on top of the FTP protocol using an SSL encrypted channel. Unlike the FTPS protocol the SSH/SFTP protocol is a packet based protocol whereas the FTPS protocol is command based. For this reason you will find that FTPS is generally faster than SFTP/SSH. There are also two different types of FTPS, explicit-SSL and implicit-SSL to add to the confusion.

Explicit-SSL - Connection starts on standard FTP port (usually 21) in non-encrypted state. Client then sends AUTH SSL or AUTH TLS command to server requesting that it switches to encrypted channel before sending user credentials. The advantage of explicit-SSL is that the server can handle both encrypted and non-encrypted sessions on the same port (21).

Implicit-SSL - Unlike explicit-SSL, this connection starts off encrypted and there is no going to an unencrypted session. This usually runs on port 990. Advantage is that you can force users to connect using encrypted session, though some servers also allow you to do this at account level in Explicit-SSL.

Some API for SFTP and FTPS are:

FTP/FTPS
http://www.jscape.com/articles/ftp_using_csharp.html

SFTP/SSH
http://www.jscape.com/articles/sftp_using_csharp.html

1st one

First Blog
Cong~~~ !