Monday 30 March 2015

Microsoft Visual Studio .NET Overview

Visual Studio .NET 2003
Choosing a programming language depends on your language experience and the scope of the application you are building. While small applications are often created using only one language, it is not uncommon to develop large applications using multiple languages.

For example, if you are extending an application with existing XML Web services, you might use a scripting language with little or no programming effort. For client-server applications, you would probably choose the single language you are most comfortable with for the entire application. For new enterprise applications, where a large team of developers create components and services for deployment across multiple remote sites, the best choice might be to use several languages depending on developer skills and long-term maintenance expectations.

The .NET Platform programming languages — including Visual Basic .NET, Visual C#, Managed Extensions for C++, and many other programming languages from various vendors — use .NET Framework services and features through a common set of unified classes. The .NET unified classes provide a consistent method of accessing the platform's functionality. If you learn to use the class library, you will find that all tasks follow the same uniform architecture. You no longer need to learn and master different API architectures to write your applications.

In most situations, you can effectively use all of the Microsoft programming languages. Nevertheless, each programming language has its relative strengths and you will want to understand the features unique to each language. The following sections will help you choose the right programming language for your application.

Visual Basic .NET

Visual Basic .NET is the next generation of the Visual Basic language from Microsoft. With Visual Basic you can build .NET applications, including Web services and ASP.NET Web applications, quickly and easily. Applications made with Visual Basic are built on the services of the common language runtime and take advantage of the .NET Framework.

Visual Basic has many new and improved features such as inheritance, interfaces, and overloading that make it a powerful object-oriented programming language. Other new language features include free threading and structured exception handling. Visual Basic fully integrates the .NET Framework and the common language runtime, which together provide language interoperability, garbage collection, enhanced security, and improved versioning support. Visual Basic supports single inheritance and creates Microsoft intermediate language (MSIL) as input to native code compilers.

Visual Basic is comparatively easy to learn and use, and Visual Basic has become the programming language of choice for hundreds of thousands of developers over the past decade. An understanding of Visual Basic can be leveraged in a variety of ways, such as writing macros in Visual Studio and providing programmability in applications such as Microsoft Excel, Access, and Word.

Visual Basic provides prototypes of some common project types, including:
•Windows Application.
 •Class Library.
 •Windows Control Library.
 •ASP.NET Web Application.
 •ASP.NET Web Service.
 •Web Control Library.
 •Console Application.
 •Windows Service.

For more information, see Visual Basic Language and Automating Repetitive Actions by Using Macros.

Visual C# .NET

Visual C# (pronounced C sharp) is designed to be a fast and easy way to create .NET applications, including Web services and ASP.NET Web applications. Applications written in Visual C# are built on the services of the common language runtime and take full advantage of the .NET Framework.

C# is a simple, elegant, type-safe, object-oriented language recently developed by Microsoft for building a wide range of applications. Anyone familiar with C and similar languages will find few problems in adapting to C#. C# is designed to bring rapid development to the C++ programmer without sacrificing the power and control that are a hallmark of C and C++. Because of this heritage, C# has a high degree of fidelity with C and C++, and developers familiar with these languages can quickly become productive in C#. C# provides intrinsic code trust mechanisms for a high level of security, garbage collection, and type safety. C# supports single inheritance and creates Microsoft intermediate language (MSIL) as input to native code compilers.

C# is fully integrated with the .NET Framework and the common language runtime, which together provide language interoperability, garbage collection, enhanced security, and improved versioning support. C# simplifies and modernizes some of the more complex aspects of C and C++, notably namespaces, classes, enumerations, overloading, and structured exception handling. C# also eliminates C and C++ features such as macros, multiple inheritance, and virtual base classes. For current C++ developers, C# provides a powerful, high-productivity language alternative.

Visual C# provides prototypes of some common project types, including:
•Windows Application.
 •Class Library.
 •Windows Control Library.
 •ASP.NET Web Application.
 •ASP.NET Web Service.
 •Web Control Library.
 •Console Application.
 •Windows Service.

Visual C++ .NET

Visual C++ .NET is the next generation of the Visual C++ language from Microsoft. Visual C++ has always been the best language for creating high-performance applications for Microsoft Windows and the World Wide Web.

Visual C++ provides a number of important libraries to help you code applications, including Active Template Library (a set of template-based C++ classes for COM objects), ATL Server Library (a set of native C++ classes for creating Web applications, Web Services, and other server applications), and Microsoft Foundation Classes (a set of classes that support an application written for the Windows API).

Visual C++ provides prototypes of some common project types, including:
•Active Template Library (ATL) Project.
 •ATL Server Project.
 •ATL Server Web Service.
 •Custom Wizard.
 •Extended Stored Procedure DLL.
 •Makefile Project.
 •ASP.NET Web Service
 •Class Library (.NET)
 •Console Application (.NET)
 •Windows Control Library (.NET)
 •Windows Forms Application (.NET)
 •Windows Service (.NET)
 •Microsoft Foundation Classes (MFC) ActiveX Control.
 •MFC Application.
 •MFC DLL.
 •MFC ISAPI Extension DLL.
 •Win32 Project.

Managed Extensions for C++

If you are creating a new application or component, you can use your current knowledge of C++ to write managed code with Managed Extensions for C++. When using Managed Extensions, you get the benefits of the support and services provided by the common language runtime (such as memory management, cross-language integration, code access security, and automatic lifetime control of objects).

Managed Extensions for C++ also provide a simple way to integrate existing applications into the .NET Framework. For example, maybe you need to port some unmanaged code to .NET. Because you already have previously compiled static, linked libraries, DLLs, and various unmanaged C++ classes, you can simply compile your existing Win32 code as a .NET application. Then, as time permits, you can re-engineer the components to take advantage of managed code features.

Transact-SQL

Transact-SQL is the native language for storing, modifying, and retrieving information in Microsoft SQL Server relational databases. You can also use Transact-SQL to create databases and any of the objects stored in a database, such as tables, columns, triggers, keys, indexes, views, stored procedures, and functions. Transact-SQL is fully supported in the Visual Studio editor and in the designers provided with Visual Database Tools.

Note   Visual Database Tools can also connect to an Oracle database. When you are using an Oracle database, Visual Database Tools correctly handle Oracle-specific SQL syntax. For more information, see Oracle Databases.

Scripting Languages

As Internet-enabled applications have gained the technological spotlight, solutions to programming problems associated with distributed computing continue to be developed. Scripting languages, in general, are not new but some of the most useful ones are recent arrivals. With the new scripting languages you can easily run scripts on a local desktop or a remote console to handle administrative tasks and program events.

Windows Script Host

Windows Script Host (WSH) is a language-independent scripting environment for 32-bit Windows platforms. With WSH, Microsoft offers VBScript, JScript, and JScript .NET scripting engines. These scripting languages can be used in the ASP pages of a Web server, in HTML pages that run in Internet Explorer, and in Windows Script Host scripting engines on Windows 98 and Windows 2000.

WSH can automate administrative tasks on a server, using any scripting language. For example, an administrator can write VBScript to create a new virtual directory and then, with WSH working in the background, run the script file from the command line to create a new virtual directory on the Web site. In addition, administrators can write a single script to target multiple Web sites or multiple physical servers.

Third-party companies supply ActiveX scripting engines for other languages such as Perl, TCL, REXX, and Python.

VBScript

