Less CSS Framework

Beginner’s Guide To LESS CSS Framework

LESS CSS framework is intended to make/design adaptive websites. The framework extends the use of CSS with dynamic behavior such as variables, mixins, operations, nestings and functions.

Generally LESS runs on both the server-side (with Node.js and Rhino) or client-side (modern browsers only).

Using this guide you can move in the right direction in starting up with the LESS CSS and eventually develop your own websites using it.

WHY LESS CSS?

The day we have started using CSS for enhancing the look and feel of our HTML websites, we found it quite interesting and in a gradual process, it has changed the way our websites appear.

Day-by-day CSS was used all across the world wide web, starting from static website development, till UI as well as web application development. Looking into the global use of CSS across the web, all UI persons and web designers started using it in every project without looking towards the limitations of it.

A significant amount of design time with CSS is spent rewriting common code for routine operations and maintenance works for a site in the form of color change, font change and such like. Of course, all this routine code can quickly become disorganized in traditional CSS designs.

Problem occurs on the cases, where we we have thousands of lines of styles and some separated CSS files to maintain. What is needed is a framework for CSS that will work in the same way like the other dynamic pre-processors(PHP) do during the web development.

LESS CSS Framework has been around for a while and does exactly that. LESS extends CSS with dynamic behavior in association with variables, mixins, operations and functions in support of common tasks that includes the facility for organizing code in folders and files. As a result, time spent writing and organizing CSS code becomes greatly reduced. In general, being a LESS framework user, I must say that the use of LESS has made my CSS coding look more clean compared to the traditional use of CSS.

My favorite feature in the LESS CSS is the ability to use the variables in the form of define something once, assign a value to it and refer to it later throughout the CSS script. This feature works the same way I use PHP variables.

Less CSS Framework

What Editor shall I use to write LESS CSS?

There are several editors available widely for LESS CSS code writing. But the editor that most of the CSS coders are using across the world and the editor that specifically meant to support LESS file editing, is the ChrunchApp. CrunchApp is a cross-platform application, built on Adobe Air, which can be run on any environment, whether it may be on Windows, Mac OS X or Linux.

So, what we are waiting for? Let’s download the CrunchApp. Install it and start writing our first LESS CSS.

How to use LESS

As we have already discussed that, LESS is used both in server-side as well as Client-side. Among the both ways of LESS framework uses, Client-side is the easiest way to get started and good for developing websites using this LESS CSS.

To start coding using the LESS framework, we need few lines of code inside the <head></head> tags of our HTML document. First, the .less framework file on which we will write all our css scripts and next to that, the less.js library, which helps in rendering the .css file out of the .less file.

Using LESS is really easy. We only need this two lines inside the head tag of your HTML document.

<link rel=”stylesheet/less” type=”text/css” href=”less/style.less”>
<script src=”js/less.js” type=”text/javascript”></script>

Now, let’s see how to write code using the Crunch LESS compiler and compile the .less file into a fully functional .css file.

First of all, let’s open the CRUNCH compiler application.

Less CSS Framework

Crunch LESS compiler is a quite easy to use. The whole application base is quite user friendly and visually appealing without giving the feel of getting cluttered. Genuinely you will feel fun to use this application.

Now click on “Create a New LESS file” button. This will prompt to save your newly created .less file within a directory. Give it a name (I have given style.less) and save it within the directory named as “less”.

NOTE: Before creating a .less file, make sure you have created your projects directory within your computer and created two sub-directories (css directory) and (less directory) within it.

Less CSS Framework

Now you can see your style.less file being opened in the Crunch Editor. Click the “+” icon next to the file name “style.less” in the editor. This will create a new .less file. But this time, save this file with the name of style.css within the “css” directory we have created previously.

Less CSS Framework

Now you can find, two files opened in the Crunch editor (style.less and style.css). Among these two, we have no use on the style.css file, as our main purpose is to write LESS css scripts and which will be compiled to .css scripts and be saved in the style.css file.

As of now, we are all set with the creation of files and directories. Now, it’s time to create a simple html layout, based on what we will write some basic LESS CSS scripts to see our progress on the scripting.

Now, our only need is to link the CSS file into our HTML document, as follows;

