<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>acetakwas.log(); - planet</title><link href="/" rel="alternate"></link><link href="/feeds/planet.atom.xml" rel="self"></link><id>/</id><updated>2019-04-06T22:40:00+01:00</updated><entry><title>After DjangoGirls, What Next?</title><link href="/article/what-follows-django-girls.html" rel="alternate"></link><published>2016-04-08T12:50:00+01:00</published><updated>2016-04-09T15:10:00+01:00</updated><author><name>Tosin Damilare James Animashaun</name></author><id>tag:None,2016-04-08:/article/what-follows-django-girls.html</id><summary type="html">&lt;p&gt;Post-workshop messsage to participants at a DjangoGirls workshop.&lt;/p&gt;</summary><content type="html">&lt;p&gt;These are my thoughts to the "girls" who stormed Lagos for Django. But I'd recommend same to any attendee of a DjangoGirls workshop anywhere.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
My recent foray into the social circle of techies has proven to me that growth is often driven by community. Hence, the first advice I'll offer is that you take DjangoGirls back to your city. &lt;/p&gt;
&lt;p&gt;The organizer of DjangoGirls Lagos, &lt;a href="https://twitter.com/aishaxbello"&gt;Aisha Bello&lt;/a&gt; herself only attended this event for the first time about a year ago. Isn't it wonderful that she's been able to put up two of such events within this period? Even though not everyone of you might be able to replicate what she has done, I encourage the few ones among you who can, to endeavour to.&lt;/p&gt;
&lt;p&gt;Also endeavour to join communities; create them if they don't exist. For starters, the Nigeria Python Users Group has a &lt;a href="(https://mail.python.org/mailman/listinfo/python-nigeria)"&gt;mailing list&lt;/a&gt; where you can get updates on the Python community in Nigeria as well as a &lt;a href="http://pythonnigeria.slack.com"&gt;Slack community&lt;/a&gt; where you can interact with other programmers.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
Did you get the contacts of your mentors? If you didn't, head over to the &lt;a href="https://djangogirls.org/lagos/#coach"&gt;DjangoGirls Lagos page&lt;/a&gt; and get their Twitter handles. Bug them! Well, don't annoy them, but do not hesitate to ask them questions when you're stuck. They'd be glad to help, I'm sure.&lt;/p&gt;
&lt;p&gt;And really, the learning goes both ways. Post-workshop, one of the participants of the workshop showed me an error she had encountered, and I was glad to learn that by tinkering with it, she found her way out of the maze. But that's not all. From seeing her approach, &lt;strong&gt;I picked up new knowledge from it too&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
This post is meant to give you a quasi-roadmap, which you don't have to follow religiously but keep close enough to consult when you're lost.&lt;/p&gt;
&lt;p&gt;So you learnt Python alongside its arguably most popular web-development framework: &lt;a href="https://www.djangoproject.com/"&gt;Django&lt;/a&gt;; and now you can code the next Facebook (Oh, were you told you could only build blogs with that new super power you picked up?) Now, I think the world has more blogging apps than we can keep track of, don't you think so?&lt;/p&gt;
&lt;p&gt;So get creative; I assure you you've gotten past the first and most basic hurdle to creating just about any kind of web app: a social network or an e-commerce platform or something else that's interesting. Think of how important this is in an age when everything is moving to the web. You've definitely gotten a head start!&lt;/p&gt;
&lt;p&gt;But you'd need to be prepared to learn new stuff as you go. Don't let that put you off, as those things would be equally exciting. And you don't have to know it all before you begin; you can learn on-the-job.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
Speaking of what you learnt at the workshop, I'm sure you know you were merely introduced to the technologies, not taught comprehensively. In my opinion, you may need to go over &lt;a href="http://tutorial.djangogirls.org/en/"&gt;the whole tutorial&lt;/a&gt; again; then try to build something different -- like &lt;a href="http://code.tutsplus.com/articles/intro-to-django-building-a-to-do-list--net-2871"&gt;a ToDo application&lt;/a&gt; -- from the example shown. Afterwards, for some more comprehensive Python tutorial that is hands-on, try &lt;a href="https://www.codecademy.com/learn/python"&gt;codecademy&lt;/a&gt;. It'll be fun, trust me.&lt;/p&gt;
&lt;p&gt;There are several tutorials available as &lt;a href="https://www.mooc-list.com/"&gt;MOOCs&lt;/a&gt; or video tutorials on web platforms like &lt;a href="https://www.youtube.com/"&gt;Youtube&lt;/a&gt;, &lt;a href="https://www.edx.org/"&gt;Edx&lt;/a&gt;, &lt;a href="https://www.udemy.com/"&gt;Udemy&lt;/a&gt;, &lt;a href="https://www.coursera.org/"&gt;Coursera&lt;/a&gt;, and &lt;a href="https://www.udacity.com/"&gt;Udacity&lt;/a&gt; among others. Who knows, you could build the next &lt;em&gt;e-school&lt;/em&gt; for Africa. Pick any of these courses, and try to follow along. You don't have to be in a hurry, although you may find yourself skipping stuff you have already learnt.&lt;/p&gt;
&lt;p&gt;I'll advise you &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript"&gt;pick up some Javascript&lt;/a&gt; as you go. I assure you that a mix of skills in these two languages will empower you so well.&lt;/p&gt;
&lt;p&gt;I also recommend you put up blog posts as you learn new stuff as if to teach same to others (teaching is a proven way to better learn anything). &lt;a href="https://medium.com/"&gt;Medium&lt;/a&gt; would be a good place to start, but there are &lt;a href="http://thenextweb.com/businessapps/2013/08/16/best-blogging-services/#gref"&gt;several alternatives&lt;/a&gt;. You should also read blogs often. Let me mention that Django Girls has a &lt;a href="http://blog.djangogirls.org/"&gt;blog&lt;/a&gt; you might be interested in checking out and so does &lt;a href="http://www.pyladies.com/blog/"&gt;PyLadies&lt;/a&gt;. See more interesting &lt;a href="http://pythontips.com/2013/07/31/10-python-blogs-worth-following/"&gt;Python blogs here&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
During the workshop, I told my mentees that Python is a suitable language for such a workshop for three reasons:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;It's &lt;a href="https://www.quora.com/Is-Python-easy-to-master/answer/Tosin-Damilare-James-Animashaun?srid=zzQ2"&gt;easy to learn&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;It's platform-independent.&lt;/li&gt;
&lt;li&gt;It has a lot of application domains.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Take caution not to misinterpret &lt;em&gt;reason-1&lt;/em&gt; to mean "easy to &lt;strong&gt;master&lt;/strong&gt;" (&lt;a href="https://www.quora.com/Is-Python-easy-to-master/answer/Tosin-Damilare-James-Animashaun?srid=zzQ2"&gt;See answer to "Is Python easy to master?"&lt;/a&gt;), especially because of &lt;em&gt;reason-3&lt;/em&gt;: "Python has a lot of application domains". Be it &lt;a href="http://docs.python-guide.org/en/latest/scenarios/scientific/"&gt;scientific&lt;/a&gt;, &lt;a href="http://docs.python-guide.org/en/latest/scenarios/admin/"&gt;systems administration&lt;/a&gt;, &lt;a href="http://www.kdnuggets.com/2015/11/seven-steps-machine-learning-python.html"&gt;machine learning/artificial intelligence&lt;/a&gt;, &lt;a href="http://ipython-books.github.io/featured-07/"&gt;statistical data analysis&lt;/a&gt;, &lt;a href="https://wiki.python.org/moin/GameProgramming"&gt;game development or scripting&lt;/a&gt;, &lt;a href="http://www.gregreda.com/2013/03/03/web-scraping-101-with-python/"&gt;web scraping&lt;/a&gt;, and &lt;a href="https://www.fullstackpython.com/web-development.html"&gt;web development&lt;/a&gt;. For those with &lt;a href="https://en.wikipedia.org/wiki/Internet_of_Things"&gt;IoT&lt;/a&gt; in mind, especially with &lt;a href="https://www.raspberrypi.org/"&gt;Raspberry Pi&lt;/a&gt; and or &lt;a href="https://www.arduino.cc/"&gt;Arduino&lt;/a&gt;, Python is readily applicable to those platforms.&lt;/p&gt;
&lt;p&gt;So you see there's quite a &lt;a href="http://norvig.com/21-days.html"&gt;long way to go&lt;/a&gt;, yet with what little knowledge you've gained, you're able to achieve something worthwhile.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
Moving on, you can share your work with others, and work collaboratively. You were introduced to &lt;a href="https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control"&gt;version-controlling&lt;/a&gt; using &lt;a href="https://en.wikipedia.org/wiki/Git_(software)"&gt;Git&lt;/a&gt; and &lt;a href="https://github.com/"&gt;Github&lt;/a&gt;, which are well worth some learning time. You can learn Git through &lt;a href="https://www.codecademy.com/pt-BR/learn/learn-git"&gt;this course&lt;/a&gt;. Don't worry if you don't get it all at once, I struggled through this too at first. &lt;a href="https://www.youtube.com/watch?v=ZDR433b0HJY"&gt;This video&lt;/a&gt; by Git evangelist, &lt;a href="http://scottchacon.com/about.html"&gt;Scott Chacon&lt;/a&gt; also deals a good deal on the subject.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
How much time it'd take to become quite comfortable with all of this would depend on three things:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Your interest&lt;/li&gt;
&lt;li&gt;Your consistency&lt;/li&gt;
&lt;li&gt;Your learning aptitude&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;However, I'd say &lt;a href="http://www.codeconquest.com/programmer-6-months/"&gt;6 months should be fine&lt;/a&gt;. Within this time you would have learnt enough to kick-start an exciting project. In fact, some people might have gotten halfway with some project in this time.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
&lt;strong&gt;Good luck in your programming journey!&lt;/strong&gt;&lt;/p&gt;</content><category term="python"></category><category term="django"></category><category term="django-girls"></category><category term="lagos"></category><category term="python nigeria"></category><category term="mailing list"></category><category term="nigeria"></category><category term="workshop"></category><category term="planet"></category></entry><entry><title>The First Python-Nigeria Meetup</title><link href="/article/python-nigeria-first-meetup.html" rel="alternate"></link><published>2016-02-23T13:40:00+01:00</published><updated>2016-02-26T12:00:00+01:00</updated><author><name>Tosin Damilare James Animashaun</name></author><id>tag:None,2016-02-23:/article/python-nigeria-first-meetup.html</id><summary type="html">&lt;p&gt;Pythonistas in Nigeria came together to discuss the growth of the Python community in Nigeria.&lt;/p&gt;</summary><content type="html">&lt;p&gt;The members of the &lt;a href="https://mail.python.org/mailman/listinfo/python-nigeria"&gt;Python-Nigeria mailing list&lt;/a&gt; got together for a maiden edition of meetups geared towards growing the Python community in Nigeria. The meeting had about thirty people in attendance.&lt;/p&gt;
&lt;p&gt;&lt;center&gt;&lt;a href="http://imgur.com/Co6BPKC"&gt;&lt;img src="http://i.imgur.com/Co6BPKCl.jpg?1" title="Python-Nigeria Meetup: Olabayo conducting the meeting" /&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
Prior to the meeting, a few members had discussed the purpose and agenda for the meeting in the mailing list.&lt;/p&gt;
&lt;p&gt;The mailing list hasn't exactly been interactive as most members often resought to reading the digests without responding. This was one of the issues the meeting sought to address: to encourage members to participate more actively.&lt;/p&gt;
&lt;p&gt;The meeting was conducted by &lt;a href="https://twitter.com/olabayo96"&gt;Olabayo Onile-Ere&lt;/a&gt; the moderator of the mailing list. Olabayo is the co-founder of &lt;a href="https://www.hotelsnperks.com/"&gt;Hotels &amp;amp; Perks&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Olabayo welcomed attendees and explained that the goal was for this group to become the driving force for the emerging Python community in Nigeria. He highlighted the need for more people to join the community, and brought up the topic of organizing a Python conference in Nigeria.&lt;/p&gt;
&lt;p&gt;Organizer of &lt;a href="https://twitter.com/DjangoGirlsLAG"&gt;Django Girls Lagos&lt;/a&gt; and &lt;a href="https://djangogirls.org/windhoek/"&gt;Django Girls Windhoek&lt;/a&gt;, &lt;a href="https://twitter.com/AishaXBello"&gt;Aisha Bello&lt;/a&gt; was invited to share her opinion having recently attended &lt;a href="http://na.pycon.org/"&gt;PyCon Namibia&lt;/a&gt; where she delivered a &lt;a href="https://speakerdeck.com/aishab/my-journey-through-python-1"&gt;talk&lt;/a&gt;. She suggested we first organize a mini Nigerian Python conference to test the waters and sensitize people towards a full blown &lt;strong&gt;PyCon&lt;/strong&gt; that would follow. Narrating her experience in Namibia, she noted that the community over there has made efforts to &lt;em&gt;take programming to the uninitiated&lt;/em&gt;. Okay more seriously, they teach Python programming to secondary school students in the country.&lt;/p&gt;
&lt;p&gt;She also pointed out that there haven't been many PyCons in Africa; the only ones having held in South Africa and Namibia. It was interesting to know that Nigerias' would be the first in West Africa.&lt;/p&gt;
&lt;p&gt;There was a consensus; it was just as Aisha had suggested. A committee (made up of volunteers) was then setup to begin planning towards the event.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
Several members had the opportunity to address the audience during the meeting which lasted for over an hour. Notable among those who spoke was &lt;a href="https://dl.dropboxusercontent.com/u/206213543/iChux.html"&gt;Chukwudi&lt;/a&gt;, a very experienced Python programmer. In his words, &lt;em&gt;"I have been coding in Python everyday since 2004, except when I was sick and couldn't do anything."&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;center&gt;&lt;a href="http://imgur.com/TO2IbXE"&gt;&lt;img src="http://i.imgur.com/TO2IbXEl.jpg" title="Python-Nigeria Meetup: Chukwudi addressing the audience" /&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
In his 12 years of Python programming, Chuks as he's fondly called, has co-reviewed a Python book and has worked in Ibadan for about 10 years. He now resides in Lagos with his family. He talked about some of the projects he's worked on, including a robot that would stealthily index all &lt;strong&gt;".ng"&lt;/strong&gt; domains. He expressed his delight at finally getting to meet and possibly work with others in this Python space. He closed his speech saying,&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;"Python is something I code and breathe. It's a lovely language. You are welcome."&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;br/&gt;
One short presentation I particularly enjoyed was that of Dipo Odumosu about his work for the &lt;a href="http://www.population.gov.ng/"&gt;National Population Commission&lt;/a&gt; in collaboration with &lt;a href="http://www.unicef.org/"&gt;UNICEF&lt;/a&gt;. They have an &lt;a href="http://br.rapidsmsnigeria.org/"&gt;application&lt;/a&gt; that is used to track birth statistics in all local governments in the country. He described it as a conceptually simple app, but one that sort of has a bit of everything: built with &lt;a href="https://www.djangoproject.com/"&gt;Django&lt;/a&gt; and &lt;a href="https://www.rapidsms.org/"&gt;RapidSMS&lt;/a&gt;; a little scientific and a little regular &lt;a href="https://en.wikipedia.org/wiki/Create,_read,_update_and_delete"&gt;CRUD&lt;/a&gt;; and aggregation is done using &lt;a href="http://pandas.pydata.org/"&gt;Pandas&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;He also spoke about their recurrent challenge with number crunching on large cumulative data, welcoming suggestions from the audience as to tackling the issue. As we were constrained by time, discussion on the issue will continue in the &lt;a href="https://mail.python.org/mailman/listinfo/python-nigeria"&gt;mailing list&lt;/a&gt; or the newly setup &lt;a href="https://pythonnigeria.slack.com/"&gt;Slack community&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
First year student at &lt;a href="http://www.oauife.edu.ng/"&gt;OAU Ife&lt;/a&gt;, &lt;a href="https://twitter.com/Olamyy_Fadil"&gt;Lekan Wahab&lt;/a&gt;, who has been coding since secondary school stepped up to share his campus experience with the house. Explaining how his admission into the university was met with the disappointment of a non-existent programmer community, and how that inspired him to setup one by introducing his colleagues to the Python programming language,&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;"Before I got to school, I had this idea that I was going to meet quite a lot of programmers on campus, but I was very disappointed. The only other programmer in my class was a Java coder, and he said when he got to &lt;em&gt;'if'&lt;/em&gt;, the stuff got really hard and he just dropped it; he said he wasn't interested in it anymore. Then I took it upon myself to start a club; I started Python Club in OAU."&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;br/&gt;
Personally, not only did I find this impressive, but it was even more exciting to learn of the amazing projects Lekan's group had been able to work on; projects including a home automation system built with the &lt;a href="https://www.raspberrypi.org/"&gt;Raspberry Pi&lt;/a&gt;, &lt;a href="https://www.arduino.cc/"&gt;Arduino&lt;/a&gt; amd mobile devices, a payment/airtime recharge service and a search engine.&lt;/p&gt;
&lt;p&gt;Speaking further, Lekan used the medium to solicit support towards a forthcoming &lt;a href="https://djangogirls.org/"&gt;Django Girls&lt;/a&gt; workshop organised by his club. The workshop is slated for April at Obafemi Awolowo University, Ile-Ife. &lt;strong&gt;Volunteer mentors/coaches are needed for the workshop.&lt;/strong&gt; Kindly &lt;a href="https://djangogirls.org/oau/"&gt;visit this link&lt;/a&gt; to learn more about the event.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;One of the items on the agenda for the evening was to come up with an idea for an open source application that the group would collaboratively work on. Olabayo welcomed interesting ideas from the audience, and these two came up:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://twitter.com/peterayeni_"&gt;Peter Ayeni&lt;/a&gt;, founder of &lt;a href="http://www.gigcabal.com/"&gt;GigCabal&lt;/a&gt;, who came all the way from Abuja suggested that we work on a site analytics/ratings service for Nigerian websites. He likened this with existing platforms like &lt;a href="http://www.alexa.com/"&gt;Alexa&lt;/a&gt; and &lt;a href="http://www.webalizer.org/"&gt;Webalizer&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://twitter.com/Olamilec"&gt;Olamilekan Adeniji&lt;/a&gt;, creator of &lt;a href="https://vc4a.com/ventures/mergency/"&gt;mErgencyNG&lt;/a&gt;, explained the idea behind his product and suggested that we work on it collectively. The app will provide a platform for citizens to report crime/suspicions to appropriate agencies or radio corporations.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;A poll was conducted, and the house voted in favor of mErgencyNG. It was at this point that Chuks once again spoke and offered to open-source a library he had developed for analysing errors, in an effort to spark some creativity among the Pythonists.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
To encourage members even further, Olabayo read out a recent &lt;a href="https://mail.python.org/pipermail/python-nigeria/2016-February/000068.html"&gt;email&lt;/a&gt; from &lt;a href="https://twitter.com/naomiceder"&gt;Naomi Ceder&lt;/a&gt;, the lady who had been moderating the mailing list, until just before the meeting when she passed this duty on to him.&lt;/p&gt;
&lt;p&gt;Afterwards, Olabayo designated the task of setting up a Slack community for the group to &lt;a href="https://twitter.com/eEyitemi"&gt;Eyitemi Gbejule&lt;/a&gt;, which he promptly did. The community is now active at &lt;a href="http://pythonnigeria.slack.com"&gt;pythonnigeria.slack.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This was it. Thanks were in order (especially to &lt;a href="http://cchubnigeria.com/"&gt;CcHub&lt;/a&gt; and organizers of Django Girls Lagos). The meeting was over.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;hr /&gt;

&lt;p&gt;&lt;strong&gt;You can join the &lt;a href="http://pythonnigeria.slack.com"&gt;Python-Nigeria Slack community&lt;/a&gt; by subscribing to the &lt;a href="https://mail.python.org/mailman/listinfo/python-nigeria"&gt;mailing list&lt;/a&gt; at:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;https://mail.python.org/mailman/listinfo/python-nigeria
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;and by sending an email requesting an invite to:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;python-nigeria@python.org
&lt;/pre&gt;&lt;/div&gt;</content><category term="meetup"></category><category term="python"></category><category term="python nigeria"></category><category term="mailing list"></category><category term="nigeria"></category><category term="pycon"></category><category term="meeting"></category><category term="slack"></category><category term="planet"></category></entry><entry><title>Ubuntu Africa Calls</title><link href="/article/ubuntu-africa-calls.html" rel="alternate"></link><published>2016-02-01T05:00:00+01:00</published><updated>2016-02-03T14:10:00+01:00</updated><author><name>Tosin Damilare James Animashaun</name></author><id>tag:None,2016-02-01:/article/ubuntu-africa-calls.html</id><summary type="html">&lt;p&gt;Communities drive growth. Ubuntu Africa is for all Linux and Ubuntu users in Africa.&lt;/p&gt;</summary><content type="html">&lt;h4&gt;This post is about the &lt;a href="http://ubuntu-africa.info/"&gt;Ubuntu Africa community's&lt;/a&gt; meeting that held in their &lt;a href="http://ubuntu-africa.info/chat-with-us.html"&gt;IRC channel&lt;/a&gt; on &lt;em&gt;Wednesday the 26th of January, 2016&lt;/em&gt;. You could read the raw logs of the meeting &lt;a href="http://52.17.74.45/freenode-%23ubuntu-africa/2016-01-27-18-31-20.html"&gt;here&lt;/a&gt;, but my guess is that reading logs like that might not be the most enjoyable task for your eyes. So I have tried to make this blog post a more pleasant-for-the-eyes version of it. :)&lt;/h4&gt;
&lt;hr&gt;
&lt;p&gt;&lt;br/&gt;
&lt;a href="http://ubuntu-africa.info/"&gt;Ubuntu Africa&lt;/a&gt; is a community of Ubuntu (and Linux) users within the shores of the African continent. There are several local communities (&lt;em&gt;LoCos&lt;/em&gt;) specific to countries, but this group is limited only to the continent. It aims to bring together these LoCos.&lt;/p&gt;
&lt;p&gt;We believe that coming together to work together will bring about a more rapid growth. Owing to our disparate skills individually, we need communities like this that will present us with people who are skilled in the areas that we are lacking.&lt;/p&gt;
&lt;p&gt;Looking through the &lt;a href="http://loco.ubuntu.com/teams/"&gt;directory of Ubuntu LoCos&lt;/a&gt;, I find it a little surprising that there are no efforts for an active community in my home country, Nigeria. Many people I have met scarcely even know about &lt;a href="https://help.ubuntu.com/community/InternetRelayChat"&gt;IRC&lt;/a&gt; around here. More so with the coming of &lt;a href="http://slack.com"&gt;Slack&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;My recent foray into the African developer community had informed me about this event a few days earlier.&lt;/p&gt;
&lt;p&gt;Minutes before the meeting, some users (myself inclusive) had arrived the IRC channel and engaged in discussions while patiently waiting for the scheduled meeting time.&lt;/p&gt;
&lt;p&gt;The meeting began at the set time. And it was, as it was customary, chaired by a user whom had been elected in the last meeting Naeil Zoueidi (@Na3iL)&lt;a href="#footnote"&gt;&lt;sup&gt;&lt;strong&gt;[1]&lt;/strong&gt;&lt;/sup&gt;&lt;/a&gt; from Tunisia. The other person who seemed to have some good footing in the house was Miles Sharp (@Kilos)&lt;a href="#footnote"&gt;&lt;sup&gt;&lt;strong&gt;[1]&lt;/strong&gt;&lt;/sup&gt;&lt;/a&gt; from South Africa.&lt;/p&gt;
&lt;p&gt;Attendees at the meeting came from different African nations including Cameroon (with the highest population and mostly first-timers), Tunisia, South Africa, Ghana, Zimbabwe, RDC and Nigeria.&lt;/p&gt;
&lt;p&gt;The primary language used during discussion was English. However, Kilos pointed out that if any user struggled with the English language, they could use their own language (most likely French) in the hope that someone would translate for them.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
The &lt;a href="http://ubuntu-africa.info/chat-with-us.html"&gt;#ubuntu-africa&lt;/a&gt; IRC channel has a bot called &lt;strong&gt;QA&lt;/strong&gt; that logs meetings and does a few other tasks. At the beginning of meetings attending users are expected to introduce themselves using the format:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nl"&gt;QA&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;I&lt;/span&gt; &lt;span class="n"&gt;am&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;first&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;last&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;country&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;OR&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nl"&gt;QA&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;I&lt;/span&gt; &lt;span class="n"&gt;am&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;first&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;last&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;from&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;country&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;When a user does this correctly, the bot would respond to the user confirming receipt of the information. This is doable anytime during the meeting. So if a user comes in late, that's the first thing they'd be expected to do.&lt;/p&gt;
&lt;p&gt;I have noticed that the bot performs no parsing whatsoever on this given data and just logs it as is. Therefore, it's in a user's best interest to adhere (strictly) to the format given above.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
Before the meeting, there had been an &lt;a href="https://wiki.ubuntu.com/AfricanTeams/Meetings/20160127"&gt;agenda page&lt;/a&gt; -- I believe this was open for suggestions on the &lt;a href="https://launchpad.net/~ubuntu-africa"&gt;mailing list&lt;/a&gt; -- iterating the issues to be discussed at the meeting. And this was strictly followed during the meeting.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;/p&gt;
&lt;h4&gt;Meeting Excerpts&lt;/h4&gt;
&lt;p&gt;&lt;s&gt;The Ubuntu Africa community is currently an unofficial group. It would need more activity to gain the official recognition.&lt;/s&gt;&lt;/p&gt;
&lt;p&gt;Firstly, it is important to note that all members have a mandate to try and convince users from African Linux local communities/user-groups to join the Ubuntu Africa community whilst still being active in their respective communities, as this community is country-agnostic and aims to bring us all under one umbrella.&lt;/p&gt;
&lt;p&gt;The meeting had a number of first-timers (myself included) in attendance. The new members were recognised. And we learnt of the &lt;a href="https://wiki.ubuntu.com/CameroonianTeam/NewMembers/en"&gt;Ubuntu local community in Cameroon&lt;/a&gt; and their &lt;a href="https://lists.ubuntu.com/mailman/listinfo/ubuntu-cm"&gt;mailing list&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Users were encouraged to get word out about the fledgling community through their social hangouts (Facebook, Twitter and the rest...). More suggestions came in on how to  get the publicizing done. Users suggested YouTube videos, Twitter posts (&lt;a href="https://twitter.com/hashtag/ubuntuAfrica?src=hash"&gt;#ubuntu-africa&lt;/a&gt;) and blog posts (like the one you are reading now).&lt;/p&gt;
&lt;p&gt;The agreement was that Pieter Engelbrecht (@chesedo) from South Africa would &lt;s&gt;put up the blog post.&lt;/s&gt; create a tweet about the community using the hashtag &lt;a href="https://twitter.com/hashtag/ubuntuAfrica?src=hash"&gt;"#ubuntu-africa"&lt;/a&gt;. And just in case you want to help get the word out too, here's the link to share: http://ubuntu-africa.info&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;The chair of the meeting raised a point about making some improvements to the &lt;a href="http://ubuntu-africa.info"&gt;current website of the community&lt;/a&gt; -- adding a blog section to it. This brought our attention to the designer of the current portal, Raoul Snyman (@superfly) from South Africa and due thanks were accorded by users.&lt;/p&gt;
&lt;p&gt;@superfly revealed that the current site was implemented using the static blog generator, &lt;em&gt;Nikola&lt;/em&gt;, meaning it already comes with a blogging feature, although it hadn't yet been activated, since no one had been available to blog on the site. @Na3iL offered to help with the blogging, and in the end it was agreed that the task would be handled collaboratively by @superfly (technically) and @Na3iL (literarily).&lt;/p&gt;
&lt;p&gt;Stephen Mawutor Donkor from Ghana (@mawutor) made one final suggestion in this regard about getting involved in Ubuntu-Lab projects for schools as a way to gain some media attention.. Their suggestion was commended.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;Now to something more technical. Another memeber of the group Cameroonian member @ongolaBoy talked about the issues surrounding approval of our mirror. He stated that the status of submission had gone from "pending" to "unofficial", which is a good thing.&lt;/p&gt;
&lt;p&gt;They shared the URL to the Launchpad page of the mirror: https://launchpad.net/ubuntu/+mirror/miroir.cm.auf.org-archive&lt;/p&gt;
&lt;p&gt;Everyone was impressed with this news.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;The last topic tended toward "social" again, and it was kick-started by the chair with the question, "Any new coming events?"&lt;/p&gt;
&lt;p&gt;Kilos mentioned the upcoming release of Ubuntu 16.04, which we all anticipate for April. The Tunisian folks (@Na3iL and @elacheche_anis) got talking about some SysAdmin workshop still in the works.&lt;/p&gt;
&lt;p&gt;@Na3iL then made the suggestion for an Ubucon. "Why don't we plan for an Ubuncon?" He asked. He followed that nicely enough with definition of the term Ubucon:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;"An Ubucon is generally an informal, lightly structured gathering of Ubunteros. There are also other meetings and UbuntuConferences"&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;At this juncture, things were beginning to wound up as the chairperson of the meeting, @Na3iL moved the motion for "Elect chairperson for next meeting". This was about the quickest thing to be concluded as there was an immediate unanimous re-election of @Na3iL.&lt;/p&gt;
&lt;p&gt;The final motion for the day was for the selection of a date for the next meeting. Someone suggested that this be treated in the &lt;a href="https://launchpad.net/~ubuntu-africa"&gt;mailing list&lt;/a&gt; as a way to get people to use the list. Thus, everyone agreed that the date for next meeting be decided in there.&lt;/p&gt;
&lt;p&gt;I think the name of the user who came in at this time deserves a mention. It was @d3r1ck -- we didn't get their full identity.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;/p&gt;
&lt;hr id="footnote"/&gt;

&lt;!--1. The word "nuxers" is a portmanteau of the words "Linux" and "users".--&gt;

&lt;ol&gt;
&lt;li&gt;IRC nicks do not require a precceeding &lt;strong&gt;'@'&lt;/strong&gt;. It's only used here for emphasis.&lt;/li&gt;
&lt;/ol&gt;</content><category term="irc"></category><category term="ubuntu"></category><category term="africa"></category><category term="ubuntu africa"></category><category term="meeting"></category><category term="project"></category><category term="planet"></category></entry><entry><title>On the Stellar Train!</title><link href="/article/on-the-stellar-train.html" rel="alternate"></link><published>2016-01-31T19:00:00+01:00</published><updated>2016-02-01T11:00:00+01:00</updated><author><name>Tosin Damilare James Animashaun</name></author><id>tag:None,2016-01-31:/article/on-the-stellar-train.html</id><summary type="html">&lt;p&gt;The Stellar project is huge and beginner-friendly. Here is me getting into open source in a big way.&lt;/p&gt;</summary><content type="html">&lt;p&gt;Two days ago, I attended Stellar.org's fireside chat at &lt;a href=""&gt;Idea Hub&lt;/a&gt; in Lagos. It was an enlightening event; one that may well be my gateway into the world of open source in the year.&lt;/p&gt;
&lt;p&gt;No doubt this will present a somewhat steep learning curve knowing that my background in finance (and &lt;a href="https://en.wikipedia.org/wiki/Financial_technology"&gt;FinTech&lt;/a&gt;) is not much to write home about. The experience and payoffs will of course be worth the while and I am expecting more developers to join the train as the platform is still very welcoming at this point.&lt;/p&gt;
&lt;p&gt;Stellar is a fairly new financial technology service that aims to be the de facto way in which we move money around.&lt;/p&gt;
&lt;p&gt;From Stellar's FAQ page,&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;"Stellar is a decentralized protocol you can use to send and receive money in any pair of currencies. So for example, the protocol supports sending money in dollars and having it arrive in pesos."&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;I particularly like the analogy used &lt;a href="https://techpoint.ng/2016/01/28/how-stellar-kickstart-nigeria-payments-revolution/"&gt;here&lt;/a&gt; by the Executive Director of Stellar, Joyce Kim,&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;"The Stellar platform functions a lot like email whose underlying protocol is SMTP. Before SMTP, you could only email people that were in the same company, network or ISP as you"&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;br/&gt;
She says it would be a lot like being able to send mails across different mail providers.&lt;/p&gt;
&lt;p&gt;Most of the details of the workings of Stellar are still very unclear to me, but a few things I've been able to make sense of include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Stellar operates on a decentralized network of servers&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Stellar maintains an open digital ledger of transactions. This data is synchronized on all servers.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Financial institutions subscribed to the Stellar service (called gateways, and to act as "trust" houses) can offer Stellar credits.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Stellar credits are used to resolve currency pairing issues.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A Consensus is how Stellar verifies the credibility of a transaction before allowing it to pull through.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Stellar.org provides an &lt;em&gt;&lt;a href="https://www.stellar.org/learn/explainers/"&gt;explain&lt;/a&gt;&lt;/em&gt; page to describe these concepts. However, I find &lt;a href="http://thenextweb.com/insider/2014/08/01/stellar-open-source-solution-international-money-transfers-currency/"&gt;this article&lt;/a&gt; very explanatory.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;I have joined Stellar's public &lt;a href="http://stellar-public.slack.com"&gt;Slack team&lt;/a&gt;. And so far, I've been received with warm arms. I encourage many budding programmers lookig to get their feet wet with open source projects to join this platform and make some contributions. The mantra for me is "even if it fails..." I think this says enough already.&lt;/p&gt;
&lt;p&gt;At the moment, the project I'm looking to contribute to is the &lt;a href="https://github.com/StellarCN/py-stellar-base"&gt;Python library&lt;/a&gt; for interfacing with the &lt;a href="https://github.com/stellar/stellar-core"&gt;Stellar core&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This project is still in beta form and could readily use some help. It was suggested to me by Scott Fleckenstein (&lt;a href="https://twitter.com/nullstyle"&gt;@nullstyle&lt;/a&gt;), the first Engineer at Stellar. At the event, Scott tried to work us through the technical nitty-gritties: innerworkings, stack and how-to-get-started with contributing to the Stellar project. &lt;/p&gt;
&lt;p&gt;These are just some of the things I have been able to wrap my mind around thus far. I am optimistic that once I tie myself in the loop of working on the code and working with the leads I get from time to time, it would all clear out in due course.&lt;/p&gt;</content><category term="stellar"></category><category term="altcoin"></category><category term="crytocurrency"></category><category term="open-source"></category><category term="project"></category><category term="planet"></category></entry><entry><title>wGetting Them All!</title><link href="/article/save-web-for-offline.html" rel="alternate"></link><published>2016-01-28T17:00:00+01:00</published><updated>2016-01-29T22:00:00+01:00</updated><author><name>Tosin Damilare James Animashaun</name></author><id>tag:None,2016-01-28:/article/save-web-for-offline.html</id><summary type="html">&lt;p&gt;You can save the entire contents of a website or blog for offline referencing.&lt;/p&gt;</summary><content type="html">&lt;p&gt;If you are in a location with internet connection issues, or limited by the amount of bandwidth you can afford, then there are ways you can leverage the resources that are useful to you on the web.&lt;/p&gt;
&lt;p&gt;Some websites or blogs have content arranged in order of chapters that I like to read in that order. And some others just appeal to me as troves of useful content that I would want to keep within easy reach. The challenge with this is that there are times when I have no active internet subcscription or connection, making such resources unavailable to me.&lt;/p&gt;
&lt;p&gt;Interestingly, it is possible for me to keep an entire website offline. With the help of some tools, I could download the site for offline reading! This is &lt;strong&gt;particularly workable with static sites&lt;/strong&gt; that have no interaction with the backend, other than delivering static pages to us -- so don't think of doing this with Facebook, or Quora. &lt;strong&gt;:)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;There are two ways I do this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I use the &lt;strong&gt;&lt;a href="http://www.httrack.com/"&gt;HTTrack Website Copier&lt;/a&gt;&lt;/strong&gt; software, which is available cross platform; and &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://linux.die.net/man/1/wget"&gt;wget&lt;/a&gt;&lt;/strong&gt;, I learnt about this one recently.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I also use this approach to download documentations for offline reference, since they're mostly static.&lt;/p&gt;
&lt;p&gt;The most current version of HTTrack supports resumption of broken downloads. This is also built into wget, which is an old Linux tool.&lt;/p&gt;
&lt;p&gt;One issue I have observed with the latter, however, is that it doesn't seem to get the CSS style files accordingly; therefore, you may have aesthetic issues with it. I have not had this problem with HTTrack.&lt;/p&gt;
&lt;p&gt;HTTrack is multiplatform supported. There are versions for Android, Windows, and Linux, &lt;a href="http://www.httrack.com/page/2/"&gt;downloadable here&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The typical command for wget is:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ wget --continue --wait=20 --limit-rate=20K -r -p -U [BROWSER] [URL_TO_SITE]&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ wget --continue --wait=20 --limit-rate=20K -r -p -U Mozilla http://takwas.github.io/&lt;/code&gt;&lt;/p&gt;</content><category term="wget"></category><category term="httrack"></category><category term="download"></category><category term="offline"></category><category term="save"></category><category term="website"></category><category term="internet"></category><category term="planet"></category></entry><entry><title>Slack is Tweak-friendly</title><link href="/article/migrating-slack-channel-general.html" rel="alternate"></link><published>2015-12-25T23:23:00+01:00</published><updated>2015-12-25T23:23:00+01:00</updated><author><name>Tosin Damilare James Animashaun</name></author><id>tag:None,2015-12-25:/article/migrating-slack-channel-general.html</id><summary type="html">&lt;p&gt;Slack gives your team a platform for communication. Included in that package is near-full control over your data.&lt;/p&gt;</summary><content type="html">&lt;blockquote&gt;
&lt;p&gt;How I migrated the locked default channel on Slack.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://slack.com"&gt;Slack&lt;/a&gt; is a communication platform built for teams. While it is free by default, there are features reserved for paid users. However, the free version already comes with a ton of cool features, and is highly usable as is, especially for teams that are relatively small. My team has stuck with this unpaid version of the application for a few months.&lt;/p&gt;
&lt;p&gt;Recently, we decided to have our clients join our Slack team, with some envisaged benefits:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It would ease the process of keeping the client up-to-date on project progress&lt;/li&gt;
&lt;li&gt;It would bring our clients to our preferred communication platform, bringing them all in one place&lt;/li&gt;
&lt;li&gt;We could leverage some of the many tools available for use with Slack to improve our communication with clients. It's worth noting that Slack is very API friendly.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br/&gt;
In doing this, we were presented with a small challenge. All of our previous conversations which had mostly being in the public, general channel, &lt;strong&gt;&lt;em&gt;#general&lt;/em&gt;&lt;/strong&gt;, were now open to our newly signed-on client. Some of these conversations obviously included stuff we would rather be more privy about. This meant I had to quickly find a way to &lt;em&gt;migrate&lt;/em&gt; -- I chose not to &lt;em&gt;delete&lt;/em&gt; -- the messages in the hope that he had not scrolled back through the channel's message log.&lt;/p&gt;
&lt;p&gt;This would have been easier if Slack allowed certain modifications to the default channel named &lt;em&gt;#general&lt;/em&gt;.&lt;a href="#footnote"&gt;&lt;sup&gt;&lt;strong&gt;[1]&lt;/strong&gt;&lt;/sup&gt;&lt;/a&gt; For instance, Slack prevents the deletion of this channel. On top of that, Slack puts some restrictions on private channels:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;They can't be &lt;a href="https://get.slack.help/hc/en-us/articles/213185307-Deleting-a-channel"&gt;deleted, but can be &lt;em&gt;archived&lt;/em&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;They can't be changed to &lt;em&gt;public&lt;/em&gt; channels even though the reverse is possible.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br/&gt;
These limitations notwithstanding, the following explains my approach to tackling the problem.&lt;/p&gt;
&lt;p&gt;First I used Slack's &lt;a href="https://get.slack.help/hc/en-us/articles/201658943-Exporting-your-team-s-Slack-history"&gt;export&lt;/a&gt; feature to backup all of our conversations, including channel information. A caveat here is, &lt;em&gt;Slack does not include private channels' data with exported data by default,&lt;/em&gt;&lt;a href="#footnote"&gt;&lt;sup&gt;&lt;strong&gt;[2]&lt;/strong&gt;&lt;/sup&gt;&lt;/a&gt; but thankfully, we hadn't any private rooms at the time.&lt;/p&gt;
&lt;p&gt;Now, Slack exports team data in JSON format, making it very easy to work with. Having downloaded the exported data, I started looking through it for parts that I could tweak.&lt;/p&gt;
&lt;p&gt;There were some top-level (&lt;strong&gt;root folder&lt;/strong&gt;) files which included meta-data about users, teams and channels. Then there were also folders for each channel, in which, conversation logs were kept, grouped by days.&lt;/p&gt;
&lt;p&gt;Next, I edited the &lt;code&gt;channels.json&lt;/code&gt; file in the top-level directory, and changed the name of the channel &lt;em&gt;#general&lt;/em&gt;, which contained the messages, to some new name. Then I went and renamed the folder named &lt;code&gt;general&lt;/code&gt;, to this new name.&lt;/p&gt;
&lt;p&gt;With these changes in place, I compressed the modified files alongside the unmodified ones into a &lt;em&gt;zip&lt;/em&gt; archive; the original Slack-exported data had come in a zip file as well. Slack allows you to &lt;a href="https://get.slack.help/hc/en-us/articles/201748703-Importing-message-history"&gt;import&lt;/a&gt; this zip file into your Slack team, which was what I did next.&lt;/p&gt;
&lt;p&gt;During the import, Slack automatically tried to match detected channels (from the import) with existing ones, after-which I was presented with a page that displayed the mapping suggestions. I simply set it not to map but create new channels instead.&lt;/p&gt;
&lt;p&gt;Upon successful completion of the imports, I went on to delete all the messages in the existing &lt;em&gt;#general&lt;/em&gt; channel. Those messages were now the contents of a newly minted channel, created using the new name I previously gave to it.&lt;/p&gt;
&lt;p&gt;With all these in place, I did two more things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I edited and marked the new channel as &lt;em&gt;private&lt;/em&gt;, and&lt;/li&gt;
&lt;li&gt;I welcomed our new client to our Slack space &lt;strong&gt;;) &lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br/&gt;&lt;/p&gt;
&lt;hr id="footnote"/&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;More on Slack's default channel - #general&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://get.slack.help/hc/en-us/articles/201827866-Renaming-the-general-channel"&gt;https://get.slack.help/hc/en-us/articles/201827866-Renaming-the-general-channel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://get.slack.help/hc/en-us/articles/201898998-Setting-default-channels-for-new-users"&gt;https://get.slack.help/hc/en-us/articles/201898998-Setting-default-channels-for-new-users&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Exporting private data from Slack&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://get.slack.help/hc/en-us/articles/204897248-Understanding-Slack-data-exports"&gt;https://get.slack.help/hc/en-us/articles/204897248-Understanding-Slack-data-exports&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;</content><category term="slack"></category><category term="configuration"></category><category term="json"></category><category term="general"></category><category term="backup"></category><category term="communication"></category><category term="planet"></category></entry><entry><title>To be Forearmed is to be Help-ready</title><link href="/article/readying-for-net-help.html" rel="alternate"></link><published>2015-12-15T12:10:00+01:00</published><updated>2019-04-06T22:40:00+01:00</updated><author><name>Tosin Damilare James Animashaun</name></author><id>tag:None,2015-12-15:/article/readying-for-net-help.html</id><summary type="html">&lt;p&gt;If you are seeking programming help, then do your homework or your potential helpers might raise eyebrows.&lt;/p&gt;</summary><content type="html">&lt;p&gt;I felt compelled to write this after my personal experience trying to get help with my code on IRC.&lt;/p&gt;
&lt;p&gt;We all love to make the computer do things exactly the way we want, so some of us choose to take the bold step of learning to communicate with the machine. And it is not uncommon to find many of our burgeoning kind go from &lt;em&gt;location to location on the web space&lt;/em&gt; trying to get help along the way. We are prompt to ask questions when we sight help.&lt;br&gt;
&lt;br/&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;When you learn to program, you are often encouraged to &lt;strong&gt;learn by doing.&lt;/strong&gt;
&lt;br/&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The domain of computer programming or software development is a very practical one. Before now, I had carried this very principle everywhere with me -- in fact, preached it -- but hadn't really put it to use.&lt;/p&gt;
&lt;p&gt;The thing about learning languages (or technologies) by reading big manuals is that, often times, beginners will approach the process like they would any other literature book. But that is clearly a wrong approach as empirical evidence has shown. You don't read these things to simply stomach them. Instead, you swallow and then post-process. In essence, you ruminate over stuff.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In truth, the only way you can really process what you read is to &lt;strong&gt;try things out and see results for yourself&lt;/strong&gt;.
&lt;br/&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Weeks ago, while building an app, I visited IRC frequently to ask questions on just about everything that was unclear to me. While this mode of communication and seeking help is encouraged, abuse of it is strongly discouraged. The good guys over on the IRC channels get pissed off when it appears you're boycotting available resources like documentation, preferring to be spoonfed the whole time. (Remember this is not &lt;a href="http://www.quora.com"&gt;Quora&lt;/a&gt;, where the philosophy is for you to ask more and more questions).&lt;/p&gt;
&lt;p&gt;This was the sort of thing that happened to me when I began &lt;em&gt;flooding&lt;/em&gt; the channels with my persistent querying. Most of the time the IRC folks kept pointing me to the documentation, as workarounds for most of the issues I had were already documented. A lot of things became much clearer when I decided to finally &lt;a href="https://readthedocs.org/"&gt;read-the-docs&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;What did I learn from that? &lt;strong&gt;"Do your own research!"&lt;/strong&gt; It's so easy to skip this part, but if you make efforts at finding things out for yourself, you'll be surprised at how much you can dig out without having to bug people. However, this does not guarantee that even the few important questions you'll ask may not be met with hostility, but do not let that discourage you. The people who appear to be unwelcoming are doing so only as a way to discourage you from being over-dependent on the channel.
Another advantage of finding things for yourself is that, you learn the &lt;strong&gt;why&lt;/strong&gt; and not just the &lt;strong&gt;how&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span id="armin_quote"&gt;I think it's fair to quote &lt;a href="http://lucumr.pocoo.org/about/"&gt;Armin Ronacher&lt;/a&gt; here,&lt;/span&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;"And it's not just asking questions; questioning other people, like what other people do or what you do yourself.&lt;/p&gt;
&lt;p&gt;By far, the worst parts in all of my libraries are where I took the design from somewhere else. And it's not because I know better, it's because pretty much everything everybody does at any point in time has some sort of design decision behind it ... that major decision process.&lt;/p&gt;
&lt;p&gt;So someone came up with a solution for a particular problem, and he thought about it and then wrote it down. But if you look at someone else's design, you might no longer understand why the decision was made in the first place. And ... in fact, if the original implementation is ten years old, who knows if the design ideas behind it are still entirely correct."&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;br/&gt;
Personally, I like to answer questions and help put people on track. Nonetheless, if the queries got too overwhelming -- especially coming from the same person -- I would eventually lose interest in answering questions.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
Let me remind you of some &lt;strong&gt;tidbits or etiquettes of IRC&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Construct your questions well (concise, well written and straight-to-the-point questions are more likely to attract help)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Don't EVER post code in a channel! &lt;a href="https://en.wikipedia.org/wiki/Pastebin"&gt;Pastebin&lt;/a&gt;&lt;a href="#footnote"&gt;&lt;sup&gt;&lt;strong&gt;[1]&lt;/strong&gt;&lt;/sup&gt;&lt;/a&gt; it and share the link in the channel instead. While at it, don't post your entire code (unless you specifically need to). Post only the relevant portion -- the one you have an issue with. The only exception to this is if the snippet of code is considerably short, say one or two lines.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Don't be overly respectful. Yes, dont be too respectful -- &lt;em&gt;cut all the 'Sirs'&lt;/em&gt;. Only be moderately polite.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ensure you have and use a registered nick. This gives you an identity.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;This last one is entirely my opinion but it's also based on what I have observed. &lt;strong&gt;Don't just be a leech, try to contribute to the community&lt;/strong&gt;. Answer questions when you can.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;So where do you look to before looking to IRC? There are three sources you may &lt;strong&gt;read&lt;/strong&gt; from before turning to internet-relay-chat for help:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Read the documentation&lt;/strong&gt;. * Documentation is the manual the creator or experts of a software product or tool provide their users with. So you want to know the ins and outs of a technology? That's the right place to look.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Read blog posts&lt;/strong&gt; related to your topic-area. Blog posts are often based on people's experiences, so you're likely to find help from there, especially if the writer has faced the same issue. Remember to &lt;code&gt;bookmark&lt;/code&gt; the really helpful ones as you go ;).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Last and very important. &lt;strong&gt;&lt;a href="http://blog.codinghorror.com/learn-to-read-the-source-luke/"&gt;Read the source code!&lt;/a&gt;&lt;/strong&gt;. This is two-fold: First is actually looking into your own code carefully and seeing what syntax or semantic errors you might have made. Secondly, you look into the original code of libraries/frameworks you are using if they are open source, otherwise revert to documentation. With this, you have it all stripped to its bare bones. Point blank! The source code reveals everything you need to know, once you know how to read it.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br/&gt;
So why not arm yourself properly before going to post that question. That way, you would not only make it easier to get help [for yourself], but you would be better informed.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;/p&gt;
&lt;hr id="footnote"/&gt;

&lt;ol&gt;
&lt;li&gt;Some Pastebin platforms I use:&lt;ul&gt;
&lt;li&gt;&lt;a href="https://paste.ofcode.org/"&gt;Paste ofCode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://pastebin.com"&gt;Pastebin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://hastebin.com"&gt;Hastebin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://paste.ubuntu.com"&gt;Ubuntu Pastebin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://pastie.org"&gt;Pastie&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://paste.pound-python.org"&gt;Spacepaste&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://paste.linux.chat"&gt;##Linux on Freenode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://gist.github/com"&gt;Github Gists&lt;/a&gt; -- A &lt;a href="http://github.com"&gt;Github&lt;/a&gt;-owned pastebin platform with support for version-controlled pastes.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Because &lt;a href="http://hastebin.com"&gt;Hastebin&lt;/a&gt; heavily depends on Javascript, some people have complained of text-rendering issues possibly arising from browser-compatibility issues with it. So take caution using it. That said, I love its ease-of-use. It supports the use of keyboard shortcuts such as &lt;code&gt;[Ctrl]+[S]&lt;/code&gt; to &lt;strong&gt;Save&lt;/strong&gt;.&lt;/p&gt;</content><category term="irc"></category><category term="help"></category><category term="programming"></category><category term="beginner"></category><category term="pastebin"></category><category term="documentation"></category><category term="practice"></category><category term="dev"></category><category term="planet"></category></entry></feed>