Microsoft Visual Basic Scripting Edition (VBScript) is a subset of Microsoft Visual Basic — it will look very familiar to you if you have ever used Visual Basic. It is not identical, however. Because VBScript is specifically designed to work in Internet Explorer (IE) browsers, it does not include features that are normally outside the scope of scripting, such as file access and printing. However, it is common to use the FileSystem Object with VBScript to manipulate files.
VBScript brings active scripting to a wide variety of environments, including Web client scripting in IE, and Web server scripting in Microsoft Internet Information Services (IIS), Microsoft Internet Security and Acceleration Server (ISA), and Sun Solaris. VBScript is a fast, portable, interpreted, object-based scripting language that processes source code embedded directly in HTML pages. You can use VBScript to add intelligence and interactivity to WSH, ASP, and HTML pages.

Like JScript, VBScript talks to host applications using Windows Script. With Windows Script, browsers and other host applications do not require special integration code for each scripting component. Windows Script enables a host to compile scripts, obtain and call entry points, and manage the namespace available to the developer.

VBScript is a loosely typed language. Loosely typed means you do not have to declare the data types of variables explicitly. In fact, you cannot explicitly declare data types in VBScript. Moreover, in many cases VBScript performs conversions automatically when needed. For instance, if you add a number to an item consisting of text (a string), the number is converted to text.

JScript

Microsoft JScript is designed for Web page scripting. JScript conforms to the ECMA 262 language specification. JScript is a powerful scripting language specifically targeted at the Internet. Like VBScript, JScript is an interpreted, object-based scripting language that processes source code embedded directly in HTML pages. JScript runs on both Internet Explorer and Netscape browsers.

Like VBScript, JScript talks to host applications using Windows Script Host. With Windows Script Host, browsers and other host applications do not require special integration code for each scripting component. Windows Script Host enables a host to compile scripts, obtain and call entry points, and manage the namespace available to the developer.

JScript is a loosely typed language. Loosely typed means you do not have to declare the data types of variables explicitly. In fact, you cannot explicitly declare data types in JScript. Moreover, in many cases JScript performs conversions automatically when needed. For instance, if you add a number to an item consisting of text (a string), the number is converted to text.

For more information, see JScript.

JScript .NET

JScript .NET is the next generation of Microsoft's implementation of the ECMA 262 language, developed in conjunction with ECMAScript Edition 4. It is designed to run within the common language runtime to manage the execution of code and provide services that make the development process easier. With JScript .NET you get features such as cross-language integration, cross-language exception handling, enhanced security, versioning and deployment support, a simplified model for component interaction, and debugging and profiling services.

Combining the existing feature set of classic JScript (it is fully backward compatible) with the common language runtime and the best features of class-based languages, JScript .NET gives you the best of all worlds. Improvements in JScript .NET include true compiled code, typed and typeless variables, classes (with inheritance, function overloading, property accessors, and more), packages, cross-language support, and access to the .NET Framework.

For more information, see What's New in JScript .NET.

Extensible Markup Language (XML)

XML provides a format for describing structured data that allows for precise declarations of content and useful search results across multiple platforms. XML defines information and data according to purpose rather than presentation so that several applications can use the information and data in ways that promote diverse application reuse and extensibility. XML is an increasingly important meta-markup language that is convenient for use on the Internet.
It is important to realize that the various members of Windows Server System support XML as a data exchange format. For example, the SQL XML feature of SQL Server 2000 makes it possible for .NET applications to get their database query results as XML documents instead of relational result sets. As an important technology in the .NET Platform, XML is enabling a new generation of client and provider Web-based services.

XML is not a replacement for HTML. Although both are markup languages, they function in a complementary manner. The strength of HTML is in displaying information whereas XML is an excellent way to describe information. XML's strength lies partly in its ability to separate the user interface from data being displayed, thus allowing the cross-platform performance noted earlier.

In distributed application architecture, XML messaging allows data to easily move through firewalls and between heterogeneous systems using standard transport mechanisms. Whatever your application requires — importing, exporting, data interchange, interoperability with other applications (such as Office 2000 or Exchange 2000), parsing, modifying, data access, data storage — XML is an easily used data exchange format. Visual Studio .NET provides some great tools for working with XML and your favorite programming language.

Visual J++

Microsoft provides the Java User Migration Path to Microsoft .NET (JUMP to .NET) as a set of technologies and services that enable programmers to preserve, enhance, and migrate Java language projects onto the Microsoft .NET Platform. With JUMP to .NET you can continue to take advantage of existing Visual J++ skills and source code while extending your application and components onto the .NET Platform. If you are familiar with the Visual J++ language, you can use it to create new .NET applications or easily migrate existing code to the new C# language using automated migration tools.

Alternative Languages

Microsoft partners with many companies to bring their languages to the .NET Platform. In addition to the languages provided by Microsoft, there are many alternative languages that target the .NET Platform, including:
 •COBOL for Microsoft .NET.
 •Perl for Microsoft .NET.
 •Eiffel for Microsoft .NET.
 •Python for Microsoft .NET.
 •Pascal for Microsoft .NET.
 •Mercury for Microsoft .NET.
 •Mondrian for Microsoft .NET.
 •Oberon for Microsoft .NET.
 •Salford FTN95 (Fortran) for Microsoft .NET.
 •SmallTalk for Microsoft .NET.
 •Standard ML for Microsoft .NET.
 •Dyalog APL for Microsoft .NET.



Sunday 29 March 2015

Features of Java

There is given many features of java. They are also known as java buzzwords. The Java Features given below are simple and easy to understand.
 1.Simple
 2.Object-Oriented
 3.Platform independent
 4.Secured
 5.Robust
 6.Architecture neutral
 7.Portable
 8.Dynamic
 9.Interpreted
 10.High Performance
 11.Multithreaded
 12.Distributed
•Simple
According to Sun, Java language is simple because:
syntax is based on C++ (so easier for programmers to learn it after C++).removed many confusing and/or rarely-used features e.g., explicit pointers, operator overloading etc.
 No need to remove unreferenced objects because there is Automatic Garbage Collection in java.
•Object-oriented
Object-oriented means we organize our software as a combination of different types of objects that incorporates both data and behaviour.
Object-oriented programming(OOPs) is a methodology that simplify software development and maintenance by providing some rules.
Basic concepts of OOPs are:
1.Object
 2.Class
 3.Inheritance
 4.Polymorphism
 5.Abstraction
 6.Encapsulation
1)Platform Independent
A platform is the hardware or software environment in which a program runs. There are two types of platforms software-based and hardware-based. Java provides software-based platform. The Java platform differs from most other platforms in the sense that it's a software-based platform that runs on top of other hardware-based platforms.It has two components: 1.Runtime Environment
 2.API(Application Programming Interface)
Java code can be run on multiple platforms e.g.Windows,Linux,Sun Solaris,Mac/OS etc. Java code is compiled by the compiler and converted into bytecode.This bytecode is a platform independent code because it can be run on multiple platforms i.e. Write Once and Run Anywhere(WORA).
•Secured
Java is secured because:
•No explicit pointer
 •Programs run inside virtual machine sandbox.
•Classloader- adds security by separating the package for the classes of the local file system from those that are imported from network sources.
 •Bytecode Verifier- checks the code fragments for illegal code that can violate access right to objects.
 •Security Manager- determines what resources a class can access such as reading and writing to the local disk.
