Friday, October 3, 2014

Learn Coding Interactively (websites)


1. Codecademy

Thanks to its helpful interface and well-structured courses, Codecademy is indisputably the most famous website to teach you to code interactively. You can make your pick amongst Web Fundamentals, PHP, JavaScript, jQuery, Python, Ruby and APIs.

Every lesson carries a panel which can explain the necessary code and instruction. Another panel lets you to try your hands on coding by writing acceptable code, then checking if you are doing the right thing. Don’t worry if you are making errors, as both instruction and code panels will warn you of errors, and provide hints.

2. Code Avengers

Take our words, Code Avengers is designed to make you fall in love with programming. Although, as of now it only offers HTML5, CSS3 and JavaScript courses, but every single course here is carefully designed to truly entertain you and level up your programming skills. It's almost like playing a game and the end of each lesson you literally get to play a mini game to release the stress that you have cumulated during the lesson.

You can also play with the code and immediately see how the changes impact. It carefully takes care of a beginner’s comfort.

3. Code School

After you finished courses in Codecademy or Code Avengers, and you are ready to step further, Code School is the right place to be at. Unlike other interactive learning sites, Code School provides you with more in-depth courses to help you expertise.

Overall, the courses are categorized into 4 main streams i.e. Ruby, JavaScript, HTML/CSS and iOS.

The courses are streamlined with excellent design and informative screencasts. And with the challenges provided after screencast, they provide hints and answers to help you try and learn.

Most of the offered courses are free, some of them will require you to spend $25/month to access the entire course including all screencasts and challenges, and also all other courses in Code School.

4. Treehouse

The courses at Treehouse are more project-oriented than language-oriented. So if you are a novice programmer who have a planned purpose like creating a website, or an application. This is the way to go.

For example, the Websites course is all about building a responsive website, interactive website or even WordPress theme – a very practical and efficient way to master related languages.

The courses at Treehouse are divided into different stages or modules, and after every first stage the learner will be invited to pay a monthly subscription fee of $25 to access all courses with 650+ videos, and an exclusive Treehouse Members Forum as a bonus.

Also if you are serious about your programming future, you could subscribe the $49 monthly plan to obtain in-depth interviews with leading industry pros and cutting-edge workshops.

5. LearnStreet

If you are someone who would rather go for cold hard codes instead of fancy playful designs, LearnStreet is your thing.

Currently the website offers JavaScript, Python and Ruby courses at beginner level. All you need to do is to click on the ‘Start Course’ button and you will start the lesson with an exercise, a code interpreter and a glossary panel of new programming terms.

LearnStreet adopts command prompt-styled code interpreters with human language to explain function and encourage you whenever possible, the kind of command prompt you want for your own local machine.

It's indeed a friendly, enjoyable and free website.

6. Udacity

Udacity is the combination of insightful video lectures and improved quizzes to achieve the interactive feel for students. So if you are someone who don’t like to read and who would like to listen from industry professionals like Google employees, this website is for you!

The website provides screencast from pros discussing the topics and instructions, then you will take either logic or programming quizzes to strengthen your understanding on a particular skill.

The website is known for providing more videos than any other site, and the instructors are either real-life professors or industry veterans.

Although one drawback here is that most of the courses offered are not much related to each other. So we will not recommend Udacity as a starting point, but it is indeed a virtual university to further up your study.

7. CodeHS

Most of the websites above were majorly dedicated to web development and computer science, but here at CodeHS your will get simple and fun game programming lessons, which will involve lessons on problem solving, JavaScript, animation, data structures, game design and puzzle challenges.

CodeHS helps you to think and solve a problem like a programmer right from its first course. The lessons are fun as you will learn how to use the code to move the dog and puzzles like picking up ball and building a towel.

Although other than its first course mentioned above, one will be required to sign up first with $25 per month to continue your learning journey, but trust us the amount is worth it if you are willing to learn basic game programming effectively.

8. Khan Academy

The courses at Khan Academy might not be as structured as CodeHS, but it definitely serves as an open playground for both novice and amateurs who are interested in learning drawing, animation and user interaction with code. It does not take you forward on any programming language in particular, but the code pattern it adopts can be applied anywhere, as a majority of languages share the similar programming pattern.

