Thursday, August 11, 2016

GitLab and GitHub

Hey, I'm making two more blogs;p

These ones are purely for maintaining a progress log/ thought log for the Code projects I'm working on. My clear preference is for GitLab since there I'm under no obligation to make a repository public but it's really good to know that the big-guns of the industry (GitHub etc ) are kept on their tows by the young-guns.

Clojure is the thing! I mean, who could have imagined that hosted LISP would create such a wonderful tool! Yes, I've been dabbling much in JavaScript but I really don't like the syntax or the numerous changes and nuances that's "valid" in current and upcoming standards. I'd much rather use ClojureScript or at the very least CoffeeScript.

Even in Python I feel my code isn't as beautiful and minimal as it could be and it bugs my mind a lot. I need to organize code and my problem solving approach to make things faster. Actually, I wrote a little script to download various Transcripts from the Ted Talks website in various languages. It did the job right but it just looked ugly ;(

Oh, being me ( very crazy!! ) I've explored Sublime Text 3 and Spacemacs. Loved them! I'd definitely be using the Sublime Text as a lite weight programmer's notepad. And Spacemacs, this one just blew my mind;p

I'm painfully aware now, that I have this obsessive thing with exploring stuff - I will do my best to do one thing and do it well.


Wednesday, August 3, 2016

We Build Stuff!


Hii Everyone !

I'm really exited these days. You know that I've always been a fan of making a little progress but making it often, rather than waiting to climb a tall mountain and just draining out during the trek.

So, it's a lot of things that I'm learning and trying to record everything little thing seems quite overwhelming so I'd just share the highlights of it all.

I've come to believe that apart from a good machine, we really need a good working habit. Pomodoro is helping me a lot and so is f.lux, thankfully my eyes are not feeling as sore as they used to previously. So, I take that as a good progress. Actually, it involves often forcing myself away from the screen for a few minutes and just walking about or practice rolling my eyes, exercising basically and then coming back with a refreshed focus.

The physical aspects of good programming are, sadly ignored, much to our own harm. Having a sound and healthy body is the first requirement for good programming, that's what I've come to belive. But coming back to the BitWorld, I've realised that the dotfiles( the configuration files ) are the pearls of hardwork that gives the programmer his/her identity.

Sounds a bit too romantic, no? But that's just how I see it, you know the most amazing statement I head recently is "We are Engineers, we build stuff" - trust me this filled my heart with pride! Yes, I do like to build stuff and programming is like magic, art of thinking!

If we only examine and understand how to make good programs, good software and make it good and in a swift way - it teaches us the art of thinking. Of keeping schedules, keeping track of decisions and discipline. Above all I love the fact that, this is perhaps the only art form where we don't need to rely on much, just a computer, a willing mind and perhaps Internet. That's it.

So, we are free to build amazing things. Man, I love it!

Right now, I'm working hard on the Learning With Text and Anki, to port them to JavaScript based environment and yes, I don't think that JavaScript is an awesome language or the perfect language ( Probably, Julia or Haskell is;p ) but this is the world we live in. Much like English language no, so I think it's much better to be fluent and expressive in JavaScript first and only later, with good skills under my belt I'll able to improve what I build the way it's best improved. Oh, it's doubtless that apart from JavaScript the One language that's best for dealing with everything is Python.

Python and JavaScript the two awesome prototyping languages;p


Have fun and stay awesome!!

Sunday, July 17, 2016

The Web at Home

Hey, this is just a quick one. I wanted to share my setup with you guys. It's slow to begin with but eventually it all catches up;p


This is what my Atom screen looks like right now.




And this is the very basic version of my app, which is built using Electron and PhotonKit. All the code can be found at this GitLab repository




P.S. I swear I'll create amazing things for language learners!

Monday, July 4, 2016

Active learning means....Translation!

I learn a lot through translations!

Be it Julia/Python pairing or the Go/Rust pairing, LISP/Haskell pairing or simply just the plain old C++/D pairing ( or more! ) - it's always through translations that I'm really able to catch things on quickly and understand the way the languages really work. Plus, this gives me the wonderful opportunity to "learn from the giants", by forking things and then contributing back to the Tree of Knowledge.