These security are provided by java language. Some security can also be provided by application developer through SSL,JAAS,cryptography etc.
•Robust
Robust simply means strong. Java uses strong memory management. There are lack of pointers that avoids security problem. There is automatic garbage collection in java. There is exception handling and type checking mechanism in java. All these points makes java robust.
•Architecture-neutral
There is no implementation dependent features e.g. size of primitive types is set.
•Portable
We may carry the java bytecode to any platform.
•High-performance
Java is faster than traditional interpretation since byte code is "close" to native code still somewhat slower than a compiled language (e.g., C++)
•Distributed
We can create distributed applications in java. RMI and EJB are used for creating distributed applications. We may access files by calling the methods from any machine on the internet.
•Multi-threaded
A thread is like a separate program, executing concurrently. We can write Java programs that deal with many tasks at once by defining multiple threads. The main advantage of multi-threading is that it shares the same memory. Threads are important for multi-media, Web applications etc.


Saturday 28 March 2015

Benefits of Open Source vs. Commercial Software

When it comes to software development, the term “open source” refers to source code that is available for any modifications, as developers see fit. Commercial source code is owned by an organization and is typically licensed for an organization’s sole use. There are important differences to consider when deciding between an open source and commercial software option. The following are what we consider to be the most important points to discuss when making your decision.

Open Source Benefits

Open source offers a multitude of functions at little to no cost. Utilizing an open source solution frees up funds, which can then be made available to support further efforts, such as customization, implementation, and maintenance.  With the benefit of having been used and reviewed by a wide array of organizations, open source options offer a broad range of capabilities, including e-commerce, blogs, portals, and wikis. Open source is constantly updated and adapted. Communities of web developers who work with open source are constantly modifying code to meet the needs of its users. Because of its widespread use, bugs and problems that may arise in the development of open source software are usually resolved quickly through an extensive network of developers; as opposed to a commercial source which can take months to work out bugs.

Commercial Software Benefits
Below are key points that we consider to be the top benefits of using commercial source:
 •Commercial source guarantees one-on-one support. Because commercially developed software is written and maintained by a company you have an established relationship with, they will ensure that your software functions properly. Many open source software programs come without a manual or any documentation, so the implementation and maintenance of an open source system may require a more knowledgeable team vs. a commercial system. In general, open source software is typically minimally supported.  The customizations done by one party are not tested with another customization; leaving you with the responsibility to test the full solution.
 •Commercial source is completely customizable. At Brave River Solutions, we work one-on-one with clients to build software to their exact specifications. This includes custom functionality and one-of-a-kind design. Open source software solutions often have similar features and may look similar to other products utilizing the same software.  This can make differentiation more challenging. Additionally, intellectual property rights could be called into question when using open source. As code is customized, the question arises of whether or not the integrity of the open source code has been maintained. Ownership could be called into question if the code has strayed too much from the original.
 •Commercial source is far less susceptible to hackers. The hacking community is more familiar with open source code and therefore, able to hack into it more often with greater ease than commercial software. Brave River Solutions works with many clients to ensure their software is completely secure and compliant and that it adheres to many industry requirements, such as those requiring HIPAA and ADA compliance.



Aside: Please note also that there is a lot of quibbling over semantics and some will argue that I am using the term commercial incorrectly since money is made from opensource software as well therefore opensource is a form of commercial software and what I really mean is proprietary software. Let me be clear and say that what I mean by commercial is that profit is made by the actual selling of the software and less important for this discussion, the software is closed source. The term proprietary while in some cases more fitting has too much of an air of copyright and legalese which I don't think is too relevant for this discussion. If a person owns a patent and allows people to use it freely, I would consider it proprietary and yet still opensource.

How do the Strategic Arsenal of Open Source and Commercial Software vary?
Below is a table that compares the various arsenals at the disposal of Open Source vs. Commercial software
Commercial Software Open Source
How do they get money? 
Product Sales
Product Licenses
Product Renewals
SaaS - Software as service / Hosting
Consulting Sales
Support Contracts
Venture Capital
 Consulting Sales
Support Contracts
SaaS - Software as a service / Hosting
Donations

Please note that SaaS is not an option for some software such as what I call sub-software or embedded software or developer tools software that is meant to live inside something bigger. There is a bit of a greyzone there.
How do they market? 
Sales Team
Marketing Team
Advertising Dollars
Search Engine
Word of Mouth - Viral Marketing
Case Studies
 Search Engine
Word of Mouth - Viral Marketing
Case Studies

What non-direct monetary benefits do they get?
Fame
General enjoyment in what they do
 Fame
Support for sub-problems in consulting practice
General enjoyment in what they do
Increasing the demand of commercial products or services sold by the company by subsidizing the development of a complimentary product.
I call this the Give me some free cookies and I'll buy your milk trick.
Decreasing demand of a product sold by a competitor by subsidizing the development of a substitute product. This is the death by kryptonite trick

How does arsenal control strategy?
Now it goes without saying that based on the above, the arsenal of Open source are pretty much a subset of the arsenal of commercial software except for a couple of items. Open source software can more readily get external organizations to help out with sub-problems since the solutions of these sub-problems are available to all. Commercial for most relevant cases doesn't have this tool because who wants to help solve a problem when you can't share in the spoils. Another important tool while less relevant except for widely used open source products or sub-products (embedded kits) is that of donations. Then there are the last 2 tricks which are largely employed by huge commercial software and hardware companies we normally consider as commercial software companies. Many smaller companies employ the same tactics as well though since it’s a relatively easy way to invest dollars and especially for the kryptonite trick - a potential good way to kill a larger competitor who owns the market. A lot of commercial software companies e.g. IBM, Oracle, Novell, Sun and Microsoft to name a few use open source software behind the scenes or purposely invest in opensource products either to destroy a competitor in an area they are weak in or encouraging the development of products that are complimentary to their own. This means they have some fairly high incentives to support such software via donations or direct help to expedite improvement.
Since open source at least on the onset has fewer tools at its disposal it spends more effort in those tools it does have e.g. making sure people working on the project like what they are doing, recognizing people (e.g. providing fame) to outstanding programmers, and trying to make the most users happy to leverage viral marketing.
Below is a table that compares the various strategies of both as a consequence of arsenal that each has at their disposal.
Commercial Software Open Source
Difficulty of Problems and what problems are there really? 
Make simple problems appear hard
Make hard problems appear hard
Invent problems that don't exist or make rare hard problems appear ubiquitous
 Make problems look no harder than they really are
Make problems look simpler than they really are

Building Customer/User Base 
Find rich customers that are not price sensitive
Find ignorant customers that can be brainwashed
Find customers with hard problems that no one else can solve.
Non-paying customers that can turn into paying or can spread the word.
 Smart users that can help with development or support are better.
Any user will do that can provide donations, provide consulting dollars or spread the word.

