Bash on Ubuntu on Windows

Bundows

At Build 2016, Microsoft announced, among other things, that developers will soon be able to run Bash on Ubuntu on Windows. If you are interested in this kind of stuff, then I know that you probably already know about this. I was stoked when I heard about this news about two weeks ago but I just did not have the time to blog about it, but now I finally do.

So what does this all mean?

It means that you will be able to run actual Bash on Ubuntu, … on Windows. I know it sounds like I’m just repeating myself here, but the news is that exciting and it almost sounds like it is not real. Many people in the past would have said that hell will freeze if and when something like this happens, and yet here we are.

This is not a Virtual Machine running Ubuntu! This is actual Ubuntu user-mode running on Windows. To accomplish this Microsoft created a Windows Subsystem for Linux. Microsoft has partnered with Canonical, the creators of Ubuntu Linux to make this all possible.

But what does this Really mean?

This is a sign of a ‘personality shift’ in Microsoft. This shows the openness that Microsoft has adopted. They know that to keep Windows relevant now and in the years to come, they need to make developers want to develop FOR Windows and develop ON Windows even if they might not be developing for Windows. We’ve seen this as a reoccurring theme from .NET going open source in 2014, Android app portability, and their recent acquisition of Xamarin.

But this news of Bash on Ubuntu on Windows by Microsoft, going as far as building a brand new Subsystem for Linux is HUGE! It took a while for this to really sink in for many people that I talked with – not that the technology was difficult to understand, but the fact that it was actually happening. It is a big deal – Linux and Windows coming together, open source and Microsoft coming together, Canonical and Microsoft coming together.

Actual Ubuntu user-mode means you will be able to run command-line tools like apt-get, sed, awk, grep, and you can even try Linux-first tools like Ruby, Git, Python, etc. directly on Windows.

This also means that web developers will find it easier to develop on Windows. Having the ability to run Bash on Ubuntu on Windows will make it easier for Start-ups to choose Windows development machines, since most start-ups are initially short on cash and often choose open source software including Linux operating systems, eliminating the need to have separate Linux development machines.

What do I think of this?

If you have not already figured this one out, let me tell you, I’m going nuts over this news. I moved from Mac OS to Windows about 6 months ago, mostly because I believe that Microsoft is really going in the right direction and paving the way to the future with their HoloLens technology, Windows 10 Universal apps, touch screen capabilities for the Windows Operating system and much more. The one thing that I had always missed was the ability to run Linux commands and Bash scripts. Mac OSX is built on Unix so this was never an issue, but it was not possible to do that on Windows. An option was to learn Windows command line, which in all honesty sucks!

I have used Cygwin until now, and for the most part it does the job, but it still was not Linux. From time to time I run into problems with it, installing libraries and programs is okay – it works except when it doesn’t. But now with Bash on Ubuntu on Windows, I’ll have access to Ubuntu’s apt-get – this is amazing!

What is the Future of Bash on Ubuntu on Windows?

For now, Bash on Ubuntu on Windows is still in its beta stage. You will not be able to install it unless you are on “Windows Insider”. I personally will stick to Cygwin for now, until the stable version gets released because currently my main Windows machine is my only Windows machine.

In the future Bash on Ubuntu on Windows is sure to be a better option than Cygwin. Sure Cygwin has been time-tested but the Bundows (there you go, I just coined a new word) has the advantage of the backing from Microsoft and Canonical and it will be using the Windows Subsystem for Linux.

Should you use Bundows?

Yes, and No – it depends on who you are. I would not recommend installing it on your main Windows machine, or if you are not willing to work with something that might not work sometimes – as I said, this is still in beta stage. Do NOT use it on production machines.

If you are a student, then yes, do it now. You should be trying to be on the cutting edge of things, trying betas and alphas, making stuff, breaking stuff, getting stuck and learning from it. In my teens and early twenties, I did a lot of tinkering with different operating systems and programs and that is what taught me so much of what I know.

How to install Bundows?

First you need to be on Windows Insider. You can start here https://insider.windows.com/
Your next step is to turn on or install Bundows: https://blogs.msdn.microsoft.com/commandline/2016/04/06/bash-on-ubuntu-on-windows-download-now-3/

Sublime Text

The meaning of sublime according to the dictionary on my Macbook Pro is:

of such excellence, grandeur, or beauty as to inspire great admiration or awe