Sure, there's a lot of sense in sticking to a single tool for a couple months, but for me it's more engaging if I can build something I'm really passionate about, curious about while I'm learning something. I know it would be hell of a job to pull something like building a web-server like Hugo or Beego from the Go-lang world and translating it to Rust language but perhaps I could just translate the various Faker libraries or maybe some typical textual games or puzzles - some little contribution like that is what keeps me going.

Honestly, if there's anything that really satiates my curiosity, it's languages! And to me, it's a realization that this is exactly the way I enjoy learning Human languages. Though the progress in this passion of mine is a little slower than what I'd really like it to be.

I'm focusing building something useful in three primary languages - Python/ Ruby/WebTech ( HTML/CSS/JS) as a part of my professional portfolio. Something that helps me earn without the confines of an office or a set environment. A laptop ( Oh, I love the Mac now! ) and an Internet connection should suffice for me.

I know it takes a competence to be able to demand a good pay for my time, but Time is the most precious thing. I don't plan to learn the greatest tool, or to keep up with technology all the time, I only wish to dip my feet in for a while and then just learn the way these things work. The skills I acquire would be more than sufficient for the lifestyle I want to create. After that, comes connecting to right people who need my skills.

Here again, I find that languages ( human ) come to my aid and the plan is to focus on certain countries and then use that scenario to learn languages and to earn. I'm a big fan of "Doing good and doing well!"

Recently, I've been translating a book into Julia language along with translating the responsive and modern Bootstrap powered templates to Google's Material design.

I do notice that my learning methods have changed a bit, perhaps are still in the process of changing but those thoughts are for another time ;p

Stay Awesome folks!


Sunday, June 26, 2016

Might as well start earning, The Awesome Freelancer

Yup, the water's rising!

And that's not to say that I'm panicking or something but, honestly, I take this as a great opportunity to narrow down and thus focus on a limited number of things and master them well.

As you know, my friend, my college life basically involved A LOT of exploration in many fields and it's not only about programming, physics or mathematics which I so passionately explored but also languages, human languages and all my thoughts on this other self can be read at The Talking Apes blog. 

Recently, I've graduated - my Facebook and Instagram updates are overflowing with this pseudo-reset button my friends have punched in, starting lives in different places and discovering new environments. I've always known that I'd have to find my own way, reminds me of this phrase I caught up in Japanese and here's the English translation

" Once more only by my pace  I shall become myself, unlike anyone else "

So that's that about peer pressure ;p+

About my current plans, I find myself becoming a Project Architect of a few projects ( yes, that's 
the Getting Things Done  kicking in). From a collaboration with friends for WebArtist skills, penning down
my first "forked" book in Julia language, to another artistic venture which involves producing manga-like
sketches for a few hundred still images, atleast my figure sketching skills would be awesome by the end 
of this project.

I'm hoping to become a published author by the end of this year and, I swear, I shall never look back. Self-
publishing ( you know me! ) the way forward. The major push in my efforts is towards mastering the 
Python and JS?CSS?HTML stack ranging from System Administration to Web Frameworks like Django to produce a portfolio and 
to experiment within the context of that portfolio. 

I've, as always, set my goals high for the next six months and, once again I find myself integrating many of
my goals together into a coherent whole, I have yet another project in mind which turns around about the
language-alley. That's one context that can make me sit in front of the computer for hours!


Saturday, June 18, 2016

Casa

Sagematics

Hi fellow Sagematicians!

Yes, yes this break of mine has been more like you-said-vacation-but-settled-elsewhere kind of thing but honestly, it's hard to imagine a more dull learning experience for myself, dull and
useful that is.

I hit rough seas as far as my university was concerned and the StartUp thing was not going so well, not a place of joy at the time. I literally lived my College life during the last 3-4 months and had some time to really reflect on where I'm headed.

I haven't ever questioned the fact that I really do belong in the Academic research but I've certainly become even more wary of the the Academic Institution. What would happen if they actually start caring about the students in the colleges, maybe all hell would break loose;p

Anyway, I'm fast moving towards a Freelancer career and the aim is to become technologically competent in every possible way be it from Game programming or the Complex System design and
the most important aspect being

I bought a new laptop, I've named it Eklavya - yes, this is perhaps the only legend I've ever loved. The autodidactic learner who surpasses the teacher's wildest dreams.

I've selected the GitHub repos and the languages I wish to explore and contribute to. Boy, if you could listen to my thoughts your'd hear music, a symphony of ambition and instruments of persistence.

I'll write more regularly now. Sagematics and The Talking Apes are the two biggest contributions I can make towards a growth-oriented community and I know that I don't write professionally
but each and every word, makes it way from my heart.


I've started a couple projects with my friends as collaborators, which combine Human Languages and Programming skills, Contextual and Project oriented learning is the way forward. Always.

Friday, May 20, 2016

Being alive now!

Finally the entire exam thing has gotten over. I've had soo many ideas and wrong turns but I could not write anything. Just didn't want to.

Finally, my mind is free from all the college worries and now my two lovely blogs will come alive!

Monday, March 28, 2016

The Love of Programming

Racket and Haskell

The only two languages I really love to Hand-Code in, that is I am actually always quite eager to get a sheet of paper and pen and just have a go at any programming problem that strikes my fancy.


I collected so many ACM ICPC problems but I never really bothered to solve them. Not a single one. But with Racket, Haskell and Julia - I rediscover the joy of programming. The fun activity that it is supposed to be. Not necessarily for the purpose of Building something but purely for the joy of Learning and Exploring.


I never felt enthusiastic about doing all the algorithms in "Introduction to Algorithms - CLRS", but with Racket, Haskell and Julia - I actually look forward to taking out time from a busy schedule to rediscover the wonder that problem-solving really is.


JavaScript and Python

Python and Javascript environment which basically include everything in their vast applicability are the ones which I'd really love to Build Things in. Recently, I started fancying myself as having a career in prototyping things, especially WebApps. Would be fun to have a career which gives me new things to experiment with but hey, who knows.

Here, again my approach with Python and JavaScript is to learn the myriads of libraries and frameworks within a context of a Project, build something that makes me want to work at it and share with people.

Btw, I became quite active on GitHub these past couple of months and ended up "Starring" about 1500 repositories. Boy!, who has the time to skim through all of that list again. So, I'd much rather use the JavaScript console and the browser features to make a query and ranking system of my own. There are a couple DataBases which I have added to my ToDo list.

Oh, I keep getting this weird idea to rewrite Emacs in some different language, in a way which is just compatible with all the current code-base. Two langauges seem probable for this- Racket and Julia. But Racket being so wonderfully built around the idea of a portable programming lab ( DrRacket ) it doesn't seem like a good idea to attempt that one.

However, with Julia I am quite sure that the effort would be quite rewarding but as of now Julia lacks the necessary libraries and frameworks which might help me accomplish that. And yes, I am aware how utterly unreal Rewriting Emacs sounds but hey it might be a fun thing to do, no? Though, there is not a shred of doubt in my mind that Web Technologies are the future, so I'd much rather bet on Atom and try to extend atom to the same level of awesomeness that Emacs is capable of.

Friday, March 18, 2016

A Master Mason

I am always humbled by how much I must learn to be able to reach the level which makes me truly confident in my skills. Maybe I have just romanticized this - maybe it's never gonna happen that I'd be a "master" of a technology for it flies by too fast and there is always an improved Version to learn.

 I have started to follow a certain half-formed thought which tells me to focus on One particular version and learn things in a Context, make them as fun as they can be, but the thoughts still are not that well formed. The result being that, instead of keeping up with all the wonderful changes in Python3.5 etc I'd much rather grow comfortable in Python3.4 and same goes for all the other such technologies.

I am a huge fan of project-and-context oriented learning. For every function I come across in Python Standard Library, I try to imagine a situation where this function would really be useful.

All that I do can be summarized in one of the following three, LEARN-EXPLORE-BUILD. This is the how I make tame all the confusion and prioritize the projects I need to work on.
I have had a wonderful exposure to the importance of Soft-skills and the Business oriented planning side of things but I find that I truly can't feel competent and comfortable unless I know that I can build the thing myself. The "Hard-skills" are the ones which, I feel, I must prioritize over the Soft-skills which can of course be improved upon anytime, really.