Okay this section is not quite as obvious as the other so let me explain my reasoning. Commercial software has a lot more money to spend on such things as standard marketing channels, sales and shrink wrapping, because they have more potential revenue streams. Also if you are getting venture capital money, you better demonstrate you are spending it by hiring more staff, spending more on marketing etc. Venture capital wants you to win big which means riskier strategies or go down trying.
On top of that commercial software needs to demonstrate that they have solved a hard problem that no one else has solved or make competitors solutions to problems seem hackish. So the marketing folks will use words like "You want to solve the problem the right way, don't you?", which often means "The hard way that only we know how to do." A corrollary to that is if a problem is really hard and you have solved it or can convince people you have solved it, make sure everyone knows that and make sure everyone thinks they have the same problem. That actually holds true for both commercial and open source but is generally easier to pull off for commercial software.
It always surprises me how many people think they need clustered servers, clustered solutions, and dynamic failover solutions. Reality check, if you've got only 300 people visiting your site in a day and 1000 page hit per day, you probably don't need a clustered solution, unless you are doing something super processor intensive and if you do need such a solution your software probably sucks. Can you really afford a true dynamic failure system that takes into consideration all possible contingencies of failure -e.g you have a power failure that kills all your servers, an expensive redundant line and offsite location. Yah I know in the future you might - but why don't you wait till the future to solve future vapor problems that may never come to fruition instead of muddling your current problems with future concerns. There is a fine line between planning for the future and letting the future destroy your present. Far too many people cross that line.
Alright so why does open source not fall into the same game. Hard problems require long painful treacherous solutions and lots of money to solve. Send an army into a war and say "Folks we are going into a hard war. We will probably lose or be in it for a while and by the way you won't get paid." I'm sure that will excite a lot of people to join your side. If your main strategy is to build a large user-base with no money, solving a hard problem that few people have is not exactly the best way. Now if you have a hard problem that many people have - try to convince everyone the problem is much much easier to solve than it really is. Commercial wants paying customers, open source wants lots of users that have the potential of becoming contributors either monetarily or via support. This means commercial needs to solve problems that people can't easily find a free solution for or at least convincing people of that premise which means they spend their effort solving hard problems, convincing people they have hard problems and less on easy problems while open source spends their time solving ubiquitous easier problems, trying to create a hack for harder problems that everyone has that will solve 80% of the hard problem but full short of the last 20%, and then seriously tackle the hard problems once they've built up a large enough user-base or consulting customer base that demands it.
What do these incentive structures mean to you as a consumer?
First off let us define the kinds of problems that are hard to solve. Now there is hard as in thinking hard and hard as in we need lots of people to do lots of work hard. Thinking hard requires brilliant people. Doing lots of work requires a pool of competent but not necessarily brilliant people lead by a brilliant person to control the flow. Having a crowd of developers with no clue what to do is just as ineffective and definitely more costly than having a few developers with a strong sense of direction. Ah now here lies the rub.
Optimization problems are thinking hard, but not necessarily working hard
Things like scalability take brilliant people and brilliant people while often going for where the money is don't always. Scalability problems that require a lot of work also require a brilliant leader to prevent chaos from ensuing. It often takes a brilliant person to recognize another brilliant person and smart people like to hang out with others that are equally as smart as they are. When a brilliant person is an originator of an open source project, its a fair game when you have a hard thinking problem.
What does this mean to you. It means the commercial solution is not necessarily more scaleable than the open source solution despite what nonsense those marketing folks have been peddling. So don't be fooled. Do your research.
Now there is an even more warped side to this, that may actually make open source more scaleable in some cases. Poor people with little money for expensive hardware and savvy people who have tried commercial and found its weaknesses and don't want to be penalized for having good hardware are drawn to open source. These people demand to get every bit of power they can out of their sometimes meager possessions. This means scaleable as in run well on cheap hardware is important. When something runs well on your meager 600Mhz single processor, most likely it will scream on beefier hardware and it may just run okay on your meager palmtop. Pricey Commercial software on the other hand is made for people who have money to burn, and also since a lots of server commercial software is based on things like per processor licensing, from a sales incentive, it may be purposely designed to suck on low hardware and scream on high hardware. That's why you get clauses like this will not work on more than 4 processors - get the enterprise version. Now with the enterprise version you are paying $40,000/processor instead of $10,000/processor but yeah I get all sorts of other goodies that I don't really need right now.
Large Commercial companies have money to wrap themselves up nicely and are masters of dog and poney shows, so they look good on the surface to the unsuspecting CFO/CIO who has a very shallow technology background and can be put in a trance with pseudo jargon like "API, ROI, Open Architecture, minimize downtime, minimize staff time, and no one ever got fired buying IBM" and glitzy demos. Of course this is not the same case for small commercial companies who are often in the same boat of having to skimp on marketing.
Graphical User Interfaces (GUIs) are labor intensive hard
Yes wizards that will hand-hold you every step of the way take lots of man-power to build. Input screens that will prevent you from doing foolish things also take a lot of time to build. For an immature open source project or one with little funding, this is a cost too high to bear. So you will find most open source projects, especially server-side products, at least starting out, will rely on configuration scripts that you must edit in a text editor rather than a GUI. This is both a curse and a blessing. To introduce a new feature in a configuration script, add a line to the config and code to your engine to recognize it and you are done. Do the same in a GUI based system, add a line to config, add code to engine, add code to GUI interface. More complexity. Plus once you understand how the configuration script works, making changes in a config file is often a lot faster than running thru a GUI of hand-holding steps. One approach caters to one crowd and another to another crowd. For some tasks though it is faster to use a wizard such as some code generation tasks and GIS graphical heavy lifting.
Well-designed Graphical User Interfaces (GUIs) are labor intensive and require a lot of design thought
I would say commercial has an advantage initially and then open source once it matures and gets non-developer users catches up a bit and may sometimes fully catch up. Open source software when it starts off, tries to attract developers and a developer's idea of a well-designed GUI is often a little warped. Warped in the sense that what is pleasing to a developer is probably only pleasing to 5% of the population in most cases. Developers tend to be suspicious when things magically happen where as most other people want to see a pretty screen, click a button, and see something magical happen without having to look behind the magic. Trying to satisfy both camps is an art that very few people have and is probably even more deficient among the developer crowd. The exception to this rule sometimes is when you are developing developer tools. Regardless good interface design is hard and probably harder for developers.


Cassandra Database Overview

What is Apache Cassandra?
Apache Cassandra™ is a massively scalable open source NoSQL database. Cassandra is perfect for managing large amounts of data across multiple data centers and the cloud. Cassandra delivers continuous availability, linear scalability, and operational simplicity across many commodity servers with no single point of failure, along with a powerful data model designed for maximum flexibility and fast response times.

How does Cassandra work?
Cassandra has a “masterless” architecture, meaning all nodes are the same. Cassandra provides automatic data distribution across all nodes that participate in a “ring” or database cluster. There is nothing programmatic that a developer or administrator needs to do or code to distribute data across a cluster because data is transparently partitioned across all nodes in a cluster.
Cassandra also provides customizable replication, storing redundant copies of data across nodes that participate in a Cassandra ring. This means that if any node in a cluster goes down, one or more copies of that node’s data is still available on other machines in the cluster. Replication can be configured to work across one data center, many data centers, and multiple cloud availability zones
Understanding the architecture
In this topic: •Architecture in brief
 Essential information for understanding and using Cassandra.
 •Internode communications (gossip)
 Cassandra uses a protocol called gossip to discover location and state information about the other nodes participating in a Cassandra cluster.
 •Data distribution and replication
 How data is distributed and factors influencing replication.
 •Partitioners
 A partitioner determines how data is distributed across the nodes in the cluster (including replicas).
 •Snitches
 A snitch determines which data centers and racks nodes belong to.
 •Client requests
 Client read or write requests can be sent to any node in the cluster because all nodes in Cassandra are peers.
 •Planning a cluster deployment
 Vital information about successfully deploying a Cassandra cluster.
•Data distribution and replication
In Cassandra, data distribution and replication go together. Data is organized by table and identified by a primary key, which determines which node the data is stored on. Replicas are copies of rows. When data is first written, it is also referred to as a replica.
Factors influencing replication include:
•Virtual nodes: assigns data ownership to physical machines.
•Partitioner: partitions the data across the cluster.
•Replication strategy: determines the replicas for each row of data.
•Snitch: defines the topology information that the replication strategy uses to place replicas.

In this topic: •Consistent hashing
 Consistent hashing allows distributing data across a cluster which minimizes reorganization when nodes are added or removed.
 •Virtual nodes
 Overview of virtual nodes (vnodes).
 •Data replication
 Cassandra stores replicas on multiple nodes to ensure reliability and fault tolerance. A replication strategy determines the nodes where replicas are placed.

Friday 27 March 2015

Oracle Database Overview


Oracle database is a collection of data treated as a unit. The purpose of a database is to store and retrieve related information. A database server is the key to solving the problems of information management. In general, a server reliably manages a large amount of data in a multiuser environment so that many users can concurrently access the same data. All this is accomplished while delivering high performance. A database server also prevents unauthorized access and provides efficient solutions for failure recovery.

Oracle Database is the first database designed for enterprise grid computing, the most flexible and cost effective way to manage information and applications. Enterprise grid computing creates large pools of industry-standard, modular storage and servers. With this architecture, each new system can be rapidly provisioned from the pool of components. There is no need for peak workloads, because capacity can be easily added or reallocated from the resource pools as needed.

The database has logical structures and physical structures. Because the physical and logical structures are separate, the physical storage of data can be managed without affecting the access to logical storage structures.

The section contains the following topics:

•Overview of Oracle Grid Architecture

•Overview of Application Architecture




Overview of Oracle Grid Architecture

Grid computing is a new IT architecture that produces more resilient and lower cost enterprise information systems. With grid computing, groups of independent, modular hardware and software components can be connected and rejoined on demand to meet the changing needs of businesses.

The grid style of computing aims to solve some common problems with enterprise IT: the problem of application silos that lead to under utilized, dedicated hardware resources, the problem of monolithic, unwieldy systems that are expensive to maintain and difficult to change, and the problem of fragmented and disintegrated information that cannot be fully exploited by the enterprise as a whole.

Benefits of Grid Computing Compared to other models of computing, IT systems designed and implemented in the grid style deliver higher quality of service, lower cost, and greater flexibility. Higher quality of service results from having no single point of failure, a robust security infrastructure, and centralized, policy-driven management. Lower costs derive from increasing the utilization of resources and dramatically reducing management and maintenance costs. Rather than dedicating a stack of software and hardware to a specific task, all resources are pooled and allocated on demand, thus eliminating under utilized capacity and redundant capabilities. Grid computing also enables the use of smaller individual hardware components, thus reducing the cost of each individual component and providing more flexibility to devote resources in accordance with changing needs.

Grid Computing Defined

The grid style of computing treats collections of similar IT resources holistically as a single pool, while exploiting the distinct nature of individual resources within the pool. To address simultaneously the problems of monolithic systems and fragmented resources, grid computing achieves a balance between the benefits of holistic resource management and flexible independent resource control. IT resources managed in a grid include:

•Infrastructure: the hardware and software that create a data storage and program execution environment

•Applications: the program logic and flow that define specific business processes

•Information: the meanings inherent in all different types of data used to conduct business

Core Tenets of Grid Computing Two core tenets uniquely distinguish grid computing from other styles of computing, such as mainframe, client-server, or multi-tier: virtualization and provisioning.

•With virtualization, individual resources (e.g. computers, disks, application components and information sources) are pooled together by type then made available to consumers (e.g. people or software programs) through an abstraction. Virtualization means breaking hard-coded connections between providers and consumers of resources, and preparing a resource to serve a particular need without the consumer caring how that is accomplished.


•With provisioning, when consumers request resources through a virtualization layer, behind the scenes a specific resource is identified to fulfill the request and then it is allocated to the consumer. Provisioning as part of grid computing means that the system determines how to meet the specific need of the consumer, while optimizing operation of the system as a whole.

The specific ways in which information, application or infrastructure resources are virtualized and provisioned are specific to the type of resource, but the concepts apply universally. Similarly, the specific benefits derived from grid computing are particular to each type of resource, but all share the characteristics of better quality, lower costs and increased flexibility.

Infrastructure Grid Infrastructure grid resources include hardware resources such as storage, processors, memory, and networks as well as software designed to manage this hardware, such as databases, storage management, system management, application servers, and operating systems.

Virtualization and provisioning of infrastructure resources mean pooling resources together and allocating to the appropriate consumers based on policies. For example, one policy might be to dedicate enough processing power to a web server that it can always provide sub-second response time. That rule could be fulfilled in different ways by the provisioning software in order to balance the requests of all consumers.

Treating infrastructure resources as a single pool and allocating those resources on demand saves money by eliminating under utilized capacity and redundant capabilities. Managing hardware and software resources holistically reduces the cost of labor and the opportunity for human error.

Spreading computing capacity among many different computers and spreading storage capacity across multiple disks and disk groups removes single points of failure so that if any individual component fails, the system as a whole remains available. Furthermore, grid computing affords the option to use smaller individual hardware components, such as blade servers and low cost storage, which enables incremental scaling and reduces the cost of each individual component, thereby giving companies more flexibility and lower cost.

Infrastructure is the dimension of grid computing that is most familiar and easy to understand, but the same concepts apply to applications and information.

PostgreSQL Database overview

PostgreSQL is the world’s most advanced open source database. Developed over 25 years by a vibrant and independent open source community, PostgreSQL was born from the same research as Oracle and DB2 and contains comparable enterprise class features such as full ACID compliance for outstanding transaction reliability and Multi-Version Concurrency Control for supporting high concurrent loads.


PostgreSQL supports standards such as ANSI SQL and SQL/MED (including foreign data wrappers for Oracle, MySQL, MongoDB and many others) and yet is highly extensible with support for over 12 procedural languages, GIN and GIST Indexes, Spatial data support, and multiple NoSQL like features for document (JSON) or key-value based applications. PostgreSQL includes:
World's most advanced open source database
25+ years of development by a large, independent and thriving community
Most secure open source database available
Fully supported by EnterpriseDB's own PostgreSQL experts
Active world-wide deployments in public and private sector organizations of all sizes and missions

Commands:
1) How to change PostgreSQL root user password ?
 $ /usr/local/pgsql/bin/psql postgres postgres
Password: (oldpassword)
# ALTER USER postgres WITH PASSWORD 'tmppassword';
$ /usr/local/pgsql/bin/psql postgres postgres
Password: (tmppassword)
Changing the password for a normal postgres user is similar as changing the password of the root user. Root user can change the password of any user, and the normal users can only change their passwords as Unix way of doing.
 # ALTER USER username WITH PASSWORD 'tmppassword';

2. How to setup PostgreSQL SysV startup script?
 $ su - root
# tar xvfz postgresql-8.3.7.tar.gz
# cd postgresql-8.3.7
# cp contrib/start-scripts/linux /etc/rc.d/init.d/postgresql
# chmod a+x /etc/rc.d/init.d/postgresql
3. How to check whether PostgreSQL server is up and running?
 $ /etc/init.d/postgresql status
Password:
pg_ctl: server is running (PID: 6171)
/usr/local/pgsql/bin/postgres "-D" "/usr/local/pgsql/data"
[Note: The status above indicates the server is up and running]
$ /etc/init.d/postgresql status
Password:
pg_ctl: no server running
[Note: The status above indicates the server is down]
4. How to start, stop and restart PostgreSQL database?
 # service postgresql stop
Stopping PostgreSQL: server stopped
ok
# service postgresql start
Starting PostgreSQL: ok
# service postgresql restart
Restarting PostgreSQL: server stopped
ok
5. How do I find out what version of PostgreSQL I am running?
 $ /usr/local/pgsql/bin/psql test
