Tag Archives: programming

Innovation

Some of the best open-source technologies are based on a great mix of things.

It usually comes after somebody with an entrepreneurial spirit confronts a problem due to old mentalities. As the old saying goes: “necessity is the mother of invention”.

Innovation is often about molding different pieces together and building something new out of it all, taking failure and turning it into the creation of something new.

3M’s post-it notes were created because one scientist named Spencer Silver failed at creating a strong adhesive for the aerospace industry. Instead, the result of his work was too weak to be used to mold together much of anything.

It was Art Fry, another 3M scientist, who was frustrated by how his paper bookmarks kept sliding out. Turning to what had been regarded as a failed adhesive, he realized that if he stuck the weak glue onto a paper, it could represent a temporary sticky paper, a way for one to mark one’s position—a bookmark that wouldn’t slide out.

That was the birth of Post-it notes, bathed in the spirit of innovation.

Plunker: A Primer in Open Innovation

Plunker with code(love)

In that spirit, Montreal-based Plunker is a good example of what happens when necessity strikes exactly the right person.

The creator, Geoff Goodman, is a programmer by calling, but not by profession. He works for one of the largest accounting firms in the world, but his true passion is building web technologies.

By day, you’ll see him plugging away at financial models for the sake of profit. At night, he’ll be driven to build things for the sake of passion.

He recently came across a pain point of his that needed solving. He had been using JSFiddle to help sandbox and prototype several versions of his code, but found that it was lacking for more complex Javascript frameworks such as Angular.js, which require more of a file-by-file approach where you can separate out different aspects of your code into a contained and organized multi-file system.

Geoff had been looking to build a timesheet application, but was frustrated by how JSFiddle’s sandbox couldn’t take on the more modern and complex Javascript frameworks that were required to make the application truly interactive.

So he set out and modified the Ace text editor, an open-source code-editor used by Cloud9 to help programmers build and prototype applications in the cloud.

The Ace text editor is open-source technology that aims to emulate the features of other text editors for code such as Sublime Text. Geoff built out an intuitive user interface with Ace that allows one to save one’s sandbox experiments (dubbed Plunks) and toggle easily between different Plunks, and different files within the Plunks. You can test your code, and see the live results instantly, which is quite gratifying for more complex applications that don’t load well in JSFiddle.

Modulus.io, responsible for scaling node.js applications, and MongoLab, which offers MongoDB have pitched in to help build out and scale the back-end for saving and accessing Plunks. The Angular.js team and tons of denizens of StackOverflow, a popular programming Q&A website, have used it to explain and teach code. Plunker has been an application built on open-source principles being helped throughout by a community that believes in it.

You can load up your plunks in Plunker with frameworks, including Angular.js, Bootstrap, and a whole host of others. You can save them for your own learning purposes, and watch what others have done with their plunks—this one taught me how to build with ng-table, an Angular.js function that extends tables to some nifty properties such as sorting, filtering, and pagination within tables.

Plunker’s been visited by hundreds of thousands of people, and used by many to learn and to teach programming. Plunker started with one person, frustrated at his own pain point. This is the beauty of the open Internet—something that allows solutions to spring from anywhere, supported by a community of people who believe that building is beautiful—and that sharing is caring.

In an online chat session between Yukihiro Matsumoto and Keiju Ishitsuka in early 1993, a discussion ensued about the name of a programming language that Matsumoto was going to write. He wanted to satisfy his desire to have an object-oriented scripting language, something that would craft virtual objects composed of data, and help them interact with one another. The alternatives at the time, Python and Perl didn’t appeal to him, Python being too object-oriented and Perl having “the smell of a toy language”. Between “Coral” and “Ruby”, Matsumoto decided to go with the latter because it was the birthstone of one of his colleagues.

You have probably heard about Ruby, and you might be wondering—what is all the fuss?

For starters, it’s written in a very easy-to-use, intuitive manner.

For beginners who have tried teaching themselves a programming language, there are many obvious barriers like the syntax and semantics of a language. Ruby strives to eliminate some of those barriers, for example, by naming functions in a very “natural-language” like format, the is_a? function does exactly what it promises, returning a Boolean (TRUE or FALSE) telling you whether a given object is of a certain type. The question mark at the end of the function is a Ruby idiosyncrasy that hints that the function always returns a Boolean. It may seem odd in the beginning, but as the amount of Ruby you read increases, the more natural this process will become.

Ruby is widely deployed ranging from applications in simulations, 3D modeling, business, robotics to web applications and security. For example, Basecamp – a project management application is programmed entirely in Ruby. Google SketchUp, a 3D modeling tool uses Ruby as its macro scripting API—programmers can add in scripts of their own to the SketchUp program, helping them do things such as automating routine modelling processes, similar to how macros work in Excel.

So how might you go about to learn Ruby, now that you are convinced that it is valued by the software community?

RubyMonk follows a narrative style of teaching Ruby along with some programming basics. The premise is based on you having a “master” who gives you much needed encouragement if you go wrong and also gives you triumphant messages when you succeed at some of the exercises. RubyMonk draws from movies, and video games to keep you plugging away to learn Ruby.

What really makes it stand apart from other resources is the way the entire learning environment is structured. Each page in the chapter has some introduction, a new concept, an exercise to try out, some more concepts with exercises and wrapping it up by using all the elements learned in that chapter in a slightly challenging exercise. There are several levels – Ruby Primer, Ruby Primer: Ascent, Metaprogramming Ruby and Metaprogramming Ruby: Ascent.

Each of the levels deliver content indicative of their name and each chapter is sprinkled with practical exercises.The design of the exercises and their placement is what makes the learning experience on this website fun and engaging. The exercises are just a little beyond the skill level you acquired in the lesson and require a little bit of thinking and are perfect for people who are just beginning to learn programming. They help easily transfer the theory you learned into practice.

Once, you’re done going through all of their material, you can be fairly confident that even if you can’t change the world with Ruby, you’ll at least have enough knowledge to create fun programs and venture into some complex ones with little additional effort.

Yet another reason to learn: Ruby serves as a wonderful background to migrate to the popular Ruby on Rails web framework, which makes the learning curve for making web applications much easier.

Ruby on Rails was constructed with the explicit goal of making it as easy as possible to build an interactive web platform, and maintain it. It speaks to the Ruby philosophy of simple, intuitive building.

After you learn Ruby, you will be able to build your ideas rapidly, and efficiently. You will have learned a valuable skill that will help make building natural.

A lot of articles about the ‘Girls who Code‘ initiative begin by describing an inspiring story of a woman who would have never ventured into the largely male-populated domain of computer science without the program.

‘Girls who Code’ is a great initiative that is helping to bring about positive change. But what is often not given a second look is that a profound change can be triggered in society if more and more people could learn the skills that result from working in this field. Workshops should not only expand reach not to cover more women—they should expand for people from all walks of life.

Simon Peyton Jones, a British computer scientist makes a very relevant point when he equates computer science as being one of the basic skills that should be taught in school alongside Physics, History among other things in today’s world. He goes on to explain his thought process saying that when we are all taught Physics at a young age, it helps to demystify things like how a bulb is turned on when you flick a switch – its because of electron movement in the wire connecting the switch and the bulb.

Similarly, a study of computer science can help decipher many of the technological wonders that surround us.

‘Girls who code’ is a dedicated channel that is making efforts to achieve that specific goal, a programming workshop that helps girls achieve their potential in programming.

For everyone who has started on the path to learning more about computer science and learning how to program – there are several problems that one encounters along the way even in the presence of an ever-growing number of online tools and learning platforms.

Many offer courses geared towards making you an expert in a particular programming language or framework. There are even MOOCs that come a bit closer in terms of emulating the real learning experience yet all of them fall short in one respect or another. More often than not, you run into errors and bugs, sometimes things that conceptually don’t make sense and at that point having a teacher who can answer your specific question makes the learning experience much more accessible to everyone. Programming workshops are a boon for direct human interaction and teaching.

Not all beginners have the patience to pore through programming forums such as Stack Overflow to find answers to their questions and this becomes a barrier that pushes them away from pursuing their curiosity further. What ‘Girls who code’ has done is not only to provide women with a conducive environment to learn but more importantly have someone to teach them the ropes in the early part of this learning process and lower the barrier to pursue an interest in computer science.

As a field, computer science is gaining in popularity and is sparking the interest of many people who want to at least try it out if not pursue a career in technology. The growing enrolment in CS50 at Harvard University stands as a testament to this fact.

So maybe we should start looking into setting up camps / offer workshops at major tech companies for people who are interested in learning what computer science is all about, and not only offer them by gender. “Girls who Code” do very good work for girls, and that should thrive and continue—why not have a similar “Everybody who Codes” movement?

At code(love), we’re all about sharing great content like this that encourages people to learn about the future, and work towards building it. Email us at [email protected] if you think you have content that fits that bill.

——————————————————————————

Unless you’ve been living under a stone, I’m sure you’ve heard all the buzz recently about how important it is to learn how to code. Just check out the US Bureau of Statistics info on the job outlook for software developers to see why. There’s even a campaign in the US for all school children to learn coding called “The Hour of Code.” I regret not pursuing computer science as a major when I was in college! But, as I proved starting my MBA at the age of 32, it’s never too late to learn something, and, it turns out you don’t even need a “degree” to learn how to code.

Itching to learn something new, I recently signed up to take some coding workshops through a non-profit called “Ladies Learning Code.” It’s based out of Toronto, with chapters all over Canada, and is run completely by women. The Montreal chapter is led by Nancy Naluz.

I felt so “empowered” after the Intro to HTML & CSS workshop, where we created a simple website from scratch.

So far, I’ve taken three workshops:

Intro to HTML & CSS

Intro to JavaScript

Intro to Mobile Web

The courses cost about $60 each and run from 10 a.m. to 4 p.m. on a Saturday. The Montreal chapter doesn’t have a dedicated space for it’s workshops (unlike Toronto), but many different tech companies in Montreal have offered to host the workshops. I actually found the uniqueness of each location to add to the wonderful atmosphere of each workshop. The HTML workshop was held at RPM Startup Centre in the Griffintown area of Montreal, the JavaScript workshop was held at the Microsoftoffices in downtown Montreal, and the Mobile Web workshop was held at the Busbud offices in the Mile End area of Montreal. (Busbud is a start-up that provides an easy way to book bus travel all over the world, and won my vote for “coolest office” with it’s ping-pong table and amazing panoramic views of downtown Montreal!)

I felt so “empowered” after the Intro to HTML & CSS workshop, where we created a simple website from scratch.

What makes the Ladies Learning Code workshops so special is that they cater primarily to women (men are welcome to attend but must be accompanied by a female friend as the whole point is to introduce women to coding). Local software developers and coding experts volunteer their time to “mentor” at the workshops. The ratio of student to mentor I found was about 3 or 4 students per mentor.

At the Intro to JavaScript workshop, I learned how setup a website’s shopping cart.

In advance of each workshop, attendees are emailed a simple list of to-do’s to prepare, which basically consists of making sure you have the necessary free software downloaded in advance. If for some reason you have trouble with the download, I would recommend showing up a little early and just asking one of the mentors for assistance. Keep in mind that you need to bring your own laptop (and don’t forget your power cord!). The workshop leader provides a very detailed package of slides that you can use to follow along with throughout the day, and keep for future reference. One of the best parts is that you don’t have to come with any particular content – the workshop organizer provides all text and imagery for the coding exercises. But, if you do have your own content, you’re also welcome to use it instead.

I learned how to add code to a website to make it mobile friendly at the Intro to Mobile Web workshop.

Each workshop usually starts with an intro to the software being used and an explanation of the reasoning behind the coding being taught, and then you’re led through a bunch of exercises. At any point, you can raise your hand and a mentor will come over to help you trouble shoot. The workshops are tailored to women who have never coded before and have just basic computer skills. But, if you’re a fast learner (like me), I found that the mentors are always willing to teach you some extra shortcuts and coding tricks here and there, while for the slower learners they’re willing to sit with you until you get it and are ready to move onto the next exercise. Basically, there’s no need to ever feel intimidated at a Ladies Learning Code workshop!

The workshops are also very social. I met some lovely ladies at each of them, and even recognized some repeat attendees like myself, so by the third workshop I felt like I was entering a room of friends instead of strangers. A healthy lunch is provided during the day, and plenty of time to socialize during the lunch hour. I enjoyed getting to know some of the mentors and learning about their career paths and why they were inspired to volunteer their time. The best was hearing some of the male mentors say that they just wish there more women were in their industry because they value women’s input and feel that the computer software and gaming industries would only be enhanced if more women learned to code!

Showing off my ping-pong skills during the lunch break of the workshop held at Busbud.

When I left the first workshop, the word that popped into my mind to explain how I felt was “empowered!”

When I left the first workshop, the word that popped into my mind to explain how I felt was “empowered!” Not only did I learn code, a skill that I can continue to build on, but I also gained confidence. The workshops are void of competitiveness, and are really about women coming together to support each other in a comfortable and collaborative environment, learning a topic that hardly any of us were comfortable with upon walking in the room. Having recently finished my MBA, where only 30% of my classmates were women, the Ladies Learning Code workshops were such a breath of fresh air!If you live in Canada, check out the Ladies Learning Code website for a list of upcoming events and workshops in major cities across the country.A lot of organizations offering coding workshops I find cater to kids, but Ladies Learning Code is for adults. I met attendees and mentors alike who ranged in age probably from 18 to 80! I’ve heard of similar organizations in the US focusing on girls in high school. If you know of coding workshops for adult women in the US, or other countries, please share info in the comments! Or, if you already know how to code, why not organize an event in your area to pass it forward? I’d be happy to help with event planning and/or with writing content to promote any women-focused coding/tech events.

A friend was so inspired by my learning to code that she joined me at my 3rd workshop. Friends learning how to code together, looking particularly “geeky” in our glasses.

Most of my career in marketing has been focused on the user-facing content side, but learning the back-side of the technology that powers digital marketing tools has given me a better understanding of the capabilities that I can then advocate for on a user interface. It has also inspired me to focus my career on a technologically innovative industry, and perhaps even dabble in freelance website development. If you run a small business and have an outdated website or no website at all, please feel free to contact me, and I’d be happy to offer my digital marketing consulting services and/or build you a new website.

And be sure to follow me on Twitter and Instagram to follow along on my adventures in coding!