I become more and more convinced by the day that I must really learn Web Development and, atleast become quite good and capable at various aspects of it, before I focus exclusively on the Non-Technological aspects of things. I only wish to work with people who help me grow and who are atleast as good as me. Right now there is a huge gap in this, not in a good way. There's a stark ( and least understood, it seems)  difference between a "Manager" and a "Leader". I'd much rather be the latter, who is right there at the place where most exiting action takes place.

Saturday, March 12, 2016

The Thinning Fog of Technology

It's been a long while since I last posted anything. And what a busy time this has been! It's only after a couple weeks of being away from the World, that I could bring myself to write about something - anything, in fact.

Through this StartUp experience, I've had a Ton of exposure regarding the way the Software Development world works, not to mention the exposure to various technologies was like a drink from a firehose!

Sometimes, actually most times, I find myself confused regarding what to learn and what to ignore? Some say, AngularJS is the thing while others really swear by ReactJS.

Some say, it's better to learn how to be a good Server Engineer for he's the one who really ensures that the thing built for the people, reaches the people safe and sound. While others still say that it's better to become a designer for it's the only thing that truly is visible to everyone.

The JS is the new revolution, for sure but what to use all these wonderful languages for. What's the one thing, one context which can help me Learn-Explore-Build using these languages.
I'd love to explore D, Rust and Go. I'd love to contribute to Julia's incredible growth. But at the same time, I must myself understand what should the priority order be. I have found a couple projects on Github which I am definitely gonna work on, perhaps port that project to all these languages and gain a feeling of how really these languages work and how to cruise my way through the meta-language environment like package management and Code Versioning.

Then there's is this Unreal Engine for making games which does inspires my curiosity above all. After all, I've always loved games ( who doesn't? ) though it's been a few years since I really became involved with any Game whatsoever.

I have always been a systemic thinker, sure the initial gulp from the firehose of technology hurts and even baffles the mind - but eventually I have always been able to navigate my way through the tough seas. To bring Order to Chaos, for each language or a tool I have prioritized what I need to build, to practice the thing with. I have always been that dreamy-eyed kind of person who is after a thorough mastery of something. Perhaps, all the stories I heard in my childhood have left their imprint in my mind somewhere.

If it is possible to be the really knowledgeable in a wide variety of skills than I choose to chase that Dream. Never been shy of working hard but I have always taken great care about investing my time in things with huge payoffs. Like this Emacs I am using to outline all the posts and the Git Versioning I am using to keep track of all my journals and projects.

I do find myself forgetting that wonderful sentiment " It's not so much the Destination, as the Journey". It's a tough journey, learning always is a mixed pleasure but we must always find ways to enjoy this voyage in the sea of knowledge...or something like that;p

Tuesday, February 9, 2016

Designing Games

For the purpose of gaining some development and design experience ( and some stars on my chest ) - I think it's best to learn from designing small Games

Isn't every game in itself a compex software with having an innantely inseperable laser-like focus on User Experience and User Interface. Plus, I have found a bunch of Open Source Complex Games which, I hope, will give me enough documentation and teach me how to approach the Complex System design in the Simplest possible way. Games it is.

Simple Text based games seem best to get started with the entire system design via games project and then focusing on the UX aspects of the things - and the use of various modelling languages used extensively in Documentation. Learning it via designing and analyzing games designed for Emacs and the nascent ones for Atom.

Gonna start with the simple Card Games and focus on the Technical skills as well as the UX aspect of things. I hope to learn loads about the Magnificent Emacs and the Prodigious Atom in the process. 

Plus, for some reason, I have this aversion towards bare-bones JavaScript and even the straightforward HTML5. Perhaps result of psychological trauma that the education system inflicted over the years. However, I do find myself Curious and Passionate enough to achieve the same things in a different way. Instead of JavaScript, I am a huge fan of CoffeeScript and with the Jade prepocessor for HTML, LESS instead of CSS3 and here comes the best part, with Github's atom as the playground. I am more than eager to dive in the web technologies. 

And similarly I have never really used the Debugger at all, but with Emacs and Elisp as the playground, strangely again, I find myself brimming with energy to have a go at it and do all the weird hacks I have planned over the last couple of months.

Hopefully, this Padawan is on his way to the Jedi Masterhood;p

Thursday, February 4, 2016

Towards Complexity -Trying to Keep it simple;p

The ability to Design and Understand complex systems - from Pyramids and Dams to Labyrinths, of the ancient world and to the Modern International Space Station, leave alone the huge complexity we have come to accept as a norm in our everyday lives, we have become all the more adept and perhaps even driven by complexity. Why then should we not learn how to model systems and approach the design of complex systems?

As far as my contribution to the StartUp is concerned, learning how to model complex systems and how to move forward strategically seems to be the thing for me. Sure, recently I've been exploring various Modeling languages like SysML and PlantUML et cetera but that is sooo full of dry academic paradigms. Where's the color and the aesthetics people?


So, as a result of  becoming all the more interested in Complex System Design I am intrigued by every opportunity I get to Automate things, I am becoming a passionate automator - be it the shell based installation scripts of just opening up new tabs in the Browsers - Vimium for Chrome and VimFX and Vimperator for Firefox or just various plugins for Emacs and Atom for the all-too-repetitive tasks. Be Lazy - Save Time and Automate=)