<link rel=”stylesheet” type=”text/css” href=”css/style.css”>

Let’s see, how to integrate the .less file and the LESS JS library into a basic HTML script.

<!DOCTYPE html>
<html>
      <head>
            <title>LESS Framework Tutorial</title>
            <meta name=”viewport” content=”width=device-width, initial-scale=1.0″>
            <link rel=”stylesheet/less” type=”text/css” href=”less/style.less”>
            <script src=”js/less.js” type=”text/javascript”></script>
      </head>
      <body>
            <div id=”container”>
                  <div class=”shape1″ id=”shape1″></div>
                  <div class=”shape2″ id=”shape2″></div>
                  <div class=”shape3″ id=”shape3″></div>
            </div>
      </body>
</html>

As you can see from the above HTML layout, we have integrated the two lines of codes (the css file and the less js library) inside the <head> part of our HTML. Make sure the .less file is integrated before the less.js file within the head.

Along with the above coding, we are all setup with the LESS CSS framework to work on out basic HTML template.

The next thing we will discuss is, some basic syntax that are mostly used during LESS CSS editing.

Before learing the basic use of LESS, let me remind you that, being an extension to CSS, LESS is not considered to be backwards compatibility of the traditional CSS, but the truth is, it adds the same use existing CSS syntax in a different and modern way. This makes the CSS coders learning LESS to be quite interesting and fun too.

Unlike our regular CSS coding, LESS works in a similar way and more-or-less like a programming language. But it’s dynamic feature has made it interesting and dynamic too. So, we must expect to find certain terminologies like Variables, Operation and Scope along the way unlike we use them in our other programming / server-side languages.

VARIABLES in LESS

In the traditional CSS that we are presently using, cases we came across where probably we write something like this, where we use repetitive values assigned to some properties to some id/classes in the entire style-sheet.

.shape1 {
      color: #5cb100;
      border: 1px solid #5cb100;
}
.shape2 {
      background: #fff;
      color: #5cb100;
}
.shape3 {
      border: 1px solid #5cb100;
}

Writing this piece of code in our stylesheet is quite similar in most of the cases for the web designers and using this kind of css is also perfect to go with. But the problem arises, when our client want us to replace the color #2d5e8b across the site. Things became so tedious when we start modifying the stylesheet.

But things can be solved by using a CSS pre-processor, that can easily replace the traditional methodology of defining the styles. We can use a variable to store a constant value for it and use it later throughout the stylesheet.

@my-color: #5cb100;

.shape1 {
      color: @my-color;
      border: 1px solid @my-color;
}
.shape2 {
      background: #fff;
      color: @my-color;
}
.shape3 {
      border: 1px solid @my-color;
}

Less CSS Framework

NOTE: In LESS CSS framework, variables are defined using the “@” symbol.

In the code aove, we stored the color value #5cb100 within a variable named as “my-color” and used that variable wherever we need to have that color. In this case, if suppose we need to change the color from “#5cb100” to “#250b0c”, we can easily achieve this just by replacing the color value at the top of the code by replacing the “@my-color: #250b0c”.

Make it a note that, every time we save our CSS code within .less file, we need to render them to .css file. To do so, click the Crunch File button at the top-right position of the Crunch compiler. This will render the style.less file into style.css file.

Less CSS Framework

Now you can check your style.css file, how it looks. It seems to be very clean and well-commented as compared to your previously written CSS file.

Less CSS Framework

MIXINS in LESS

In LESS Framework, we include a group of properties from one ruleset to another ruleset. So to define, if we have the following class:

.green-gradient {
      background: #5cb100;
      background: linear-gradient(top, #5cb100, #305d00);
      background: -o-linear-gradient(top, #5cb100, #305d00);
      background: -ms-linear-gradient(top, #5cb100, #305d00);
      background: -moz-linear-gradient(top, #5cb100, #305d00);
      background: -webkit-linear-gradient(top, #5cb100, #305d00);
}

As the above code defines, we have added a gradient color to a preset class “green-gradient”. Now, whenever we need to add this particular blend of gradient to any element (take for ex- a button) we just simply need to integrate the preset class “.green-gradient” in this way:

.shape1 {
.green-gradient;
      border: 1px solid #ccc;
      border-radius: 5px;
}

Once added and rendered the .less file, it will output to:

.shape1 {
      background: #5cb100;
      background: linear-gradient(top, #5cb100, #305d00);
      background: -o-linear-gradient(top, #5cb100, #305d00);
      background: -ms-linear-gradient(top, #5cb100, #305d00);
      background: -moz-linear-gradient(top, #5cb100, #305d00);
      background: -webkit-linear-gradient(top, #5cb100, #305d00);
      border: 1px solid #ccc;
      border-radius: 5px;
}

To use more mixins in our css3 based websites we can refer to LESS elements at LESS ELEMENTS .

What we have to do is, download the elements.less css file and keep it inside the less directory along with the style.less file.

Reference it at the top of the style.less stylesheet with:

@import “elements.less”;

Once integrated, we can reuse the classes provided from the elements.less, for example, to add a gradient colors(#F5F5F5, #EEE, #FFF) to a div with class shape1, we can write this block of code as:

.shape1 {
      .gradient(#F5F5F5, #EEE, #FFF);
}

In the above code, the output will be rendered with a gradient color of Bottom-#EEE to Top- #FFF. HEre the first parameter/first color is the background color to use for browsers that don’t support gradients. The second two colors are the start and stop colors, going from bottom to top.

For further uses on LESS elements, please refer to teh documentation at LESS ELEMENTS .

Nested LESS rules

LESS CSS provides the ability to use nested css instead of or in combination with cascading. Lets implement the nesting css into the following CSS block:

#header { color: black; }
#header .navigation {
      font-size: 12px;
}
#header .logo {
      width: 300px;
}
#header .logo:hover {
      text-decoration: none;
}

This is the traditional way of defining CSS , where we used to specify the parent of every child element while declaring any css property for them.

But if we write the same block of code using CSS , it will look somewhat like this:

#header {
      color: black;
      .navigation {
            font-size: 12px;
      }
      .logo {
            width: 300px;
            &:hover { text-decoration: none }
      }
}

The above piece of code will render the same output as the traditional method of CSS does.

Kindly notice that, we have use a “&” mark before “:hover”. It is used when there is a need for a nested selector which needs to be concatenated to its parent selector, instead of acting as a descendant. Especially it is used an an important selector mostly for pseudo-classes like :hover and :focus.

LESS CSS for Basic Operations

Basic operations like addition, subtraction, multiplication and division can also be done with the CSS file using the LESS CSS operations. WOW! Surprised. Yes, using the LESS CSS framework, now it is possible for us to do mathematical calculations and operations within the .less file which will finally rendered to required value for the elements. Any number, color or variable can assigned on CSS operations. Let’s find out how it happens:

@basic-width: 100px

.shape1 {
      width: @basic-width;
}
.shape2 {
      width: @basic-width * 2;
}

We the above code defines,, we have declared a value of 100px for the variable “@basic-width”, which is assigned as the width of shape1. As per our requirement, the width of the shape2 needs to be two times larger than the shape1. In our traditional CSS , we used to calculate this manually and write down the value for the width of shape2. But in LESS CSS, just simply adding “*2” with the variable “@basic-width” renders the width of shape2 two time increased in shape than shape1.

So, in this case, if anytime you want to have the width of shape1 to have increased to a different value, automatically the width of shape2 will increase depending on the width of the shape1.

Using Functions in LESS CSS

LESS framework helps in providing a variety of functions which transform in doing mathematical calculations easily. To define it with an example, we have used this method:

@width: 0.5;

.shape1 {
      width: percentage(0.5);
}

The above code will render the width of shape1 to 50% of its parent element’s div. Here we have used the “percentage” function with parameter “0.5” to render the 50% width of the HTML element. !Quite straight forward.

A detailed list of LESS functions can be found at the “Functions” section of the LESS framework website.

Interpolating Strings in LESS CSS

Unlike we embed variables inside strings in other languages(like:Ruby or PHP), with the @{name} construct we can also embed variables inside strings within LESS CSS.

@url: “http://mindfiresolutions.com”;
background: url(“@{url}/images/bg.jpg”);

LESS is one of the few available CSS pre-processors. But, remember this is just the beginning into the CSS pre-processor framework. More will come along the way. I will post in a few days about the SASS and PCSS (PHP-driven CSS preprocessor).

I hope, this post has ultimately guided you in understanding the basics of using the LESS CSS framework along with the CRUNCH compiler application. If you are a web application developer and its your first time  in using the LESS framework, you will find yourself to be non-techie in LESS CSS . But gradually practice makes it easier for you to go deeper into it and explore the rest of the uses of LESS framework and surely become lot easier for you.

Spread the love
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Testing at Mindfire

When in Testing do as the Testers do!!!

Its high time to bridge a gap between theoretical knowledge and real world implementation.
If you are new to testing domain and just trying googling out the real meaning and approach of testing below are few points which I feel will be handy for a beginner.

– Prepare test cases or a checklist for the project you are assigned in. Include all the test scenarios you can think of. Yes you are thinking right!

 

P.S. All the positive and negative scenarios. 🙂

For beginners – Test a simple ’email log in’ page!
What all scenarios you guys can think of!Yes you are going on right track.. whatever weired comes to your mind..Just do not stop playing around.

P.S. Let the application crash!!! 🙂

– Start performing tests , find and report bugs but hang on always remember there’s no end to bugs i.e. you can never say ‘This application is bug free’!!

P.S. Cant help it! 🙁

– Step into Customer’s shoes ; feel like a lay man and you will be amazed to see the number of bugs you come across.

P.S. Do not end up stepping on toes! 🙁

– Be Creative in your approach ; while writing test cases or preparing a check list. Do not assume.

P.S. Assumptions is the mother of all mistakes! 😉

– Start Suggesting ; Dig into the details and get to know the product’s functionality and general behaviour. This will enable you to add value and suggest new features and enhancements to your product.

P.S. A smart move it is! 😉

Last but not the least..

– Follow Processes ; Stick to the organisation standards and guidelines and process of QA testing.

P.S. Follow the process and find as many bugs you can..after all we are a part of software QA testing team !! 🙂

Happy Testing!!! 😀

Author – Anisha Nayak

Spread the love
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Information Security

The most probable thing you & your vendor never discussed

Security of Information. Information Security.

Oops!
Oops!

It is not surprising that during all outsourcing discussions which happen, couple of things are always discussed because those are considered to be the key elements of success – communication, pricing, work hours, deliverable, timeline, holidays, culture and others in decreasing order of priority. Each of these play a vital role in the process. And you feel the emphatic ‘Yeshh!’ feeling when you have weighed in all of them. There is another factor which needs to be factored in as well – Information Security.

I know you must be silently feeling happy and clenching your fists with that Yeshh! feeling if you had touched upon this topic in your discussions. And you must be. After all,  Information Security Services continue to grow– dramatically yet quietly.  It is not just about your data being securely used by the IT Services vendor you employed, it is also about your customers refusing to use your software product if it does not assure them of data security. Think of the financial reminder app you are planning to create for your target market. If the app does not usher faith from the data security signatures, not too many takers would even be saving their account numbers within. This might be a lame example but what I am trying to hint at is – Unless your app keeps my data secure, I ain’t gonna buy it for Free! Period.

The Guardian, UK recently reported that half of the Clearswift survey respondents were concerned that social media channels could pose significant risks to their IT security.  In addition, the UK government has identified information security as a key priority for the current year – 2013.

Information security does not just mean data breach or unidentified and fraudulent access to your confidential and proprietary data. Accidental data loss is perceived to be the biggest information security globally.  In the event of a data leak, the greatest worry is about reputational damage to the organisation (31%), followed by financial consequences (20%), with policy or compliance issues coming in third (18%) as per the survey.

John Oltsik, a Principal Analyst, NetworkWorld recently shared his estimate that about 0.60 to 0.70 cents of every security dollar is spent on either endpoint or network security.  While vendors scramble to establish positions or defend customer bases, users benefit from a much-needed wave of information security innovation and architectural integration.

Yup, there are lots of reasons like this why organizations are consuming more and more security services worldwide.

Solutions?

So what should businesses do when it comes to implementing information security strategies? What should they do when they are dealing with outsourcing partners?

It is clear that information security lapse can be harmful if not disastrous to the reputation of the company and possible financial losses as well. Hence promoting training and awareness within the organisation is clearly one way of dealing with it.

And the next step would be to adhere to a set of globally bench marked policies which help you avoid the risks because of information security. An information security management system (ISMS) is a set of policies concerned with information security management or IT related risks. The idioms arose primarily out of ISO 27001. The governing principle behind an ISMS is that an organization should design, implement and maintain a coherent set of policies, processes and systems to manage risks to its information assets, thus ensuring acceptable levels of information security risk.

The next step would be to hire a custom software development services vendor who is ISO 27001 certified. And if your vendor does not have a Infrastructure Security Management System certification from ISO, you will mostly get evasive answers to your queries on information security. Go ahead and ask your vendor the following questions as suggested by Bill Mathews, Hurricane Labs.

  • What secure development lifecycle (SDL) do you use?
  • What type of regression testing do you employ with bug fixes?
  • What type of security training do you provide to your developers?
  • What sort of logs will this application generate?
  • How will the application handle authentication?
  • How will the web application handle credit card payments?
  • Has an application you’ve written ever been “hacked” or breached?
  • Can you tell me 5 good reasons why this application will never be hacked?

By this time, you would realize that you can not risk your product and your data with someone who is not ISMS certified. Go ahead and talk to someone who is ISO 27001:2005 certified.

What do you think?  Do you agree Information security should be cared for?

Author – Subhendu Pattnaik

Spread the love
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Avoid Offshore Outsourcing IT Project failure!

In today’s world, technology can be influential in bringing nations together and on the adverse can destroy nations. Businesses these days are taking advantage of it to manage work across geographical boundaries and as a result minimizing their cost and effort. This is what is coined as the term “Outsourcing”. Though there are some worries in offshore software development work, still it is a widely accepted phenomenon by a majority of companies.

The topic of outsourcing continues to grab headlines irrespective of success or failure of offshore outsourcing projects. Companies have mixed response when it comes to feedback on their working experience with outsourced companies. Some companies might have had very good experience working with outsourced companies whereas others might have faced failure. Reasons may be many but identifying one or even a group of reasons is a tough task and sometimes impossible. A number of contributing factors cumulatively result in Offshore Outsourcing IT projects to fail. Some of the generic factors might be improper planning, ineffective management, inaccurate estimates or unclear objectives. But, apart from these, projects fail for some other minor but very influential factors such as communication, infrastructure complexity, culture and sometimes labor division. Let us discuss each of these minor factors to avoid mistakes and as a result avoid project failure.

Communication: We know that communication alone does not only mean language. While dealing with different teams across different geographies, it is obvious that communication would undergo other major challenges like time zones, location, distance etc. All these should be managed properly before the start of an offshore outsourcing project. Anybody dealing with an outsourcing project should previously finalize upon the modes and mechanism of communicating. By this I mean that, whether e-mails/Skype calls/video conferencing is sufficient or do they need daily status reports and other online facilities to monitor.

Infrastructure: A very important aspect of offshore outsourcing project is infrastructure. This not only includes physical presence but other underlying factors like facilities & hardware. The companies outsourcing needs to ensure that all the team members have adequate tools and access required to complete the work. Hence, they need to make sure that all issues related to privacy, licensing, intellectual property rights and trade agreements are sorted out.

Culture: Culture is an under-estimated factor for project failure but, it is very subtle and can affect offshore outsourcing projects to a great extent. Work culture is different in different countries. Hence it is imperative that, every organization should be fully aware of the outsourced location and its culture. Properly managing culture would definitely yield a successful project. One always needs to understand how people in different cultures behave to work with them as work attitude may differ from one culture to the other.

Labor Division: Sometimes work is divided among various outsourced companies by the offshore company in order to reduce money. But doing so will not reduce your pain. Instead, it will affect the project’s success, increase worries and also affect long term relationship. Evaluating companies based on their strengths and weaknesses irrespective of the price is rather a better and less risky way of allocating work.

In my knowledge, these factors are the most under-rated ones but are highly effective while deciding upon a project’s future apart from the other mentioned points of improper planning, ineffective management, inaccurate estimates and unclear objectives. Hence, these should not be neglected and taken care of prior to outsourcing a project.

Cheers,

Author – Suryakant Behera

Spread the love
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Common Mistakes To Avoid When Designing For Mobile Devices

Designing For Mobile DevicesToday, more people access web using mobile devices rather than desktops but do you really design websites to give visitors using mobile devices a good experience? A single design mistake that hinders the visitor from navigating effortlessly may also mean loss of a business prospect of your client. In coming up with design for mobile devices, there are things that one has to recognize before jumping into the planning method. Before starting anything, one should acquire ample information regarding the task at hand.

Continue reading Common Mistakes To Avoid When Designing For Mobile Devices

Spread the love
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Learning @ Live 360! (10-14 Dec 2012) Orlando, FL

Attending Live 360! Conference in Orlando, FL provided me a great opportunity to learn a lot about Microsoft technologies.  Mindfire Solutions has a unique CTC program under which I got the opportunity to attend this international event. It was a 5 day pure technical event where various workshops and sessions on different Microsoft technologies took place. This conference targetted not only Visual Studio track but also various other tracks like SQL server, Cloud etc, so people (speakers/audience) from various roles like developer, DBAs, IT management etc could get together and share experience and knowledge.

Continue reading Learning @ Live 360! (10-14 Dec 2012) Orlando, FL

Spread the love
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

The Browser Wars 1993-2004 – Part 2

 

The Trial Part 2

Microsoft was asked to offer a version of Windows without IE. Microsoft replied that the company would offer the consumers either “one version of Windows that was obsolete, or another that did not work properly”. The judge stated “It seemed absolutely clear to you that I entered an order that required that you distribute a product that would not work?” David D. Cole, another Microsoft Vice-President, replied, “In plain English, yes. We followed that order. It wasn’t my place to consider the consequences of that”. Both the prosecution and the defense called upon the professors of MIT to serve as witnesses for their cases. Microsoft defended itself in the public “Consumers did not ask for these antitrust actions … rival business firms did. Consumers of high technology have enjoyed falling prices, expanding outputs, and a breathtaking array of new products and innovations. … Increasingly, however, some firms have sought to handicap their rivals by turning to government for protection. Many of these cases are based on speculation about some vaguely specified consumer harm in some unspecified future, and many of the proposed interventions will weaken successful U.S. firms and impede their competitiveness abroad.”

Judge Jackson issued his conclusions that Microsoft had committed monopolization and that Microsoft had taken actions to crush threats to that monopoly, and his opinion was that Microsoft must be broken into two separate units, one to produce the operating system, and one to produce other software components.

Ironically the D.C. Circuit Court of Appeals anulled Judge Jackson’s rulings against Microsoft because in their view the Appellate court had adopted a “drastically altered scope of liability” so his suggestions were not viable, and also because of his interviews to the news media while he was still hearing the case, in violation of the Code of Conduct for US Judges. The D.C. Circuit Court of Appeals accused him of unethical conduct and opined that he should recuse himself from the case.

Judge Jackson’s response was that Microsoft’s conduct itself was the cause of any “perceived bias”; Microsoft executives had “proved, time and time again, to be inaccurate, misleading, evasive, and transparently false. … Microsoft is a company with an institutional disdain for both the truth and for rules of law that lesser entities must respect. It is also a company whose senior management is not averse to offering specious testimony to support spurious defenses to claims of its wrongdoing.”

The Settlement

On November 2, 2001, the Department of Justice reached a settlement with Microsoft. Microsoft will have to share its application programming interfaces with third-party companies and appoint a panel of three people who will have full access to Microsoft’s systems, records, and source code for five years in order to ensure compliance. This was to ensure Microsoft did not engage in “Predatory Behavior” directly or indirectly forming a “Barrier to Entry”. However, the Department of Justice allowed Microsoft to retain its code and integrate other softwares with Windows in the future. Nine states i.e. California, Kansas, Minnesota, Connecticut,Utah, Iowa, Florida,Minnesota, Virginia and Massachusetts and the District of Columbia did not agree with the settlement.

Andrew Chin, an antitrust law professor at the University of North Carolina at Chapel Hill who assisted Judge Jackson in drafting the findings of fact, wrote that the settlement gave Microsoft “a special antitrust immunity to license Windows and other ‘platform software’ under contractual terms that destroy freedom of competition. Microsoft now enjoys illegitimately acquired monopoly power in the market for Web browser software products.”

Microsoft’s responsibilities according to the settlement expired on November 12, 2007. Microsoft consented to extend selected terms of the settlement till 2012, but the plaintiffs made it clear that the extension was intended to serve only to give the relevant part of the settlement “the opportunity to succeed for the period of time it was intended to cover”, rather than being due to any “pattern of willful and systematic violations”.

 

Spread the love
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

3 points of worry in Off-shore Software Development

Recently, I connected to a prospective client on LinkedIn, and he shared some concerns:

“I was referred to you by a friend who has worked with Mindfire and highly recommended your services. I was impressed by the technical competence of my emails and discussion with your group. However, (and I’m sure you know this), I have been “warned” by people in the SaaS business I know over here, that subcontracting to some offshore firms can be “a nightmare” and that work, though much less expensive, can take three or four times as long. Some even say the quality of the coding is poor.”

This summarized some top points of apprehension for anyone about to start a relationship for off-shore software development. All 3 problems and points of apprehension are true in general, but at Mindfire we have these points covered . Although working with us is the only way to get a real impression of things, let me share thoughts about these as they relate to Mindfire.

1. Quality of code is poor: yes, in many cases.

Most IT/software companies in India do everything – from programming to design to graphics to SEO to data-entry to marketing and so on. You cannot be the best at everything. Often you end up being mediocre in each. We do only one thing – “off-shore small-team software development” – and we do it very well. Starting from hiring to testing to reviews to environment to training to culture, we are focused on being the rock-stars of software development – only.

2. Takes longer: yes, in many cases.

Sometimes it is due to incompetence (related to first point above) and sometimes it is intentional over-reporting for financial reasons. We have neither problem. Money has never been a driver – we want to earn with pride and only want money that we deserve. We have been around for 13 years now and want to be around for much more than that – you cannot violate Truth and Integrity, and last that long.

3. A nightmare: yes, in many cases.

Sometimes it is due to communication issues, sometimes it is due to clients expecting magical solutions to unexpressed desires (our people may weave technical magic, but no other types!). Sometimes it is due to lack of mutual respect, sometimes it is due to plain old incompetence or inexperience. In any case, we offer a pleasant experience to our clients. We have selfish reasons – when our clients can relax about work, they can focus more on growing their business, which will create more work for us! When you are focused on the long run, things are quite simple actually.

 

This small exchange has not touched upon even more issues in off-shore software development! Those related to communication, culture, engineering replication, understanding, attrition – the list goes on.

It is sad to have to accept these points, but often they are, indeed, true. At Mindfire, we are building an organization that accepts and addresses problems in off-shore software development, rather than denying problems. Every day we find ways of doing things better, and each of them adds up.

Author – Chinmoy Panda

Spread the love
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Effective Tools to manage your Social Media efforts

Continuing with my previous post about managing social media during busy office hours, I am writing this post to make readers understand how social media tools can be used to reduce time effort and thus  effectively manage social media sites.

Let us start with a simple task. Have you integrated your Facebook, LinkedIn, Twitter accounts yet? These are considered to be widely used platforms and presence in these sites will help you gain that extra mileage. Check your account settings and integrate these sites today. Continue reading Effective Tools to manage your Social Media efforts

Spread the love
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Srikanta

Experience @ MS SharePoint Conference 2012, Las Vegas

Srikanta As a SharePoint developer, attending SharePoint Conference 2012 in Las Vegas from 12-15Nov 2012, was a unique opportunity to hear from experts from Microsoft and around the world, share their experience and knowledge on various aspects SharePoint 2013. . There were around 10,000 people from 85 countries attending the conference. As a Microsoft partner and one of the earliest companies to offer SharePoint development solutions, Mindfire Solutions made sure that we attend the conference and arranged for everything we needed. I really had a good time and an unforgettable Vegas experience.

Continue reading Experience @ MS SharePoint Conference 2012, Las Vegas

Spread the love
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •