Skip to main content

IPYTHON / Jupyter Notebook Begins

For the last few days, I have been dwelling myself into Wolfram Language inside Wolfram Cloud Lab, which is really quite a brilliant and I got a taste of a BIG KNOWLEDGE and ALGORITHMS.

I grow to like Wolfram Language really quickly. It sure has lots of potential. I have few issues with Wolfram Language, knowing these 3 things:
  • I cannot work offline with Wolfram Lab free basic (need the cloud access and Internet for non Desktop version). I wish that FREE mode gives me the Desktop version.
  • With FREE Wolfram, I am pretty much limited. I am willing to pay when I got serious with my research, but that is for later.
  • Wolfram Knowledge Base, aka Wolfram brain is very big, with all the objects and symbols, however, it does not mean it knows everything or have the data that I wanted to work on (obviously!). I do not want to be limited by Wolfram cloud data allowance or memory limit.
I guess the path of self-taught artist wanting to learn bigger idea of programming can be a bit bumpy :) but not to worry.

DEAR WOLFRAM, IDEALLY...

In an ideal world, tool such Wolfram Language should be available freely, like open source, pre-installed in every computer. Users can work offline and online as they please. Surely, maybe one day.

NOTE:
I do still consider paying subscription license to Wolfram Foundation, if I am actually going to be using this everyday as my professional career. So I will still look into Wolfram because it is such an interesting environment with big knowledge base. Eventually SIRI can query Wolfram like programming, I think, but that is something to look into years from now.

ALTERNATIVE FUN ENVIRONMENT FOR PROGRAMMER

OK, all I want is a nice friendly and creative environment with my choice of language, in an interactive kind of way... Is this really possible?

(* short pause and sight *)

THANKFULLY, I am quite lucky and by accident I found out this free tutorial earlier few days ago:
 
EDX x Microsoft sponsored tutorial on "Introduction to Python for Data Science":

Inside that online class, they have this nice teaching tool thing called iPython Online Notebook. It really works great for learning and testing running program.

Few years ago, I found iPython is not very appealing because it is running on the console, and seems so basic... Apparently I was wrong in a good kind of way.

IPYTHON > JUPYTER (NOTEBOOK) > ANACONDA!

There is apparently this iPython Notebook called JUPYTER!
http://jupyter.org/

JUPYTER is like an interactive Python (availlable online) you can have with features surprisingly similar to Wolfram Language! Such as displaying images inline and graph plot, and even YouTube video directly as output. JUPYTER NOTEBOOK is very similar to Wolfram Language.

JUPYTER iPython combined with all useful Python modules (Pillows, numpy, matplotlib, pandas, etc) apparently making iPython a very friend place. That is something I seriously have always been looking for.

Me personally have some interests with data study, but more to the visualization of the data. With programming, really I am quite picky and slowly learning things. I will not continue, unless it is fun.

OK, so Jupyter Notebook is really the tool you want to get comfortable with. You can install Jupyter manually, however, I found that using ANACONDA bundle, will get you quicker and faster.

Below is a snapshot of offline version of JUPYTER that I currently have running, after installing ANACONDA, it is using Python 3. It comes with all the modules needed, such as Pillows PIP, Pandas, NumPy, MatPlotLib, etc... 





So, I guess I will continue my Python study journey from here via iPython and Jupyter Notebook. I might write some iPython article here and there.

Nice link documentation on Jupyter Notebook aka iPython Notebook:
http://jupyter.cs.brynmawr.edu/hub/dblank/public/Jupyter%20Notebook%20Users%20Manual.ipynb

EASY vs HARD

If you are as clueless as me, starting to learn programming from ZERO, I think to have Python and Interactive iPython under Jupyter is a good start. Not just good, but in fact something like JUPYTER is really convenient and friendly enjoyable environment you would wish to have. It might change again in the future with SWIFT.

Programming experience and instant interactive feedbacks as rewards, are two essential things for learning, exploration and prototyping.