This is all necessary so that I may spend the time doing what really matters i.e. figuring out how to move the project forward and how to approach the people, how to dazzle with the User Experience ( UX ). It's the one thing, the master algorithm so to speak - the ability to approach the Complex Systems.

Being someone of a Novice and lacking the Ground-level development experience I am doing my best to balance things between Liquid like, feedback driven development, you know, something that's not fixed and something that's not too vague either.

It's fun - most days;p

Saturday, January 30, 2016

Dear Technology!

Keeping Up with the Latest and the Greatest Technology!!

It's becoming quite clear to me that it's humanely not possible at all to keep up with all the interesting technological advancements and the projects which seem to be taking the world by storm.

It's wildfire - and if this word was ever used in a good way - this is it. A wildfire of innovation and a big bang of possibilities.

So many possibilities that I can't help but feel a bit drowsy and overwhelmed!
 
Should I look into IOT ( Internet Of Things ) which is such a hot property these days?

Or should I get deep with System Programming -  wouldn't it be fun to be the unquestionable master of my machine ?

Oh how about the new platforms like MeteorJS - how many cool things I'd be able to make with NodeJS and Electron - countless!

And, who can't forget Android right? How useful is Android gonna be in future, how much should I get into Android internals and programming?

What if I want to customize my Android, how am I supposed to do it? Do I need to learn Java and all it's subtleties as a language - for some reason, I really don't like Java!

Shall I get involved with Firefox and the general Mozilla developers network and help create this Secure and Free world of software and revel in collaboration ? Perhaps Tizen is the next "android" ?

Or is it the Light Table which becomes the wave of the future, as far as the editors are concerned ?

How many libraries of the languages I learn do I need to be fluent at ?

Which plugins to use for the web browsers and even which browser to use while we are at it?
~~~~~~~~~~~
~~~~~~~~~~~
So, there's the verbal storm that's shaking my forced reluctance these days! Confusing, isn't it?

There are literally so so many open source repositories which I'd really like to contribute to. Then my goal for being this deep in technology comes to my rescue, you know where my True North is don't you=)

It has always been my Dream to contribute to science and to be able to understand what is beyond this all-too-human-centric world. There's magic out there, in the stars and in the emptiness in between. There are great discoveries to be made - that's my True North. Technology is just a tool toward that goal, a path towards that destination.

Become Limitless, through your Limits - This used to be an obscure thought but it's becoming all the more clear to me now.

Though the major thrust, in the Tech. World is towards using the Web-Tech. driven products and leveraging the one thing our entire species has worked so hard upon - the Internet.

Anyone who wishes to even be remotely a ToolMaster in future - must also be a WebArtist.