You can join the first Programming Basics course to watch and learn basic concepts, then explore the given code after the video tutorial to validate your doubts. In Khan Academy, you can also save your modification as a Spin-Off for everyone to enjoy and customize. You can imagine the community size and the lesson’s effectiveness as there have been hundreds of spin-offs just from one lesson in one course.

9. Scratch 2.0

Your think CodeHS and Khan Academy were too hardcore? Nothing to worry, we have something easier for the aspiring programmer in you and it’s called Scratch. Previously an offline software that allowed kids to create, upload and share their projects proudly, Scratch is now fully online with its 2.0 successor.

Although it’s not all about programming but it is a good combination of visual blocks of commands that tell assigned objects how to behave, such as telling the cat to move 10 steps, or yell ‘meow’ when it touches the owner’s leg.

By using this visual programming method, a programmers will form a habit of breaking a problem into smaller blocks, and solve them one by one logically.

10. SQLZOO

Structured Query Language (SQL) is a language which was designed with the pure intention of storing and retrieve data from a database. So you think the experience of learning the language can be full of boredom? We bring SQLZOO, which will let you to learn SQL happily with its interactive interface and smileys.

Thursday, October 2, 2014

3 Essential Steps to Living Your Own Life


1. Think About What You Really Want.

For most of us, just knowing who we are is a challenge. According to research from the federal Centers for Disease Control, about 40 percent of Americans haven’t determined a sense of purpose in their lives. It’s easy to say, Live life on your own terms, but if you haven’t figured out those terms, you may feel like you’re drifting through your own existence. When you don't know what you want, you're like a ship without a rudder. But figuring out your principles can help you stay on course no matter what life throws at you. Start by asking yourself: What really lights me up? What matters to me? Your family, your community and society in general will have plenty to say about what you should be doing, but, ultimately, only you can answer this question. You’re in control.
Thinking about what you want is not a selfish act, but a fundamental part of knowing yourself. Asking yourself what your principles are doesn’t mean casting everyone else aside—often, it means just the opposite. Deciding what matters to you involves recognizing the people who matter to you, and determining that they are a priority in your life and that caring for them is part of what makes you happy.
When you live a life that you cherish, everything around you holds more meaning. You are likely to be kinder, more considerate, and moreunderstanding of others and their paths in life. When you are fulfilled, you can be more giving of yourself. A 2002 study showed that happy people are more likely to have “fulfilling marriages and relationships, high incomes, superior work performance, community involvement, robust health, and a long life.” The study further indicated that positive emotions are linked to characteristics like “sociability, optimism, energy, originality, and altruism.” You have the most value in the world around you when you find and invest in the gifts that you uniquely have to offer.
So, ask yourself what lights you up. If you enjoy being with certain friends or groups of people, do you make them a priority? If you love a particular activity, how much time do you award it? And if you aren’t sure what you’re passionate about, try a bunch of things. Don't assume you know everything about yourself, or put yourself in a box, because you could be missing out. I know this from personal experience: Years ago, I had a fear of teaching and believed to my core that I would be bad at it. Then I was invited to teach a college course and quickly learned that I couldn’t have been more wrong. I love to teach, and it has become a deeply fulfilling part of my life.
Taking this kind of step will support and strengthen your real self.

2. Set Specific Goals.
Often people focus on their goals in negative terms. Instead of, “I want to look my best, so I’m going to eat healthy,” they tell themselves “You’re so fat. You should starve yourself this week.” A better approach is to write down your core values and the behaviors you would manifest that are in line with these beliefs. Try to keep the list to a few, so you can really focus. Then, think about specific actions you can take to move closer to your goals. Set smaller waypoints that you can accomplish along the way. This will make it easier to keep yourself accountable and track your progress.
A recent study showed that people who wrote down their goals, formulated actions to achieve them, and sent weekly progress reports to a friend accomplished significantly more than those who merely set a goal. This study concluded that three coaching tools (accountability, commitment, and writing down one’s goals) were extremely effective in helping people succeed. If you create too many goals or set impossible standards, you’re more likely to get overwhelmed. You may wind up feeling scattered and anxious as opposed to organized and on-track.
Taking this step will help keep you on your own side.

3. Ignore Your Inner Critic.

