| CAS is the part of the .NET security model that determines whether or not a piece of code is allowed to run, and what resources it can use when it is running. For example, it is CAS that will prevent a .NET web applet from formatting your hard disk. The CAS security policy revolves around two key concepts - code groups and permissions. Each .NET assembly is a member of a particular code group, and each code group is granted the permissions specified in a named permission set. For example, using the default security policy, a control downloaded from a web site belongs to the 'Zone - Internet' code group, which adheres to the permissions defined by the 'Internet' named permission set. (Naturally the 'Internet' named permission set represents a very restrictive range of permissions.) | |
| Questions : 2 | What are object pooling and connection pooling and difference? Where do we set the Min and Max Pool size for connection pooling? |
| Answers : 2 | Object pooling is a COM+ service that enables you to reduce the overhead of creating each object from scratch. When an object is activated, it is pulled from the pool. When the object is deactivated, it is placed back into the pool to await the next request. You can configure object pooling by applying the ObjectPoolingAttribute attribute to a class that derives from the System.EnterpriseServices.ServicedComponent class. Object pooling lets you control the number of connections you use, as opposed to connection pooling, where you control the maximum number reached. Following are important differences between object pooling and connection pooling: 1. Creation. When using connection pooling, creation is on the same thread, so if there is nothing in the pool, a connection is created on your behalf. With object pooling, the pool might decide to create a new object. However, if you have already reached your maximum, it instead gives you the next available object. This is crucial behavior when it takes a long time to create an object, but you do not use it for very long. 2. Enforcement of minimums and maximums. This is not done in connection pooling. The maximum value in object pooling is very important when trying to scale your application. You might need to multiplex thousands of requests to just a few objects. (TPC/C benchmarks rely on this.) COM+ object pooling is identical to what is used in .NET Framework managed SQL Client connection pooling. For example, creation is on a different thread and minimums and maximums are enforced. |
| Questions : 3 | What is a WebService and what is the underlying protocol used in it? Namespace? |
| Answers : 3 | Web Services are applications delivered as a service on the Web. Web services allow for programmatic access of business logic over the Web. Web services typically rely on XML-based protocols, messages, and interface descriptions for communication and access. Web services are designed to be used by other programs or applications rather than directly by end user. Programs invoking a Web service are called clients. SOAP over HTTP is the most commonly used protocol for invoking Web services. |
| Questions : 4 | What is serialization in .NET? What are the ways to control serialization? |
| Answers : 4 | Serialization is the process of converting an object into a stream of bytes. Deserialization is the opposite process of creating an object from a stream of bytes. Serialization/Deserialization is mostly used to transport objects (e.g. during remoting), or to persist objects (e.g. to a file or database).Serialization can be defined as the process of storing the state of an object to a storage medium. During this process, the public and private fields of the object and the name of the class, including the assembly containing the class, are converted to a stream of bytes, which is then written to a data stream. When the object is subsequently deserialized, an exact clone of the original object is created. 1. Binary serialization preserves type fidelity, which is useful for preserving the state of an object between different invocations of an application. For example, you can share an object between different applications by serializing it to the clipboard. You can serialize an object to a stream, disk, memory, over the network, and so forth. Remoting uses serialization to pass objects "by value" from one computer or application domain to another. 2. XML serialization serializes only public properties and fields and does not preserve type fidelity. This is useful when you want to provide or consume data without restricting the application that uses the data. Because XML is an open standard, it is an attractive choice for sharing data across the Web. SOAP is an open standard, which makes it an attractive choice. |
| Questions : 5 | Explain SOAP, WSDL, UDDI in brief.Namespace? |
| Answers : 5 | SOAP:-SOAP is an XML-based messaging framework specifically designed for exchanging formatted data across the Internet, for example using request and reply messages or sending entire documents. SOAP is simple, easy to use, and completely neutral with respect to operating system, programming language, or distributed computing platform.After SOAP became available as a mechanism for exchanging XML messages among enterprises (or among disparate applications within the same enterprise), a better way was needed to describe the messages and how they are exchanged. WSDL :-The Web Services Description Language (WSDL) is a particular form of an XML Schema, developed by Microsoft and IBM for the purpose of defining the XML message, operation, and protocol mapping of a web service accessed using SOAP or other XML protocol. WSDL defines web services in terms of "endpoints" that operate on XML messages. The WSDL syntax allows both the messages and the operations on the messages to be defined abstractly, so they can be mapped to multiple physical implementations. The current WSDL spec describes how to map messages and operations to SOAP 1.1, HTTP GET/POST, and MIME. WSDL creates web service definitions by mapping a group of endpoints into a logical sequence of operations on XML messages. The same XML message can be mapped to multiple operations (or services) and bound to one or more communications protocols (using "ports"). UDDI :-The Universal Description, Discovery, and Integration (UDDI) framework defines a data model (in XML) and SOAP APIs for registration and searches on business information, including the web services a business exposes to the Internet. UDDI is an independent consortium of vendors, founded by Microsoft, IBM, and Ariba, for the purpose of developing an Internet standard for web service description registration and discovery. Microsoft, IBM, and Ariba also are hosting the initial deployment of a UDDI service, which is conceptually patterned after DNS (the Internet service that translates URLs into TCP addresses). UDDI uses a private agreement profile of SOAP (i.e. UDDI doesn't use the SOAP serialization format because it's not well suited to passing complete XML documents (it's aimed at RPC style interactions). The main idea is that businesses use the SOAP APIs to register themselves with UDDI, and other businesses search UDDI when they want to discover a trading partner, for example someone from whom they wish to procure sheet metal, bolts, or transistors. The information in UDDI is categorized according to industry type and geographical location, allowing UDDI consumers to search through lists of potentially matching businesses to find the specific one they want to contact. Once a specific business is chosen, another call to UDDI is made to obtain the specific contact information for that business. The contact information includes a pointer to the target business's WSDL or other XML schema file describing the web service that the target business publishes. . |
| Questions : 6 | What is Method Overriding? How to override a function in C#? |
| Answers : 6 | An override method provides a new implementation of a member inherited from a base class. The method overridden by an override declaration is known as the overridden base method. The overridden base method must have the same signature as the override method. Use the override modifier to modify a method, a property, an indexer, or an event. You cannot override a non-virtual or static method. The overridden base method must be virtual, abstract, or override. |
| Questions : 7 | 7. How can we check if all validation and controls are valid or proper?How can we force to run all validation control to run? |
| Answers : 7 | By using Page.IsValid() property we can check if all validation and controls are valid or proper by using Page.Validate we can force to run all validation control to run |
| Questions : 8 | What is the difference between Server.Transfer and Response.Redirect? Why would I choose one over the other? |
| Answers : 8 | Server.Transfer transfers page processing from one page directly to the next page without making a round-trip back to the client's browser. This provides a faster response with a little less overhead on the server. Server.Transfer does not update the clients url history list or current url. Response.Redirect is used to redirect the user's browser to another page or site. This performas a trip back to the client where the client's browser is redirected to the new page. The user's browser history list is updated to reflect the new address. |
| Questions : 9 | What is JIT (just in time)? how it works? |
| Answers : 9 | Before Microsoft intermediate language (MSIL) can be executed, it must be converted by a .NET Framework just-in-time (JIT) compiler to native code, which is CPU-specific code that runs on the same computer architecture as the JIT compiler. Rather than using time and memory to convert all the MSIL in a portable executable (PE) file to native code, it converts the MSIL as it is needed during execution and stores the resulting native code so that it is accessible for subsequent calls. The runtime supplies another mode of compilation called install-time code generation. The install-time code generation mode converts MSIL to native code just as the regular JIT compiler does, but it converts larger units of code at a time, storing the resulting native code for use when the assembly is subsequently loaded and executed. As part of compiling MSIL to native code, code must pass a verification process unless an administrator has established a security policy that allows code to bypass verification. Verification examines MSIL and metadata to find out whether the code can be determined to be type safe, which means that it is known to access only the memory locations it is authorized to access. |
| Questions : 10 | Difference between DataReader and DataAdapter / DataSet and DataAdapter? |
| Answers : 10 | You can use the ADO.NET DataReader to retrieve a read-only, forward-only stream of data from a database. Using the DataReader can increase application performance and reduce system overhead because only one row at a time is ever in memory. After creating an instance of the Command object, you create a DataReader by calling Command.ExecuteReader to retrieve rows from a data source, as shown in the following example. SqlDataReader myReader = myCommand.ExecuteReader(); You use the Read method of the DataReader object to obtain a row from the results of the query. while (myReader.Read()) Console.WriteLine("\t{0}\t{1}", myReader.GetInt32(0), myReader.GetString(1)); myReader.Close(); The DataSet is a memory-resident representation of data that provides a consistent relational programming model regardless of the data source. It can be used with multiple and differing data sources, used with XML data, or used to manage data local to the application. The DataSet represents a complete set of data including related tables, constraints, and relationships among the tables. The methods and objects in a DataSet are consistent with those in the relational database model. The DataSet can also persist and reload its contents as XML and its schema as XML Schema definition language (XSD) schema. The DataAdapter serves as a bridge between a DataSet and a data source for retrieving and saving data. The DataAdapter provides this bridge by mapping Fill, which changes the data in the DataSet to match the data in the data source, and Update, which changes the data in the data source to match the data in the DataSet. If you are connecting to a Microsoft SQL Server database, you can increase overall performance by using the SqlDataAdapter along with its associated SqlCommand and SqlConnection. For other OLE DB-supported databases, use the DataAdapter with its associated OleDbCommand and OleDbConnection objects. |
| Questions : 11 | Differences between dataset.clone and dataset.copy? |
| Answers : 11 | Clone - Copies the structure of the DataSet, including all DataTable schemas, relations, and constraints. Does not copy any data. Copy - Copies both the structure and data for this DataSet. |
| Questions : 12 | What is State Management in .Net and how many ways are there to maintain a state in .Net? What is view state? |
| Answers : 12 | Web pages are recreated each time the page is posted to the server. In traditional Web programming, this would ordinarily mean that all information associated with the page and the controls on the page would be lost with each round trip. To overcome this inherent limitation of traditional Web programming, the ASP.NET page framework includes various options to help you preserve changes — that is, for managing state. The page framework includes a facility called view state that automatically preserves property values of the page and all the controls on it between round trips. However, you will probably also have application-specific values that you want to preserve. To do so, you can use one of the state management options. Client-Based State Management Options: View State Hidden Form Fields Cookies Query Strings Server-Based State Management Options Application State Session State Database Support |
| Questions : 13 | Difference between web services & remoting? Namespace? |
| Answers : 13 | ASP.NET Web Services .NET Remoting Protocol Can be accessed only over HTTP Can be accessed over any protocol (including TCP, HTTP, SMTP and so on) State Management Web services work in a stateless environment Provide support for both stateful and stateless environments through Singleton and SingleCall objects Type System Web services support only the datatypes defined in the XSD type system, limiting the number of objects that can be serialized. Using binary communication, .NET Remoting can provide support for rich type system Interoperability Web services support interoperability across platforms, and are ideal for heterogeneous environments. .NET remoting requires the client be built using .NET, enforcing homogenous environment. Reliability Highly reliable due to the fact that Web services are always hosted in IIS Can also take advantage of IIS for fault isolation. If IIS is not used, application needs to provide plumbing for ensuring the reliability of the application. Extensibility Provides extensibility by allowing us to intercept the SOAP messages during the serialization and deserialization stages. Very extensible by allowing us to customize the different components of the .NET remoting framework. Ease-of-Programming Easy-to-create and deploy. Complex to program. |
| Questions : 14 | What is MSIL, IL? |
| Answers : 14 | When compiling to managed code, the compiler translates your source code into Microsoft intermediate language (MSIL), which is a CPU-independent set of instructions that can be efficiently converted to native code. MSIL includes instructions for loading, storing, initializing, and calling methods on objects, as well as instructions for arithmetic and logical operations, control flow, direct memory access, exception handling, and other operations. Microsoft intermediate language (MSIL) is a language used as the output of a number of compilers and as the input to a just-in-time (JIT) compiler. The common language runtime includes a JIT compiler for converting MSIL to native code. |
| Questions : 15 | What is strong name? |
| Answers : 15 | A name that consists of an assembly's identity—its simple text name, version number, and culture information (if provided)—strengthened by a public key and a digital signature generated over the assembly. |
| Questions : 16 | What is exception handling? |
| Answers : 16 | When an exception occurs, the system searches for the nearest catch clause that can handle the exception, as determined by the run-time type of the exception. First, the current method is searched for a lexically enclosing try statement, and the associated catch clauses of the try statement are considered in order. If that fails, the method that called the current method is searched for a lexically enclosing try statement that encloses the point of the call to the current method. This search continues until a catch clause is found that can handle the current exception, by naming an exception class that is of the same class, or a base class, of the run-time type of the exception being thrown. A catch clause that doesn't name an exception class can handle any exception. Once a matching catch clause is found, the system prepares to transfer control to the first statement of the catch clause. Before execution of the catch clause begins, the system first executes, in order, any finally clauses that were associated with try statements more nested that than the one that caught the exception. Exceptions that occur during destructor execution are worth special mention. If an exception occurs during destructor execution, and that exception is not caught, then the execution of that destructor is terminated and the destructor of the base class (if any) is called. If there is no base class (as in the case of the object type) or if there is no base class destructor, then the exception is discarded. |
| Questions : 17 | What is the managed and unmanaged code in .net? |
| Answers : 17 | The .NET Framework provides a run-time environment called the Common Language Runtime, which manages the execution of code and provides services that make the development process easier. Compilers and tools expose the runtime's functionality and enable you to write code that benefits from this managed execution environment. Code that you develop with a language compiler that targets the runtime is called managed code; it benefits from 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. |
| Questions : 18 | What is the namespace threading in .net? |
| Answers : 18 | System.Threading.Thread How to encode string string ss="pervej"; string encode=Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(ss)); Response.Write(encode) |
Thursday, 29 September 2011
DOTNET QUESTION AND ANSWER
INTERVIEWS QUESTION
What are Modal and Modeless forms in Windows Forms Application?
Modal Form:
In a modal form Windows application, the last form opened can only be accessed. i.e. the parent form cannot be accessed as long as the child form is open.Modeless Form:
In case of Modeless form, Parent window generates a child window (as in Modal forms), but the user can access either of the Parent window or Child Window. Pon
Dotnet Framework Interview Questions
This section contains Dotnet Framework Interview Questions that I faced in my interviews at the time of job change. Please post your comments here. Also, post your questions to get an answer.
1. What is an assembly in .Net? What is manifest?
2. What is GAC?
3. If you have two versions of the same assembly in GAC and you want to use the older version, how to achieve this?
4. What is side-by-side execution?
5. What is Reflection?
6. What is a satellite assembly?
Hint: Localization
C# Dotnet Interview questions
1. What are the features of an object oriented programming language?
Ans: I. Abstraction
II. Encapsulation
III. Polymorphism
IV. Inheritance
2. What is the difference between overloading and overriding in C#?
3. What is the difference between Abstract class and Interface?
4. What is the difference between ref and out?
5. What is Generics in C#? List the advantages.
6. What is advantages of using "using" block?
Ans: Using block is a short cut to try{} finally{} block.
Generally used to define connections. It will dispose the connection object automatically once we come out of using block.
7. What is use of a static constructor?
8. Describe the event delegate model in C#.
9. What are partial classes?
10. what is a sealed class?
11. What is the difference between Array and ArrayList? List the advantages.
SQL Server Interview questions
1. How to optimize stored procedures in SQL Server?
Ans: I. Use where clause
II. Select only required fields
III. Do join on indexed key fields
2. What is the difference between Stored procedure and User defined functions?
3. Why should we go for Stored Procedures? Why not direct queries?
Ans: SP are precompiled and contain an execution plan with it. Hence, they are faster.
4. How many NULL values we can have in a Unique key field in SQL Server?
Ans: Only one. In case of Oracle, we can have multiple NULL values in a Unique key field.
5. What is correlated subquery?
6. What is an index. What are the types?
Indexes in databases are very much similar to Indexes in Books. Indexes help in searching data faster.
Types: Clustered Index
Non-Clustered Index
7. What is the difference between a clustered index and a non-clustered index?
Clustered Index:
1 Only one clustered index allowed per table
2 Physically rearranges the data
3 For use on columns that are frequently searched for range of data
Non-clustered Index:
1 Upto 249 non-clustered index allowed per table
2 Doesn’t rearrange the data. Keeps a pointer to the data.
3 For use on columns that are searched for single value.
8. What is a join? What are the types of joins?
Joins are used to retrieve data from multiple tables.
Following are the types of joins:
Inner join
Left outer join
Right outer join
Full outer join
Cross join
9. What is a transaction?
A SQL transaction is a sequence of operations performed as a single unit of work. If all the tasks are completed successfully, then the transaction is committed (saved). If a single task fails, the transaction is rolled back (discarded).
10. What is ACID property of transaction?
A SQL transaction must exhibit ACID property, i.e Atomicity, Consistency, Isolation, and Durability.
Atomicity: A transaction is always treated as a single unit of work, i.e. either all the tasks are performed or none of them, no intermediate stage.
Consistency: When a transaction is completed, it must leave all data in a consistent state.
Isolation: Modifications made by a transaction must be isolated from the modifications made by other transactions.
Durability: After a transaction is completed, it’s effects are permanently in place in the system.
11. What is SET NOCOUNT ON?
When we perform a SELECT, INSERT, UPDATE or DELETE query, it returns a COUNT (number of rows affected) when SET NOCOUNT OFF. If SET NOCOUNT ON, it doesn’t return the COUNT.
12. How to delete exactly duplicate records from a table?
There are many ways. Simplest answer is:
i. Let the table tab1 contains duplicate records.
ii. Insert distinct records from tab1 in a temporary table #temp
INSERT INTO #temp
SELECT DISTINCT * FROM tab1
iii. Delete all rows from original table tab1
DELETE FROM tab1
iv. Insert from temporary table
INSERT INTO tab1
SELECT * FROM #temp
Try other solutions yourself.
13. How to get nth highest salary from employee table.
The query below demonstrates how to find the 5th highest salary. Replace 5 with any integer to get nth salary.
SELECT TOP 1 SALARY
FROM (SELECT DISTINCT TOP 5 SALARY
FROM EMPLOYEE ORDER BY SALARY DESC) a
ORDER BY SALARY ASC
What is the difference between web.config and machine.config
Web.config and machine.config are two files used for managing configuration of web applications.
Machine.config:
1. The configurations mentioned in machine.config file are applicable to all the applications hosted in a machine/computer/server.2. The machine.config file is located in x:\\Microsoft.NET\Framework\\config\machine.config
3. There can be only one machine.config file per machine (per dotnet framework installed).
web.config:
1. web.config file contains configurations for a single application.2. Web.config files overrides the configurations mentioned in machine.config file.
3. The web configuration file is located in your application's root folder
4. There can be multiple web.config files in a single web application in different sub folders.
ONE YEAR EXP IN DOTNET QUESTION
Dotnet Framework Interview Questions for 1 Year Experience:
1. What is CLR and it's functions?2. How memory is managed in Dotnet applications?
Hint: Automatically by Garbage collector
3. What is an assembly?
4. What is a strong name?
5. What is MSIL?
C# Interview Questions for 1 Year Experience:
1. What are the 4 pillars of Object Oriented Programming?2. What is a Class? What is an Object?
3. What is a partial class?
4. What is a sealed class?
5. What is constructor?
6. What is stringbuilder?
ADO.Net Interview Questions for 1 Year Experience:
1. What is connection string?2. What is Datareader?
3. Difference between Dataset and datareader?
4. What is Ado.Net?
5. Namespace for using sqlserver database?
ASP.Net Interview Questions for 1 Year Experience:
1. What is web.config file and it's use?2. What is global.asax?
3. What is session?
4. Which all controls you have used in your project?
5. What is gridview?
6. What is Authentication in ASP.Net and types of authentication?
SQL Server Interview Questions for 1 Year Experience:
1. What is Primary key, unique key and difference between them?2. What is index? Types of index?
3. What is a stored procedure? Why it is better than inline query?
Hint: Stored Procedure is precompiles and has a execution plan. Hence faster execution.
4. You might be asked to write simple query
5. What is inner join
Also, if you know any advance concepts like WCF, WPF, LINQ, MVC, JQuerymention while telling "about yourself". You will be given preference. But, make sure you know the basics or worked on them for sometime.
Tuesday, 20 September 2011
8 Tips for Making Friends.
Every Wednesday is Tip Day.
This Wednesday: eight tips for making new friends.
Last week, I posted a list How to make friends -- or at least think about it more clearly. That list sets forth the "essential friendship skills."
But knowing the essential friendship skills isn't the same thing as being able to make friends. And friends are very important to happiness. The more I've studied happiness, in fact, the more convinced I've become that loneliness is a very common and very serious challenge to happiness. I think it's a subject that deserves more attention.
Ancient philosophers and contemporary scientists agree: strong social ties are a key -- arguably the key -- to happiness. You need close, long-term relationships; you need to be able to confide in others; you need to belong; you need to get and give support. Studies show that if you have five or more friends with whom to discuss an important matter you’re far more likely to describe yourself as “very happy.”
Not only does having strong relationships make it far more likely that you take joy in life, but studies show that it also lengthens life (incredibly, even more than stopping smoking), boosts immunity, and cuts the risk of depression.
But making friends can be difficult. Here are some strategies to try, if you’re eager to make friends but finding it tough:
1. Show up. Just as Woody Allen said that “Eighty percent of success is showing up,” a big part of friendship is showing up. Whenever you have the chance to see other people, take it. Go to the party. Stop by someone’s desk. Make the effort. I'm a big believer in the power of online tools like Facebook, Twitter, and Google+ to help sustain relationships, but nothing can replace a face-to-face meeting.
Also, the mere exposure effect describes the fact that repeated exposure makes you like someone better – and makes that person like you better, too. You’re much more likely to become friends with someone if you see him or her often. I’ve seen this happen over and over in my life. I’ve become close to unlikely people, just because circumstances put us in constant contact.
2. Join a group. Being part of a natural group, where you have common interests and are brought together automatically, is the easiest way to make friends: starting a new job, taking a class, having a baby, joining a congregation, or moving to a new neighborhood are great opportunities to join a group. If those situations aren’t an option, try to find a different group to join. Get a dog, for example. Or pursue a hobby more seriously. An added advantage to making friends through a group is that you'll have something obvious in common with these new acquaintances, and you can strengthen your friendships to several people at once -- very helpful if you don't have a lot of free time. Which is important, because for many people, lack of time is a real obstacle to making and sustaining friendships.
3. Form a group. If you can’t find an existing group to join, start a group based around something that interests you. My children's literature reading groups – (yes, now I’ve helped start three of these groups) are among the top joys of my life. Studies show that each common interest between people boosts the chances of a lasting relationship, and also brings about a 2% increase in life satisfaction, but I’m confident that my kidlit groups have given me a lift in life satisfaction much higher than two percent. Movies, wine, cheese, pets, marathon-training, a language, a worthy cause…I know people in all these sorts of groups. You can start a Happiness Project group! (If you want the starter kit, to help launching a group, email me at gretchenrubin1 at gretchenrubin dot com.)
4. Say nice things about other people. It’s a kind way to behave; also, studies show that because of the psychological phenomenon of spontaneous trait transference, people unintentionally transfer to you the traits you ascribe to other people. So if you tell Jean that Pat is arrogant, unconsciously Jean associates that quality with you. On the other hand, if you say that Pat is hilarious, you’ll be linked to that quality.
5. Set a target. This strategy sounds very calculating, but it has really worked for me. When I enter a situation where I meet a new set of people, I set myself the goal of making three new friends. This seems artificial, but somehow, this shift makes me behave differently, it makes me more open to people, it prompts me to make the effort to say more than a perfunctory hello.
6. Make an effort to smile. Big surprise, studies show that the amount of time you smile during a conversation has a direct effect on how friendly you’re perceived to be. In fact, people who can’t smile due to facial paralysis have trouble with relationships. I've been working hard on this myself lately; I've become more solemn over the years, or at least more distracted and tightly wound.
7. Make friends with friends-of-friends. “Triadic closure” is the term for the fact that people tend to befriend the friends of their friends. So friends-of-friends is an excellent place to start if you’re trying to expand your circle.
8. Be aware of cultural differences. On last week's post, a commenter noted that now that she lived in the United States, she missed the kind of easy, drop-by-your-house friendships that she'd had in Australia. She just didn't seem able to make those close friends. But I suspect that friendship intensity isn't the problem, just cultural practice. At least in Kansas City and New York City, the places I know best, even a very close friend wouldn't be likely to drop by your house unannounced -- no matter how those crazy kids behaved on the TV show Friends. So try to be aware of how friendship signals may be different in different places.
What other strategies have you used to help build friendship? And what challenges have you faced? The ones I hear the most are 1) lack of time and 2) new place with no network to draw upon. What about you?
* Yesterday, I tried ineffectually to describe to a friend the brilliance of TV Tropes. It's hard to explain, you just have to check it out yourself. It can also be a little hard to navigate, but stick with it -- it's worth it. For example, start with Characters or Fate and Prophecy, and dig in.
Subscribe to:
Posts (Atom)