Oh, btw I'm gonna switch to OS X soon. Actually, I did use the Macbook Pro a while ago and as I had the option of refusing to work on it,  I tried out various things which work for me and documented the entire process. I think it's the lighter counterpart Macbook Air which suits my needs better. So, there's gonna be this change soon when my PC ( a powerful desktop ) will be having a dual boot ( Mint + Windows7 ) and I'll work on the portable Mac Air. This Dell laptop's been a great companion through my college life and god only knows how many experiments it has been subjected to. It's has been a great machine to me.

Sunday, January 17, 2016

Complex Systems Design

I used to think that Coding is really the new literacy 'cos of all the things it makes us adapt to, say thinking logically, understanding how to design the programs and at the same time there is this immense room for innovation.

And recently, I have been exploring the various tools built in and Clojure and web technologies. Oe such tool is Light Table which is the inspiration for tools like Juno IDE  for Julia language. 

So, I wanted to read more about what's keeping the inventor of this tool busy these days. Went over to his blog and came across this wonderful post which caught my attention. The blog post deals with "What we hope to achieve with programming" and "Approaching Complex Problem". I have to say that my views have been enriched by this post and I have come to realize that Coding, in and of itself is One of the ways of learning how to approach Complex  Systems Design.

For this post, I'd really recommend that you go through this  Blog Post by Chris Granger and really think about it 'cos, to me atleast, it seems to say alot in terms of what truly is a uniquely Human ability!

I find that my thought on this topic are evolving and it'd be sometime before I am able to form this thought-tread into words. My intuition tells me that it's really something that's gonna resonate a lot in coming posts.

Sunday, January 10, 2016

Lazy and I know it)

Remember that in this post I mentioned these links -


Hacking is a Mindset not a Skillset 

Five Principles of Hacking

Understanding Hacker Mindset

Hacking Mindset


Which only shows how much curiosity, originality and collaboration are valued in the world of Hackers. So, it should be, no? 

Collaboration and Originality owe their origin, in part, to being Lazy and Smart. Both of which are almost the guiding principles along which I move forward. Why reinvent the wheel if it has already been done long time ago - why not work on something Original ourselves. 

You know, I have been using Jade , CoffeeScript and LESS to overcome the traditional drudgery involved in dealing with the Web-trio of HTML5 ? JavaScript / CSS. Why?

Only because, it involves less typing and LOT cleaner code. Plus, I love exploring the various packages for Atom. I love Emacs and am learning new things about the editor every single day but I think that in the long run Atom will surpass Emacs owing to the core technology of the Editor viz the Web Technologies like CoffeeScript and LESS. Seriously, if there ever was an editor which showed more promise it would be named Emacs2. 

I do wonder that perhaps, reconstructing Emacs from the ground with Clojure would be great but then again, the overall porting of various Elisp packages or even collaboration between the two Lisps and technologies might break a lot more things which make Emacs - Emacs)

Sunday, January 3, 2016

GamePlan 2016

After a long month ( or a long while ) , I have had a couple days all to myself - I was "working" on the New Year's Eve;P

And I am looking forward to making this year an even better one that the one that flew by. You know, I am really getting into Functional Programming and this is the year I am gonna stick to Functional Languages and start contributing code to the Github profile. 

I'll probably stick with One Big Idea and try to implement it in various languages and through this context and within it, I'll love to explore the various nuances of Programming languages and get to know their personality as such. 

What follows is the list of Tools in my ToolKit which I thoroughly aim to master this year. Sadly, I don't foresee having much time in my hands for Mathematics or Physics - though I know I can definitely fill Linguistics into my schedule. Keeping my fingers crossed;P


General Purpose Languages

Julia
Python
Ruby

Functional Juggernauts

Haskell 
Racket
Clojure

Regarding the Web Technologies

CoffeeScript 
JavaScript

HTML5
Jade - Templating for HTML

LESS
CSS


Quirky Languages

ChucK


Text Editors

Vim

Atom

Emacs

Versioning Tool

Git

Hopefully by the end of this year, if there is such a thing as a Wizard in Programming - I'll be at that level ( I believe in Magic;P )

I'll be more active on the blog from now on as I think I am adapting well to the new lifestyle!

P.S. Looking forward to 2016 as the year I finally graduate from being a NoOb