Surely, self-taught programmer still need to know the hard way of things:
  • Knowing how to install the programming language
  • Typing using notepad, better if you use editor with syntax highlight like Sublime
  • Knowing how to run the program
  • Make a lot of programming error
  • And so on...
This kind of "Interactive Notebook" way of learning and writing programming history and notes is really a blessing. 

So, I will try to utilize this from today. Let see how far this can go.

Another snapshot of Jupyter running iPython Notebook.
Few pointers on why I like this idea of interactive notebook for programming:

  • We can see the whole story and progression of how script become
  • We can see the INPUT + OUTPUT that is sometimes clearer than commenting. Unlike typical note taking of just the programming script, not seeing the output is not convenient
With Jupyter, I could save the HTML version, Python (script only with commenting), and the actual notebook (ipynb).

WEIRD LITTLE THINGS...

Working in a different environment could result in few anomalies. Like creating matplotlib plot inside Jupyter, apparently users need to add magic word like this:

%matplotlib inline.

Otherwise it will leave your Jupyter frozen.

Just to keep that in mind. But usually you can find the solution by Google-ing. Fingers crossed.


That's the story narrative of being programmer: "It is good when everything just runs smoothly." 

IN THE FUTURE, FUTURE...

I do believe that Wolfram Language is like THE FUTURE that one wishes to have access to. I am definitely not the only one wishing this to happen.

Seeing all the Wolfram videos online, and some of the demo, even by Wolfram's Son is quite amazing to me:

That is really how computing should be.

Comments

Popular posts from this blog

PYTHON PROCESSING / It only really begins ...

Back into Processing again, with Python! While Daniel Shiffman is continuously inspiring us with his CODING TRAIN series on YouTube, using Processing with Java and Javascript language, I decided to free my mind and trying to really do something using Processing and Python language. Installing Python language version on Processing 3 is easy enough, just first download the latest Processing and install the Python language mode via Add Mode button. Other link that might help: https://github.com/jdf/processing.py http://py.processing.org/tutorials/ BLANK MODE As soon as Processing Python Mode, opens up and running I am presented with a  blank environment. Suddenly I recalled my journey in learning programming from zero until now... With Python, outside Processing, commonly people will be introduced to Python IDE or IDLE environment. Something that looks like Console Window or Command Prompt, where we type single liners command. Python Command Line and IDE normally have t

PYTHON / OpenCV, Recreate Uncanny Manga - Anime Style

Can you tell what it is? Computer Vision. Yesterday, I spend almost whole day exploring this opencv module using Python. What I discovered was revealing. Even at the very basic level, I could produce some interesting Image and Video manipulation using all the code collected from documentation and many, many blog tutorials. If you are a total noob like me, I am still getting used to knowing that the CV in OpenCV means Computer Vision! Actuallly, I recalled that I did try to get into OpenCV few years back ago, when I knew no Python and when Python opencv module was probably still early. It was all C++ code and it was a little bit too hard for me. I read a couple of books about opencv at the library, I did not understand a single thing. That was back then. Today, for strange reason, with a bit of knowledge of Python, I can go a little further. EDGE DETECT IN OPENCV Me holding you know what. What leads me this far is my curiosity on how we can replicate Wolfram Langu

WOLFRAM / Making Text With Rainbow Color

Continuing with my Wolfram Mathematica Trial Experience... I watched and went through some more Mathematica introduction videos, read lots of Mathematica documentation and also going through the Wolfram Lab Online again a few times. There are some major learning curves and Mathematica is a lot different from normal programming language. Sometimes there is a lot of interesting "shortcuts", say like: FindFaces[] , WordCloud[] . Sometimes I got a little confused on how one can do iterations. Normally FOR LOOP concept is introduced early, but in Wolfram, because everything is EXPRESSIONS and ENTITY (like OBJECTS), sometimes it gets quite quirky. Mind you I am still in the first impression and having to look at many tutorials. Lots of NEAT EXAMPLES from documentation, but sometimes I got lost. I found Wolfram to be really awesome with LIST and generating list. It's almost too easy when it works visually. I cannot explain them with my own words yet, but there are