Tuesday 15 August 2017

Applications Now Open for 2017 Autumn GE Lagos Garage


The fourth edition of General Electric’s (GE) advanced manufacturing and skills training program for entrepreneurs is scheduled to take off in Lagos, Nigeria on the 4th of September, 2017. The “GE Lagos Garage” is an immersive, four-week program dedicated to accelerating the impact of Nigeria’s most promising entrepreneurs, especially in advanced manufacturing. This program is designed for hardware entrepreneurs that have an existing product or idea and want to learn how to apply cutting-edge manufacturing technology like 3D printing to their product development processes.

GE created the Garages program in 2012 to reinvigorate America’s interest in invention, innovation, and manufacturing. In 2014, Garages went global with four weeks of intensive workshops at GE’s offices in Lagos, Nigeria, using the latest in advanced manufacturing technologies. 3D printers, CNC mills, and laser cutters. In December 2016, GE Nigeria launched a permanent installation of the Lagos Garage, a hub for training, strategy development, advanced manufacturing-based innovation and collaboration. So far, four cohorts of 95 entrepreneurs have gone through the program. During this period, several viable micro and small business enterprises have been birthed and are thriving as a result of training and support received during the Garage training program.

During this iteration of the Garage program, selected participants will be granted access to a variety of world-class instructors, investors, technical experts and partners, and learn how to create innovative products using front-line manufacturing technology and rapid prototyping. They will also learn to apply the core principles of design thinking, product development, finance, marketing, sales, and customer acquisition in real-time to their ventures. Finally, the Garage will also provide participants with unfettered access to an expanding network of dedicated mentors and alumni to support them in starting and scaling their companies, and in building a culture of collaboration and innovation to bring their most innovative ideas to life.

Interested entrepreneurs can apply for the free program by clicking here.

For further information about the Lagos Garage, please contact the Associate Program Manager, Demilade Adesiyan at demilade@neubridges.com or via mobile at 08051960057.

Sunday 13 August 2017

Drawing Adinkra Symbols using Python - Dame Dame


Dame Dame means "chequered or checkered" as in the pattern on a chess or draught board. It is the symbol of intelligence, ingenuity, and strategy.

We will use a grid of 5 pixels to trace out the image. The image of this is shown below:


This symbol consists of an outer circle with an inner square, lines and rectangles. It is quite straightforward to draw it.

The plan to draw this shape is as follows:
  1. Draw the inner filled square
  2. Draw the outer circle
  3. Draw the rectangle and line for the position where the rectangle faces right
  4. Draw the rectangle and line for the other heading positions
Before we start, note that the size of the line of the shape is 2 squares. For the size we intend to draw the shape at, this means that we must change the size of our pen to match 2 squares in our grid.


Using Turtle Graphics
In the last section we used a 400 X 400 pixel grid. We will also use it here. Copy out all the code from the top until you get to the section for the command to draw the grid. You will have a grid as shown below:



From this point on, we shall use the 400 X 400 pixel grid. So copy the code that achieved the grid into a file and call it template.py.

Rename the template.py file to damedame.py and let’s get ready to code.

The first thing we are to do is to set the pensize to 20 pixels.

The code to do this is shown below:

turtle.pensize(20)

The left hand side of the square starts from (-60, 60). So we need to move the turtle there. The code to do this is shown below:

turtle.setposition(-60, 60)

Next we begin the fill. Before we do that, we need to also place the pen down. The code to do this is shown below:

turtle.pendown()
turtle.begin_fill()

Now we can start drawing the square. We start by drawing from its current position. The turtle is 120 pixels in length so we move our turtle forward by 120 pixels. The code to do this is shown below:

turtle.forward(120)

Next we turn right by 90 degrees. The code to do this is shown below:

turtle.right(90)

We do this 3 more times. A much more efficient way to do this would be to use a loop. I will leave that up to you. The rest of the code will now be:

turtle.forward(120)
turtle.right(90)
turtle.forward(120)
turtle.right(90)
turtle.forward(120)
turtle.right(90)

Now we can end the fill. The code to do this is shown below:

turtle.end_fill()

Our generated shape is now as shown below:


Next we draw the circle. The position of the circle is at 170 pixels from the center of the circle.

Our first step will be to lift up our pen. The code to do this is shown below:

turtle.penup()

Next we move it to the place on the grid where (0, 170). The code to do this is shown below:

turtle.setposition(0, -170)

Now we place the pen down. The code to do this is shown below:

turtle.pendown()

Next we draw a circle of radius 170. The code to do this is shown below:

turtle.circle(170)

Our generated image now becomes:


The next step is to draw the remaining parts. We will start with the part for where the rectangle is facing right.
Here all we have to do is repeat the steps that drew the square. Our first step would be to lift up the pen. The code to do this is shown below:

turtle.penup()

Next we set the heading of the turtle to 0 degrees. The code to do this is shown below:

turtle.setheading(0)

Now we move the turtle to the upper position to start drawing the line. This is at the end of the filled square. The coordinate of this location is (60, 20). The code to do this is shown below:

turtle.setposition(60, 20)

We now place our pen down. The code to do this is shown below:

turtle.pendown()

We move forward by 50 pixels. The code to do this is shown below:

turtle.forward(50)

Turn right and move forward by 40 pixels. The code to do this is shown below:

turtle.right(90)
turtle.forward(40)

Turn right again and move forward by 50 pixels. The code to do this is shown below:

turtle.right(90)
turtle.forward(50)

The generated shape is shown below:


Now lift up the pen. The code to do this is shown below:

turtle.penup()

Next set the heading back to 0 degrees. The code to do this is shown below:

turtle.setheading(0)

Move the pen to the position where the coordinate is (110, 0). The code to do this is shown below:

turtle.setposition(110, 0)

Place the pen down. The code to do this is:

turtle.pendown()

Move forward by 50 pixels. The code to do this is:

turtle.forward(50)

The generated image is now:


We go on to create the others. The remaining are for the Up, Left and Down directions with headings of 90, 180 and 270 degrees respectively.

Drawing the rectangle and line in all the directions is a simple algorithm which is given below:
  1. Lift up the pen
  2. Set the heading
  3. Move to the leftmost position for the rectangle
  4. Place the pen down
  5. Move forward by 50 pixels
  6. Turn the turtle by 90 degrees to the right
  7. Move forward by 40 pixels
  8. Turn the turtle by 90 degrees to the right
  9. Move forward by 50 pixels
  10. Lift the pen
  11. Set the heading
  12. Place the pen down at the position midway from its outer edge
  13. Move forward by 50 pixels

If we do this steps for all the directions, we will complete our shape. The hard part would be to figure out the position for the leftmost part for the triangle as found in step 3. Once we achieve that, the rest is easy.

For the up direction, the coordinate for the leftmost part is (-20, 60). The code to draw its own rectangle and line is:

turtle.penup()
turtle.setheading(90)
turtle.setposition(-20, 60)
turtle.pendown()
turtle.forward(50)
turtle.right(90)
turtle.forward(40)
turtle.right(90)
turtle.forward(50)

The generated image is now shown below:


At this stage, we have executed 9 steps in our algorithm. Before we complete the remaining steps, we need to find the coordinates of the position described in step 12 of our algorithm. The coordinates of this point for the up position are at (0, 110).

The remaining steps in our code will now be:

turtle.penup()
turtle.setheading(90)
turtle.setposition(0, 110)
turtle.pendown()
turtle.forward(50)

The generated image is shown below:


We repeat our drawing algorithm for the left direction. The coordinates of the leftmost part is (-60, -20). The code to draw its own rectangle and line is:

turtle.penup()
turtle.setheading(180)
turtle.setposition(-60, -20)
turtle.pendown()
turtle.forward(50)
turtle.right(90)
turtle.forward(40)
turtle.right(90)
turtle.forward(50)

The generated image is shown below:


At this stage, we have executed 9 steps in our algorithm. Before we complete the remaining steps, we need to find the coordinates of the position described in step 12 of our algorithm. The coordinates of this point for the up position are at (-110, 0).

The remaining steps in our code will now be:

turtle.penup()
turtle.setheading(180)
turtle.setposition(-110, 0)
turtle.pendown()
turtle.forward(50)

The generated image will now be:


To complete the image, we repeat our drawing algorithm for the down direction. The coordinates of this part is (20, -60). The code to draw its own rectangle and line is:

turtle.penup()
turtle.setheading(270)
turtle.setposition(20, -60)
turtle.pendown()
turtle.forward(50)
turtle.right(90)
turtle.forward(40)
turtle.right(90)
turtle.forward(50)

The image generated is now shown below:


At this stage, we have executed 9 steps in our algorithm. Before we complete the remaining steps, we need to find the coordinates of the position described in step 12 of our algorithm. The coordinates of this point for the up position are at (0, -110).

The remaining steps in our code will now be:

turtle.penup()
turtle.setheading(90)
turtle.setposition(0, -110)
turtle.pendown()
turtle.forward(50)

The generated image is now shown below:


Conclusion

At the end of this post, we have successfully used the Python turtle environment to draw the Dame Dame symbol.

It is inspiring to think of architecture based on this symbol. It would be an edifice to behold. A 3D model of this would be a great first step.

Saturday 12 August 2017

CodeLagos


CodeLagos is an initiative by the Lagos State government to teach 1 million Lagosians how to code by 2019.

Recently, they celebrated the end of the pilot phase with a video on Youtube detailing their achievements in the first phase.

The video summarizes the milestones achieved by the program during its pilot phase. Despite early criticism by naysayers, it is good to see it reach this milestone.

Wednesday 9 August 2017

Finding Software Alternatives


If you are looking for a software alternative to any software. You have two alternatives:

  1. Google for software alternatives and try every one of them
  2. Take advice from others
The first means that you are going to learn from your own experience. In my own experience, this is a slow and painful way to learn.

A much easier way is to learn from the experiences of others. At that is where AlternativeTo comes in.

AlternativeTo is a website which lists alternatives to web-based software, desktop computer software, and mobile apps, and sorts the alternatives by various criteria, including the number of registered users who have clicked the "Like" button for each of them on AlternativeTo.

Unlike a number of other software directory websites, the software is not arranged into categories, but each individual piece of software has its own list of alternatives, permitting a more tailored listing approach.

Searching through AlternativeTo was how I found a number of software tools that I currently used when I decided to stop software piracy.


Tuesday 8 August 2017

APE: Author, Publisher, Entrepreneur—How to Publish a Book


Once in a while, you read a great book and cannot in Good conscience keep it to yourself. Today I finished reading APE: Author, Publisher, Entrepreneur—How to Publish a Book by Guy Kawasaki.

Although the book was last updated in 2013, it does everything is promises to do. Starting with the authoring of your book, this book helps you navigate the world of digital publishing.

I was amazed that despite its age, the book didn't seem off the mark. It was well worth my time and I finished reading the book inspired to continue on my journey on self-publishing.

If you are interested in self-publishing, APE: Author, Publisher, Entrepreneur—How to Publish a Book is a must read.

Sunday 6 August 2017

Uchaguzi


Ushahidi is a platform for incidence reporting. It was developed to map reports of violence in Kenya after the post-election violence in 2008.

Earlier this year, it was used to monitor post-election violence in the United States of America. It was a thing of joy to see a product from Africa achieve that feat.

Now it comes full circle as on the 8th of this month, Kenyans will be voting again.

To this end, the company has launched Uchaguzi which is a platform to monitor the Kenyan elections happening this Tuesday.

It a nice homecoming for Ushahidi.

Friday 4 August 2017

KDP POD


As someone with an interest in digital publishing, I am always on the lookout for new trends in the industry.

Amazon KDP allows you publish ebooks while CreateSpace allows you publish paperbacks. Both companies are owned by Amazon.

Today, a new trend is emerging that will make Amazon KDP a one stop shop for all things publishing. I would like to call it KDP POD as there isn't an official name for it yet.

KDP POD from my experience will come to replace CreateSpace eventually. At the moment, the company will work through all the bugs and the customer experience, and then one day, when they are ready, they will put CreateSpace out to pasture.

In my sincere opinion, if you want to do any publishing, use KDP POD because you are better off growing with the platform.

Have a great weekend.


AiLiveComplete Download


AiLiveComplete allows you to run App Inventor without internet connection. It runs the entire App Inventor infrastructure entirely on your computer.

Downloading from the site tends to break alot. As a result of this, I got the download link and so rather than download it from the site, you can place the link in your download manager.

Copy this link -> https://downloads.sourceforge.net/project/ailivecomplete/AppInventorOfflineJune222016.zip?r=&ts=1500049837&use_mirror=netix

Have a great weekend.

Tuesday 1 August 2017

7 Free Content Creation Tools


Welcome to a new month.

I apologize for not posting in a while. I was seriously busy at work. I start the month with a list of 7 free content creation tools. This is taken from a post by Shopify.

If you don't want to read the post, below is a list of tools along with links to their respective websites:

  1. Meme Generator
  2. Lumen5
  3. Fake iPhone Text Generator
  4. GIPHY
  5. Canva
  6. Qzzr
  7. Playbuzz
Have a great month ahead.