Welcome to psql 8.3.7, the PostgreSQL interactive terminal.
Type:  \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
test=# select version();
version
----------------------------------------------------------------------------------------------------
PostgreSQL 8.3.7 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 4.1.2 20071124 (Red Hat 4.1.2-42)
(1 row)
test=#
5. How to create a PostgreSQL user ?

There are two methods in which you can create user.

Method 1: Creating the user in the PSQL prompt, with CREATE USER command.
 # CREATE USER ramesh WITH password 'tmppassword';
CREATE ROLE
Method 2: Creating the user in the shell prompt, with createuser command.
 $ /usr/local/pgsql/bin/createuser sathiya
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n
CREATE ROLE
6. How to create a PostgreSQL Database ?

There are two metods in which you can create two databases.

Method 1: Creating the database in the PSQL prompt, with createuser command.


# CREATE DATABASE mydb WITH OWNER ramesh;
CREATE DATABASE
Method 2: Creating the database in the shell prompt, with createdb command.
 $ /usr/local/pgsql/bin/createdb mydb -O ramesh
CREATE DATABASE
* -O owner name is the option in the command line.

7. How do I get a list of databases in a Postgresql database ?
 # \l  [Note: This is backslash followed by lower-case L]
List of databases
Name | Owner | Encoding
----------+----------+----------
backup | postgres | UTF8
mydb | ramesh | UTF8
postgres | postgres | UTF8
template0 | postgres | UTF8
template1 | postgres | UTF8
8. How to Delete/Drop an existing PostgreSQL database ?
 # \l
List of databases
Name | Owner | Encoding
----------+----------+----------
backup | postgres | UTF8
mydb | ramesh | UTF8
postgres | postgres | UTF8
template0 | postgres | UTF8
template1 | postgres | UTF8
# DROP DATABASE mydb;
DROP DATABASE
9. Getting help on postgreSQL commands

\? will show PSQL command prompt help. \h CREATE will shows help about all the commands that starts with CREATE, when you want something specific such as help for creating index, then you need to give CREATE INDEX.
 # \?
# \h CREATE
# \h CREATE INDEX
10. How do I get a list of all the tables in a Postgresql database?
 # \d
On an empty database, you’ll get “No relations found.” message for the above command.

11. How to turn on timing, and checking how much time a query takes to execute ?

# \timing — After this if you execute a query it will show how much time it took for doing it.
 # \timing
Timing is on.
# SELECT * from pg_catalog.pg_attribute ;
Time: 9.583 ms
12. How To Backup and Restore PostgreSQL Database and Table?

We discussed earlier how to backup and restore postgres database and tables using pg_dump and psql utility.

13. How to see the list of available functions in PostgreSQL ?

To get to know more about the functions, say \df+
 # \df
# \df+
14. How to edit PostgreSQL queries in your favorite editor ?
 # \e

\e will open the editor, where you can edit the queries and save it. By doing so the query will get executed.

15. Where can i find the postgreSQL history file ?

Similar to the Linux ~/.bash_history file, postgreSQL stores all the sql command that was executed in a history filed called ~/.psql_history as shown below.
 $ cat ~/.psql_history
alter user postgres with password 'tmppassword';
\h alter user
select version();
create user ramesh with password 'tmppassword';
\timing
select * from pg_catalog.pg_attribute;
 



Thursday 26 March 2015

Clear Os as Firewall

ClearOs is open source which acts as an firewall. Usually what we do is make use of firewall application which will comes in os application as defaults.
What is firewall??
   Firewall which will stop user to access or receive specified contents from internet because it may harm to your system or it maybe security purpose.
But their  features is limited if we make use default Os firewall. We can use till certain boundaries. If we start using ClearOs as our firewall system we can understand how to expand our boundaries in firewall. Also we can develop our own firewall application which acts upon users requirements.

   There are already built in applications such as Ip blocking which is we can block particular machine by accessing internet by using system ip address,  also we can block particular site accesing, and for example in office if boss wants works should not download files from internet that also possible by using ClearOs or also block particular format to download such as  .txt, .exe.
  Shortly we can tell this ClearOs can future of all firewall system. If we start using it can be very much useful in office, college, hospitals, restaurants etc.
  The main advantages is that it is the open source we need not pay anything for such a useful os. We can build our own application bass upon our own requirements. We can also install this virtual and make use of its features.
 


Hopes..

Life is very short no one knows when  will we die. Within this short span of life we should achieve what we want, there may be failure while achieving that goal but we should not  loose hope. A great person said that     happiness will be there for sure if you facing sadness same way success comes only after  failure. So only we should not loose our hopes. That hope only will lead us to achieving that goal. To achieve that goal it may take long time if we loose hope in between it will be the total waste what we achieved till that period of time. Never think that you are wasting your time by trying yo achieve that goal. Achievement of goal is an secondary but what knowledge will we get during that which will teach us how this world is , and how the people around us. All will be our friend until we have money once you are in any difficulty no one will come yo help you. We ourself only should find a way come out of that of problem. So  never expect anything with people around you. There may be good people also but it is very hard to find who are good people. If you trust any one blindly who may make use of you for their advantage but if you need any help wit them they will refuse to do that. So you will not receive what you expect with them back. So the do not trust any one blindly so that they may take advantages of you. So hopes which will keep goal alive.



Monday 16 March 2015

Lonely Life

 LITTLE Jannita sat alone beside a milk-bush. Before her and behind her stretched the plain, covered with red sand and thorny “Karroo” bushes; and here and there a milk-bush, looking like a bundle of pale green rods tied together. Not a tree was to be seen anywhere, except on the banks of the river, and
  that was far away, and the sun beat on her head. Round her fed the Angora goats she was herding; pretty things, especially the little ones, with white silky curls that touched the ground. But Jannita sat crying. If an angel should gather up in his cup all the tears that have been shed, I think the bitterest would be those of children.
By and by she was so tired, and the sun was so hot, she laid her head against the milk-bush, and dropped asleep.

She dreamed a beautiful dream. She thought that when she went back  to the farmhouse in the evening, the walls were covered with vines and roses, and the “kraals” (sheepfolds) were not made of red stone, but of lilac trees full of blossom. And the fat old Boer smiled at her, and the stick he held across the door for the goats to jump over, was a lily rod with seven blossoms at the end. When she went to the house her mistress gave her a whole roaster-cake for her supper, and the mistress's daughter had stuck a rose in the cake; and her mistress's son-in-law said, “Thank you!” when she pulled off his boots, and did not kick her.
 