And Sublime Text 2 is just that. I kept hearing about its legendary speed, and flexibility but I never quite bothered to check it out until my love for NetBeans started to fade. Netbeans had been my programming companion for a long time now. I had been using it since 2009 when I made the switch from Eclipse. That is a long time! More and more Netbeans was starting to prove that it was bloated, slow – especially during loading, the updates didn’t always retain the features that I liked and it kept hogging my CPU and memory. I decided to give Aptana – a flavour of Eclipse another chance after almost a 5 year gap. It has been a long time since I abandoned working with Eclipse. I liked what I saw. It brought back some old memories, and overall it felt as if Apatana was a ted faster than Netbeans. But things were about to change when stumbled upon Sublime Text 2. At first I thought it is just a Text Editor, but it’s not, it’s way more than a text editor. This thing is so flexible you can turn it into an IDE. Here are the reasons why every programmer should at least give Sublime Text a chance:

Its beauty is sublime:

alpha_goto_anything2_large This piece of software is simply beautifully designed. There are many themes to choose from but the default theme with black background and highlighted special words is just stunningly gorgeous and is a pleasure to work with. Another very interesting feature is the small preview bar on the right which  gives you a zoomed-out view of the file that you are currently editing – I never thought I wanted it until I saw it!

Super Fast

Aptana Studio 2 Netbeans 7.3.1 Sublime Text 2
aptana-3-logo netbeans sublime-text-2-logo-full
Took around 30 seconds to load  and background project scan lasted for 1 minute 15 seconds and the program ran slow until the scan was complete. Took around 33 seconds to load and the background scans went on for 2 and half minutes before I decided to close the program. By the way, you cannot stop the background scans in Net Beans, which really is a bummer. Just took 5 to 7 seconds to load and closed as quickly as it could load too. This thing is clearly fast… VERY FAST!

Powerful Search AKA “Go To Anything” (⌘ + P)

Command + P is the shortcut key for search (the feature is known is “Go To Anything” and rightly so) on Mac and I’m pretty sure the P stands for POWER! Which really means the search just commands power. The search is super fast and it start displaying the possible results the moment you start typing AND it displays the contents for the file that most likely is the one you are looking and changes it if it does not fall under the correct results. Go to anything

It Knows!!

It knows what you are searching for even if you are telling it to search for the wrong thing. For e.g. if you make a typo, it still gives you the correct results; also knows as fuzzy search.

fuzzy search
The user types in “hutil” instead of “util” but Sublime, still displays what the user most likely meant. – It’s smart

With Netbeans and Aptana (A flavour of Eclipse), almost always I would open up the terminal or Finder on Mac to search for text within a file or to search for a filename. Now, I don’t need to do that!

Multiple Selection

This just blew my mind away. You can select multiple lines of your code and modify them simultaneously! That is super amazing! You can even select a word which could be a variable or some command throughout your file and change its name. Another scenario where this can come in handy is when you have a list of things which you need to put into an array. I used search and replace the “new line” characters. Now I do multiple selection and edit away. Multiple Selection is awesome!

Tonnes of Cool and Useful Plugins

I must warn you! If you are coming from a feature rich IDE like Netbeans or Eclipse you might be surprised at the bare minimum approach of Sublime Text, but don’t be fooled by what you see the first time you use Sublime Text. There are tonnes of plugins available out there there that can transform this magical text editor into a full IDE and that’s the beauty, you only install the features that you actually want and no more thereby keeping this editor as ‘slim’ as possible. I will write up another article on my favourite and must have plugins for Sublime Text 2. If you like this article, share it! Got a comment? Post it! 🙂

This is Why I’m closing the doors on OpenAtrium for Good!

I think the title of this post is damn right to the point isn’t it? We were using OpenAtrium 1 at work a year ago, but due to so many issues of having too many errors, memory leaks, and being just overly bloated, I decided to stop using it.

Fast forward to 2014: I started looking for a collaboration and project management tool again and decided to check on the development on OpenAtrium 2. It is based on Drupal 7 core which I thought was amazing. I downloaded and installed OpenAtrium 2 and it had a colour packed home page which looked attractive, but one that I quickly got annoyed with.

The OpenAtrium website now has a responsive design and is mobile friendly, but at what cost?

Who is OpenAtrium really for?

OpenAtrium is targeted towards web developers and architects, end users probably won’t be that interested and even if they won’t understand it because the software is complex and multi-dimensional. As you can see in the screenshot of OpenAtrium.com below, this is supposed to tell the viewer what is inside OpenAtrium. There are images and short descriptions for each component, but that is it. There is no link to get into technical details. Data Security for e.g. says Granular access control side wide – an architect would need to know how this is accomplished! How are Events managed, what is the workflow like in order to determine whether this piece of software is suitable for their organization or not.