When you start taking actions toward your goals, be wary of the roadblocks that will inevitably arise. The first enemy you’ll encounter is your “critical inner voice.” The critical inner voice is like a coach in your head that attempts to keep you feeling “safe” by maintaining your defensive adaptations to life and reinforcing the familiar old identity you grew up with. It may put you down and undermine your desires with thoughts like: ”You don’t really want that, do you?”; ” You have never gone after it before”; or, “You probably aren’t even capable of that.” It will warn you about taking chances and trying a new approach to life: “If you go for what you want, you are setting yourself up for failure, and it will be humiliating.”
The critical inner voice is the language of the anti-self, the part of a person that is against his or her own self-interest. It is made up of a destructive point of view incorporated early in life. The anti-self is self-critical and cynical towards others; self-hating, paranoid, and suspicious; and, at its ultimate end, self-destructive and destructive to others. A person’s realself, in contrast, is made up of their own unique wants and desires. It is life-affirming and goal-directed.
Human brains are wired to focus on whatever seems dangerous or events that we experience as life-threatening. Unfortunately, because of this, negative events from our childhood can leave a stronger impression on us than positive ones. A parent suddenly “losing it,” for example, can look scary, even life-threatening to a small child. Because of the child’s complete dependence on parents and other caretakers, their emotional impact is significant. As children, people internalized the destructive attitudes that their caretakers directed or acted out toward them during moments of stress. These attitudes, along with parents' attitudes toward themselves, which were also internalized, help formulate the inner critic.
Throughout people’s lives, their moods are influenced by their critical inner voice. When you attempt to differentiate from these thoughts and live your own life based on the wants, desires, and goals of your real self, the “voices” often get even louder. Have you ever noticed the anxiety that arises when you start taking steps to achieve a goal? Did critical inner thoughts get in your way, either undermining your efforts with self-doubts or luring you to procrastinate? Unfortunately, it's easy to get lost in our own mind—ruminating, but not taking action.
If you really want to go about changing your life, adopt a zero-tolerance policy toward your inner critic. When you notice that you’re starting to attack yourself, interrupt that thinking without question. Don’t let yourself argue or mull it over in your mind. Just remind yourself that these are just critical inner thoughts and that it is never appropriate to have a mean, taunting, or nasty attitude toward yourself. Catch on to the triggers that ignite this negative thinking: Remember, your “voices” can be subtle and pick on things that have some reality or areas in which you are weak. Be careful of thoughts that that sound friendly or seductive—“Don’t bother to exercise today. You deserve a break"; "Just stay at the office a little longer. Work is what you do best"; "You can spend time with your family some other time.”

Monday, September 29, 2014

Marathon training.. Lets Run



http://www.jeffgalloway.com/

The good people of TWCM surely loved the 10Km training plan post we made recently! A couple of requests for similar plans for the half marathon and full marathon distances threw us over at TWCM Blog Headquarters into a tizzy. All named and unnamed fears about training for long distance races surfaced. Finally, we figured that the solution to all of life’s problems lies in a simple thing called the internet…
In our (sort of humble) opinion, you are ready to train for a half marathon if you have some experience of longish distance running under your belt. Perhaps it would be beneficial if you did actually enjoy running in general, but we know that is sometimes an acquired taste. Assuming this is so, and that you have signed up for the race of the year at our registration page, may we first list a few cautions?
  • Long distance running is tough – as is training for it – make sure you are fully fit to embark on this (admittedly wonderful) journey. Get that annual physical out of the way. Talk to your doctor. 
  • Patience is a virtue – in training for (and actually, even running) long distance races, the patient shall surely inherit the earth. Don’t do too much too soon! It’s neither helpful nor worth it.
  • Rest is best – New runners think they have to run every.single.day. As if you are going to forget it if you miss a day. You won’t. Give yourself sufficient rest, trust us, you will thank us on race day (and for the rest of your life).
  • Cross training – does not mean ‘running’ faster or slower. It’s defined as anything but running. Good options are walking, cycling, swimming. Bad options are TV watching and junk food binges. 
  • Walking in a race – is perfectly fine. We all do it. Don’t worry about it! In fact when you read on you will notice that a special training scheme actually recommends it!!
  • Time Goal – if this is your first race, your main goals should be finish, be strong at the end, and generally be happy and smiley all the time. Save time goals for later!  