It was a beautiful dream.
While she lay thus dreaming, one of the little kids came and licked her on her cheek, because of the salt from her dried-up tears. And in her dream she was not a poor indentured child any more, living with Boers. It was her father who kissed her. He said he had only been asleep--that day when he lay down under the thorn-bush; he had not really died. He felt her hair, and said it was grown long and silky, and he said they would go back to Denmark now. He asked her why her feet were bare, and what the marks on her back were. Then he put her head on his shoulder, and picked her up, and carried her away, away! She laughed--she could feel her face against his brown beard. His arms were so strong.
As she lay there dreaming, with the ants running over her naked feet, and with her brown curls lying in the sand, a Hottentot came up to her. He was dressed in ragged yellow trousers, and a dirty shirt, and torn jacket. He had a red handkerchief round his head, and a felt hat above that. His nose was flat, his eyes like slits, and the wool on his head was gathered into little round balls. He came to the milk-bush, and looked at the little girl lying in the hot sun. Then he walked off, and caught one of the fattest little Angora goats, and held its mouth fast, as he stuck it under his arm. He looked back to see that she was still sleeping, and jumped down into one of the “sluits.” (The deep fissures, generally dry, in which the superfluous torrents of water are carried from the “Karroo” plains after thunderstorms.) He walked down the bed of the “sluit” a little way and came to an overhanging bank, under which, sitting on the red sand, were two men. One was a tiny, ragged, old bushman, four feet high; the other was an English navvy, in a dark blue blouse. They cut the kid's throat with the navvy's long knife, and covered up the blood with sand, and buried the entrails and skin. Then they talked, and quarrelled a little; and then they talked quietly again.
The Hottentot man put a leg of the kid under his coat and left the rest of the meat for the two in the “sluit,” and walked away.
When little Jannita awoke it was almost sunset. She sat up very frightened, but her goats were all about her. She began to drive them home. “I do not think there are any lost,” she said.
Dirk, the Hottentot, had brought his flock home already, and stood at the “kraal” door with his ragged yellow trousers. The fat old Boer put his stick across the door, and let Jannita's goats jump over, one by one. He counted them. When the last jumped over: “Have you been to sleep today?” he said; “there is one missing.”
Then little Jannita knew what was coming, and she said, in a low voice, “No.” And then she felt in her heart that deadly sickness that you feel when you tell a lie; and again she said, “Yes.”
“Do you think you will have any supper this evening?” said the Boer.
“No,” said Jannita.
“What do you think you will have?”
“I don't know,” said Jannita.
“Give me your whip,” said the Boer to Dirk, the Hottentot.
The moon was all but full that night. Oh, but its light was beautiful!
The little girl crept to the door of the outhouse where she slept, and looked at it. When you are hungry, and very, very sore, you do not cry. She leaned her chin on one hand, and looked, with her great dove's eyes--the other hand was cut open, so she wrapped it in her pinafore. She looked across the plain at the sand and the low karroo-bushes, with the moonlight on them.
Presently, there came slowly, from far away, a wild spring-buck. It came close to the house, and stood looking at it in wonder, while the moonlight glinted on its horns, and in its great eyes. It stood wondering at the red brick walls, and the girl watched it. Then, suddenly, as if it scorned it all, it curved its beautiful back and turned; and away it fled over the bushes and sand, like a sheeny streak of white lightning. She stood up to watch it. So free, so free! Away, away! She watched, till she could see it no more on the wide plain.
Her heart swelled, larger, larger, larger: she uttered a low cry; and without waiting, pausing, thinking, she followed on its track. Away, away, away! “I--I also!” she said, “I--I also!”
When at last her legs began to tremble under her, and she stopped to breathe, the house was a speck behind her. She dropped on the earth, and held her panting sides.

She began to think now.
If she stayed on the plain they would trace her footsteps in the morning and catch her; but if she waded in the water in the bed of the river they would not be able to find her footmarks; and she would hide, there where the rocks and the “kopjes” were.
(“Kopjes,” in the karroo, are hillocks of stone, that rise up singly or in clusters, here and there; presenting sometimes the fantastic appearance of old ruined castles or giant graves, the work of human hands.)
So she stood up and walked towards the river. The water in the river was low; just a line of silver in the broad bed of sand, here and there broadening into a pool. She stepped into it, and bathed her feet in the delicious cold water. Up and up the stream she walked, where it rattled over the pebbles, and past where the farmhouse lay; and where the rocks were large she leaped from one to the other. The night wind in her face made her strong--she laughed. She had never felt such night wind before. So the night smells to the wild bucks, because they are free! A free thing feels as a chained thing never can.
At last she came to a place where the willows grew on each side of the river, and trailed their long branches on the sandy bed. She could not tell why, she could not tell the reason, but a feeling of fear came over her.
On the left bank rose a chain of “kopjes” and a precipice of rocks. Between the precipice and the river bank there was a narrow path covered by the fragments of fallen rock. And upon the summit of the precipice a kippersol tree grew, whose palm-like leaves were clearly cut out against the night sky. The rocks cast a deep shadow, and the willow trees, on either side of the river. She paused, looked up and about her, and then ran on, fearful.
“What was I afraid of? How foolish I have been!” she said, when she came to a place where the trees were not so close together. And she stood still and looked back and shivered.
At last her steps grew wearier and wearier. She was very sleepy now, she could scarcely lift her feet. She stepped out of the river-bed. She only saw that the rocks about her were wild, as though many little “kopjes” had been broken up and strewn upon the ground, lay down at the foot of an aloe, and fell asleep.
But, in the morning, she saw what a glorious place it was. The rocks were piled on one another, and tossed this way and that. Prickly pears grew among them, and there were no less than six kippersol trees scattered here and there among the broken “kopjes.” In the rocks there were hundreds of homes for the coneys, and from the crevices wild asparagus hung down. She ran to the river, bathed in the clear cold water, and tossed it over her head. She sang aloud. All the songs she knew were sad, so she could not sing them now, she was glad, she was so free; but she sang the notes without the words, as the cock-o-veets do. Singing and jumping all the way, she went back, and took a sharp stone, and cut at the root of a kippersol, and got out a large piece, as long as her arm, and sat to chew it. Two coneys came out on the rock above her head and peeped at her. She held them out a piece, but they did not want it, and ran away.
It was very delicious to her. Kippersol is like raw quince, when it is very green; but she liked it. When good food is thrown at you by other people, strange to say, it is very bitter; but whatever you find yourself is sweet!
When she had finished she dug out another piece, and went to look for a pantry to put it in. At the top of a heap of rocks up which she clambered she found that some large stones stood apart but met at the top, making a room.
“Oh, this is my little home!” she said.
At the top and all round it was closed, only in the front it was open. There was a beautiful shelf in the wall for the kippersol, and she scrambled down again. She brought a great branch of prickly pear, and stuck it in a crevice before the door, and hung wild asparagus over it, till it looked as though it grew there. No one could see that there was a room there, for she left only a tiny opening, and hung a branch of feathery asparagus over it. Then she crept in to see how it looked. There was a glorious soft green light. Then she went out and picked some of those purple little ground flowers--you know them--those that keep their faces close to the ground, but when you turn them up and look at them they are deep blue eyes looking into yours! She took them with a little earth, and put them in the crevices between the rocks; and so the room was quite furnished. Afterwards she went down to the river and brought her arms full of willow, and made a lovely bed; and, because the weather was very hot, she lay down to rest upon it.
She went to sleep soon, and slept long, for she was very weak. Late in the afternoon she was awakened by a few cold drops falling on her face. She sat up. A great and fierce thunderstorm had been raging, and a few of the cool drops had fallen through the crevice in the rocks. She pushed the asparagus branch aside, and looked out, with her little hands folded about her knees. She heard the thunder rolling, and saw the red torrents rush among the stones on their way to the river. She heard the roar of the river as it now rolled, angry and red, bearing away stumps and trees on its muddy water. She listened and smiled, and pressed closer to the rock that took care of her. She pressed the palm of her hand against it. When you have no one to love you, you love the dumb things very much. When the sun set, it cleared up. Then the little girl ate some kippersol, and lay down again to sleep. She thought there was nothing so nice as to sleep. When one has had no food but kippersol juice for two days, one doesn't feel strong.
“It is so nice here,” she thought as she went to sleep, “I will stay here always.”
Afterwards the moon rose. The sky was very clear now, there was not a cloud anywhere; and the moon shone in through the bushes in the door, and made a lattice-work of light on her face. She was dreaming a beautiful dream. The loveliest dreams of all are dreamed when you are hungry. She thought she was walking in a beautiful place, holding her father's hand, and they both had crowns on their heads, crowns of wild asparagus. The people whom they passed smiled and kissed her; some gave her flowers, and some gave her food, and the sunlight was everywhere. She dreamed the same dream over and over, and it grew more and more beautiful; till, suddenly, it seemed as though she were standing quite alone. She looked up: on one side of her was the high precipice, on the other was the river, with the willow trees, drooping their branches into the water; and the moonlight was over all. Up, against the night sky the pointed leaves of the kippersol trees were clearly marked, and the rocks and the willow trees cast dark shadows.
In her sleep she shivered, and half awoke.
“Ah, I am not there, I am here,” she said; and she crept closer to the rock, and kissed it, and went to sleep again.
It must have been about three o'clock, for the moon had begun to sink towards the western sky, when she woke, with a violent start. She sat up, and pressed her hand against her heart.
“What can it be? A coney must surely have run across my feet and frightened me!” she said, and she turned to lie down again; but soon she sat up. Outside, there was the distinct sound of thorns crackling in a fire.
She crept to the door and made an opening in the branches with her fingers.
A large fire was blazing in the shadow, at the foot of the rocks. A little Bushman sat over some burning coals that had been raked from it, cooking meat. Stretched on the ground was an Englishman, dressed in a blouse, and with a heavy, sullen face. On the stone beside him was Dirk, the Hottentot, sharpening a bowie knife.
She held her breath. Not a coney in all the rocks was so still.
“They can never find me here,” she said; and she knelt, and listened to every word they said. She could hear it all.
“You may have all the money,” said the Bushman; “but I want the cask of brandy. I will set the roof alight in six places, for a Dutchman burnt my mother once alive in a hut, with three children.”
“You are sure there is no one else on the farm?” said the navvy.
“No, I have told you till I am tired,” said Dirk; “the two Kaffirs have gone with the son to town; and the maids have gone to a dance; there is only the old man and the two women left.”
“But suppose,” said the navvy, “he should have the gun at his bedside, and loaded!”
“He never has,” said Dirk; “it hangs in the passage, and the cartridges too. He never thought when he bought it what work it was for! I only wish the little white girl was there still,” said Dirk; “but she is drowned. We traced her foot marks to the great pool that has no bottom.”
She listened to every word, and they talked on.
Afterwards, the little Bushman, who crouched over the fire, sat up suddenly, listening.
“Ha! what is that?” he said.
A Bushman is like a dog: his ear is so fine he knows a jackal's tread from a wild dog's.
“I heard nothing,” said the navvy.
“I heard,” said the Hottentot; “but it was only a coney on the rocks.”
“No coney, no coney,” said the Bushman; “see, what is that there moving in the shade round the point?”
“Nothing, you idiot!” said the navvy. “Finish your meat; we must start now.”
There were two roads to the homestead. One went along the open plain, and was by far the shortest; but you might be seen half a mile off. The other ran along the river bank, where there were rocks, and holes, and willow-trees to hide among. And all down the river bank ran a little figure.

