The Startup Zeitgeist

An article that shows stats of application data of ycombinator startups.

It basically shows how things are trending for the last 8 years..

Check it out here


Mathematics for Computer Science - 6.042J

People generally start in OpenCourseWare with Intro to Computer Science(cs50) or with Intro to Algorithms, but while watching them I found out there is another course you need to take before you delve into them.
Now being a computer science grad, I thought learning basic computer science mathematics again would be a waste of time, but surprisingly it has been fun and a learning experience so far.


There are 2 lecturers for this course-
  1. Prof. Tom Leighton
  2. Dr. Marten van Dijk
It is unlike any Mathematics course I've undertaken. It's completely dedicated to Computer Science with focus on introducing various mathematical concepts and proving them.

While Dr. Marten van Dijk focuses more on the technical parts and complex proofs, Prof. Tom Leighton teaches the course with a lot of practical examples and minimal mathematics. 
I've just finished the 9th lecture, and until now, the Mating Algorithm(wiki)(pdf)(lecture) has been my favourite.

Just 16 more lectures to go...

It's been too long so maybe I'm back now..

Hey everyone!

Now I haven't been blogging for a really long while. With the job and other stuff going on, it all seemed quite a waste of time but I'm not that sure now.

Technically, I've learned quite a lot of new things in the past few months which I'd really like to share with you all. But I'd have to make a habit out of blogging now.

I'm quite into Laravel these days, even subscribed to the one and only Jeffery Way (laracast for those not in the know) to learn his ways after muddling through it by myself for a couple of months. I'd proudly say that now I'm past the beginner level in it.. quite literally!
I've worked in jquery and bootstrap along with some really cool libraries alongside it like dropzone.js, parsley.js

Learning core concepts of modern php development like TDD and working in things like eloquent ORM, blade templates, emailing APIs(guess, work really affects other stuff in life) have been great!

I've also learned every freaking thing about web development, from setting up my own private VPS to zone file setup and deployment of code and handling the version control in git.

I ended setting up ssh and git like a boss!

The thing I'm most proud of is though, that I kept a log of everything I did, and will keep on keeping the log of it all! It's really great when you can revisit whatever you did whenever you want instead of revisiting the same old search results etc.

Other than this, I've also started working on python finally! I know I've done some course, created a few codes in python before.. but it was all hobyist stuff before.
Now I'm seriously tackling one of the greatest scripting language out there, via hackerrank this time. Their domain courses are really great! They teach nothing, but force you to read documentation like crazy to solve problems in a variety of awesome ways... wish they had php too, but no luck there!

Going back to the science part now... I'm afraid of opening the big bad book of algorithms again(yea CLRS I'm talking about you!)
But it has to happen one of these days... I can't really live with this hole in the knowledge I have about algorithms, and if I want to branch into AI anytime soon, I really really ought to finish the core concepts which I already know, but haven't ever practiced in.. I mean, greedy, dynamic, extreme graphing- I can do some of that, but it isn't instinctual yet like the rest of the stuff I know about programming.
Guess I'll start that too... one of these days!


so guys.. please bear with me- You might also get to learn some cool stuff along the way!


PS: hopefully next post won't be next year.. probably.. maybe!

Helpful Resources for Vim: #1 OpenVim

OpenVim

OpenVim Tutorial, according to me, might be the best hands-on approach to vim, though a bit restrictive. It has got great layout and pretty great introduction to the basic vim shortcuts.
There's an editor screen which shows the tutorial and where you type and use commands, then there's the keyboard that flashes the key you're supposed to press, and finally the sections to skip chapters or to practice again.
Tutorial can feel somewhat restrictive as other than the keys you're supposed to press, you can't use any other commands, not even keep on practicing the same thing till you get it. You either start the chapter anew or switch to the practice mode.

Also there's this practice mode on the website where you get an editor screen and a helpful sidebar of context-aware actions to see the list of rightful changes.



Setting up VMware tools in Ubuntu Server (14.04.2) CLI

First of all, make sure your Ubuntu Server is installed properly and start it up.

Now you need to go to  
Virtual Machine > Install VMware Tools 
(or VM > Install VMware Tools).

If you see an error like- can't install while performing easy install ,
you need to power off the VM and disconnect the Floppy drive.

Now  power on the Ubuntu server and after getting to TTY, again select  Install VMware Tools.
Be patient and wait for the download to finish... Because I did for a long long while!

Meanwhile check out these links about setting it up-
 Now that your VMware tools have been downloaded and mounted in a cdrom, follow the instructions here-
  1.  sudo mkdir /mnt/cdrom
    When prompted for a password, enter your Ubuntu admin user password.
  2.  sudo mount /dev/sr0 /mnt/cdrom
    Run this command to mount the CD-ROM (try sr1 if sr0 doesn't work)
  3.  tar xzvf /mnt/cdrom/VMwareTools-x.x.x-xxxx.tar.gz -C /tmp/
    To extract (Use to get exact name of the file)
  4.  sudo ./tmp/vmware-tools-distrib/vmware-install.pl -d
    To install VMware tools (might need to fulfill some dependencies first)
 The problem now comes in fulfilling those dependencies required for VMware Tools' installation. For that, first you need to perform
sudo apt-get update & sudo apt-get upgrade

Here in update, I encountered an error, the GPG ERROR NO_PUBKEY
After resolving this error, I again found out that there's no source for the package- build-essential in my sources.list
For this, I used this online Sources generator.
 After you've selected all the repositories you want in your sources.list, do the following-
  1. Run the curl commands under Sources list and GPG keys as it is.
  2.  Run this- `. /etc/apt/gpg_keys.txt` 
  3. Now sudo apt-get update again and 
  4. try the sudo apt-get install build-essential which will finally work!
Now while the apt-get is doing its thing, look at this askubuntu question and this wiki on ubuntuguide.org

 Finally, now that you've got all the builds, you're ready to install VMware Tools for linux.

Just run-
sudo perl /tmp/vmware-tools-distrib/vmware-install.pl -d

and the VMware tools have been installed successfully!
This can be a great tool for learning to use linux without the aid of gui on your mac/windows etc.

Now I'm going to set the screen resolution on the terminals as mine is smaller than the native's-

  1.  Edit the GRUB template
    sudo vim /etc/default/grub
  2. uncomment GRUB_GFXMODE and write down your desired resolution
    GRUB_GFXMODE=1280x800
  3. Then Run these two commands-
    sudo update-grub
    sudo reboot

After setting up the resolution, I found my font size becoming too small, so for setting that up, do this-
sudo dpkg-reconfigure console-setup

Or visit these links for step-by-step instructions-


Alright! Now that everything is setup, do whatever you want..