There are many places you can go for a training plan for a half marathon. As the number of runners on our roads has increased dramatically over the past few decades, so have trainers and plans. Of course many of the old-timers ‘train themselves’ as well… In this post, we discuss some of the most popular, sort of conventional plans… If you are a beginner, this may be a good place to start learning about the art and science of marathons and half marathons…
  • Hal Higdon is a seasoned, veteran marathoner and author of several books, including the Marathon: The Ultimate Training Guide. He has written for the running magazine, Runner’s World, for half a century now! Here you can find his free half marathon training plan for beginners: Hal Higdon’s Plan. 
  • Jeff Galloway is our personal favourite. He is the ‘inventor’ of the Galloway Run Walk Run routine. He has coached and training hundreds of thousands of runners and is a popular motivational speaker as well. You can check out his free half marathon training plan here: Run Walk Run Plan. 
  • The magazine giant Runner’s World will sell you a training plan – we know of someone who knows someone who likes these plans for sure. Check it out here, read also the detailed explanations there about Easy Runs, Tempo Runs and other such: Runner’s World Training 
  • In recent times, as busy executives and generally over-worked people have voluntarily entered into this recreational running gig, out of interest, for health reasons, etc., there is some focus on training routines that require less time. In this sort of space is the ‘Run Less Run Faster’ program of Bill Pierce, Scott Murr, and Ray Moss. You have to understand the system here – and buy the book: Run Less Run Faster Web-Site. 
 Squat – Make sure to read through the text & comments!
 Push up – Work on your form!
 Pull up – Yes you can!
 Hinge - also very important
 Plank – Most runners LOVE the plank!
 Or you can follow this routine which strengthens the majority of the muscles. You might think, ‘Hey! It’s going to be an easy. After all, it’s just 15 minutes, right’. Well, you go ahead and let me know how easy it was after you’re done ;-)
Raj Ganpath’s 15 Minute Workout Routine
Don’t like this? Try one of these:
Raj Ganpath’s Other Workouts 


http://arvindashok.com/blog/2011/03/03/getting-better-at-running/

 http://halhigdon.com/

http://www.runningforbeginners.com/

Sunday, September 28, 2014

7 Cool Python Implementations For Your Knowledge

1.ActivePython

ActivePython is a CPython distribution by ActiveState for Windows, Mac OS X, Linux, Solaris, AIX and HP-UX. Since version 2.6.3.7, ActivePython comes with PyPM (cross-platform Python Package Manager) that is used to install binary Python packages. ActivePython also includes PyWin32 and several other documentation/tutorials for Python.

2.CPython

CPython is the default, most-widely used implementation of the Python programming language. It is written in C. In addition to CPython, there are other "production-quality" Python implementations: Jython, written in Java, PyPy, and IronPython, which is written for the Common Language Infrastructure.

3.Cython

The Cython programming language is a superset of Python with a foreign function interface for invoking C/C++ routines and the ability to declare the static type of subroutine parameters and results, local variables, and class attributes. It actually is a Python to C source code translator that integrates with the CPython interpreter on a low-level.

4.IronPython

IronPython is an implementation of the Python programming language targeting the .NET Framework and Mono. IronPython is written entirely in C#, although some of its code is automatically generated by a code generator written in Python. IronPython is implemented on top of the Dynamic Language Runtime (DLR), a library running on top of the Common Language Infrastructure that provides dynamic typing and dynamic method dispatch, among other things, for dynamic languages.

5.Jython

Jython, successor of JPython, is an implementation of the Python programming language written in Java. Jython programs can import and use any Java class. Except for some standard modules, Jython programs use Java classes instead of Python modules. Jython includes almost all of the modules in the standard Python programming language distribution, lacking only some of the modules implemented originally in C. 

6.Parrot virtual machine

Parrot is a register-based process virtual machine designed to run dynamic languages efficiently. It is possible to compile Parrot assembly language and PIR (an intermediate language) to Parrot bytecode and execute it. Parrot is free and open source software.

7.Stackless Python

Stackless Python, or Stackless, is a Python programming language interpreter, so named because it avoids depending on the C call stack for its own stack. The most prominent feature of Stackless is microthreads, which avoid much of the overhead associated with usual operating system threads. In addition to Python features, Stackless also adds support for coroutines, communication channels and task serialisation. 

Saturday, September 6, 2014

6 Things To Know About Node.JS

Node.js gives JavaScript coders easy access to tonnes of open source code packages. JavaScript with new tools and enhancements is flooding the horizon at a breakneck pace. Node.js, an open source runtime system invented in 2009 by Ryan Dahl is extending that reach to the server side. Node.js is becoming popular with coders everywhere and is being used to create APIs and building a new matrix of interoperability across the Internet. Joyent has been the chief sponsor of Node.js from the beginning.
Node.js, JavaScript, Open source, Server, Coders, Systems, Joyent, Operating systems, Express.js, Robots




According to www.infoworld.com, Node.js is not a JavaScript framework; several authors have written excellent frameworks specifically for Node.js, like Express.js, Restify.js, and Hapi.js. It is finding its way into Web applications, operating systems wrappers, microcontrollers and robots because Node.js is a stripped-down, highly customizable server engine, a proto-server. It will not do anything out of the box until you set it up. This proto-server is accept ready and responds to requests, some of which may initiate other requests to some other part of the system.

Node.js ships with workhorse connectors and libraries like HTTP, SSL, compression, file system access, and raw TCP and UDP. JavaScript is a great language for wiring these connectors. You can snap connectors onto the event loop easily. This lets you create a simple, dynamic Web server in just a few lines of JavaScript. Node.js is a runtime system that makes it easy to build a network or other event-driven application servers and here are six things you need to know about it:

• JSON has won: JSON (JavaScript Object Notation) is a practical, compound, wildly popular data exchange format. It enables JavaScript developers to construct APIs fast and foster interoperability. JSON's stark simplicity can be expressed in just five railroad parse diagrams, notably without the self-conscious preening of XML and the SOAP, XSD, WS-*, RELAX-NG. JSON and JavaScript have reinforced each other's importance. In the early days of the Web, dynamic data in the browser had to be manipulated, filtered, and operated by reasonably comprehensible non-plugin language like JavaScript. Regardless of its original network-presentable format, data needed to be marshaled into a JavaScript object.

• JavaScript is everywhere: JavaScript is a quirky, object-oriented, C-like language. It is used for developing applications in the browser with a new framework. With Node.js, JavaScript has spilled over to the server. Implementation teams have driven JavaScript interpreters forward, so that Google's V8 engine is fast enough to reside at the core of Node.js. JavaScript has the internal capability to handle the event loop mechanism in a straightforward way. Other languages are used by their own evented systems. Python has Twisted and Ruby have EventMachine. JavaScript also runs across many OS environments to support them in the browser. This, along with the libuv library sees to it that Node.js has a broad footprint. But the biggest force for JavaScript’s migration is the programmers, who have to do less mental context-switching between a Web browser and the server. There are efforts to unify the environments between client and the server so that code can run well in either location, further simplifying the model and increasing productivity.

• Sharing is encouraged: The ethos of the Node.js community is sharing. It is easy to share library code packages, technically, culturally, procedurally, and legally. The Node Package Manager is included with Node.js and has grown to a repository of nearly 50,000 packages, making it likely that another developer has already packaged up a solution to your problem. Node.js' namespace philosophy is essentially the absence of letting any author publish under an unused module name in the shared public repository. Sharing code under the MIT open source license is recommended in the community making it a cross-pollination of code relatively worry-free from an intellectual property perspective. Also, the community is engaged in binding interesting C libraries like computer vision and the Tesseract open source optical character library.

• Node Package Manager works broadly: Node Package Manager is the root of almost all deployment systems for Node.js and underlies the many PaaS providers making it somewhat easy to move smaller applications between providers. Its simple, dependable package management makes the Node ecosystem grow well.

• Batteries not included' minimalism: Node.js applications and core are broken down into small modules that are composed and shared. Each package and tool can be scoped tightly and crafted to be manageable. The low-barrier, carefree nature of creating a module encourages experimentation in the community and experimentation in the package population. When executed well, each package typically handles one task

• Instrumentation: Node.js is well instrumented for production usage. There are tools to help bring an application to full production readiness and performance. As with any maturing technology, there are areas where more documentation, tools, and best practices could be helpful. But Node.js prior to the release has a strong ground. 

To Create Your First GitHub Project?

1.Getting accustomed to the workflow

Ok, let's start right at the beginning. What really is GitHub? According to Wikipedia, GitHub is a Git repository web-based hosting service which offers all of the functionality of Git as well as adding many of its own features. Yes, GitHub and Git are two different entities! Basically, you'll need to download the Git version control system first to get started with GitHub. You'll then be required to create two repositories, one on the GitHub website, the other on your local computer. Once you're done, you'll be working on your project in your local repository and committing your work to its corresponding GitHub repository from time to time. The two repositories communicate via Git. 

2.Installing Git

You can download Git here. Just so you don't waste your time while the download is happening, you can create your own GitHub Account (in case you don't have one already).

Set up (on Mac):

-Open your Mac's Terminal program and enter the following:

git config -- global user.name "Name" followed by:

git config -- global user.email "abc@example.com"

3.Proceed to create your first repository

-Log into your GitHub account and select 'New Repository'. Name it and add a description. Make your repository public (if you're looking for others to view and contribute to it in true open source style). Add license to your project.

-Select 'Initialise this repository' and GitHub will automatically generate an empty README file where you can enter some text.

4.Creating & Committing a README file manually

-Create a local code repository (a folder where you'll store your project). Let's name it XYZRepo for instance. You'll then need to change the default directory from the Terminal so all action is now directed towards XYZRepo. You won't need to type its full path everytime you give a command from thereon. 

-Now, create a .git subdirectory to change XYZRepo into a local repository. This will now contain all your repository's metadata. All you need to do is run the command:

git init

-Now you need to tell your local repository about its GitHub equivalent. Here's how you can do this:

git remote add origin https://github.com/your_username/repo_name.git

-Now create your README file:

touch README.md

A new README.md file will appear in your XYZRepo. 

-To stage the README file (pick and choose which files to go to GitHub):

git add README.md

-Now send your commit to the GitHub repository (master branch):

git push -u origin master 

10 Most Popular Open Source Software Ever!

1. WordPress

WordPress is a free and open source blogging tool and a content management system (CMS) based on PHP and MySQL which runs on a web hosting service. Features include a plug-in architecture and a template system. WordPress is used by over 18.9 per cent of the top 10 million websites as of August 2013. WordPress is currently the most popular blogging system being used on the Web, powering over 202 million websites worldwide. Besides blogs, WordPress is also being used for online shops based on its e-commerce themes, online magazine using its magazine theme, portfolios using its WordPress portfolio themes, Galleries on its WordPress gallary themes for photographers and designers.

2. Magento

Magento is an open source e-commerce web application that was launched on March 31, 2008. It was developed by Varien (now Magento Inc) with help from the programmers within the open source community but is owned solely by Magento Inc. Magento was built using the Zend Framework. It uses the entity-attribute-value (EAV) database model to store data.

The software is currently used by around 30,000 merchants around the world including biggies like Samsung and Nespresso. It is indeed one of the world’s fastest growing e-commerce platform. The Community Edition of Magento is offered for free under the Open Software License. Although its Enterprise Edition requires you to pay and offers features like multi-store capability, store credits and gift cards.

3. Mozilla Firefox

Mozilla Firefox is again a free and open source web browser developed for Windows, OS X and Linux, with a mobile version for Android, by Mozilla Foundation and its subsidiary, the Mozilla Corporation. Firefox uses the Gecko layout engine to render web pages, which implements current and anticipated web standards.

The browser currently accounts for around 24.43 per cent of the total usage share of the web browsers and the figure is continuously on the rise. With its third party add-ons that lets you customize your browsers to the finest of the details, Mozilla Firefox is a highly preferred browser for most web professionals.

4. Pidgin

Pidgin which was formerly known as Gaim is an open-source multi-platform instant messaging client, based on a library named libpurple. Libpurple has support for many commonly used instant messaging protocols, allowing the user to log into various services from one application. The number of Pidgin users is estimated to be over 5 million. 

The client lets the user simultaneously interact with different people no matter what instant messaging platform they’re using.

5. FileZilla

Despite a similar sounding name, Filezilla is not connected to Mozilla in any manner! Its a free and cross-platform FTP software, consisting of FileZilla Client and FileZilla Server. Binaries are available for Windows, Linux, and Mac OS X. It supports FTP, SFTP, and FTPS (FTP over SSL/TLS). As of now it is one of the top 9th most popular download of all time from SourceForge.net with 240.6M.

6. Audacity

Audacity is a free open source digital audio editor and recording computer software application, available for Windows, Mac OS X, Linux and other operating systems. Audacity was started by Dominic Mazzoni and Roger Dannenberg at Carnegie Mellon University. Alone on SourceForge the software has around 80.5 million downloads. The application also won the SourceForge 2007 and 2009 Community Choice Award for Best Project for Multimedia. Users can record and edit live audio by cutting, copying, splicing and mixing sounds and can also convert ageing tapes and records into digital format.

7. GIMP

GIMP (GNU Image Manipulation Program) is an image retouching and editing tool which is released under the LGPLv3 and later versions and the GPLv3 and later versions as free and open-source software. Tailored versions are available for most of the operating systems including Linux, OS X, and Microsoft Windows.

GIMP has tools used for image retouching and editing, free-form drawing, resizing, cropping, photo-montages, converting between different image formats, and more specialized tasks. Animated images such as GIF and MPEG files can be created using an animation plugin.

8. OpenOffice

Apache OpenOffice is amongst the well known open source office suites available today. It is packed with tools for word processing, spreadsheets, presentations, graphics and databases. Apache OpenOffice can save your documents in OpenDocument format, read-only Microsoft Word documents of proper Microsoft Word format. 

It is released under the Apache License. The recent 3.4.1 version of Apache OpenOffice is supported by Microsoft Windows, GNU/Linux and Mac OS X operating systems. And it does not carry any license fee.

9. VLC

VLC media player (commonly known as VLC) is a portable free and open-source cross-platform media player and streaming media server written by the VideoLAN project. VLC media player supports many audio and video compression methods and file formats, including DVD-Video, video CD and streaming protocols. It is able to stream over computer network and to transcode multimedia files. The software is currently the No. 1 most downloaded software at sourceforge.net with 868.9M downloads.

The default distribution of VLC includes a large number of free decoding and encoding libraries, avoiding the need for finding/calibrating proprietary plugins. Many of VLC's codecs are provided by the libavcodec library from the FFmpeg project, but it uses mainly its own muxer and demuxers and its own protocols implementations. It also gained distinction as the first player to support playback of encrypted DVDs on Linux and OS X by using the libdvdcss DVD decryption library.

10. 7-Zip

7-Zip is an open source file archiver, or an application used to compress files. 7-Zip operates with the 7z archive format, but can read and write several other archive formats. The program can be used from a command line interface, graphical user interface, or with a window-based shell integration. 7-Zip began in 1999 and is developed by Igor Pavlov and has already crossed 328.3M downloads on sorceforge. The cross-platform version of the command line utility, p7zip, is also available.

100 Websites That You Must Know And Use!

Business and E-Commerce: E-commerce and running businesses on the internet has become a trend in recent times. You can buy everything, from your daily groceries to month's grocery and flight ticket without having to move from your bedroom.

blogs.hbr.org

fastcompany.com

entrepreneur.com

dealbook.nytimes.com

thebillfold.com

kickstarter.com

indiegogo.com

rockethub.com

etsy.com

kiva.org

marginalrevolution.com

learnvest.com

getrichslowly.org/blog

ritholtz.com/blog

consumerist.com

npr.org/blogs/money

blog.priceonomics.com

freakonomics.com/blog

Audio and Video: When it comes to audio and video content online, the first thing that comes to anyone's mind is torrents and downloads. But there are some amazing websites out there hosting such content from known and unknown artists and sources. These can make for interesting and informative sources that you should use regularly.

thisiscolossal.com

creativetimereports.org

designobserver.com

hyperallergic.com

transom.org

atavist.com

thirdcoastfestival.org

nfb.ca/interactive

woostercollective.com

c-monster.net

artfagcity.com

pitchfork.com

blog.largeheartedboy.com

Literature, Culture and media: These websites often cater to a very niche population, but that doesn't take away from the fact that there is some very interesting content out there. Websites like Goodreads are very popular amongst avid readers. Similarly, there are tons of other websites that host such content.

theparisreview.org/blog

lareviewofbooks.org

themillions.com

therumpus.net

theawl.com

grantland.com

slate.com

vulture.com

themorningnews.org

pw.org

longreads.com

goodreads.com

thefrisky.com

rookiemag.com

mediamatters.org

jimromenesko.com

poynter.org

niemanlab.org

google.com/trends

youtube-trends.blogspot.com

onthemedia.org/blogs

journalism.org

bookslut.com/blog/

brainpickings.org

buzzfeed.com

Politics, News and Global Issues: Newspapers may be approaching a slow death, but that doesn't mean that news isn't what it used to be. The internet is replacing both television and newspapers and it is doing so in a big way. Whether it is apps or websites, whip out your smartphones and check these websites out.

change.org

pewresearch.org

politico.com

thinkprogress.org

brookings.edu

aljazeera.com

fivethirtyeight.blogs.nytimes.com

qz.com

www.propublica.org

alternet.org

dish.andrewsullivan.com

good.is

dissentmagazine.org

Education: This is perhaps the best example of how literally everything is available online nowadays. You can become a programmer (broadly speaking) in a matter of months by enrolling for the courses provided on some of these popular websites. Similarly, courses are available in a wide range of subjects.

edsurge.com

khanacademy.org

edx.org

coursera.org

udacity.com

generalassemb.ly

baeo.org

edweek.org

nces.ed.gov

greatschools.org

stand.org

crpe.org

Science and Technology: Keep up with the times, that's all there is to say about this category. Advancements in science and technology are made almost every day and that new smartphone is not so new in a matter of months. If you are connected to the internet then you can keep in touch with what's happening around the world in these two fields.

blogs.smithsonianmag.com/smartnews

blogs.scientificamerican.com

onearth.org

scienceseeker.org

lastwordonnothing.com

scilogs.com

pandasthumb.org

realclimate.org

incubator.rockefeller.edu

blogs.plos.org

doublexscience.org

australianscience.com.au

guardian.co.uk/science

grist.org

scq.ubc.ca

lifeslittlemysteries.com

allthingsd.com

techcrunch.com

mashable.com

The source for this article, Ted.com is itself a gold mine of interesting articles, talks and videos. You could keep a watch on this one too!

Looking To Learn C/C++ Programming Online? Here Are 8 Good Courses!

1.Practical Programming in C

This course provides a thorough introduction to the C programming language, the workhorse of the UNIX operating system and lingua franca of embedded processors and micro-controllers. The first two weeks will cover basic syntax and grammar, and expose students to practical programming techniques. The remaining lectures will focus on more advanced concepts, such as dynamic memory allocation, concurrency and synchronisation, UNIX signals and process control, library development and usage. 

2.Introduction to Computer Science

This course is the natural successor to Programming Methodology and covers such advanced programming topics as recursion, algorithmic analysis, and data abstraction using the C++ programming language, which is similar to both C and Java. 

3.C Programming 2007 Course

The C Programming Language is the foundation of nearly all modern computer languages. C is a “low level” simple language that can be used to create the most elegant of applications and operating systems. Most of today’s commercial applications and operating systems have the C language at their core. VTC author Tim Heagarty explains the history and mechanics of the language and gives practical advice on its use in the commercial world.

4.EGRN151 - Computers, Programs and C++

The course aims to provide thorough understanding of programming and C/C++ as a programming language, and enhancing capability of simple programmimg as also to make students write programs for their simple applications by themselves.

5.Programming Paradigms

Advanced memory management features of C and C++; the differences between imperative and object-oriented paradigms. The functional paradigm (using LISP) and concurrent programming (using C and C++). Brief survey of other modern languages such as Python, Objective C, and C#.

6.Introduction to C++

This is a fast-paced introductory course to the C++ programming language. It is intended for those with little programming background, though prior programming experience will make it easier, and those with previous experience will still learn C++-specific constructs and concepts.

7.Wikiversity: C

This course assumes no previous programming experience and will guide you through all of the aspects of programming in C. The course will roughly follow the C Programming book at Wikibooks as well as provide supplementary reading material for each lesson primarily through Wikipedia.

8.Wikiversity: C++

This is meant for a first time user. Every lesson will only depend on what has already been taught in previous lessons. All you need here is your willingness to learn, experiment, and have fun with computers.