I have been on to this project for about a month already and looking back, I have learned a lot in a wide range of things. For eg:-
> Programming in general
> A certain experience in R / Julia / Haskell and a bit of Lua as well
> Made progress with Emacs, but still a long way to go before I feel comfortably say " The OS is just a boot-loader for Emacs" ;)
> LATEX
> MathJax and how to use it to put Beautiful Mathematical Text in webpages
> Have explored HMTL/CSS/JS a bit, so as to be able to customise the blog later on.
> D3.js to various other solutions for
> Came to explore the the various amazing libraries which depend upon Python
> And of course, I know the terrain of Sagemaths Cloud as well as Anaconda quite well now.
> I can solve basic equations in Sage, same is true for plotting as well. But so far, I haven't been able to dive into Mathematics per se.
And now, the two most important question that I need to address are : -
* How to use the three principle components as in Sage-desktop, Sagemaths Cloud and Anaconda?
* When to use a particular tool?
The way I understand it, Sage is like the super-organism whose components are not only limited to python-dependent libraries and sub-systems but also various other languages and other technologies as well. Sagemaths essentially combines the power of cloud computing and Grand Vision of the open source community. It offers LATEX, Terminal and a comfortable environment for a dozen programming languages, not to mention the facilities like completely automated source code management, classroom course management as well.
The problem, for me, is that I need to be able to do my work in the most platform independent and powerful way possible as well as which acts as a back up plan for me, in case I am not able to connect to the internet. Eventually, I think I am gonna move over to the Sagemaths-desktop system based on Ubuntu but that would involve becoming a lot more comfortable with the Linux environment as well, so that's another ball to juggle=)
But the most sensible solution that seems to promise a good and useful learning experience would be to begin with the various parts first and then move up the complexity level. Also, eventually we would be able to pick up the manual of any Python library and use it to our purpose. And believe me, reading manuals is boring but if we have an interesting enough a context, it can be done.
So, I think SymPy is quite useful, from the point of view of Polynomial manipulation and, frankly, I am still not so clear about how to use Rings and Fields. Though these are used in SymPy as well, I think overall the complexity of SymPy is a good deal less than Sagemaths. After SymPy, I am gonna explore NumPy, Matplotlib and Bokeh as well.
Another reason why I think SymPy is better for me, at the moment, is that it aims to be a complete solution to Mathematics in it's own rights, so with this little sub-set of Sage I can finally get started with basic High School Mathematics and even if later on I get stuck at some point using Sage, I would always have a backup to rely upon to get me through anyway, till I find a Sage solution.
Of course, I believe that Sage is definitely strong enough to perform these functions on it's own but I feel that getting myself used to the most basic libraries is only going to make me understand Sage better. However, as far as Sage is concerned, my next project is about the learning how to plot complex functions in Sage.
Yeah, it does seem like that, no? But don't worry 'cos once I figure things out I will definitely make some PPTs and PDFs walkthroughs upload them over here so that you don't have to go through all the confusion as well. Remember, the Hacker Culture(!) post, "We must Avoid reinventing the wheel over and over again" !!
> Programming in general
> A certain experience in R / Julia / Haskell and a bit of Lua as well
> Made progress with Emacs, but still a long way to go before I feel comfortably say " The OS is just a boot-loader for Emacs" ;)
> LATEX
> MathJax and how to use it to put Beautiful Mathematical Text in webpages
> Have explored HMTL/CSS/JS a bit, so as to be able to customise the blog later on.
> D3.js to various other solutions for
> Came to explore the the various amazing libraries which depend upon Python
> And of course, I know the terrain of Sagemaths Cloud as well as Anaconda quite well now.
> I can solve basic equations in Sage, same is true for plotting as well. But so far, I haven't been able to dive into Mathematics per se.
And now, the two most important question that I need to address are : -
* How to use the three principle components as in Sage-desktop, Sagemaths Cloud and Anaconda?
* When to use a particular tool?
The way I understand it, Sage is like the super-organism whose components are not only limited to python-dependent libraries and sub-systems but also various other languages and other technologies as well. Sagemaths essentially combines the power of cloud computing and Grand Vision of the open source community. It offers LATEX, Terminal and a comfortable environment for a dozen programming languages, not to mention the facilities like completely automated source code management, classroom course management as well.
The problem, for me, is that I need to be able to do my work in the most platform independent and powerful way possible as well as which acts as a back up plan for me, in case I am not able to connect to the internet. Eventually, I think I am gonna move over to the Sagemaths-desktop system based on Ubuntu but that would involve becoming a lot more comfortable with the Linux environment as well, so that's another ball to juggle=)
But the most sensible solution that seems to promise a good and useful learning experience would be to begin with the various parts first and then move up the complexity level. Also, eventually we would be able to pick up the manual of any Python library and use it to our purpose. And believe me, reading manuals is boring but if we have an interesting enough a context, it can be done.
So, I think SymPy is quite useful, from the point of view of Polynomial manipulation and, frankly, I am still not so clear about how to use Rings and Fields. Though these are used in SymPy as well, I think overall the complexity of SymPy is a good deal less than Sagemaths. After SymPy, I am gonna explore NumPy, Matplotlib and Bokeh as well.
Another reason why I think SymPy is better for me, at the moment, is that it aims to be a complete solution to Mathematics in it's own rights, so with this little sub-set of Sage I can finally get started with basic High School Mathematics and even if later on I get stuck at some point using Sage, I would always have a backup to rely upon to get me through anyway, till I find a Sage solution.
Of course, I believe that Sage is definitely strong enough to perform these functions on it's own but I feel that getting myself used to the most basic libraries is only going to make me understand Sage better. However, as far as Sage is concerned, my next project is about the learning how to plot complex functions in Sage.
For these Python oriented parts, we can hone our skills on Anaconda which combines a large number of mature Python Libraries and is quickly becoming a de facto development environment for people who use Python to build applications and who work exclusively with a fixed set of libraries. Anaconda depends on a package manager called Conda, think of it as a huge zip file maker; the only difference being it combines and updates various libraries on a real time basis. And it is platform independent, so once you learn to use it, the learning curve pretty much flattens out after a while.
Is it all getting too technical, as in a techie jargon or something;) Yeah, it does seem like that, no? But don't worry 'cos once I figure things out I will definitely make some PPTs and PDFs walkthroughs upload them over here so that you don't have to go through all the confusion as well. Remember, the Hacker Culture(!) post, "We must Avoid reinventing the wheel over and over again" !!
No comments:
Post a Comment