The river was swollen by the storm full to its banks, and the willow trees dipped their half-drowned branches into its water. Wherever there was a gap between them, you could see it flow, red and muddy, with the stumps upon it. But the little figure ran on and on; never looking, never thinking; panting, panting! There, where the rocks were the thickest; there, where on the open space the moonlight shone; there, where the prickly pears were tangled, and the rocks cast shadows, on it ran; the little hands clinched, the little heart beating, the eyes fixed always ahead.

It was not far to run now. Only the narrow path between the high rocks and the river.
At last she came to the end of it, and stood for an instant. Before her lay the plain, and the red farm-house, so near, that if persons had been walking there you might have seen them in the moonlight. She clasped her hands. “Yes, I will tell them, I will tell them!” she said; “I am almost there!” She ran forward again, then hesitated. She shaded her eyes from the moonlight, and looked. Between her and the farm-house there were three figures moving over the low bushes.
In the sheeny moonlight you could see how they moved on, slowly and furtively; the short one, and the one in light clothes, and the one in dark.
“I cannot help them now!” she cried, and sank down on the ground, with her little hands clasped before her.
“Awake, awake!” said the farmer's wife; “I hear a strange noise; something calling, calling, calling!”
The man rose, and went to the window.
“I hear it also,” he said; “surely some jackal's at the sheep. I will load my gun and go and see.”
 
“It sounds to me like the cry of no jackal,” said the woman; and when he was gone she woke her daughter.
“Come, let us go and make a fire, I can sleep no more,” she said; “I have heard a strange thing tonight. Your father said it was a jackal's cry, but no jackal cries so. It was a child's voice, and it cried, ‘Master, master, wake!’”
The women looked at each other; then they went to the kitchen, and made a great fire; and they sang psalms all the while.
At last the man came back; and they asked him, “What have you seen?”“Nothing,” he said, “but the sheep asleep in their kraals, and the moonlight on the walls. And yet, it did seem to me,” he added, “that far away near the ‘krantz’ [precipice] by the river, I saw three figures moving. And afterwards--it might have been fancy--I thought I heard the cry again; but since that, all has been still there.”
Next day a navvy had returned to the railway works.
“Where have you been so long?” his comrades asked.
“He keeps looking over his shoulder,” said one, “as though he thought he should see something there.”
“When he drank his grog today,” said another, “he let it fall, and looked round.”
Next day, a small old Bushman, and a Hottentot, in ragged yellow trousers, were at a wayside canteen. When the Bushman had had brandy, he began to tell how something (he did not say whether it was man, woman, or child) had lifted up its hands and cried for mercy; had kissed a white man's hands, and cried to him to help it. Then the Hottentot took the Bushman by the throat, and dragged him out.
Next night, the moon rose
up, and mounted the quiet sky. She was full now, and looked in at the little home; at the purple flowers stuck about the room, and the kippersol on the shelf. Her light fell on the willow trees, and on the high rocks, and on a little new-made heap of earth and round stones. Three men knew what was under it; and no one else ever will.


My Lucky Dog

Lucky(name of my dog)  has been my best friend for a long time. Together we have gone through so much and have established an unbreakable bond.  A few years ago Lucky's health began to fail, he became weaker. Naturally I was worried. Veterinarians offered many solutions yet none appeared to be truly effective, and so I took things into my own hands and went to the root of the problem. I started with what seemed most logical: food. From my own personal experience of health problems, I knew that it was a change in diet had always made the real difference. So I started to do my homework and, although not formally an expert in this area, I began to substitute Max’s croquettes for my own recipe.
As you can probably guess – it worked! And it was only a question of time until my friends started to see how much Max was improving. Not only did he start to lose his limp but he even slimmed down and the quality of his fur improved noticeably. Everyone wanted to know what we were doing! And the answer was easy: Diet.
From here began this learning adventure where Max has been my main teacher and source of motivation. Through this route, I have met many people who have identified with the ideology behind Lucky Dog. I would also like to thank my team of experts: Maribel Iniesta, holistic veterinarian; Geraldine Nidasio, animal nutritionist; Ignacio, Celia, Tania and Areceli, our chef and kitchen assistants; and, of course, my dear friends and fellow dog lovers.  It is thanks to these individuals that I am able to share this discovery with you who, like me, want for the very best for their pets. I truly hope you find that Lucky Dog offers the freshness, love and nutrition that your adoring pets deserve.



Good Luck!