Screen Shot 2014-02-19 at 11.34.43 AM

 

Where is the Contact Page?

Wait! What? There is no Contact page. I’m forced to use twitter or Facebook? You’re kidding right?

Oh wait a minute, yes there is a link to the contact page on the FAQs page,oh…but it DOES NOT WORK! And mind you this is supposed to lead their customer’s  to a page where they can contact their sales team! AMAZING!

Phase2 can offer custom enterprise platform development services, specific to the solution set Open Atrium offers. For more information and to contact our sales team, go here.

 

Where is the Documentation?

There is NO direct link from OpenAtrium.com to documentation! That’s right! You get to see OpenAtrium Documentation AFTER you download the software and install it.  During Installation, I kept getting errors which were very crude MySQL errors which told me absolutely NOTHING. I finally figured it out by googling it.

Okay, seriously,… where is the Documentation?

A link on the Home Page(of the OpenAtrium installation) does take you to a page which kind of looks like a documentation page, but nah.. it really isn’t! It’s more like a prank! The Webinars are LONG and do not get to the point quickly! When you click the How To Guides, it’s empty! Phase2 probably need to read a “How To Guide” for writing “How To Guides”.

Oh but wait, they do have links to Spanish Documentation! You can’t even get the English version right! As the Linux philosophy goes:

Do One thing, do it right!

FAQs? – What are FAQs for?

The FAQs on the OpenAtrium site seem like sarcasm. The questions are ridiculously long and the answers are worse. For e.g.

Q. We’ve been trying to model what a Group, a Space, and a Team wold look like using existing metaphors and it’s been challenging to map from an OA 1.x perspective to an OA 2.x perspective. the access controls at the bottom of a node edit form are particularly confusing due to inconsistencies in terminology. The ones on the side bar look like they’ve been renamed appropriately. Could you provide some clarity?

Most of the questions seem like they might be coming from people working at Phase 2 (The company behind OpenAtrium).They should change the title of the page to “FAQs that our developers keep asking us”

Other Broken Things on OpenAtrium’s website:

  • Credit’s link at the bottom of the page takes you to an empty box that says “Credits”
  • Copyright details at the bottom of the page seems like it’s not updated.
  • No Contact page
  • No direct link to OpenAtrium Documentation

Finall conclusion: it almost seems like that Phase2 might actually have a good product, but they’ve made OpenAtrium.com and documentation very difficult to navigate and left chunks of it out which really just drives away the people that might actually be interested in using this product. UNLESS, that is their whole purpose, drive the developers away and target the endusers and managers that have little to no technical skills making it a really sneak sales technique and a kind of faking to be truly OpenSource. Or maybe they just have low standards!

I am angry, disappointed and feel deceived and betrayed by the people behind OpenAtrium.

Simpe CheckList for Choosing a Drupal Module

 

I have been working with the Drupal Content Management System for almost 2 years now. Here is a quick 5 minute small checklist of things that I look at before choosing a Drupal module for my Drupal Projects.

Here I'm assuming that you are a programmer or web developer who has some experience with Drupal. Ideally you have already decided which version of Drupal you will be working with. I usually prefer working with Drupal 7, unless client insists on working with Drupal 6. Drupal 5 and Drupal 8 is out of the question.

  1. Find out what the Client thinks they want!
  2. Then Find out what the Client REALLY wants! – This requires some skill and experience – more on that later
  3. Find out keywords
  4. Do a Keyword search on Drupal.org. (http://drupal.org/project/modules)
  5. Skim through the first 3 pages of the results.
  6. If you don't find the keywords that you have mind mind, go until the first 5 pages.
  7. Skim through the module pages and make a note of which ones might be useful. Prioritize if possible.
  8. The higher the number of Downloads and Reported installs, the better it is. I usually tend to ignore Downloads.
  9. Note the last update dates of the "Recommended releases". Anything more than 2 years old is something I tend to stay away from. I have noticed that some Development releases can still be used for production purposes(Just don't tell your clients that you're using Development releases.) Don't pick Development releases that are too recent. Use common sense.
  10. Always go for modules that have Maintenance status: "Actively maintained"
  11. Check out all dependencies and check for point 8 and 9 for each of the modules.
  12. MOST IMPORTANT: Once decided, test it out on development site. Do not EVER apply modules directly to production. Use common sense.
  13. Don't be afraid to change your mind and try something else.

This is of course a very rough guide. For any questions or comments, please comment below, or contact me via my contact page at Contact Kapil

or message me on twitter at Kapil's Twitter Page.