tag:blogger.com,1999:blog-53635180172531688372024-03-18T23:40:58.356-07:00Edmond pa Kanjedza<i>Kalikonse ako ndafwenkheza ndili pansi pa Kanjedza <br>(Anything that pops up when I am under the Palm tree)</i>Edmond Kachalehttp://www.blogger.com/profile/04793536391738191498noreply@blogger.comBlogger19125tag:blogger.com,1999:blog-5363518017253168837.post-89557769887736439142014-06-24T12:31:00.000-07:002014-06-24T12:46:36.655-07:00The Beauty of Indigenous Languages<span style="mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">I have been working
with indigenous languages for some time now. I have been very much fascinated
by the orthographic properties that various languages have. However, questions
may be arising: “Who cares about it anyway? What is in mother tongues that we
should be concerned about beyond fancy grammar rules? Why should we really care about indigenous languages in the globalised world where English and certain strong languages have already made an economic fortress?” There are four things I
would like to share with you.</span><br />
<span style="mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";"> </span>
<br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-margin-top-alt: auto; text-align: justify;">
<span style="mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Deep within a
culture, there are indigenous knowledge systems that are practiced and are
transferred from generation to generation. Such knowledge includes medicine,
agricultural practices and even astronomy. For instance, there is an indigenous
group in Mali called the <i style="mso-bidi-font-style: normal;">Dogon</i>.
Anthropologists investigating the Dogon have reported that this ethnic group
seems to possess advanced astronomical knowledge, including the idea of Sirius,
the brightest star in the known universe. This idea has been well-known among
themselves over centuries yet modern astronomy has revealed the idea of Sirius
in mid 18<sup>th</sup> century. Another indigenous group of people,</span> <i style="mso-bidi-font-style: normal;">Boorong</i>, living<span style="mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";"> around Lake Victoria
also have an independent knowledge of the same star. They call it <i style="mso-bidi-font-style: normal;">Warepil</i>. Such indigenous knowledge is
what is referred to as <b style="mso-bidi-font-weight: normal;">ethnoscience</b>.
Quite related to ethnoscience is <b style="mso-bidi-font-weight: normal;">ethnomathematics</b>
that are indigenous mathematical systems. An example is, in Chichewa (my indigenous language), the
numbering system is quintisimal or base five. This knowledge is often
transferred traditionally without written documents. So as a language dies, so
does ethnoscience.</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-margin-top-alt: auto; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-margin-top-alt: auto; text-align: justify;">
<span style="mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Within an indigenous
language, there are some beautiful linguistic elements. Man is well-known for
observing patterns in an environment and describing them using some
terminology. These terminologies and their associated descriptions are part of
indigenous classification of the universe using lexicon & syntax. For
example, reading Chinua Achebe’s <i style="mso-bidi-font-style: normal;">Things
Fall Apart </i>reveals how the indigenous people of <i style="mso-bidi-font-style: normal;">Umuofia</i> village described a bicycle when they saw it for the first
time: an iron horse. This term has a lot of ideas behind it explaining how the
people identified themselves with new technology that was creeping into their
culture. Seeing a bicycle was like seeing a mechanical horse, “an animal of
transport” that they had associated themselves with over the years. Another
subtle example is the concept of a Trinitarian God from a Hebrew word <i style="mso-bidi-font-style: normal;">Elohim</i>. The idea of a God who comprises
three persons in himself is well understood by studying the language of Hebrews
and how they perceived the supernatural. Such knowledge is called <b style="mso-bidi-font-weight: normal;">ethnolinguistics</b>. By looking at such
linguistic elements as grammar, proverbs and orthography, one can deduce the
type of ideas that flow within a particular indigenous group and how those
ideas shape the future of that generation.</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-margin-top-alt: auto; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-margin-top-alt: auto; text-align: justify;">
<span style="mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">One of the most
significant factors that are facilitating globalization is commerce. People are
using the internet to procure, purchase or sell items. There is too much
business that is happening every minute of the day. But indigenous languages
also play a wonderful role in commerce. While Western languages are influential
in international trade, there are a lot more roles that indigenous languages
play in traditional economic decisions. For example, despite that supermarkets
and chain stores came in Malawi long time ago, we still have sunshine boutiques
(<i style="mso-bidi-font-style: normal;">kaunjika</i>) in our townships. The
concept of flea markets is refusing to die in Africa. This is what is called <b style="mso-bidi-font-weight: normal;">ethnoeconomics</b>. But that is not all:
primarily, an indigenous language constitutes a cultural identity. Our cultural
and traditional customs continue to attract tourists. In a way, indigenous
languages and culture are playing a very big role in the sector of tourism.</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-margin-top-alt: auto; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-margin-top-alt: auto; text-align: justify;">
<span style="mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Lastly, every
language is known for its philosophical components. Over the centuries, people
have shared a set of indigenous values and customs through oral literature.
These include poetry, drama, music and tales. These kinds of philosophies
explain how the indigenous are connected to reality, existence, and reason
among other issues. Such ideas are known as <b style="mso-bidi-font-weight: normal;">ethnophilosophy</b>. Once I heard that <i style="mso-bidi-font-style: normal;">when God wanted to impress the Britain with literature, he gave us
Shakespeare</i>. Ideas expressed through these philosophical components differ
from one language to another. For example, in English language poems often come
with rhyming lines. </span><br />
<br />
<span style="mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">Yet that element is not found in Chichewa by its design.
Hebrew poetry does not have rhymes either, but it uses a phenomenon called <i style="mso-bidi-font-style: normal;">parallelism</i>. Parallelism is a remarkable
correspondence in the ideas expressed in two successive statements. The
distinguishing feature of the Hebrew poetry is that parallelism of thought also
contains rhythmical balancing of sentence components. An example of a
parallelism is where you have two opposing ideas flowing in the same sentence.
For instance, let’s consider this phrase: “<i style="mso-bidi-font-style: normal;">The
rich man's wealth is his strong city but the ruin of the poor is their poverty</i>“.
In this proverb, we find sets of contrasting ideas:<i style="mso-bidi-font-style: normal;"> rich </i>versus<i style="mso-bidi-font-style: normal;"> poor, wealth </i>versus<i style="mso-bidi-font-style: normal;"> poverty, </i>and<i style="mso-bidi-font-style: normal;"> strong city </i>versus<i style="mso-bidi-font-style: normal;"> ruin</i>.
Apart from giving contrasting ideas, Hebrew parallelism shows how the language
was gradually developed. Some of the words that are used in parallelisms show that
one term is one or two characters short from its corresponding member of
parallelism. This tells us that such two concepts are viewed as connected ideas
in that language. But these aspects of parallelism do not reveal a lot when
viewed from outside the Hebrew language itself. Thus, each indigenous language
comes with literature elements that are well understood within its own context.</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-margin-top-alt: auto; text-align: justify;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-margin-top-alt: auto; text-align: justify;">
<span style="mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";">In summary, deep
within a language itself exist historical and cultural customs, economic
policies, science and philosophy which are passed on from one generation to the
next. These elements are transferred primarily through oral tradition. When a
language dies, such important cultural markers disappear also. With
globalization, many indigenous languages have become endangered. They are no
longer competitive media of communication. In fact, recent surveys have
revealed that one indigenous language dies in every fourteen days on average.
Unless a language improves its visibility in the digital world, it is heading
for extinction.</span></div>
<div class="MsoNormal">
<br /></div>
Edmond Kachalehttp://www.blogger.com/profile/04793536391738191498noreply@blogger.com7tag:blogger.com,1999:blog-5363518017253168837.post-54942956259981279222013-09-27T14:15:00.002-07:002013-09-27T22:17:38.344-07:00My Husband Is A Programmer; I Have no Idea What That Means<div style="text-align: center;">
<h4>
<span style="font-size: x-small;"> <span style="font-size: small;">Wednesday, August 11th, 2010 | Author: Renae Bair</span></span></h4>
<h4>
<span style="font-size: small;"><br /></span></h4>
<div style="text-align: justify;">
<span style="font-size: small; font-weight: normal;"><i><b>Disclaimer</b>: This article was first published by <a href="https://twitter.com/renaebair" target="_blank">Renae Bair</a> on her blog. Unfortunately, the site has been taken down and <a href="http://www.renaebair.com/2010/08/11/my-husband-is-a-programmer-i-have-no-idea-what-that-means/" target="_blank">the article</a> is no longer. I republished it because I very much relate with the ideas the author expressed in the article. I do not own any of the views expressed in this article.</i></span><br />
<br /></div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
<span style="font-weight: normal;"><span style="font-family: inherit;"><span style="font-size: small;">I met my husband
11 years ago. I was carrying my guitar into my dorm room on freshman move-in
day at the University of Southern Maine. I saw him eyeing my guitar with great
interest. When he knocked on my door and introduced himself, he said, “Hey! I’m
Adam. I live across the hall. I’m a computer geek!”</span></span></span><br />
<br /></div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
<span style="font-weight: normal;">It was a bold move
on his part. Being a computer geek ten years ago wasn’t exactly “hot” and he
was either socially ignorant to this fact, or he just didn’t care. Regardless,
I was in love. I wasn’t even a computer geek myself at the time, but I was
smitten with his forwardness and his apparent lack of concern about his own
geekery. Finding out that he also played guitar sealed the deal. Fate would
have it that he lived directly across the hall from me.</span> <span style="font-weight: normal;"> </span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-weight: normal;">In the following
weeks, months and years, he was able to hold my attention as he ranted about
hardware specs for his gaming machines, his god-like status in Unreal
Tournament matches, his ColdFusion senior project application, and his long
explanations on programming theory. I sat and watched in amazement as he built
and tore down PCs. I listened to him talk through programming problems and
watched him build websites. All the while I was planning some vague career with
political science and English, but I was nonetheless interested in Adam’s life.</span></div>
</div>
<div style="text-align: justify;">
<br />
It was no accident
that years later I knew that “Ruby” wasn’t just July’s birthstone and that
“Ruby on Rails” wasn’t a rebellious act of sacrificing precious gems on
railroad tracks in hipster neighborhoods. I spent years actually being engaged
in his interests. And when he fell in love with Ruby in late 2005, I was
supporting him all the way and knew exactly why Ruby was incredible. Several
years later, when I decided to learn Ruby, I came out with a post on my blog about
the <a href="http://www.renaebair.com/2008/11/24/the-ranting-rubyists/" target="_blank">Ruby community</a>. A lot of people were confused as to how a Ruby newbie could
already understand the Ruby community so well. Truth was, I had been following
the community for quite some time before I ever decided to learn to program in
Ruby. I knew all the big names, the trends, and the history before I ever
opened up TextMate and saved a .rb file.<br />
<br />
Do you get that
glazed, faraway look in your eye when you partner starts talking about a
programming problem, or the newest testing framework? There’s no need to be
bored. Ask questions, try to understand! When I meet women today, I don’t avoid
talking about the work that I do, my love for pc gaming, or my fascination with
D&D and other such geekery. Often I’ll get a response along these lines:
“Programming? My husband does something like that I think.” To which I always
inquire, “Oh really? What language does he work with?” Their response is always
the same: “Language? Huh. I have no idea. There’s more than one? I don’t really
know what he does. I don’t pay attention to that stuff.”<br />
<br />
This always blows my mind. You’re married to
someone, and you aren’t interested enough in the person to know anything about
what they do with nearly 40-50% of their time, aside from their job title? Is
it dangerous to draw a correlation between high divorce rates and the lack of
interest that people have in their partners’ lives? It’s easy to fall in love
with the “idea” of a person when you first meet them. But I think it would be
hard to endure a lifetime of ups and downs, trials and tribulations and the
everyday challenges that life throws at two people, if those partners didn’t
have a truly vested interest in each other’s passions and life’s work. And if
you don’t have even a basic understanding of what your spouse does with 40+hours
of his/her week, then you’re not on a team.<br />
<br />
I’m not suggesting
that you give up your own individuality and personal interests when you meet
someone special. But open your mind enough to experience the world through your
partner’s eyes. I admit there were occasions when Adam would be on his third
diatribe of the evening on meta-programming, and my mind would start to wander.
But I was generally engaged in his interests. And why wouldn’t I be? Falling in
love involves getting to know a person. And getting to know a person usually
involves talking about and understanding each other’s personal interests. Adam
certainly had to endure hundreds of hours listening to Ani Difranco, Dar
Williams, and Iron & Wine albums, along with my absurdly psychotic analysis
of all of the lyrics. He learned to play tennis at my prompting, although I
have to swallow losing nearly every game to him now. He watched my ballet
performances in college, and even knew how to pronounce a few of the positions.
Below is a photo of Adam and I embarking on a hike up Tumbledown Mountain. It
captures Adam’s willingness to step away from the computer for a day and
partake in my interest in the outdoors. He was a trooper. Hiking up tumbledown
mountain in Maine.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnmIXYjzWRUWBolY3fs08P6mwNLhpswnX9e4RxYMgEHKorxY-uY0g-gEdoDfrnDAeyiCmNl1osorPyBLSqjqha6zCKRGqQo00gS8LST52UfxjTCU75bGu-vWWsm4fVXuFKKHVaDWVNjXlU/s1600/renaebair.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnmIXYjzWRUWBolY3fs08P6mwNLhpswnX9e4RxYMgEHKorxY-uY0g-gEdoDfrnDAeyiCmNl1osorPyBLSqjqha6zCKRGqQo00gS8LST52UfxjTCU75bGu-vWWsm4fVXuFKKHVaDWVNjXlU/s1600/renaebair.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Hiking up Tumbledown Mountain in Maine</td></tr>
</tbody></table>
<br />
It should not be hard to be engaged in your partner’s interests. If it is
that hard, you might want consider the possibility that you might be full of
yourself. Even amongst my friends, I make a concerted effort to listen and
understand their individual interests and passions. I always learn something
new, and sometimes I get to discover a new passion for myself.<br />
<br />
Professionally, I wouldn’t be where I am today, if I had daydreamed my way
through Adam’s geek rants. Our relationship resulted in thousands of hours of
video gaming, late-night programming tutorials, brainstorming sessions for new
apps, some camping trips and lots of folk music. Even if you don’t follow a
similar career path as your spouse, being interested in their work and their
hobbies can open up other doors for you. It broadens your world view and helps
you to suck less as a human being. It’s about being part of a team that works
together. I don’t professionally program like Adam; I’m not built that way. I
understand programming, but unfortunately I wasn’t given Legos to play with as
a child, math skills were never encouraged in school or at home, and the
engineering/problem-solving side was never nurtured. So, while I enjoy
programming, it comes a lot harder to me than it does for others. But writing
is a strength, and programming and technology is a huge interest of mine - so
scoring a gig as Intridea’s Community Manager really rocked my world. I keep my
eye into the world that I love, my finger on the pulse of it, and the work that
results is always rewarding and fun.<br />
<br />
So if you’re with someone new, find a way to be interested in the things
they like to talk about. And if you’re with someone old, rediscover the love of
your life by asking about their work and listening to their response. Don’t
feign interest. And please, don’t be one of those girls that doesn’t know what
language her husband programs in. Be the cool wife that surprises her husband’s
dorky friends when she knows Java is, and can engage in a short discussion on
the evangelicalism of the Ruby community without asking, “Honey, I didn’t know
you were a jeweler!”</div>
Edmond Kachalehttp://www.blogger.com/profile/04793536391738191498noreply@blogger.com5tag:blogger.com,1999:blog-5363518017253168837.post-40555129717328782342013-06-08T11:26:00.001-07:002013-06-08T22:42:04.438-07:00About the Undertaking to Resume Studies in the University of Malawi<div style="text-align: justify;">
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--></div>
<div style="text-align: justify;">
<!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:6.0pt;
mso-para-margin-right:0in;
mso-para-margin-bottom:6.0pt;
mso-para-margin-left:.5in;
text-indent:-.25in;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->
</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
A couple of weeks ago, we witnessed <a href="http://www.bnltimes.com/index.php/daily-times/headlines/national/15143-unima-wants-colleges-to-remain-closed">the University of Malawi being closed down indefinitely</a> following disagreements between the students and the university administration. I have been following this case very carefully with keen interest because I love my university and my country. There have been a series of rebattle on the matter with both sides challenging its opponent in a court of law. </div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
I personally did not like the whole process. I do not think education has to move like that: being propelled by injunctions and living under the dictation of the judiciary. No wonder our university still ranks low on the <a href="http://www.4icu.org/topAfrica/"><i>Top 100 Universities and Colleges in Africa</i></a> and even worse enough, at times it does not appear there at all. </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioSN0wLF5zBM8vN4JUKHBgesvASV2T7wapXrfq1uF_AU0S2tWRDSXJvyOWFGEOnfpRpD85kyctcCZvJwFICmhyphenhyphen9wn7HgbzSNNhROg1xWvJrhLvmXWi0T4wCOGTIfTiEaE0xEINY6SQCIUz/s1600/chanco.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="385" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioSN0wLF5zBM8vN4JUKHBgesvASV2T7wapXrfq1uF_AU0S2tWRDSXJvyOWFGEOnfpRpD85kyctcCZvJwFICmhyphenhyphen9wn7HgbzSNNhROg1xWvJrhLvmXWi0T4wCOGTIfTiEaE0xEINY6SQCIUz/s400/chanco.jpg" width="400" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
Today, I
stumbled upon a document, on the social network, that has been drafted to resolve the indefinite closure
of the University of Malawi. I find this document very unrealistic. It does not address the issues that led to the closure of the university. The document tries to alienate the issue of paramount significance which is the whole reason why the university closed down. Instead, it tries to position the students in an awkward situation by pushing them to abide by undisclosed "same conditions" by appealing to their will.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
Even if
this document says that it is <i>binding </i>for an individual student to
confirm his/her <i>willingness </i>to resume classes under same conditions as the ones
"at the beginning of the current academic year", <i>it does not rule out
the freedom to demonstrate dissatisfaction over the fairness of the unfairness</i>.
The freedom to express one's views over any thought or realm of reason is
something that Malawi embraced even before democracy came. As much as I would
not agree with every reason that the students were demonstrating for (and that
is my right not to agree with them), I do not believe this single statement
overwrites the freedom we stand for.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
I assume that I have better arguments for not asserting to the
validity of students' grievances but this form has no better authority to
silence them hereafter. The whole reason why students are in the university is to
try and find unifying ideas among the diverse rational premises when arguments like these arise. I am glad
that it is the same University of Malawi that came out and stood for Academic
Freedom a few years ago. That voice sent a signal that while the Government of that time was
of the contrary view, the academia on other side had the reason enough to stand
for the freedom enshrined in the clauses of the Constitution of Malawi by
providing contra-arguments over the action of the State and Government at any point in time.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
The greatest search of all time has been the search for
<i>unity in diversity</i>. The early Greek philosophers were looking for the same and they
invented the "uni-versity" (the academy) to allow for rationalization of diverse thoughts.
I believe that the educated cannot be silenced by any particular statements of
this kind. Currently, there are opposing ideas between the students and the
council, and even within each school of thought there are also contrasting views. In this case, we need an independent but unifying argument to sort this out, not just silencing the
converse thought. My belief is that at this time when the university system looks
to be heading for ruin, we are lacking a higher authority who can come and provide a
unifying position.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
As an observer who was once a student in the same
university, and as a firm believer of freedom of expression, I still believe
that this form has no substance! The university needs a higher authority, a chancellor, to address
this case. Unfortunately, without taking a political stance on the matter, it
looks like currently the university has no chancellor. The unfair part is our
university system imposes a political being as a chancellor, so in the end when
I talk like this someone will presume that I am against some political
individual. I have only stated a rational idea looking at how things are
crumbling down in the face of the most highly respected person in the university.
The fact is, in the diversity of ideas we require a unifying objective rational
argument from a person charged with such authority of a chancellor.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
I am not backing the student's position on the matter,
neither am I siding with the Council; but I see a very big gap between the two
subsystems and only a higher authority can provide a neutral but unifying position.</div>
<div style="text-align: justify;">
</div>
Edmond Kachalehttp://www.blogger.com/profile/04793536391738191498noreply@blogger.com5tag:blogger.com,1999:blog-5363518017253168837.post-37259419272515257042013-06-04T07:56:00.001-07:002013-06-04T08:47:45.534-07:00Economic Influence of Indigenous Languages and Cultures<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><span style="font-size: small;"><span style="font-family: inherit;">
</span></span><br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; text-align: justify;">
<span style="font-size: small;"><span style="font-family: inherit;">Recently,
we had the first ever TEDx event in Malawi, <a href="http://www.tedxlilongwe.com/">TEDxLilongwe</a>. I happened to be one
of the speakers. It was a wonderful experience for me because I only hallucinated
about speaking at a TED conference. Most importantly, to me the TEDx event came
as a bonus: it coincided with my birthday. What a way to spend a birthday!</span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: inherit;">At
TEDxLilongwe presented on my efforts toward development of localized software
and computing-linguistic tools to facilitate and enhance usage of Malawi’s de
facto national indigenous language, Chichewa. During the talk, I alluded to why
I felt that indigenous languages are still very important apart from just being
means of communication in the home. Today, I feel propelled to expound more on one
of the areas that I focused on: <b>indigenous
economic systems</b>.</span></span><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggcv3UBSqKDn3ogLHFiqzOzJhV9qDWv53IibSFWErYhx6ftlxVPRxnqyTQvJ50NKoFT1P8CGrFpkBFinUzywdTfdq09XZx5q-zxTKehbqBPTejbs_3t-9Do_Idzvb3ShtmPZGZIO08ghqC/s1600/6309505066_b2693edaa3_b.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggcv3UBSqKDn3ogLHFiqzOzJhV9qDWv53IibSFWErYhx6ftlxVPRxnqyTQvJ50NKoFT1P8CGrFpkBFinUzywdTfdq09XZx5q-zxTKehbqBPTejbs_3t-9Do_Idzvb3ShtmPZGZIO08ghqC/s640/6309505066_b2693edaa3_b.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Limbe Flea Market, Malawi (Photo by <a href="http://www.flickr.com/photos/philipphamedl/">Philipp Hamedl</a>)</td></tr>
</tbody></table>
<br />
<br />
<span style="font-size: small;"><span style="font-family: inherit;">Everyone
has a primary language of communication. As we grew, we became fluent in that
language. This is what we often referred to as the mother tongue since it is
the language that our parents taught us from our childhood. However, due to globalization
we later became obliged to provide some seamless interaction across the world
through the use and adoption of <b>languages
of economic influence</b>. Naturally or otherwise, some languages have emerged
as languages of business; most of which are of Western origin, with exception
of the Chinese language. Such languages have
monopolized both the day to day business forums and the computer world.</span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: inherit;">One
of the most significant factors that are facilitating globalization is <b>commerce</b>. People are using the internet
to procure, purchase or sell items. There is too much business that is
happening every minute of the day. As a
result of this, we have almost abandoned our primary languages. Implicitly,
globalization is becoming some re-invention of the tower of Babel as some
languages are little by little being dumped in favor of a competing language of
economic significance. However,
the significance of indigenous languages in commerce is never emphasized much. While
Western languages are influential in international trade, there are a lot more
roles that indigenous languages play in traditional economic decisions. This is
what is called <b>ethnoeconomics</b>. Indigenous
economic systems from various places in the world differ greatly from the
standardised western forms of economic organization.</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; text-align: justify;">
<br />
<span style="font-size: small;"><span style="font-family: inherit;">Despite
that supermarkets and chain stores came in Africa long time ago, there still exist
<b>sunshine boutiques</b> in many of the
African townships. <i>Sunshine boutique</i>
is term that I am using to describe open space markets dedicated to selling second hand
clothes and shoes. The concept of flea markets is refusing to die. The Africans
are used to bulk selling and bargaining because they are no tight price tags on
the goods and services. This can only happen in traditionally organized markets
and not in formal stores. Even though such bulk selling and bargaining may happen
in formal stores especially those which are run by locally based Asians, their structure
differs vehemently from the traditional market organization.</span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: inherit;">Quiet
tied to the concept of traditional marketing is the idea of the <b>market day</b>. Different traditional
markets operate on different special days. During market days, sellers gather
at central market areas where they set up temporary shops and open hawkering
spaces. Markets may continue to run during non-market days, but the difference
is that during those days there are only few items as most sellers shift to
another nearby market whose market day falls on that day<b>.</b></span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: inherit;"><b>Barter trade</b> is one of the concepts that are refusing to disappear.
Barter is a trading system where goods or services are directly exchanged for
other goods or services without using money, credit cards or similar media of
exchange. Due to various government policies on <i>informal</i> market systems, barter trade generally occurs in an
unstructured manner. Barter takes different forms but most popular form of
barter is mobile hawkering. This is a system where hawkers move from one
village to another exchanging their goods (often shoes and plates) for
agricultural produce. But barter is even more subtle than that. In some cases, barter
vendors choose to do a piece of work in exchange for some goods. Such pieces of
work include constructing traditional toilets (often referred to as pit latrines),
escorting a person (often a young one) over a long distance, building a khola (a
livestock cage), constructing nkhokwe (storage silos) or even cultivating in a
garden.</span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: inherit;">There
are no formalized wages but often times the seller (who is offering the goods
or services) and the consumer draw contractual agreements, often unwritten, on
pricing. As usual, there is always some bargaining. In Africa, barter trade is
very much tied to the philosophical category of <i>umunthu/ubuntu</i>. One of the Malawian philosophers, <a href="http://mlauzi.blogspot.com/">Steve Sharra</a>,
defines umunthu as <i>humanness</i> and
not necessarily humanity. In the spirit of umunthu, there are special
considerations for sellers or consumers, especially those that have been very compassionate.
For instance, during construction, the worker may be offered food and water even
though such services were part of the original contractual agreement.</span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: inherit;">But
that is not all. An indigenous language constitutes a cultural identity. There
are some traditions where dressing is very tightly confined to an ethnic group
as an identity. For example, despite many Maasai now lead the sophisticated
urban lifestyles with positions of influence in commerce and government, many still
dress in traditionally designed clothes, a shuka (a colourful piece of cloth),
cow hide sandals, and carry an orinka (a wooden club) as a sign of loyalty to
their cultural identify. But these cultural and traditional customs continue to
attract tourists; traditional dances, music, handicrafts, architectures. They
are still the centre of tourism and studies around the world. In a way,
indigenous languages and culture are playing a very big role in the sector of
tourism.</span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: inherit;">In
concluding my TEDx Talk, I posed a question: <i>Does anyone need an indigenous language? </i>Well, as we have seen, language
offers a platform for interaction among people. In all these traditional
economic systems, language is a necessity. One of the French revolutionists,
Charles Maurice said that “<i>Language was
given to man to disguise his thoughts</i>.” You kill an indigenous language,
you kill the minds!</span></span></div>
Edmond Kachalehttp://www.blogger.com/profile/04793536391738191498noreply@blogger.com1tag:blogger.com,1999:blog-5363518017253168837.post-39992544970890288942012-12-06T07:52:00.002-08:002012-12-06T07:53:20.873-08:00My open prayer to Almighty God for Malawi<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwBpusl_fs8mz0WX7JrdpdgN7pD5CV-6fd3N2GS-DJUysMGtrBGXxxK5Pn0mGZjeuyyp53g0ydqhX7gxK02X1tElXMIRocIAHgDM4aejv3AT_tZSjAhk8omxNGti-G3LI4pqvz_ph4OeXS/s1600/black-church-people-511.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="257" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwBpusl_fs8mz0WX7JrdpdgN7pD5CV-6fd3N2GS-DJUysMGtrBGXxxK5Pn0mGZjeuyyp53g0ydqhX7gxK02X1tElXMIRocIAHgDM4aejv3AT_tZSjAhk8omxNGti-G3LI4pqvz_ph4OeXS/s400/black-church-people-511.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Photo Credit: <a href="http://youngmclayton.wordpress.com/2010/03/17/can-i-get-a-witness-from-the-congregation/">http://youngmclayton.wordpress.com/</a></td></tr>
</tbody></table>
<br />
<div style="text-align: center;">
<br /></div>
<div style="text-align: justify;">
O Lord, you are a great and awesome God! You always fulfill your covenant and keep your promises of unfailing love to those who love you and obey your commands. Lord, holiness and righteousness belong to you only; but as you see, our faces are covered with shame. This is true of all of us, including the people in government, and those scattered near and far, wherever you have driven us because of our disloyalty to you. We have not obeyed the Lord our God, for we have not followed the instructions you give us through your servants. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Your wrath, Lord God, is being revealed from heaven against all the godlessness and wickedness of your people. We have suppressed the truth by our wickedness. For although we know your and your ordinances, yet we have neither glorified you as God nor gave thanks to you. Instead, our thinking has become futile and our foolish hearts are darkened. In professing to be wise, we have became fools. Now we have exchanged your immortal glory and made ourselves equal to animals and creeping creatures.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
We have followed the sinful desires of our hearts to sexual impurity and we are degrading our bodies with one another. Lord, you have given us over to our shameful lusts. Our women exchange natural sexual relations for unnatural ones. In the same way, our men have also abandoned natural relations with women and are inflamed with lust for one another. Men are committing shameful acts with other men, women with fellow women. Now we are receiving the due penalty for our error. We have become filled with every kind of wickedness, evil, greed and depravity. We are full of envy, murder, strife, deceit and malice. We are gossipers, slanderers, God-haters, insolent, arrogant and boastful. Day after day, we invent ways of doing evil. We disobey our parents. We have no understanding, no fidelity, no love, no mercy.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Now the solemn curses and judgments written in your book of law have been poured down on us because of our sin. You have kept your word and done to us and our rulers exactly as you warned us. Our enemies are laughing at us, they are mocking us and we are all filled with shame. Some are removing the landmarks set by our fore fathers. They want to violently take away the portion of our lake in the land of our ancestors. Hunger is looming and drought is approaching. You have commanded the clouds that they rain no rain upon the land because of our wickedness. The ground is parched and cracked because there is no rain in the land. The farmers are ashamed, deeply troubled and dismayed, and they cover their heads in shame.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Lord our God, you alone are merciful and forgiving, even though we have rebelled against you in every way. In view of all your faithful mercies, Lord, please turn your furious anger away from your beloved nation Malawi. All the neighboring nations mock Malawi and your people because of our sins and the sins of our leaders. O our God, hear your servant’s prayer! Listen as I plead before your throne. For your own sake, Lord, smile again on your desolate sanctuary. We confess our sins and we repent. O my God, lean down and listen to me. Open your eyes and see our despair. See how your beautiful land, the country that bears your name, lies in ruins. We make this plea, not because we deserve help, but because of your mercy. O Lord, hear, O Lord, forgive. O Lord, listen and act! For your own sake, do not delay, O my God, for the nation that bears your name.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
We know we have done wrong, but Lord, do not rebuke us in your anger or discipline us in your wrath. Turn, Lord, and deliver us; save us because of your unfailing love. May you open the floodgates of heaven and let the abundant rains fall in the land. Revive and rivers, lakes and streams. Make our land fertile again. Your word, Lord, is eternal and it stands firm in the heavens. Your faithfulness continues through all generations. The laws of nature endure to this day, for all things serve you. As you promise to your servant Noah, we are sure that as long as the earth remains, there will be planting and harvest, cold and heat, summer and winter, day and night. Bring us out of this prison of dry spell, that we may praise your name. Then the righteous friends will gather about us for you shall deal bountifully with us.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
O God, bless our land of Malawi, and keep it a land of peace!</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
[<i>This is a paraphrase of Daniel's Prayer of Confession (Daniel 9:4-19) and Paul's letter to the Church in Rome (Romans 1:18-32). There are also some scriptures from Job 24:2, Psalm 142:7, Psalm 119:89-96 and Isaiah 5:6</i>]</div>
Edmond Kachalehttp://www.blogger.com/profile/04793536391738191498noreply@blogger.com0tag:blogger.com,1999:blog-5363518017253168837.post-50119348528363417342012-05-25T04:56:00.001-07:002012-05-25T06:06:56.132-07:00Owinna.com: Champion your support by supporting your Champions<style type="text/css">
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
A:link { so-language: zxx }
-->
</style>
<br />
<div align="CENTER" lang="en-GB" style="margin-bottom: 0.1in;">
</div>
<div align="JUSTIFY" lang="en-GB" style="margin-bottom: 0.1in;">
Sports
have been part of our lives from time immemorial. Almost every person
is a fan of some sport in one way or the other. For example myself, I
do not like football. I do not know more about football teams and
their players. But I love cycling, cross country and hiking. I like
watching vaulting and skiing though they are not played in Malawi.
Sports are a fun.</div>
<div align="JUSTIFY" lang="en-GB" style="margin-bottom: 0.1in;">
Social
networks have further the fun of sports. If you check statuses on
Twitter and Facebook especially when great teams are playing, you
will actually marvel at how tweeps and facebookers adore their
favourite teams. The text messages that people send each other, the
debates in public places, the expression of happiness in streets!
Everything surrounding it depicts how people love sports.</div>
<div align="JUSTIFY" style="margin-bottom: 0.1in;">
<span lang="en-GB">Being
a sports fan, </span><a href="http://soyapi.com/"><span lang="en-GB"><i>Soyapi Mumba</i></span></a><span lang="en-GB">,
saw the need to champion the support for his champions. He developed
</span><a href="http://owinna.com/"><span lang="en-GB"><i>Owi<span id="goog_368480516"></span><span id="goog_368480517"></span>nna</i></span></a><span lang="en-GB">, a
site to track competitions within Malawi and most popular ones in the
diaspora. Owinna started as simple web page in January 2008. It was
hosted under Soyapi's personal site,</span> <a href="http://soyapi.com/owinna" target="_blank">soyapi.com/owinna</a><span lang="en-GB">.
The site received a good feedback from netizens. </span><span lang="en-GB">On a binary
date 11/11/11, Owinna was patented with Registrar of Companies in
Malawi. </span></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUWeRabBQaLzVBJ92D-2aptq4ENOLJojmW5hxSnclH04w9U1iW-4vds43AbEsrxBd_ZdzQ0Kr1F-Y7VwlZ_THj9cyKdcpMXidNsasFiS8SaPJ8hK0E3XDD-NmaF-p0LwNeFg7BViIxEMNd/s1600/Screenshot+from+2012-05-25+12:51:58.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="358" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUWeRabBQaLzVBJ92D-2aptq4ENOLJojmW5hxSnclH04w9U1iW-4vds43AbEsrxBd_ZdzQ0Kr1F-Y7VwlZ_THj9cyKdcpMXidNsasFiS8SaPJ8hK0E3XDD-NmaF-p0LwNeFg7BViIxEMNd/s640/Screenshot+from+2012-05-25+12:51:58.png" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Owinna.com - a sports site</td></tr>
</tbody></table>
<div align="JUSTIFY" style="margin-bottom: 0.1in;">
<span lang="en-GB"> Four
years later after the initial release, Soyapi decided to host it as a
separate so as to improve the service that the application was
providing. He changed the colour themes from blue to green, created a
new logo and favicon and started supporting a mobile version of the
site. In January 2012, launched <a href="http://owinna.com/" target="_blank">owinna.com</a>
launched as a part-time startup. The new Owinna site was developed
with a simplistic design in mind. It does not have fancy things and it is fast to load even with sloppy Internet connections.</span></div>
<div align="JUSTIFY" style="margin-bottom: 0.1in;">
<span lang="en-GB">Now you can follow Owinna on
<a href="http://www.twitter.com/owinna">Twitter</a> and <a href="https://www.facebook.com/owinnacom">Facebook</a> to get up-to-the-minute updates. By
following updates from Owinna you champion your support within your
peers by supporting your champions! The word <i>Owinna</i> is derived from a
Chichewa plural <i>owina</i> meaning <i>winners</i> or <i>champions</i>.</span></div>
<div align="JUSTIFY" style="margin-bottom: 0.1in;">
<span lang="en-GB">Soyapi
Mumba, is a Malawian <a href="https://github.com/soyapi">software developer</a> and <a href="http://soyapi.blogspot.com/">blogger</a>. As a developer, he has several applications to his credit. He developed <i><a href="http://soyapi.com/puzzle">xNumber Puzzle</a></i>,
a cross-number puzzle game that helps you exercise your brain. It is
also <a href="http://apps.facebook.com/xnumber_puzzle">available on Facebook</a>. He has also developed other useful
applications and plugins including a popular Firefox addon, <i><a href="https://addons.mozilla.org/en-US/firefox/addon/searchwith">SearchWith</a></i>,
which provides faster way to search highlighted text using various
search engine services.</span></div>
<div align="JUSTIFY" style="margin-bottom: 0.1in;">
<span lang="en-GB">Personally,
I owe him a lot, having ushered me to the deep realms of open source.
Before I developed the first version of <a href="http://extensions.openoffice.org/en/project/chicspell"><i>ChicSpell</i></a>, the Chichewa
spell-checker for OpenOffice.org, Soyapi had already
started working with </span><a href="http://borel.slu.edu/"><span lang="en-GB"><i>Prof. Kevin Scannell</i></span></a><span lang="en-GB"> on collecting probably the
first ever word-list for an electronic Chichewa spellcheker. When he
abandoned it, I adopted it which I continue maintaining it with Prof.
Scannell. He has also made contributions to other open-source
projects including <a href="https://github.com/ushahidi/Ushahidi_Web/commits/master?author=soyapi">Ushahidi platform</a>, <a href="https://github.com/BaobabHealthTrust/touchscreentoolkit">Baobab Touchscreen Toolkit</a> (initially developed by <a href="http://www.vdomck.org/">Mike McKay</a> when he was working full time with Baobab Health), and
Unicode for Malawi Currency and calendar system</span><span lang="en-GB">.</span><br />
<div align="JUSTIFY" style="margin-bottom: 0.1in;">
<span lang="en-GB">Having been in software development for more than ten years, Soyapi is now a full
time open-source developer working for <i><a href="http://baobabhealth.org/">Baobab Health</a> </i>as the head of software development department. He is almost
always on Twitter and Facebook but rarely posts updates as he is busy
with Owinna and other cool stuffs. One thing I have learnt in him is
that he very quiet and humble, not geeky but technically
well-composed. Above all, <a href="http://soyapi.blogspot.com/2006/12/only-google-search-suggests-my-name.html">he loves his name</a>. You cannot miss it on
Google, Facebook, Twitter, Github and almost everywhere on the Internet.</span></div>
</div>
<br />Edmond Kachalehttp://www.blogger.com/profile/04793536391738191498noreply@blogger.com1tag:blogger.com,1999:blog-5363518017253168837.post-25874563585339296462012-05-17T04:24:00.001-07:002012-05-17T04:54:40.227-07:00Please Don't Learn to Code Versus Please Learn to Code<div style="text-align: justify;">
I have been following the exchange of advices among technophiles around the world. This exchange has been as a result of of a blogpost by <a href="http://www.codinghorror.com/" target="_blank"><i>Jeff Atwood</i></a>. Jeff is the co-founder of <a href="http://stackoverflow.com/" target="_blank">http://stackoverflow.com/</a> now under <a href="http://stackexchange.com/" target="_blank">http://stackexchange.com/</a> alongside <a href="http://www.joelonsoftware.com/">Joel Spolsky</a>. I have listed some of the the posts that have headlines around the world. I have deliberately left out forum discussions. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
There is one article by <a href="http://accidentalhacker.com/" target="_blank">Rob Sobers</a> of <a href="http://www.varonis.com/">varonis.com</a> that was written way back in January but did not catch the attention of many. I have placed it just below that of Jeff. Except for these first two, the articles have been arranged in alphabetical order. I hope you will enjoy them:</div>
<ul style="text-align: left;">
<li><i>Please Don't Learn to Code</i> <a href="http://www.codinghorror.com/blog/2012/05/please-dont-learn-to-code.html">http://www.codinghorror.com/blog/2012/05/please-dont-learn-to-code.html</a> </li>
</ul>
<ul style="text-align: left;">
<li><i>Please don’t learn to code</i> <a href="http://accidentalhacker.com/post/16116466587/please-dont-learn-to-code">http://accidentalhacker.com/post/16116466587/please-dont-learn-to-code</a></li>
</ul>
<ul style="text-align: left;">
<li> <i>A Modest Proposal: Please Don’t
Learn to Code Because It Will Damage Your Tiny Brain</i>
<a href="http://inventwithpython.com/blog/2012/05/16/a-modest-proposal-please-dont-learn-to-code-because-it-will-damage-your-tiny-brain/">http://inventwithpython.com/blog/2012/05/16/a-modest-proposal-please-dont-learn-to-code-because-it-will-damage-your-tiny-brain/</a></li>
</ul>
<div style="margin-bottom: 0in; text-align: left;">
</div>
<ul style="text-align: left;">
<li><div style="margin-bottom: 0in;">
<i>Look, I love programming. I
also believe programming is important</i>
<a href="http://pro.benjaminste.in/post/23103344300/look-i-love-programming-i-also-believe?80930240"><i>http://pro.benjaminste.in/post/23103344300/look-i-love-programming-i-also-believe?80930240</i></a></div>
</li>
</ul>
<ul style="text-align: left;">
<li><div style="margin-bottom: 0in;">
<i>New tech advice: don't learn to
code</i>
<a href="http://www.itworld.com/software/277396/new-tech-advice-dont-learn-code">http://www.itworld.com/software/277396/new-tech-advice-dont-learn-code</a></div>
</li>
</ul>
<ul style="text-align: left;">
<li><div style="margin-bottom: 0in;">
<i>On Atwood's Please Don't Learn
to Code</i> <a href="https://gist.github.com/0f61db65bbd2d2cb681a">https://gist.github.com/0f61db65bbd2d2cb681a</a>
</div>
</li>
</ul>
<ul style="text-align: left;">
<li><div style="margin-bottom: 0in;">
<i>On Learning to Code</i>
<a href="http://www.philterdesign.com/?p=633">http://www.philterdesign.com/?p=633</a>
</div>
</li>
</ul>
<ul style="text-align: left;">
<li><div style="margin-bottom: 0in;">
<i>Please Do Learn How to Propose
Better Solutions</i>
<a href="http://smarterware.org/10050/please-do-learn-how-to-propose-better-solutions">http://smarterware.org/10050/please-do-learn-how-to-propose-better-solutions</a></div>
</li>
</ul>
<ul style="text-align: left;">
<li><div style="margin-bottom: 0in;">
<i>Please Do Learn To Code</i>
<a href="http://decafbad.com/blog/2012/05/16/please-learn-to-code">http://decafbad.com/blog/2012/05/16/please-learn-to-code</a>
</div>
</li>
</ul>
<ul style="text-align: left;">
<li><div style="margin-bottom: 0in;">
<i>Please Don't Become Anything,
Especially Not A Programmer
</i><a href="http://learncodethehardway.org/blog/MAY_15_2012.html">http://learncodethehardway.org/blog/MAY_15_2012.html</a>
</div>
</li>
</ul>
<ul style="text-align: left;">
<li><div style="margin-bottom: 0in;">
<i>Please don’t learn to code
but give it a try</i>
<a href="http://www.codingninja.co.uk/please-dont-learn-to-code-but-give-it-a-try/">http://www.codingninja.co.uk/please-dont-learn-to-code-but-give-it-a-try/</a></div>
</li>
</ul>
<ul style="text-align: left;">
<li><div style="margin-bottom: 0in;">
<i>Please Don’t Learn To Code</i>
<a href="http://blogs.msdn.com/b/alfredth/archive/2012/05/15/please-don-t-learn-to-code.aspx">http://blogs.msdn.com/b/alfredth/archive/2012/05/15/please-don-t-learn-to-code.aspx</a>
</div>
</li>
</ul>
<ul style="text-align: left;">
<li><div style="margin-bottom: 0in;">
<i>Please Don’t Learn To Code</i>
<a href="http://www.gizmodo.com.au/2012/05/please-dont-learn-to-code/">http://www.gizmodo.com.au/2012/05/please-dont-learn-to-code/</a></div>
</li>
</ul>
<ul style="text-align: left;">
<li><div style="margin-bottom: 0in;">
<i>Please Don’t Not Need To
Desperately Learn to Code</i>
<a href="http://www.iamdann.com/2012/05/15/please-dont-not-need-to-desperately-learn-to-code">http://www.iamdann.com/2012/05/15/please-dont-not-need-to-desperately-learn-to-code</a></div>
</li>
</ul>
<ul style="text-align: left;">
<li><div style="margin-bottom: 0in;">
<i>Please learn to code</i>
<a href="http://sachagreif.com/please-learn-to-code/">http://sachagreif.com/please-learn-to-code/</a>
</div>
</li>
</ul>
<ul style="text-align: left;">
<li><div style="margin-bottom: 0in;">
<i>Please Learn To Code… If You
Feel Like It</i>
<a href="http://malevolent.com/weblog/archive/2012/05/16/please-learn-to-code">http://malevolent.com/weblog/archive/2012/05/16/please-learn-to-code</a></div>
</li>
</ul>
<ul style="text-align: left;">
<li><div style="margin-bottom: 0in;">
<i>Please Learn to Think about
Abstractions</i>
<a href="http://www.hanselman.com/blog/PleaseLearnToThinkAboutAbstractions.aspx">http://www.hanselman.com/blog/PleaseLearnToThinkAboutAbstractions.aspx</a> </div>
</li>
</ul>
<ul style="text-align: left;">
<li><div style="margin-bottom: 0in;">
<i>Please Learn to Write</i>
<a href="http://www.randsinrepose.com/archives/2012/05/16/please_learn_to_write.html">http://www.randsinrepose.com/archives/2012/05/16/please_learn_to_write.html</a>
</div>
</li>
</ul>
<ul style="text-align: left;">
<li><div style="margin-bottom: 0in;">
<i>Please Understand Learning to
Code</i>
<a href="http://dave.fayr.am/posts/2012-05-15-please-understand-learning-to-code.html">http://dave.fayr.am/posts/2012-05-15-please-understand-learning-to-code.html</a></div>
</li>
</ul>
<ul style="text-align: left;">
<li><div style="margin-bottom: 0in;">
<i>The First Time I Used
Programming At Work</i>
<a href="http://justinkan.com/2012/5/15/the-first-time-i-used-programming-at-work">http://justinkan.com/2012/5/15/the-first-time-i-used-programming-at-work</a> </div>
</li>
</ul>
<ul style="text-align: left;">
<li><i>Why I Desperately Needed to Learn to Code</i>
<a href="http://influencehacks.com/why-i-desperately-needed-to-learn-to-code">http://influencehacks.com/why-i-desperately-needed-to-learn-to-code</a><br />
</li>
</ul>
<ul style="text-align: left;">
<li><div style="margin-bottom: 0in;">
<i>Why I Taught My Daughter To
Code (A Little)</i>
<a href="http://weblogs.asp.net/jgalloway/archive/2012/05/16/why-i-taught-my-daughter-to-code-a-little.aspx">http://weblogs.asp.net/jgalloway/archive/2012/05/16/why-i-taught-my-daughter-to-code-a-little.aspx</a></div>
</li>
</ul>
<ul style="text-align: left;">
<li><div style="margin-bottom: 0in;">
<i>Why Jeff Atwood is Completely
Wrong: Everyone Should Learn to Code</i>
<a href="http://www.rogerharford.com/jeff-atwood-is-wrong-everyone-should-code">http://www.rogerharford.com/jeff-atwood-is-wrong-everyone-should-code</a></div>
</li>
</ul>
<ul style="text-align: justify;">
<li><div style="margin-bottom: 0in; text-align: left;">
<i>Why learning to code is not
just a horrible trend</i>
<a href="http://www.digitaltrends.com/computing/why-learning-to-code-is-not-just-a-horrible-trend/">http://www.digitaltrends.com/computing/why-learning-to-code-is-not-just-a-horrible-trend/</a> <i> </i></div>
</li>
</ul>Edmond Kachalehttp://www.blogger.com/profile/04793536391738191498noreply@blogger.com2tag:blogger.com,1999:blog-5363518017253168837.post-4532499785584316112012-05-15T04:31:00.000-07:002012-05-15T06:12:09.241-07:00How and Why I think I am Devastated: Face of Malawi Plagiarised My Blog Post<style type="text/css">
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
A:link { so-language: zxx }
-->
</style>
<br />
<div align="CENTER" style="margin-bottom: 0in;">
<b></b></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
I was going through news
posted on <a href="http://news.ycombinator.com/">Hacker News on Y Combinator</a>. Suddenly I bumped on a link that simply said
“<a href="http://notes.unwieldy.net/post/23049725899/plagiarism"><i>Plagiarism</i></a>”, so I was curious to read it. In the article, Joshua
Gross, complained that <i>TheNextWeb</i> plagiarised his blog post entitled
<a href="http://notes.unwieldy.net/post/22958656041/the-144-146-165-button"><i>The $144,146,165 Button</i></a>. He even cited some sentences where <a href="http://thenextweb.com/shareables/2012/05/14/how-3-simple-buttons-raised-tipping-by-144-million-in-nyc-cabs/">TheNextWeb copied</a> word for word. The article shows he is very much devastated,
and I do understand now that he has a good reason why he is
devastated like that.<br />
<br />
On Friday 11 May 2012, I wrote an article about <a href="http://edceekays.blogspot.com/2012/05/malawi-and-software-localization.html"><i>How and Why I think Malawi has to Move on with Software Localization</i></a>.
I published it on that day because it was the birthday of <a href="http://borel.slu.edu/">Professor Kevin Scannell</a> of Saint Louis University, one of my friends and mentors in natural language technologies.
Prof. Scannell is the developer of <a href="http://indigenoustweets.com/">http://indigenoustweets.com/</a>, a site that collects tweets and blogs in under-represented languages. Prof. Scannell and I have
been close friends for close to 5 years now and publishing the post was
a<i> subtle way</i> (quoting his words on chat) of saying happy birthday to him. I kept the post in my
<i>Kanjedza</i> (that is the name of my laptop) since 30 April 2012 when I
conceived it.</div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
I developed the blog-post
from a comment I made on a picture on Facebook. A friend of mine, Patrick Kalamula of <a href="http://www.patkay.net/">PatKay Graphics</a>, tagged me on a graphic captioned <i>Microsoft
Mawu, </i>depicting Microsoft Word with a Chichewa interface. I was a
excited about it, a wishful thinking I may call it. I was responding
to Patrick's comment that he would not love working on a Chichewa
word processor because he finds even the Chichewa bible hard to
understand. I can actually hinted that I would just copy and
paste-blog it. You can check my comment is still there on <a href="https://www.facebook.com/photo.php?fbid=315724015164715&set=a.128400283897090.21078.100001813575194&type=1&ref=nf">Microsoft Mawu</a>.<br />
<br />
Joshua
Gross article on plagiarism made me
think twice about my blog post. I did a simple search on Google to
see how many have written something similar to what I just blogged. I was very much astounded to find that<a href="http://www.faceofmalawi.com/2012/05/why-malawi-should-to-move-on-with-software-localization/"> <i>Face of Malawi plagiarised my post</i></a>. I am have been very much
devastated too.<br />
</div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
What <i>Face of Malawi</i> have
done is just making a word for word copy-and-paste of my post. They
have not changed anything. I am sure they got it from Twitter where I
posted soon after publishing it. What they have managed to do is to
paraphrase the article title and add a picture on it. They were too
quick to plagiarise such that they copied it before I edited a few
things on it. The time I was writing this post, I could still see my silly mistakes on their post:</div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<ul>
<li><i>But language
regulatory bodies and linguists always have great concerns over the
“unsupervised growth” of terminologies. </i><span style="font-style: normal;">(I
removed quotes in this statement because the phrase </span><i>unsupervised
growth </i><span style="font-style: normal;">was italicized and I
wanted to keep formatting uniform.)</span></li>
</ul>
</div>
<ul>
<li><i>Chichewa is just 38%
(5/13 — ija, Panopa, pa, ina, yake). (</i><span style="font-style: normal;">I
left the word </span><span style="font-style: normal;"><b>Panopa</b></span><span style="font-style: normal;">
<i>titleized</i></span><i>)</i> </li>
</ul>
<i></i><br />
<ul>
<li><i>I have always argued
<b>on</b> elsewhere that it is volatile and unpredictable. (</i><span style="font-style: normal;">In
my original post, I replaced the word Twitter with elsewhere and
forgot to remove the preposition </span><span style="font-style: normal;"><b>on</b></span><i>)</i> </li>
</ul>
You will also notice that
the post on Face of Malawi is lacking some statements that I added
later on: <i> </i><br />
<ul>
<li><i>Both mean the same:
"<b>Some banks were opened long ago but they do not have a lot
of customers</b>"</i></li>
</ul>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<ul>
<li><i>The whole issue of
localization comes to a bottleneck because there seem to be a tag of
war between developers of new terminologies and users of such
terminologies. </i><i><b>Terminologists are fast developing new
terminologies when the users are not ready or willing to use them.</b></i><i>
In languages of business, terminologies easily flow in. But that
leaves other languages with the task of generating new terminologies
or risk dilution.</i><i> </i></li>
</ul>
</div>
<div align="JUSTIFY" style="font-style: normal; margin-bottom: 0in;">
They
have not asked for my permission to repost it on their site. I am a
simple blogger, they are a giant website. If you search my article on
Google, their plagiarised article is appearing on top. It may look
simple but this is distracting. My readers' traffic is technically
being detoured from my original post to theirs.</div>
<div align="JUSTIFY" style="font-style: normal; margin-bottom: 0in;">
<br />
I
think what Face of Malawi have done is not good and should not be
condoned. There are better ways of copying someone's work. They could
drop me an email, asking for permission. Of course, I have no
problems in anyone publishing my views but they should inform me
first. I am proud to see my views being cherished out there. What I
write on my blog are personal views and they cannot even defend why I
wrote the way I did, and so they have no authority to plagiarise they
way they did. <i><b>I would ask them to apologise and recognise that I wrote it first</b></i>. I am sure I have not offended anyone in publishing
this.</div>Edmond Kachalehttp://www.blogger.com/profile/04793536391738191498noreply@blogger.com3tag:blogger.com,1999:blog-5363518017253168837.post-54143550489855323772012-05-11T09:30:00.000-07:002012-05-12T02:21:50.175-07:00How and Why I think Malawi has to Move on with Software Localization<style type="text/css">
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
A:link { so-language: zxx }
-->
</style>
<br />
<div align="CENTER" style="margin-bottom: 0in;">
</div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
</div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
We are in the
technological era and the use of ICT is not news any more. Even in the
remote areas of Africa, we find someone using at least a mobile
phone. It has been argued that even <a href="http://allafrica.com/stories/201203220997.html"><i>smart phones</i> are becoming more popular in villages</a>.
This is good news, but not everyone is enjoying this to the maximum.
Let's face the reality, a larger section of villagers are not
enjoying the services that we all enjoy: blogs, social media
(WhatsApp, Twitter, Tumblr, Facebook, Skype, etc), you name them.
Most of them just know how to make and answer calls. A few more are
able to read and compose text messages, otherwise I have seen many
more that do not even know what to do when text messages come on
their phones.</div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
I have always argued in
various forums that in order to remove this language barrier,
<i>software localization</i> is one of the best alternatives to make
ICT appropriate to a target population. Localization of software
involves adapting technologies to the linguistic, cultural and
technical requirements of a target group of people. However if not
handled carefully, software localization cannot achieve its intended
purposes. One of the problems that native speakers find is to manage
the influx of new terminologies that are begging their way into the
language vocabulary. Generally, most people do not mind much about
that as far as they communicate. But language regulatory bodies and
linguists always have great concerns over the <i>unsupervised growth</i>
of terminologies.
</div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
Somehow, leaving the
terminologies to grow by themselves is very dangerous. Since a lot of
terminologies that come in are loaned, they pose a lot of threat to
the linguistic and phonological structures of the target language.
For example, in Chichewa, the term <i>banki</i> is borrowed from the
English word <i>bank</i>. The plural is <i>banki</i> or <i>mabanki, </i><span style="font-style: normal;">and it is not clear yet which is
the correct form</span>. Regular users may not necessarily think that
this is an issue, but for linguists it poses a lot of problems and
inconsistencies in trying to grammatically categorise words like
these. You may also wish to recall that Chichewa nouns affect
sentence structure because they determine the right argument markers
(called <i>agwirizanitsi </i><span style="font-style: normal;">in
Chichewa</span>) to associate with. In Chichewa noun system, the noun
<i>banki</i> belongs to class 9. Generally, class 9 plurals are in
class 10. Thus, <i>banki (sing. Class 9) => banki (pl. class 10)</i>
makes sense, while <i>banki (sing. Class 9) => mabanki (pl. class
2/class 6)</i> does not, yet it is the mostly used plural form.
Compare the markers in the following two sentences: <i>Banki </i><i><b>zi</b></i><i>na
</i><i><b>zi</b></i><i>natsegulidwa kale koma </i><i><b>zi</b></i><i>libe
anthu ambiri.</i> and <i>Mabanaki </i><i><b>e</b></i><i>na
</i><i><b>a</b></i><i>natsegulidwa kale koma </i><i><b>a</b></i><i>libe
anthu ambiri. </i>Both mean the same: "<i>Some banks were opened long ago but they do not have a lot of customers</i>"<i>) </i>This is the case with other loanwords like <i>ofesi
(office), kapu (cup) </i><span style="font-style: normal;">et cetera</span><i>.
</i>(For those that do not understand this number-based noun classification
system: the word <i>banki</i> sounds to nicely belong to <i>I-Zi</i>
class, but using <i>mabanki</i> creates a new classification, <i>I-Ma</i>,
which is ungrammatical; just as pluralizations <i>nkhuku =>
mankhuku</i> and <i>nyanja => manyanja</i> can sound very
awkward).</div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
The worst case scenario
is where the language becomes completely immersed into another
language. Look at this Chichewa sentence in youth slang: <i>Ndatrapa
ngini ija magaye. Panopa ndikudona pa nide, titchekana boboo thayimu
ina yake</i>. Chichewa is just 38% (5/13 --- <i>ija, panopa, pa, ina,
yake</i>). The rest is <i>Chinglish</i>: Chichewalised English. If we
juxtapose it with an equivalent English sentence, it can be seen that
this phrase is “skin-to-skin transliteratable” (forget about
semantics here): <i>I have trapped that thing, guys. I am downing to
my den. We will check each other some time</i>. So little by little
English is eating away our language and if anything cannot done as
soon as possible, we will lose out our beautiful language. Of course,
I have a problem with <i>youth slang</i>. I have always argued elsewhere that it is volatile and unpredictable. As such, we cannot
rely on it very much though we cannot deny the fact that it is
influencing Chichewa language in general.</div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
Linguists tell us that
language (just like any cultural element) is dynamic. We take English
as an example: In 1500-1600s, no one raised eyebrows if you spoke
like this: <i>I hath purposed to come unto thee, but was let
hitherto</i>. In this statement <i>let</i> means <i>to prevent from</i>.
But you can agree with me that the word <i>let</i> now means <i>allow</i>
as depicted in this phrase: <i>Please let me go</i>. This is exactly
opposite to the original meaning . Similarly, the word <i>gay</i>
does not carry the same meaning it used to carry some few years ago,
because it is now more associated with <i>sex orientation</i> and not
necessarily <i>excitement</i>. Chichewa has also changed overtime.
For example, Chichewa that is in the widely used bible version, <i>Buku
Lopatulika ndilo Mawu a Mulungu</i>, was translated by William
Percival Johnson in 1912 and ever since it has not been modified. (By
this, I am not referring to these parallel translations/versions:
<i>Malembo Woyera</i> or <i>Buku Loyera</i>). There are some
grammatical and semantical errors but Bible Society of Malawi is
afraid to correct them (I don't know why). Leaving that aside, 1912
Chichewa is not the same as 2012 Chichewa. Exactly 100 years have
passed and there are a lot of things that have changed about Chichewa
language. For example, 1 Timothy 3:6 is translated as Asakhale
wophunza. <i>Wophunza</i> means <i>novice</i>, but it took me time
(and age) to grasp its meaning and understand that <i>wophunza</i> is
the root for <i>wophunzira</i> (student). Nowadays, a better
translation would be <i>Asakhale wongobadwa mwatsopano (i.e. He must not be a new convert</i><i>)</i>. In
addition, in those days a <i>town</i> was called <i>mudzi</i> but
today we know it as <i>tawuni</i>, and indeed <i>tawuni</i> is not
<i>mudzi (</i><span style="font-style: normal;">village</span><i>)</i>.
Given another 100 years or so, Pure Chichewa will not be the same.</div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br />
The whole issue of
localization comes to a bottleneck because there seem to be a tag of
war between developers of new terminologies and users of such
terminologies. Terminologists are fast developing new terminologies when the users are not ready or willing to use them. In languages of business, terminologies easily flow
in. But that leaves other languages with the task of generating new
terminologies or risk dilution. However, localization when viewed
from a positive angle, it is a way of preserving a language. It is
well-known that languages from the West are mostly associated with
<i>economic influence</i> and are little by little subduing other
indigenous languages.</div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br />
In this technological
era, every language that wants to survive has to move with <i>fashion</i>.
English is fast adapting. Words like <i>mouse</i>, <i>server</i>,
<i>breadcrumbs</i>, <i>web</i> do not have same meanings as they used
to before 1960s. Similarly, words like <i>blog</i>, <i>facebook</i>
(verb), <i>google</i> (verb), <i>tweet</i> (verb) have just born now
with the invention of technology. So what is all this noise I am
trying to make? We still need translation for our languages to
survive and also for the larger section of Malawians that do not
understand English. But we need to adjust with time. The language
should retain its originality without imposing unnecessary rigour to
contemporary readers/writers.</div>Edmond Kachalehttp://www.blogger.com/profile/04793536391738191498noreply@blogger.com1tag:blogger.com,1999:blog-5363518017253168837.post-57087076672980401312011-12-03T02:35:00.000-08:002011-12-03T02:43:09.025-08:00English-Vernacular interpretation in Churches<div lang="en-GB" style="margin-bottom: 0.2in; text-align: justify;">Most people have been asking a question as to why in Malawi preachers like to preach in English/Vernacular interpretation. I know some of us also have the same question. We might be going to that church, listening to such preachings and enjoying them at times when the Holy Spirit touches our soul, but we are too perplexed by them.</div><div></div><div lang="en-GB" style="margin-bottom: 0.2in; text-align: justify;">English-to-Vernacular preaching is very common in pentecostal, charismatic, baptist or evangelical churches. Most of us have ever been asked by someone outside our faith “Why does your pastor preach in English with a vernacular interpreter?” But we have never answered them correctly because we are not sure too! However, with all the relevance we have towards men of God and the fear of pouring the wrath of God upon our life, most of us have never taken an initiative to ask our pastors why this happens like this. </div><div lang="en-GB" style="margin-bottom: 0.2in; text-align: justify;">I would like to address this question here today. I am speaking as one of the men of God who stands in front of people sharing the Word. At times I do the English/Vernacular interpretation, either as the protagonist or as the interpreter himself. I hope this will help someone out there to understand why we do English-to-Vernacular interpretation in our churches.</div><div style="text-align: justify;"></div><div lang="en-GB" style="margin-bottom: 0.2in; text-align: justify;">Before I dive into the topic, let me say that this question came from a friend in one of the forums I am affiliated to. I responded to it, then I felt that I should blog the response I gave so that it helps others too. I had to request the friend for permission to blog my response for the benefit of the multitude, lest he feels offended :-) and he gave me a go-ahead!</div><div lang="en-GB" style="margin-bottom: 0.2in; text-align: justify;">I would like also to make it clear that I am using the term <i>vernacular</i> in place of any other indigenous language that can be used for interpretation. I know in most Malawian churches it is Chichewa, but I have also found others interpreting in Chilhomwe, Chiyao and other indigenous languages. In addition, the views here also apply to other communities in the diaspora, especially in Africa, where most of the languages of business happen to be of European origin. In the same view also, the term <i>English</i> should be taken as generic for any non-indigenous “business-oriented” language. </div><div style="text-align: justify;">Sometimes, interpretation becomes complex. I recall once in my Church there came a preacher from Congo who only understood French. He came with one friend who could understand French and English. We had to do a two-state interpretation: French to English to Chichewa. It was that experience that propelled me to study French.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3Xm9pf2ubjCiHFZN1SkTySp-xmhMn6oomXZWBoiKgLu0N2XEzLB8QIPxKYKo4Ke-W5Yyk_R3EWJBQZms0lUo8rxr7CIqhIiPayXZeNnA_wSA7Ex0fP6smtLLFDyCX6PPkChS5zKcu7MSO/s1600/313804_158148230937665_100002274676000_308526_424279380_n.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3Xm9pf2ubjCiHFZN1SkTySp-xmhMn6oomXZWBoiKgLu0N2XEzLB8QIPxKYKo4Ke-W5Yyk_R3EWJBQZms0lUo8rxr7CIqhIiPayXZeNnA_wSA7Ex0fP6smtLLFDyCX6PPkChS5zKcu7MSO/s1600/313804_158148230937665_100002274676000_308526_424279380_n.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Pastor Aubrey Mwasinga (right) through a Chichewa Interpreter</td></tr>
</tbody></table></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><span style="font-size: large;"><b><i>But why English-Vernacular Interpretation in the Church?</i></b></span><br />
<br />
Generally, the choice of using a language when preaching has equally the same reasons and implications as to why we try to use English on social networks like Facebook, Skype or in an email when we know that we are addressing our fellow Malawians. </div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">In most of the pentecostal churches (just with other churches as well), <b><i>there is a great chance of finding Non-Malawian Citizens worshipping together with Malawians</i></b>. Unfortunately, because of long church services, most pentecostal churches are not fond of having double streams: English and Chichewa. </div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><i><b>Some preachers find English-vernacular interpretation providing with them some authoritative power to preach</b>.</i> They feel "possessed" by the Spirit. This might be funny to someone who does not understand the spiritual implications of it, but take it from me - they really do feel the power of God in that sense. Know that God uses us the way we often feel him. He is polymorphic: He responds to the way we come to him at different intervals.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">We should understand that <i><b>being an interpreter in a Church is also a special spiritual gift</b>.</i> St. Paul in 1 Corinthians 12 says <i>"Now, dear brothers and sisters, regarding your question about the special abilities the Spirit gives us. I don't want you to misunderstand this...</i> <i>A special gift is given to each of us as a means of helping the entire Church... Still another person is given the ability to speak in unknown languages, another is given the ability to interpret what is being said. It is the one and Only Holy Spirit who distributes these gifts. He alone decides which gift each person should have." (NLT)</i>.<br />
<br />
<b><i>Interpretation is a form of evangelism tool</i></b>. This point is very much related to the previous one. Being a spiritual gift itself, interpretation can be a blessing to the church. Many of us know English but not everyone of us can do the interpretation well. You will discover that when some people interpret, the entire church bursts into laughter: not that the interpreter is erring, but the way the interpreter makes a choice of vernacular terms to spice up the preaching makes their interpretation unique. And members do not slumber in the church as the preacher is preaching. It is a special gift. Now pastors love to leverage that skill in the church to edify the congregation.<br />
<br />
<div style="text-align: justify;"><i><b>Some preachers feel that they can articulate the points better in English</b>.</i> Maybe because their vernacular vocabulary (especially Chichewa) is not as good as that of English (in one way or the other).<i> </i>This point closely related to that of interpretation being a spiritual gift. Such preachers find that their choice of words in vernacular is not as authentic as they would love it to be. Instead, they love to make use of the gift of interpretation that exists in the church.<i><br />
</i></div></div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><b><i>Some preachers find English-Vernacular interpretation giving them better vocabulary combination</i></b>. Such preachers love to play with words to make their sermons unforgettable. They like using: </div><ul style="text-align: justify;"><li> <i>rhymes</i> e.g. "<i>Life without Christ is Crisis</i>", </li>
</ul><ul style="text-align: justify;"><li><i>backronyms</i> e.g. "Brothers, be <i>FOCUSED</i> in your faith. That is being <i>Faithfully On Christ's Unfailing Side Every Day</i>"<i> </i></li>
</ul><i></i><br />
<ul style="text-align: justify;"><li><i>puns</i> e.g. "<i>Seven 'prayerless' days make one weak.</i>" </li>
</ul><div style="text-align: justify;">One thing we should not forget is that each language has some sentence patterns and pithy expressions that sound better when said in those languages than when said in the other languages. So the combination of vernacular and English exploit the pithy expressions in these two languages. </div><div style="text-align: justify;"><br />
<b><i>Some verses are well understood if </i><i>translated directly from a particular English version.</i></b> The reason is English is indisputably the only Language with so many Bible translations. As an example, I will give you a verse that used to perplex me when I was young. I never understood them clearly till I read the English version. More importantly, I got several perspectives of the same verse from different English versions. 1Timothy 3:6 in Chichewa reads: </div><ul style="text-align: justify;"><li><i>"Asakhale </i><i><b>wophunza</b></i><i>; kuti podzitukumula umgwere mlandu wa mderekezi" (</i>From <i>Buku Lopatulika </i>version. I am not sure how it is translated in <i>Buku Loyera </i>version <i>- </i>maybe someone can provide). </li>
</ul><div style="text-align: justify;">English has several translations that can be applied differently, depending on the revelation that the Lord is trying to relay to his people: </div><ul style="text-align: justify;"><li><i>"</i><i><b>Not a novice</b></i><i>, </i><i><u>lest being lifted up with pride</u></i><i> he fall into the condemnation of the devil." (KJV)</i>, </li>
</ul><div style="text-align: justify;"></div><ul style="text-align: justify;"><li><i>"An elder </i><i><b>must not be a new Christian</b></i><i>, </i><i><u>because he might be proud of being chosen so soon</u></i><i>, and the Devil will use that pride to make him fall."</i> (NLT), </li>
</ul><div style="text-align: justify;"></div><ul style="text-align: justify;"><li>"<i>He </i><i><b>must not be a recent convert</b></i><i>, or </i><i><u>he may become conceited</u></i><i> and fall under the same judgement as the devil.</i>" (NIV)</li>
</ul><div style="text-align: justify;"></div><ul style="text-align: justify;"><li>"<i>He </i><i><b>must not be a recent convert</b></i><i>, </i><i><u>so that he won't become arrogant</u></i><i> and fall into the devil's condemnation.</i>" (ISV)</li>
</ul><div style="text-align: justify;"></div><ul style="text-align: justify;"><li>"<i><b>not a novice</b></i><i>, </i><i><u>lest being puffed up</u></i><i> he fall into the condemnation of the devil.</i>" (ASV)</li>
</ul><div style="text-align: justify;">You can notice that the different versions give additional information, some of which is hereby underlined, that when translated directly provide a better understanding than just using the vernacular version only. So pastors do use varying English translations to provide a wider understanding of the same verse with a particular emphasis to what the Lord has revealed to them as a specific need for the congregation.<br />
<br />
These are just some of the reasons that preachers have behind English-Vernacular preachings. I hope you are blessed by this and at least you know a few reasons. Next time someone asks you, you will be able to explain to them. Stay blessed!!!</div><div style="text-align: justify;"></div>Edmond Kachalehttp://www.blogger.com/profile/04793536391738191498noreply@blogger.com5tag:blogger.com,1999:blog-5363518017253168837.post-41484425698560616322011-10-10T09:05:00.000-07:002011-10-11T00:29:34.998-07:00Dart, What's that? Teascript!!<div style="text-align: justify;">In a dramatic turn of events, a year after <a href="http://gearsblog.blogspot.com/2010/02/hello-html5.html">Google announced that it has aborted Gears development in favour of HTML 5</a>, Google has released a client-based competitor for JavaScript in the name of <b>Dart</b>. Indeed, the main goal of Dart is to replace JavaScript (aka Coffeescript) as the main built-in scripting language in web browsers to try to solve JavaScript's inherent problems.<br />
<br />
In an <a href="https://gist.github.com/1208618">internal circulation</a> that was leaked out, Google says that the complex web applications that it specializes in are struggling against the JavaScript platform and working with, [JavaScript], a language that cannot be tooled and has inherent performance problems. Google also states that the future of JavaScript State of affairs for building delightful applications on the web today is far too difficult as the cyclone of innovation is increasingly moving off the web onto iOS and other closed platforms.</div><br />
Google outlined two ways to approach the JavaScript problems: <br />
<ul style="text-align: justify;"><li>either to try to evolve Javascript</li>
</ul><div></div><ul style="text-align: justify;"><li>or to push for a new language that addresses core problems in Javascript that can’t be repaired easily or quickly.</li>
</ul><div style="text-align: justify;">The “<i>evolve Javascript”</i> option is relatively low risk, but even in the best case it will take years and will be limited by fundamental problems in the language (like the existence of a single Number primitive). Javascript has historical baggage that cannot be solved without a clean break. Thus, although it’s low risk, it’s also relatively low reward.<br />
<br />
The <i>“clean break”</i> option is extremely high risk--it will be a huge challenge to convince other browser vendors to rally around a new language--but is the only way to escape the historic problems with Javascript. Thus, its high risk is matched by the potential for a very high reward--a classic leapfrog strategy.</div><div style="text-align: justify;"></div><div style="text-align: justify;"><br />
In November 2010, Google took a bold step and worked on <i>plan B</i> to conceive a new baby in the web programming world, <i><b>Dash</b></i> who was later on renamed to <i><b>Dart</b></i>. In the early hours of 10th October 2011, Google finally unveiled the newborn.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">According to <a href="http://blog.chromium.org/2011/10/dart-language-for-structured.html">an official blog post from Google</a>, <i>Lars Bak</i>, one of the tech leads of Dart Team, who also happens to be the mastermind of Chrome the browser from Google, reveals that Dart aims at:</div><div style="text-align: justify;"><ul><li> providing a <b>structured yet flexible</b> language for web programming, </li>
</ul><ul><li>bringing a <b>familiar and natural</b> feeling to programmers, thereby and making dart easy to learn. </li>
</ul><ul><li>Ensuring <b>high performance</b> on all modern web browsers and environments ranging from small handheld devices to server-side execution.</li>
</ul>Dart code can be executed either on a native virtual machine or on top of a JavaScript engine by using a compiler that translates Dart code to JavaScript. Dart is only supported on Chrome, Firefox and Safari as they are working on an Internet Explorer solution.<br />
<br />
The language and its preliminary tools available as open source on <a href="http://dartlang.org/">dartlang.org</a>. There are also rumours that they are developing a cloud-based IDE called <i><b>Brightly</b></i>, that will perhaps be the first Dart application.</div>Edmond Kachalehttp://www.blogger.com/profile/04793536391738191498noreply@blogger.com1tag:blogger.com,1999:blog-5363518017253168837.post-85245216321786088222011-10-10T08:21:00.000-07:002011-10-10T23:23:09.218-07:00Google Revolutionizes Cloud Computing<div style="text-align: justify;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrM31hCZchsB3UuOOxR052iFL1z6Ulr6159U4CIN_P-SZUVy-4MoIjD-IpwKHuxi053-6zPdrkaIZXewDIT21VRboL8hxwupwzNxcE3X8GrgZwwqzQGEdASh9IPXLg_gCRxBwOjGoe8Yqo/s1600/800px-Chrome_OS_Mario_Beta.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"> </a></div></div><div style="text-align: justify;">In an effort to revolutionize cloud computing, Google has been working on several inventions. I have a pleasure to present to you some of the stuff that has been the hit of the moment:<br />
<ul><li><b>Chromebook: Is that a laptop? </b><b> No, a gPad! </b><b>No, rather a cloudtop!</b></li>
</ul><div style="margin-left: 40px;">Some few months ago, Google introduced Chromebooks. Some of us may have already have an idea of what they are. But to be on the same pace, a <i><b>Chromebook</b></i> is a cloud-client laptop-like mobile device running Google Chrome OS. Unlike Chromium OS, which can be compiled from the downloaded source code, <i>Chrome OS only ships on specific hardware from Google's manufacturing partners</i>.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrM31hCZchsB3UuOOxR052iFL1z6Ulr6159U4CIN_P-SZUVy-4MoIjD-IpwKHuxi053-6zPdrkaIZXewDIT21VRboL8hxwupwzNxcE3X8GrgZwwqzQGEdASh9IPXLg_gCRxBwOjGoe8Yqo/s1600/800px-Chrome_OS_Mario_Beta.png" style="margin-left: auto; margin-right: auto;"><img border="0" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrM31hCZchsB3UuOOxR052iFL1z6Ulr6159U4CIN_P-SZUVy-4MoIjD-IpwKHuxi053-6zPdrkaIZXewDIT21VRboL8hxwupwzNxcE3X8GrgZwwqzQGEdASh9IPXLg_gCRxBwOjGoe8Yqo/s400/800px-Chrome_OS_Mario_Beta.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-size: x-small;">Google Chrome OS on Chromebook source <a href="http://en.wikipedia.org/wiki/Google_Chrome_OS">Wikipedia</a></span></td></tr>
</tbody></table></div><div style="margin-left: 40px;"></div><div style="margin-left: 40px;"><br />
Chromebook's user interface takes a minimalist approach, resembling that of the Chrome web browser. Since Google Chrome OS is aimed at users who spend most of their computer time on the Internet, the only application on the device is a browser incorporating a media player and a file manager.</div><div style="margin-left: 40px;"></div><div style="margin-left: 40px;"><br />
The first commercial Chromebooks for sale were announced at the Google I/O conference in May 2011 and began shipping on 15 June 2011. They are produced by Acer Inc. and Samsung. You can get more insight on the<a href="http://www.google.com/chromebook/"> Chromebook's official page</a>.</div><ul><li><b>Chrome Remote Desktop: Another Secret Viewer? OMG!</b></li>
</ul><div style="margin-left: 40px;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigjGdZDzaw-g3bTcp7mvkinmQtXPtKqk4ROSBnbYOLdxgS3rXYkitFUAxVoX3vhzHIiDN22ctS7ad2SnV6tW7cDbeeDTd3tWp06fIclQXEUjqId-oSAzDlSvmLHnS8-BHKOkjWiYnFAlpJ/s1600/Chromoting.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="275" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigjGdZDzaw-g3bTcp7mvkinmQtXPtKqk4ROSBnbYOLdxgS3rXYkitFUAxVoX3vhzHIiDN22ctS7ad2SnV6tW7cDbeeDTd3tWp06fIclQXEUjqId-oSAzDlSvmLHnS8-BHKOkjWiYnFAlpJ/s400/Chromoting.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-size: x-small;">Logging remotely from an iMac into a Windows using Chrome Remote Desktop: <i>source<a href="http://news.cnet.com/8301-30685_3-20117619-264/chrome-extension-enables-remote-computer-control/"> CNET News</a></i></span></td></tr>
</tbody></table><span id="goog_1489762204"></span><span id="goog_1489762205"></span><b><i>Chrome Remote Desktop</i></b> is an extension that allows users to remotely access another computer through the Chrome browser or a Chromebook. Released on 7 October 2011, <span id="goog_1489762204"></span><span id="goog_1489762205"></span>Chrome Remote Desktop is a browser-based equivalent of remote desktop software for conventional operating systems. It is fully cross-platform, so you can connect any two computers running Chrome browser, including Windows, Linux, iMac and Chromebooks. The extension seeks to demonstrate <i><b>chromoting</b></i>, the Chrome Remoting technology, and get feedback from users.<br />
<br />
Apparently, there are mixied reactions form users around the globe, some of whom have been posting comments on the <a href="https://chrome.google.com/webstore/detail/gbchcmhmhahfdphkhkmpfmihenigjmpp">extension's official page</a>. I am sure, this is one of the extensions that Firefox fans (like me) will be jealousy of.</div></div>Edmond Kachalehttp://www.blogger.com/profile/04793536391738191498noreply@blogger.com96tag:blogger.com,1999:blog-5363518017253168837.post-80039976987161985882011-08-03T05:56:00.000-07:002011-08-03T06:00:22.326-07:00Edmond Kachale: From Health Informatics to Enterprise Informatics<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-VPBqm17NFjuCv8D_0gl9KJ0sgr6PHa1oxixP4YGxEQZ1IxKL9o4Aam9t1j9aZ2XnmbTFm77f9XK9GJ2j7j6gQIPZKBXf178R1676tz7P-_29y1Caml5aJ8Ky1tT02NDdKlys3amd84a_/s1600/Picture1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="342" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-VPBqm17NFjuCv8D_0gl9KJ0sgr6PHa1oxixP4YGxEQZ1IxKL9o4Aam9t1j9aZ2XnmbTFm77f9XK9GJ2j7j6gQIPZKBXf178R1676tz7P-_29y1Caml5aJ8Ky1tT02NDdKlys3amd84a_/s400/Picture1.png" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;"></div><br />
<div style="text-align: justify;">My beloved readers,</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">I would like to make a few announcements:</div><ul style="text-align: justify;"><li>As some of you may have noted, I have been hired by <a href="http://www.nbsmw.com/">NBS Bank Malawi LTD</a>. Beginning from 18 July 2011, I will be working enterprise information systems for the bank. These will range from web based, through to desktop and mobile apps. These systems will provided services within the bank, cross-bank transactions as well as e-banking (e.g: online payments of services). Due to this change of interest, I will not be <i>actively</i> developing health informatics systems as I used to. However, I will still be making contributions where possible.</li>
</ul><ul style="text-align: justify;"><li>As a natural language enthusiast, I will still be developing and maintaining my natural language applications. This is one of the greatest contributions I feel I can make to the world apart from my routine businesses. As usual, I will be posting developments here to keep you updated. For those that love toying around with code, I will hosting source code for selected applications on my <a href="https://github.com/ceekays">Github</a> repository. I hope you will enjoy not only using the code but also contributing to it. </li>
</ul><ul style="text-align: justify;"><li>For obvious reasons :-), I have reduced Ruby development. Currently, I have switched to PHP and .NET. Honestly, I do not find PHP as exiting as Ruby, but the conditions have forced me to make this change. So far, I have not found a better PHP framework like Ruby on Rails (I know <a href="http://www.symfony-project.org/">Symfony</a> and <a href="http://api.cakephp.org/">CakePHP</a> are trying their best, but they haven't reached there!!). </li>
</ul><div style="text-align: justify;"> I appreciate your wonderful support in my open source development.</div>Edmond Kachalehttp://www.blogger.com/profile/04793536391738191498noreply@blogger.com1tag:blogger.com,1999:blog-5363518017253168837.post-11105048042203144022011-06-22T04:23:00.000-07:002011-06-22T04:52:46.110-07:00Meet the Lazyrussian, a hacker that played monkey tricks with Facebook for two-and-half years<div class="separator" style="clear: both; text-align: justify;"><a href="http://dygz78ls5cy51.cloudfront.net/9ce3c226523c44f58a63bf695300036b" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="http://dygz78ls5cy51.cloudfront.net/9ce3c226523c44f58a63bf695300036b" width="400" /></a></div><div style="text-align: justify;">Most of you who are reading this post may not have any knowledge as to who The Lazyrussian is. Despite that, most of you may have used his software. I was the same a few months ago. I have never thought very much about Lazyrussian until recently when I visited a homepage of one of his popular technologies and found that he announced that he has ceased developing the software and will no longer host it due to pending lawsuits from Facebook.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">He goes by the name Arthur Ariel Sabintsev but he uses to call himself The Lazyrussian or just Lazyrussian in software development circles. He is a twenty-five year-old 'May' baby. He has a combination of talents. He is an naturally born software developer who holds an undergraduate degree in Biophysics and a graduate degree in Nuclear Physics. He has never done any professional course in software development but has grown a cowboy developer since he was twelve years old.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">To his credit, Lazyrussian has developed the following free and open source tools: <a href="https://addons.mozilla.org/en-us/firefox/addon/buzz-it/">Buzz It!</a>, <a href="https://addons.mozilla.org/en-us/firefox/addon/email-this/">Email This!</a>, <a href="https://addons.mozilla.org/en-us/firefox/addon/email-yourself/">Email Yourself!</a>, MySpacePAD and <a href="http://www.photojacker.com/firefox">FacePAD/PhotoJacker</a>. On 16th June 2011, he announced on his website (<a href="http://www.sabintsev.com/">http://www.sabintsev.com</a>) that he has foregone his PhD in Physics in pursuit of his software development passion. He also mentioned that he has been hired by <a href="http://fueled.co/">Fueled</a>, a New York based software development company where he is honing his programming skills as an iOS/Android developer from 20th June 2011.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Arthur came into my limelight when I was looking for a simple tool that would help me easily download photos from Facebook when I need them. I was looking for a tool that would help me get high resolution photos, because manually downloading them was not giving me the expected quality. One day, I stumbled upon an article that described five technologies that would help me do that. I tried using all of them, but unfortunately none came closer to FacePAD. I finally fell in love with FacePAD. </div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;"><a href="https://addons.mozilla.org/en-US/firefox/addon/photojacker/">FacePAD </a>was a simple Firefox extension that would expeditiously download a single photo or an entire photo album off Facebook in few minutes. A Firefox extension is a piece of software, also referred to as an add-on or a plugin, that you can install as part your Firefox Web Browser. Lazyrussian went ahead to release FacePAD on Mozilla's Addons page for public use. On 12 January 2011, Lazyrussian announced that Facebook’s lawyers wrote him stating that he should rebrand FacePAD within 48 hours, or he would be slapped with a lawsuit. So, the developer enacted his contingency plan and <a href="http://www.photojacker.com/post/2720989342/photojacker-facepad">rebranded FacePAD as PhotoJacker</a>.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">On a sad note, Lazyrussian announced on <a href="http://www.photojacker.com/">PhotoJacker.com</a> on 27th January 2011 that he has ceased from developing the software and has removed from Mozilla because Facebook had sent him a <a href="http://www.photojacker.com/takedown">Cease & Desist notice</a> stating that PhotoJacker/FacePAD violates <a href="http://www.facebook.com/terms.php">Section 3.2 of their Statement of Rights and Responsibilities</a>. In the notice, Facebook also stated that the developer was opening himself to claims that he is facilitating copyright infringement via the download of the albums of others. The notice also advised him to build something using Facebook APIs rather than working around or contravening Facebook’s limitations, or, make a suggestion to Facebook for functionality he would like to see.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">From his two announcements (about <a href="http://www.photojacker.com/post/2720989342/photojacker-facepad">name change</a> and <a href="http://www.photojacker.com/">Cease & Desist / Facebook Takedown Notice</a>), and from the copy of Facebook's <a href="http://www.photojacker.com/takedown">Cease & Desist notice </a>that I got<i> pa Kanjedza</i> (under the palm tree), it appears that the discussion between the two parties on FacePAD had been around for a while. On the other hand, I personally noticed that Facebook had been frequently changing links to users' photos and photo albums over the past two years. The Lazyrussian kept updating his software till he got this strong warning on 26 January 2011, and finally gave up the fight on grounds that he was a full time student and he really didn't have the time to deal with this issue.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">From the word of his mouth, and indeed, from my own opinion, FacePAD was not intended to be of any evil intentions. It developed as an out-of-play alternative way for downloading photos from Facebook. Such application is technically called a <a href="http://catb.org/jargon/html/H/hacker.html">hack</a> not a <a href="http://catb.org/jargon/html/C/cracking.html">crack</a>. FacePAD was a cool tool that made use of AJAX requests, <a href="http://en.wikipedia.org/wiki/Regular_expression">regular expressions</a> and some built-in Firefox functionalities to download the photos. Facebook was extremely upset that he was able to create this photo-downloading software without using their API. Lazyrussian thinks he was getting punished for being clever. On 16 June 2011, Lazyrussian joined <a href="https://github.com/ArtSabintsev">Github</a> and decided to publish FacePAD's source code under copyleft license in an attempt to preserve it.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">It was very fascinating to see how a student hacker was making Facebook's life miserable. But Facebook also started as a student hacker's invention at Havard!</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">There goes The Lazyrussian and his controversial FacePAD!</div>Edmond Kachalehttp://www.blogger.com/profile/04793536391738191498noreply@blogger.com2tag:blogger.com,1999:blog-5363518017253168837.post-1673508808351346392011-03-21T04:29:00.000-07:002011-03-22T00:20:36.518-07:00Indigenous Tweets: The fun side of Tweeting in Your own Language<div style="text-align: justify;">The most frequently used languages in the world have so far pushed other minority languages down. Most of these frequently used languages happen to be those of the colonial masters. They tend to dominate day-to-day businesses as a result indigenous languages naturally hibernate.</div><div style="text-align: justify;"><br />
Computer scientists and linguists are trying to revive and sustain those indigenous languages that are surviving. Currently, as a way of reviving and preserving them, we have seen a lot of localization projects sprouting in an effort to push the endangered languages into the computing world. </div><div style="text-align: justify;"><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZQOe3F8sO7lxU0uRJukVAG683EDn4DA8zatdH9llOdkAdV9s1m69xeBIF9AfiTt6lVHjK-zb37qKVJK4Q-8qj0693_WHx3_eBG_heeXWGJyAb3YkNj3-WZfcgfLGzYa-S1xXUMieKCH_4/s1600/indigenous_tweets.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="243" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZQOe3F8sO7lxU0uRJukVAG683EDn4DA8zatdH9llOdkAdV9s1m69xeBIF9AfiTt6lVHjK-zb37qKVJK4Q-8qj0693_WHx3_eBG_heeXWGJyAb3YkNj3-WZfcgfLGzYa-S1xXUMieKCH_4/s400/indigenous_tweets.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><i>Chichewa page on IndeginousTweets.com</i></td></tr>
</tbody></table><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div>Localization efforts may not be effective enough unless communities themselves get involved in the process. In an effort to highlight the use of indigenous languages on the Internet, <a href="http://borel.slu.edu/">Prof. Kevin Scannell</a> has developed <a href="http://indigenoustweets.com/">IndigenousTweets.com</a> which puts together statistics of “35 plus” indigenous languages that are being used on <a href="http://twitter.com/">Twitter</a>. Launched on <a href="http://en.wikipedia.org/wiki/Saint_Patrick%27s_Day">St. Patrick's Day</a> 2011, Indigenous Tweets uses data gathered by Scannell's web-crawling application, <a href="http://borel.slu.edu/crubadan/index.html">An Crúbadán</a>, which identifies the details of minority languages being tweeted. According to a post on <a href="http://indigenoustweets.blogspot.com/">Indigenous Tweets Blog</a>, the primary aim of <a href="http://indigenoustweets.com/">indigenoustweets.com</a> is to help build online language communities through Twitter.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Prof. Scannell hopes that the site will aid speakers of indigenous and minority languages to find each other in the <i>vast sea of global languages</i> like English and French that dominate Twitter. Clicking any of the language profiles on the list takes one to a page that lists tweeters in that language with other nice indicators. </div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Beyond providing linguistic statistics, I feel Indigenous Tweets provides some new wave of <a href="http://en.wikipedia.org/wiki/Social_network">social networking</a>. People will find it more funny to tweet as much as possible in an effort to boot out friends and rank top on their language pages. I hope people will not be ashamed of tweeting in their indigenous languages. In the end, we will have more and more minority languages enjoying the cyber world just as the dominant languages do.<br />
<br />
I love Indigenous Tweets from the start. I can see myself ranking low on the <a href="http://indigenoustweets.com/ny/">Chichewa page</a>. Now, I am thinking of switching from <i>facebooking</i> to <i>tweeting</i> so that I boot out the top tweeters in my language. Lol! </div><div style="text-align: justify;"><br />
I hope that you too will enjoy tweeting in your language more than ever!</div>Edmond Kachalehttp://www.blogger.com/profile/04793536391738191498noreply@blogger.com2tag:blogger.com,1999:blog-5363518017253168837.post-5465585469688377012011-01-06T07:43:00.000-08:002011-03-22T01:44:54.018-07:00Natural Language Processing Tools for Chichewa<div style="text-align: justify;"><style type="text/css">
p { margin-bottom: 0.08in; }a:link {
</style> </div><div style="font-weight: normal; margin-bottom: 0in; text-align: justify;"><a href="http://en.wikipedia.org/wiki/Natural_language_processing">Natural language processing</a> (NLP) is an excellent discipline of computer science focusing on developing artificial intelligence systems that are able to interact with human beings in their natural languages. The expert systems so developed try to understand patterns of human languages and process the given data (text or speech) accordingly. The expert tools are very useful in various systems. For example some <i>feature/smart phones</i> are able to read the name of the caller for you as the phone rings. Other applications like word processors are able to read a big document and generate for you a summary document from it. We also have nice applications (e.g. <a href="http://translate.google.com/">Google Translate</a>) that read text in one human language and translate it into another target language. All these are products of the field of NLP.<br />
<br />
I have been working on big projects for <a href="http://en.wikipedia.org/wiki/Chewa_language">Chichewa</a>, a lingua franca for <a href="http://en.wikipedia.org/wiki/Malawi">Malawi</a> (formerly it's national language), <a href="http://en.wikipedia.org/wiki/Zambia">Zambia</a> and some parts of <a href="http://en.wikipedia.org/wiki/Mozambique">Mozambique</a> and <a href="http://en.wikipedia.org/wiki/Zimbabwe">Zimbabwe</a>. These systems are still in progress of perfection, but they currently are able to do great stuff at this stage. I am sure that the end of these projects will put Chichewa somewhere as far as NLP is concerned. I would like to share with you my experiences.</div><br />
<span style="font-size: large;">ChicMorph: A Morphological Analyzer for Chichewa Verbs</span><br />
<ul style="text-align: justify;"></ul><div style="margin-bottom: 0in; text-align: justify;">Chichewa is agglutinative in nature. One word/phrase is a combination of several <i>sub-words</i> (techinically called <i>morphemes</i>). For example <i><b>sindibweranso</b></i> (Lit: <i><b>I am not coming again)</b></i> can be broken as follows: <i><b><i><b>si(not)-ndi(I)-bwer(come)-a-nso(again). </b></i></b><i>Notice</i></i> that the "<i>a</i>" has no literal meaning. It is just a final vowel to complement <i>bwer</i>, the stem of that verb.<br />
<br />
ChicMorph takes raw Chichewa verbs, discovers and isolates the verb constituent morphemes. Some Chichewa verbs are tricky in that their roots also include subwords (<i>morphemes</i>) that are also morphemes on their own. For example, <i><b>er</b></i> is an applicaticative morpheme as in <i><b>gwera</b></i> (<i><b>gw-er-a</b></i>). But it is not a morpheme in <i><b>bwera</b></i> (hence <i><b>bw-er-a</b></i> is incorrect, but <i><b>bwer-a</b></i>). I have so far improved ChicMorph to evaluate correctly verbs with roots constituting morphemes that are also prefixal or suffixal <i>allomorphs</i> like these ones.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNZ2i3yTQ0wNQnlOGGtJ9Hqcx3VLQE_o4WpsIYqqTYnBNuvFmjdUQYBHYrYlj3c47STWrN1_msU_AeSHfnHBVSUau1aGY2noSe-rX_vySWgGIbQaZSlk10x1RueWxM6EA3tiuvMhXQ-lDa/s1600/19936_1303907390492_1014693355_30948295_1930406_n.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="226" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNZ2i3yTQ0wNQnlOGGtJ9Hqcx3VLQE_o4WpsIYqqTYnBNuvFmjdUQYBHYrYlj3c47STWrN1_msU_AeSHfnHBVSUau1aGY2noSe-rX_vySWgGIbQaZSlk10x1RueWxM6EA3tiuvMhXQ-lDa/s400/19936_1303907390492_1014693355_30948295_1930406_n.jpg" width="400" /></a></div><span style="font-size: large;"> ChicPOS: Part of Speech Tagger</span></div><ul style="text-align: justify;"></ul><div style="text-align: justify;">From August 2010, I have been working on a Chichewa part of speech tagger and it is doing great. I am hoping to make more breakthroughs in due course. Right now, chicPOS understands all Chichewa parts of speech including punctuations: </div><ul><li> <i><b>Mwana womaliza uja wa a Phiri wabwera kudzagula mchere.</b></i> (Lit: That last born child to Mr. Phiri has come to buy salt.) => <i><b>Mwana[NN] womaliza[JJ] uja[DEM] wa[IN] a[HON] Phiri[NNP] wabwera[VB] kudzagula[VB] mchere[NN] .[.]</b></i></li>
</ul><div style="text-align: justify;">Key: DEM => Demonstrative Adjective, HON => Honorific a, IN =>Preposition, JJ => Adjective, NN => Noun, NNP => Proper Noun, POSS => Possessive Adjective, PN => Pronoun, PRP => Personal Pronoun, VB => Verb.</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">ChicPOS is also able to identify proper nouns within a given phrase. Compare usage of "<i><b>Talandira</b></i>" in the following phrases:</div><ul><li> <i><u><b>Talandira</b></u></i><i><b> ndalama kuchokera kwa a Chikale. </b></i>(Lit: <u>We have received</u> money from Mr. Chikale.) => <i><b>Talandira[VB] ndalama[NN] kuchokera[VB] kwa[ASSOC] a[HON] Chikale[NNP] .[.]</b></i></li>
</ul><ul><li><i><b>Ndamuona </b></i><i><u><b>Talandira</b></u></i><i><b> akudutsa apa. </b></i>(Lit: I have seen <u>Talandira</u> passing by here.) => <i><b>Ndamuona[VB] Talandira[NNP] akudutsa[VB] apa[DEM] .[.]</b></i></li>
</ul><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4GUJjW3uc5FKT8bREPWJTy_26CKZdDf6QXWVEBhbL-v8XMBf99U8UPtgLQKThEKeUmBAnjwxGcekfSzVFrnNZTlOh2z35ibdxO5hhThUYn9u0cfmlamC40wzlsk2V4aVhTnubgu1QDbHz/s1600/Screenshot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="290" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4GUJjW3uc5FKT8bREPWJTy_26CKZdDf6QXWVEBhbL-v8XMBf99U8UPtgLQKThEKeUmBAnjwxGcekfSzVFrnNZTlOh2z35ibdxO5hhThUYn9u0cfmlamC40wzlsk2V4aVhTnubgu1QDbHz/s400/Screenshot.png" width="400" /></a></div><div class="separator" style="clear: both; text-align: justify;"></div><div style="text-align: justify;"></div><div style="text-align: justify;">ChicPOS fails to identify proper nouns in some positions, especially when they begin a sentence as in <i><b>Talandira akudutsa apa. </b></i>(Lit: Talandira is passing by here)<i><b>.</b></i> => <i><b>Talandira[VB] akudutsa[VB] apa[DEM] .[.] </b></i>(compare it with: <i><b>Akudutsa apa Talandira.</b></i> (Lit: He/She is passing by here, Talandira) => <i><b>Akudutsa[VB] apa[DEM] Talandira[NNP] .[.]</b></i>). Proper nouns are tricky even in "natural/daily conversations" looking at the way names(Proper nouns) are formed in Chichewa. Some proper names originate from verbs/verb phrases (e.g. <i><b>Talandira => </b></i>(Lit: We have received), <i><b>Kalinda-kadye</b></i> (Lit: It waits to eat)) while others from common nouns (<i><b>Chipiriro </b></i>(Patience), <i><b>Ulemu </b></i>(Politeness/Respect)). Notice that somehow ChicPOS is also correct in this special case: <i><b>Talandira akudutsa apa</b></i>. => <i><b>Talandira[VB] akudutsa[VB] apa[DEM] .[.] </b></i><b></b>The reason is since <b><i>Talandira</i></b> originates from a verb , by just changing the tone of the phrase <i><b>Talandira akudutsa apa. </b></i>will translate to <i><b>We have recieived (something) while he was passing here.</b></i>. In short, I should say I am still exploring this concept of proper nouns. </div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Right now, I have six thousand Chichewa words (thanks to <a href="http://borel.slu.edu/">Prof. Kevin Scannell </a>for compiling the initial wordlist using his <i><a href="http://borel.slu.edu/crubadan/apps.html">An Crubádan</a></i>). I am in the process of tagging them, and I will be adding some more words. A note on tags, I have tried to preserve popular tags like NN, JJ but for words that I could not find one I prioritized short forms outlined in <a href="http://www.amazon.com/Syntax-Chichewa-Cambridge-Guides/dp/0521573785">The Syntax of Chichewa</a> by Prof. Sam Mchombo. Otherwise, I generated my own. I am hoping to create a standardized form for Chichewa (and eventually for other Malawian languages). I am also looking at some similar work in Swahili and Nguni languages.</div><br />
<span style="font-size: large;">AffixGen: Chichewa Verb Generator</span><br />
<ul style="text-align: justify;"></ul><div style="text-align: justify;">In due course, I also developed a "Chichewa verb generator". It automatically generates 66082 prefixes, 2870 suffixes (using CARP [Causative-Applicative-Reciprocal-Passive] and RCAP suffix combination; in RCAP the reciprocal precedes the other suffixes as in <i><b>menyanitsa</b></i>). The suffix extension can take up to three clitics at the moment. For <i><b>each</b></i> single verb root, it generates 66082 x 2870 = 189,655,340 possible verb forms. This is awesome because if you have 10 Chichewa verb roots, you are able to generate close to <i><b>2 billion</b></i> Chichewa verbs!! Of course some of them may not be as sensible due to some semantical encodings behind them (compare <i><b>menya</b></i> and <i><b>bwera</b></i> => <i><b>akuzimenyanitsa</b></i> vs <i><b>akuzibweranitsa</b></i>.) I am still working on this. I would like to collect all(?????) verb roots (Ha!Ha!Ha! if I can manage) and isolate them accordingly so that such funny combinations do not occur any more, or at least the error rate is reduced drastically. Right now I have 500 verb roots and the system is able to generate 94,827,670,000 (94 Billion) verbs!!!!</div><div style="text-align: justify;"><br />
</div>I am using AffixGen output to build plugins for Hunspell spellchecker, and I have so far created two plugins, one for Firefox and another for OpenOffice (It is available online on <a href="http://extensions.services.openoffice.org/en/project/chicspell" target="_blank">Openoffice.org website</a>. Of course, the online one is not up to date yet).<span style="font-size: large;"> </span><br />
<br />
<span style="font-size: large;">ChiVisualize: Dynamic Visualization Tool of Chichewa Phrase Structures</span><br />
<ul style="text-align: justify;"></ul><div style="margin-bottom: 0in; text-align: justify;">In line with ChicPOS, I am creating a visualization tool for Chichewa phrase structures. This is another great art work that I have ventured into. ChiVisualize text tagged phrases and build a syntax tree as in the following example:<br />
<i><b>Mkango[NN] uja[DEM] ukuba[VB] mikanda[NN] yanu[POSS]</b></i> (That lion is stealing your beads.)<br />
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdxmwxkkXxXcUdMODMCdt0Zz8Q5EH8fVVXjjQ0wwl_2aOqdFM1jS-HgSfE0o_jEOA7Q7uxZ2llbAd35GSL4MGem6mxscVwdcXpFQD4KphEAoYmAzSkUVJ-fiAfMawr8qCBX6Qq6RnBX0Zp/s1600/Screenshot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="252" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdxmwxkkXxXcUdMODMCdt0Zz8Q5EH8fVVXjjQ0wwl_2aOqdFM1jS-HgSfE0o_jEOA7Q7uxZ2llbAd35GSL4MGem6mxscVwdcXpFQD4KphEAoYmAzSkUVJ-fiAfMawr8qCBX6Qq6RnBX0Zp/s400/Screenshot.png" width="400" /></a></div><div class="separator" style="clear: both;"></div>The syntax tree is interactive and dynamic. You can change the orientation in four directions: top, bottom, left and right. You can also emphasize on a particular level in any of the sub-trees. The system is able to "virtually" simulate the all six Chichewa phrase structures: SVO, SOV, VSO, VOS, OVS and OSV. ChiVisualize uses <a href="http://thejit.org/">JavaScript InfoVis Toolkit</a> to create these interactive visualization.<br />
<br />
ChiVisualize is still in its formative stages. Right now, the tagged text is processed into a base phrase structure (as defined by Chomsky's Minimalist Theory/Program) manually and given to ChiVisualize for syntax tree generation. Currently, I am working on an algorithm that will be able to automatically generate a Base Phrase Structure for given tagged text.<br />
<br />
Later on, I will combine ChicPOS, ChicMorph and ChiVisualize into one application. With the new system, one will just be giving it a "normal" Chichewa Phrase and it will be doing all the processing itself. ChicPOS will be generating tagged text and give it to ChiVusualize for visualization. On the other hand, ChicMorph will produce extra morphological constraints that will be displayed when one emphasizes on a certain phrase constituent in a given syntax tree. I will also add a transformational-generative grammar parser that will be able to resolve matching of argument markers to their respective nominals if present in a given phrase. Of course, I am aware of ambiguities resulting from free word ordering and NPs from same classes as depicted in the following: <i><b>Galimoto ng'ombe yayigunda</b></i> (galimoto => car, ng'ombe => cow, yayigunda => 'has hit'). (which one hit the other here? FYI: <i>galimoto</i> and <i>ng'ombe</i> fall in the same noun class). One way will be to leave it strictly non-configurational such that the phrase will be illustrated as <i>S = NP + NP + V </i>(or any of its combinations, without a VP). But I'll cross the bridges when I'll come to them :-), :-).<br />
<br />
By the end of everything, I would like to build a head-driven phrase structure grammar checker for Chichewa. This will be useful not only in linguistics, but also in real-world applications like word processing software.</div>Edmond Kachalehttp://www.blogger.com/profile/04793536391738191498noreply@blogger.com7tag:blogger.com,1999:blog-5363518017253168837.post-45928415961648976622010-08-12T06:48:00.000-07:002010-08-13T04:01:47.915-07:00Printing HTML Documents Using Customised CSS and JavaScript<div lang="en-GB">Recently, I was working on some Ruby on Rails project where users wanted to be able to print nice reports. I should admit that the gem solutions I found that time disappointed me because:</div><ul><li> Most required a lot of time to understand than I had to make them work. </li>
<li> Some solutions required extra gems (and plugins) that I could not get because of usual gem error: <i>ERROR: could not find gem XXX locally or in a repository!</i> </li>
</ul><div lang="en-GB">One interesting fact was that the users had a defined report format which they wanted both screen layouts and printouts to be modelled from! An additional challenge was that the application was developed for use on a mouseless touchscreen computer that always open the browser in fullscreen mode. So, it would be difficult to manually select the Print command on the File menu of the browser. So after making a some Internet research, I got several solutions that I integrated to come up with mine that addresses the users' need. I present the solution here in a tutorial format so that it is easy to follow. </div><ol><li> <span style="font-size: large;">Document Layout</span> </li>
</ol><div align="LEFT" lang="en-GB">Let us create a simple-and-easy-to-follow report layout using HTML tags as follows:<br />
<span style="color: #198a8a;"><span style="font-family: FreeMono,monospace;"><span style="font-size: x-small;"> </span></span></span><br />
<div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0in;"><span style="color: #198a8a; font-size: small;"><html> </span> </div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0in;"><span style="color: #198a8a; font-size: small;"> <head> </span> </div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0in;"><span style="color: #198a8a; font-size: small;"> </span><span style="font-size: small;"><span style="color: #198a8a;"><title></span><span style="color: black;">The Application Name</span><span style="color: #198a8a;"></title> </span></span> </div><div lang="en-GB" style="background: none repeat scroll 0% 0% rgb(192, 192, 192); font-family: FreeMono,monospace; margin-bottom: 0in;"><span style="color: #198a8a; font-size: small;"> </span><span style="font-size: small;"><span style="color: #198a8a;"><script </span><span style="color: black;">src=</span><span style="color: #00ae00;">"/javascripts/report_printer.js"</span><span style="color: #198a8a;"> </span><span style="color: black;">type=</span><span style="color: #00ae00;">"text/javascript"</span><span style="color: #198a8a;">> </script> </span></span> </div><div lang="en-GB" style="background: none repeat scroll 0% 0% rgb(192, 192, 192); font-family: FreeMono,monospace; margin-bottom: 0in;"><span style="color: #198a8a; font-size: small;"> </span><span style="font-size: small;"><span style="color: #198a8a;"><link </span><span style="color: black;">href=</span><span style="color: #00ae00;">"/stylesheets/report.css"</span><span style="color: #198a8a;"> </span><span style="color: black;">media=</span><span style="color: #00ae00;">"screen"</span><span style="color: #198a8a;"> </span><span style="color: black;">rel=</span><span style="color: #00ae00;">"stylesheet"</span><span style="color: #198a8a;"> </span><span style="color: black;">type=</span><span style="color: #00ae00;">"text/css"</span><span style="color: #198a8a;"> /></span></span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0in;"><span style="color: #198a8a; font-size: small;"> </span><span style="color: #198a8a; font-size: small;"></head> </span> </div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0in;"><span style="color: #198a8a; font-size: small;"> </span><span style="color: #198a8a; font-size: small;"><body></span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0in;"><span style="color: #198a8a; font-size: small;"> </span><span style="font-size: small;"><span style="color: #198a8a;"><div</span> id=<span style="color: green;">"report"</span><span style="color: #198a8a;">></span> </span> </div><div lang="en-GB" style="background: none repeat scroll 0% 0% rgb(192, 192, 192); font-family: FreeMono,monospace; margin-bottom: 0in;"><span style="color: #198a8a; font-size: small;"> </span><span style="color: #198a8a; font-size: small;"> </span><span style="color: #198a8a; font-size: small;"><div</span><span style="font-size: small;"> id=</span><span style="color: green; font-size: small;">"metaData"</span><span style="font-size: small;"> onclick=</span><span style="color: green; font-size: small;">"javascript:printContent('document');" </span><span style="font-size: small;">style=</span><span style="color: green; font-size: small;">"float: right;"</span><span style="font-size: small;">></span></div><div lang="en-GB" style="background: none repeat scroll 0% 0% rgb(192, 192, 192); font-family: FreeMono,monospace; margin-bottom: 0in;"><span style="color: #198a8a; font-size: small;"> </span><span style="color: #198a8a; font-size: small;"> </span><span style="color: #198a8a; font-size: small;"> </span><span style="color: #198a8a; font-size: small;"><a> Print Report<span style="color: #198a8a;"></a></span></span></div><div lang="en-GB" style="background: none repeat scroll 0% 0% rgb(192, 192, 192); font-family: FreeMono,monospace; margin-bottom: 0in;"><span style="color: #198a8a; font-size: small;"> </span><span style="color: #198a8a; font-size: small;"> </span><span style="color: #198a8a; font-size: small;"></div></span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0in;"><span style="color: #198a8a; font-size: small;"> </span><span style="color: #198a8a; font-size: small;"> </span><span style="font-size: small;"><span style="color: #198a8a;"><div</span> id=<span style="color: green;">"document"</span><span style="color: #198a8a;">></span></span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0in;"><span style="color: #198a8a; font-size: small;"> </span><span style="color: #198a8a; font-size: small;"> </span><span style="color: #198a8a; font-size: small;"> </span><span style="font-size: small;"><span style="color: #198a8a;"><div</span> id=<span style="color: green;">"reportHeader"</span><span style="color: #198a8a;">></span> Organization Name <span style="color: #198a8a;"></div></span></span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0in;"><span style="color: #198a8a; font-size: small;"> </span><span style="color: #198a8a; font-size: small;"> </span><span style="color: #198a8a; font-size: small;"> </span><span style="font-size: small;"><span style="color: #198a8a;"><div</span> id=<span style="color: green;">"reportSubHeader"</span><span style="color: #198a8a;">></span> Report Name and/or Description <span style="color: #198a8a;"></div></span></span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0in;"><span style="color: #198a8a; font-size: small;"> </span><span style="color: #198a8a; font-size: small;"> </span><span style="color: #198a8a; font-size: small;"> </span><span style="font-size: small;"><span style="color: #198a8a;"><div</span> id=<span style="color: green;">"dataTable"</span><span style="color: #198a8a;">></span></span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0in;"><span style="font-size: small;"><a href="http://www.blogger.com/post-create.g?blogID=5363518017253168837" name="line1"></a></span><span style="color: #198a8a; font-size: small;"> </span><span style="color: #198a8a; font-size: small;"> </span><span style="color: #198a8a; font-size: small;"> </span><span style="color: #198a8a; font-size: small;"> </span><span style="font-size: small;"><i><!-- the data table is placed here --> </i></span> </div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0in;"><span style="color: #198a8a; font-size: small;"> </span><span style="color: #198a8a; font-size: small;"> </span><span style="color: #198a8a; font-size: small;"> </span><span style="color: #198a8a; font-size: small;"><i></div></i></span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0in;"><span style="color: #198a8a; font-size: small;"> </span><span style="color: #198a8a; font-size: small;"> </span><span style="color: #198a8a; font-size: small;"></div></span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0in;"><span style="color: #198a8a; font-size: small;"> </span><span style="color: #198a8a; font-size: small;"></div></span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0in;"><span style="color: #198a8a; font-size: small;"></body></span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0in;"><span style="color: #198a8a; font-size: small;"></html> </span> </div></div><div style="margin-bottom: 0in;"><span lang="en-GB">Linked to this file is a standalone CSS file, </span><span style="font-family: FreeMono,monospace;"><span lang="en-GB">report.css</span></span><span lang="en-GB">, that contains CSS definitions for each of the div ids and classes. In this example, the CSS file is placed in </span><span style="font-family: FreeMono,monospace;"><span lang="en-GB">stylesheets</span></span><span lang="en-GB"> sub-directory. The </span><span style="font-family: FreeMono,monospace;"><span lang="en-GB">metaData</span></span><span lang="en-GB"> div contains a </span><span lang="en-GB"><i>hyper-linked button</i></span><span lang="en-GB"> for printing the report. The </span><span style="font-family: FreeMono,monospace;"><span lang="en-GB">metaData</span></span><span lang="en-GB"> div customizes the </span><span lang="en-GB">hyper-link </span><span lang="en-GB">to a button. This div is significant to the whole printing process as we will see in a moment.</span></div><ol start="2"><li> <span style="font-size: large;">Adding Printing Functionality using JavaScript</span> </li>
</ol><div lang="en-GB">With the CSS, everything looks nice on the screen. However, there are two problems:</div><ol type="i"><li> The Print command on the File menu produces clumsy output. </li>
<li>It would be difficult to manually select the Print command on the File menu of the browser since the application is developed for use on a mouseless touchscreen computer that always open the browser in fullscreen mode. </li>
</ol><div lang="en-GB">In order to print, we create a transitional pop-up window that opens upon clicking print button and closes after the printing action completes, whether successfully or not. All this pop-up window does is initiate an onload action via <span style="font-family: FreeMono,monospace;">print_win()</span> function. This is a simple Javascript function that uses the default DOM <span style="font-family: FreeMono,monospace;">print()</span>and <span style="font-family: FreeMono,monospace;">close()</span> functions to print and close respectively. Here is the <span style="font-family: FreeMono,monospace;">print_win()</span> function:</div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> <span style="color: red;">function</span> print_win(){</span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;"> </span><span style="font-size: small;"> </span><span style="font-size: small;">window.print();</span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;"> </span><span style="font-size: small;"> </span><span style="font-size: small;">window.close();</span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;"> }</span></div><div lang="en-GB">Now we let Javascript create and destroy the pop-up window. This Javascript is invoked upon clicking the print button defined in <span style="font-family: FreeMono,monospace;">metaData</span> div. The pop-up window will get its data from the innerHTML of the element whose id is passed as argument to <span style="font-family: FreeMono,monospace;">printContent()</span>function. This implies we have to make sure that all data that we would like to be printed is placed in the right div, otherwise any data outside it will not be printed. In our example, the data is placed in the <span style="font-family: FreeMono,monospace;">document</span> div. </div><div lang="en-GB">We should also remember that since <span style="font-family: FreeMono,monospace;">print_win()</span> function belongs to the pop-up window, it will be embedded within the <i>outer Javascript</i> that creates the pop-up window. We place our code in <span style="font-family: FreeMono,monospace;">report_printer.js</span> in the <span style="font-family: FreeMono,monospace;">javascripts</span> sub-directory. Here is the code that does it all:</div><div lang="en-GB" style="margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-family: FreeMono,monospace;"><span style="font-size: x-small;"><span style="font-family: FreeMono,monospace; font-size: small;"><span style="color: red;">function</span> printContent(id){</span></span></span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> <span style="color: red;"><span style="font-family: FreeMono,monospace;">var</span></span></span><span style="font-family: FreeMono,monospace;"><span style="font-size: x-small;"><span style="font-family: FreeMono,monospace; font-size: small;"><span style="color: red;"> </span></span></span></span><span style="font-size: small;">data = document.getElementById(id).innerHTML;</span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;"><span style="color: red;"><span style="font-family: FreeMono,monospace;">var</span></span></span><span style="font-family: FreeMono,monospace;"><span style="font-size: x-small;"><span style="font-family: FreeMono,monospace; font-size: small;"><span style="color: red;"> </span></span></span></span><span style="font-size: small;">popupWindow = window.open(</span><span style="font-size: small;"><span style="color: green;">''</span></span><span style="font-size: small;">,</span><span style="font-size: small;"><span style="color: green;">'printwin'</span></span><span style="font-size: small;">,</span><br />
<span style="font-size: small;"> </span><span style="font-size: small;"><span style="color: #38761d;"></span></span><span style="font-size: small;"><span style="color: green;">'left=100,top=100,width=400,height=400'</span>);</span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;"> popupWindow.document.write(</span><span style="font-size: small;"><span style="color: green;">'<HTML>\n<HEAD>\n'</span></span><span style="font-size: small;">);</span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;"> popupWindow.document.write(</span><span style="font-size: small;"><span style="color: green;">'<TITLE></TITLE>\n'</span></span><span style="font-size: small;">);</span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;"> popupWindow.document.write(</span><span style="font-size: small;"><span style="color: green;">'<URL></URL>\n'</span></span><span style="font-size: small;">);</span><br />
<span style="font-size: small;"> </span><span style="font-size: small;">popupWindow.document.write(</span><span style="font-size: small;"><span style="color: green;">'<script>\n'</span></span><span style="font-size: small;">);</span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;">popupWindow.document.write(</span><span style="font-size: small;"><span style="color: green;">'function print_win(){\n'</span></span><span style="font-size: small;">);</span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;"> popupWindow.document.write(</span><span style="font-size: small;"><span style="color: green;">'\nwindow.print();\n'</span></span><span style="font-size: small;">);</span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;"> popupWindow.document.write(</span><span style="font-size: small;"><span style="color: green;">'\nwindow.close();\n'</span></span><span style="font-size: small;">);</span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;"> popupWindow.document.write(</span><span style="font-size: small;"><span style="color: green;">'}\n'</span></span><span style="font-size: small;">);</span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;"> popupWindow.document.write(</span><span style="font-size: small;"><span style="color: green;">'<\/script>\n'</span></span><span style="font-size: small;">);</span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;"> popupWindow.document.write(</span><span style="font-size: small;"><span style="color: green;">'</HEAD>\n'</span></span><span style="font-size: small;">);</span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;"> popupWindow.document.write(</span><span style="font-size: small;"><span style="color: green;">'<BODY onload="print_win()">\n'</span></span><span style="font-size: small;">);</span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;"> popupWindow.document.write(data);</span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;"> popupWindow.document.write(</span><span style="font-size: small;"><span style="color: green;">'</BODY>\n'</span></span><span style="font-size: small;">);</span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;"> popupWindow.document.write(</span><span style="font-size: small;"><span style="color: green;">'</HTML>\n'</span></span><span style="font-size: small;">);</span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;"> popupWindow.document.close();</span><br />
<span style="font-size: small;"> }</span></div><div lang="en-GB">Our application is ready for printing. Try printing your document using the print button.</div><ol start="3"><li> <span style="font-size: large;">Improving the Output </span> <br />
</li>
</ol><div style="margin-bottom: 0in;">Trying to print the document shows that the data is rightly captured but not well structured as required. Let us add <span style="font-family: FreeMono,monospace;">report.css </span>to the pop-up window in <span style="font-family: FreeMono,monospace;">print</span> mode using some Javascript code. We modify and add a simple statement in our Javascript code: <span style="font-family: FreeMono,monospace;"><span style="font-size: small;">popupWindow.document.write(</span></span><span style="font-size: small;"><span style="color: green; font-family: FreeMono,monospace;">"<link href='/stylesheets/report.css' media='print' rel='stylesheet' type='text/css' />\n"</span></span><span style="font-family: FreeMono,monospace;"><span style="font-size: small;">); </span></span>We also add a dummy line that formats the screen layout of document on the pop-up window so that it looks better. Notice that the line is similar to the previous one except that we specify the <span style="font-family: FreeMono,monospace;">media</span> as <span style="font-family: FreeMono,monospace;">screen</span>. Our function now looks like this:</div><br />
<div lang="en-GB" style="margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-family: FreeMono,monospace;"><span style="font-size: x-small;"><span style="font-family: FreeMono,monospace; font-size: small;"><span style="color: red;">function</span> printContent(id){</span></span></span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;"><span style="color: red;"><span style="font-family: FreeMono,monospace;">var</span></span></span><span style="font-family: FreeMono,monospace;"><span style="font-size: x-small;"><span style="font-family: FreeMono,monospace; font-size: small;"><span style="color: red;"> </span></span></span></span><span style="font-size: small;">data = document.getElementById(id).innerHTML;</span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;"><span style="color: red;"><span style="font-family: FreeMono,monospace;">var</span></span></span><span style="font-family: FreeMono,monospace;"><span style="font-size: x-small;"><span style="font-family: FreeMono,monospace; font-size: small;"><span style="color: red;"> </span></span></span></span><span style="font-size: small;"> popupWindow = window.open(</span><span style="font-size: small;"><span style="color: green;">''</span></span><span style="font-size: small;">,</span><span style="font-size: small;"><span style="color: green;">'printwin'</span></span><span style="font-size: small;">,</span><br />
<span style="font-size: small;"> </span><span style="font-size: small;"><span style="color: green;">'left=100,top=100,width=400,height=400'</span>);</span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;"> popupWindow.document.write(</span><span style="font-size: small;"><span style="color: green;">'<HTML>\n<HEAD>\n'</span></span><span style="font-size: small;">);</span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;"> popupWindow.document.write(</span><span style="font-size: small;"><span style="color: green;">'<TITLE></TITLE>\n'</span></span><span style="font-size: small;">);</span><br />
<span style="font-size: small;"> </span><span style="font-size: small;"> popupWindow.document.write(</span><span style="font-size: small;"><span style="color: green;">'<URL></URL>\n'</span></span><span style="font-size: small;">);</span></div><div style="background: none repeat scroll 0% 0% rgb(192, 192, 192); margin-bottom: 0.015in;"><span style="font-family: FreeMono,monospace;"><span style="font-size: small;"> popupWindow.document.write(</span></span><span style="font-size: small;"><span style="color: green; font-family: FreeMono,monospace;">"<link href='/stylesheets/report.css' media='print' rel='stylesheet' type='text/css' />\n"</span></span><span style="font-family: FreeMono,monospace;"><span style="font-size: small;">);</span></span><br />
<span style="font-family: FreeMono,monospace;"><span style="font-size: small;"> popupWindow.document.write(</span></span><span style="font-size: small;"><span style="color: green; font-family: FreeMono,monospace;">"<link href='/stylesheets/report.css' media='screen' rel='stylesheet' type='text/css' />\n"</span></span><span style="font-family: FreeMono,monospace;"><span style="font-size: small;">);</span></span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;">popupWindow.document.write(</span><span style="font-size: small;"><span style="color: green;">'<script>\n'</span></span><span style="font-size: small;">);</span><br />
<span style="font-size: small;"> </span><span style="font-size: small;">popupWindow.document.write(</span><span style="font-size: small;"><span style="color: green;">'function print_win(){\n'</span></span><span style="font-size: small;">);</span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;"> popupWindow.document.write(</span><span style="font-size: small;"><span style="color: green;">'\nwindow.print();\n'</span></span><span style="font-size: small;">);</span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;"> popupWindow.document.write(</span><span style="font-size: small;"><span style="color: green;">'\nwindow.close();\n'</span></span><span style="font-size: small;">);</span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;"> popupWindow.document.write(</span><span style="font-size: small;"><span style="color: green;">'}\n'</span></span><span style="font-size: small;">);</span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;"> popupWindow.document.write(</span><span style="font-size: small;"><span style="color: green;">'<\/script>\n'</span></span><span style="font-size: small;">);</span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;"> popupWindow.document.write(</span><span style="font-size: small;"><span style="color: green;">'</HEAD>\n'</span></span><span style="font-size: small;">);</span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;"> popupWindow.document.write(</span><span style="font-size: small;"><span style="color: green;">'<BODY onload="print_win()">\n'</span></span><span style="font-size: small;">);</span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;"> popupWindow.document.write(data);</span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;"> popupWindow.document.write(</span><span style="font-size: small;"><span style="color: green;">'</BODY>\n'</span></span><span style="font-size: small;">);</span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;"> popupWindow.document.write(</span><span style="font-size: small;"><span style="color: green;">'</HTML>\n'</span></span><span style="font-size: small;">);</span></div><div lang="en-GB" style="font-family: FreeMono,monospace; margin-bottom: 0.02in;"><span style="font-size: small;"> </span><span style="font-size: small;"> popupWindow.document.close();</span><br />
<span style="font-size: small;"> }</span></div><div style="margin-bottom: 0in;"><br />
<div>We have finished successfully. Your application should be able to produce documents that are as nice as your original screen versions. You can print directly or to files, whether PDF, PostScript, etc.<br />
<br />
<i>Happy coding!!</i> </div></div>Edmond Kachalehttp://www.blogger.com/profile/04793536391738191498noreply@blogger.com104tag:blogger.com,1999:blog-5363518017253168837.post-42396764504806161272010-04-27T02:38:00.000-07:002010-04-27T04:10:20.716-07:00Javascript Functions for Prototypers<div style="text-align: justify;">I have been working on a a web-based project for sometime now. Because of the diverse requirements on the system, I was required to have as many interactions with the users' data from a client-side point of view. I could not find inbuilt functions that could solve my problems. So I was compelled to extend the String object so as to suit my needs.
<br />
<br />I should admit that they may not be all that robust to take pride in, but they are able to do what I wanted any way! I believe that there exists someone like me, looking for same (if not similar) functions and probably they are tired with <span style="font-style: italic;">googling</span>. There might also be some who are working on some standardized library and may have been thinking of functions likes these. I guess this will be a starting point for both.
<br />
<br />I have tried to make them very simple (simple in all senses) and straightforward, but if you have questions, keep them flowing. We are here to help each other. Constructive criticisms and suggestions are surely welcome!!
<br />
<br /><span style="color: rgb(0, 153, 0); font-style: italic;">Programming hint: In each of these functions, You can improve the split functions to make comparisons using regular expression matching</span>
<br />
<br /><ol><li><span style="font-weight: bold;font-size:100%;" id="code" stlye="color:black;" >contains() function</span></li><span id="code" stlye="color:black;"><span style="font-size:85%;"><span style="font-style: italic; color: rgb(102, 102, 102);">/* checks for the presence of a substring in a given string of</span>
<br /><span style="font-style: italic; color: rgb(102, 102, 102);"> * semi-colon separated substrings.</span>
<br /><span style="font-style: italic; color: rgb(102, 102, 102);"> * it returns 'true' if found, otherwise it returns 'false'</span>
<br /><span style="font-style: italic; color: rgb(102, 102, 102);"> *</span>
<br /><span style="font-style: italic; color: rgb(102, 102, 102);"> * for example :</span>
<br /><span style="font-style: italic; color: rgb(102, 102, 102);"> * 1. ["programming;in;javascript;is;cool"].contains("javascript") => true</span>
<br /><span style="font-style: italic; color: rgb(102, 102, 102);"> * 2. ["programming;in;javascript;is;cool"].contains("java") => false</span>
<br /><span style="font-style: italic; color: rgb(102, 102, 102);"> *</span>
<br /><span style="font-style: italic; color: rgb(102, 102, 102);"> * TO DO: ADD HANDLING OF 'SPACE' SEPARATED SUBSTRINGS</span>
<br /><span style="font-style: italic; color: rgb(102, 102, 102);"> *</span>
<br /><span style="font-style: italic; color: rgb(102, 102, 102);"> */</span>
<br /><span style="color: rgb(0, 153, 0);">String</span>.prototype.contains = <span style="color: rgb(255, 102, 0);">function</span> (substring) {
<br />
<br /><span style="color: rgb(255, 102, 0);"> var</span> array_of_strings = <span style="color: rgb(255, 102, 0);">this</span>.split(<span style="color: rgb(0, 0, 153);">';'</span>);
<br />
<br /><span style="color: rgb(255, 102, 0);">if</span> (jQuery.inArray(substring, array_of_strings)>= <span style="color: rgb(153, 0, 0);">0</span>) {
<br /><span style="color: rgb(255, 102, 0);">return</span> <span style="color: rgb(153, 0, 0);">true</span>;
<br />}
<br /><span style="color: rgb(255, 102, 0);"> else </span>{
<br /><span style="color: rgb(255, 102, 0);">return</span> <span style="color: rgb(153, 0, 0);">false</span>;
<br />}
<br />}</span></span><li><span style="font-weight: bold;">capitalize() function</span></li><div style="text-align: left;"><span style="color: rgb(0, 255, 0);font-size:85%;" ><span style="font-style: italic; color: rgb(153, 153, 153);">/* capitalizes a given string</span>
<br /><span style="font-style: italic; color: rgb(153, 153, 153);">* Author: Edmond Kachale</span>
<br /><span style="font-style: italic; color: rgb(153, 153, 153);">* for example :</span>
<br /><span style="font-style: italic; color: rgb(153, 153, 153);">* "ProGraMming Is CooL".capitalize() => "Programming is cool"</span>
<br /><span style="font-style: italic; color: rgb(153, 153, 153);">*/</span>
<br />String</span><span style="font-size:85%;">.prototype.capitalize = </span><span style="color: rgb(255, 66, 14);font-size:85%;" >function</span><span style="font-size:85%;">(){
<br /></span> <span style="color: rgb(255, 66, 14);font-size:85%;" >var</span><span style="font-size:85%;"> </span><span style="font-size:85%;">capitalize</span><span style="font-size:85%;">d_string = </span><span style="color: rgb(255, 66, 14);font-size:85%;" >new</span><span style="font-size:85%;"> </span><span style="color: rgb(0, 255, 0);font-size:85%;" >Array</span><span style="font-size:85%;">();
<br />
<br /></span> <span style="font-size:85%;"> </span><span style="color: rgb(255, 66, 14);font-size:85%;" >if</span><span style="font-size:85%;">((</span><span style="color: rgb(255, 66, 14);font-size:85%;" >this</span><span style="font-size:85%;">.</span><span style="color: rgb(255, 51, 51);font-size:85%;" >length</span><span style="font-size:85%;">> </span><span style="color: rgb(255, 51, 51);font-size:85%;" >0</span><span style="font-size:85%;">)){
<br /></span> <span style="font-size:85%;">capitalize</span><span style="font-size:85%;">d_string.push(</span><span style="color: rgb(255, 66, 14);font-size:85%;" >this</span><span style="font-size:85%;">[</span><span style="color: rgb(255, 51, 51);font-size:85%;" >0</span><span style="font-size:85%;">].toUpperCase());
<br /></span><span style="font-size:85%;">capitalize</span><span style="font-size:85%;">d_string.push(</span><span style="color: rgb(255, 66, 14);font-size:85%;" >this</span><span style="font-size:85%;">.substring(1,</span><span style="color: rgb(255, 66, 14);font-size:85%;" >this</span><span style="font-size:85%;">.</span><span style="color: rgb(255, 51, 51);font-size:85%;" >length</span><span style="font-size:85%;">).toLowerCase());</span> <span style="font-size:85%;"> </span><span style="color: rgb(255, 66, 14);font-size:85%;" >
<br />
<br />return</span><span style="font-size:85%;"> </span><span style="font-size:85%;">capitalize</span><span style="font-size:85%;">d_string.join(</span><span style="color: rgb(0, 255, 0);font-size:85%;" >""</span><span style="font-size:85%;">);
<br /></span> <span style="font-size:85%;"> }
<br /></span> <span style="color: rgb(255, 66, 14);font-size:85%;" >else</span><span style="font-size:85%;">{</span> <span style="color: rgb(255, 66, 14);font-size:85%;" >
<br />return</span><span style="font-size:85%;"> </span><span style="color: rgb(255, 66, 14);font-size:85%;" >this</span><span style="font-size:85%;">;</span> <span style="font-size:85%;">
<br />}
<br /></span> <span style="font-size:100%;"><span style="font-size:85%;">}</span>
<br /></span> <span style="color: rgb(0, 255, 0);font-size:100%;" >
<br /></span><li><span style="font-weight: bold;">titleize() function</span></li>
<br />This function depends on capitalize() function above
<br /><span style="font-style: italic; color: rgb(153, 153, 153);font-size:85%;" >
<br />/* "titleizes" a given string
<br />* Author: Edmond Kachale
<br />* for example :
<br />* "Programming is cool".titleize() => "Programming Is Cool"
<br />*/</span>
<br /><span style="color: rgb(0, 255, 0);font-size:85%;" >String</span><span style="font-size:85%;">.prototype.titleize = </span><span style="color: rgb(255, 66, 14);font-size:85%;" >function</span><span style="font-size:85%;">(){</span> <span style="color: rgb(255, 66, 14);font-size:85%;" >
<br />var</span><span style="font-size:85%;"> titleized_string = </span><span style="color: rgb(255, 66, 14);font-size:85%;" >new</span><span style="font-size:85%;"> </span><span style="color: rgb(0, 255, 0);font-size:85%;" >Array</span><span style="font-size:85%;">();</span> <span style="color: rgb(255, 66, 14);font-size:85%;" >
<br />var</span><span style="font-size:85%;"> sub_strings = </span><span style="color: rgb(255, 66, 14);font-size:85%;" >this</span><span style="font-size:85%;">.split(</span><span style="color: rgb(0, 255, 0);font-size:85%;" >" "</span><span style="font-size:85%;">);
<br />
<br /></span> <span style="color: rgb(255, 66, 14);font-size:85%;" > for</span><span style="font-size:85%;">(i = </span><span style="color: rgb(255, 51, 51);font-size:85%;" >0</span><span style="font-size:85%;">; i <</span><span style="color: rgb(255, 66, 14);font-size:85%;" >this</span><span style="font-size:85%;">.</span><span style="font-size:85%;"><span style="color: rgb(255, 51, 51);">length</span>; i++)
<br /> titleized_string.push(sub_strings[i].capitalize());
<br />
<br /></span><span style="font-size:85%;"><span style="color: rgb(255, 66, 14);"> return</span> titleized_string.join(<span style="color: rgb(0, 255, 0);">" "</span>);
<br />}</span>
<br /></div></ol><span style="font-size:85%;"><span style="font-size:100%;">Enjoy your programming!</span><span style="font-style: italic;">
<br />
<br />NB: Forgive me for poor formatting. I didn't have enough time to create a custom css file!</span></span>
<br />
<br /></div>Edmond Kachalehttp://www.blogger.com/profile/04793536391738191498noreply@blogger.com10tag:blogger.com,1999:blog-5363518017253168837.post-68085384961727044162009-11-24T23:23:00.000-08:002009-11-25T06:41:44.505-08:00Towards Software Localisation in Malawi<div face="arial" style="color: rgb(0, 0, 0); font-family: arial; text-align: justify;"> <title></title> <meta name="GENERATOR" content="OpenOffice.org 3.0 (Linux)"> <style type="text/css"> <!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } --> </style> </div><div style="text-align: justify;"> <meta equiv="CONTENT-TYPE" content="text/html; charset=utf-8"> <title></title> <meta name="GENERATOR" content="OpenOffice.org 3.0 (Linux)"> <style type="text/css"> <!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } H3 { margin-bottom: 0.21cm } --></style><span style="font-family:arial;">In the twenty-first century, information has become such a fundamental aspect of each society that its access is a basic human right. This has prompted for convenient access to reliable and up-to-date information for decision making through the use of the Information and Communication Technologies (ICTs). However, most people in Africa fail to access information due to the language barrier as most of ICTs use languages that are of western origin.</span>
<br />
<br /><span style="font-weight: bold;font-family:arial;" >How do we remove the language barrier?</span>
<br />
<br /><span style="font-family:arial;">In order to remove this language barrier, software localization has become one of the best alternatives to make ICT appropriate to a target locale. Localisation of software involves adapting a software product to the linguistic, cultural and technical requirements of a target population.</span>
<br />
<br /><span style="font-weight: bold;font-family:arial;" >Why localisation of software?</span>
<br />
<br /><span style="font-family:arial;">In Malaŵi, Zambia and other Chicheŵa speaking regions, localisation of software is still in its formative stages as there are currently no localised software applications in computer systems.</span>
<br />
<br /><span style="font-weight: bold;font-family:arial;" >What shall we do, men and brethren?</span>
<br /></div><ul style="text-align: justify;"><li><span style="font-weight: bold;font-family:arial;" >The Kalembera Word Processor</span></li></ul><h3 style="color: rgb(0, 0, 0); text-align: justify;font-family:arial;"><span style="font-size:100%;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBrSU2q2LYizDHskAma5iJfm05LcnO0UFUyGNeKhc-eIa7L9vhJ77JGH_BU0koiOj-7pWqVldSRsBp5C1tg3ZSp8F57nnV6XP3qd7fXkKhwe7FnTQYpOU9fjR7ZlH1qM6QhdzUYgix_4LB/s400/chichewatexteditor.png"><img style="cursor: pointer; width: 381px; height: 279px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBrSU2q2LYizDHskAma5iJfm05LcnO0UFUyGNeKhc-eIa7L9vhJ77JGH_BU0koiOj-7pWqVldSRsBp5C1tg3ZSp8F57nnV6XP3qd7fXkKhwe7FnTQYpOU9fjR7ZlH1qM6QhdzUYgix_4LB/s400/chichewatexteditor.png" alt="" border="0" /></a></span></h3><div style="text-align: justify;"><span style="font-style: italic;font-family:arial;" >The Kalembera Word Processor</span>
<br />
<br /><span style="font-family:arial;">I started localisation at my undergraduate. In my final year project, I developed a localized lightweight word processor, Kalembera. It has a Chicheŵa interface. You can get more details on the project from<a href="http://bkankuzi.blogspot.com/2009/01/undergrad-student-in-malawi-develops.html"> </a></span><a href="http://bkankuzi.blogspot.com/2009/01/undergrad-student-in-malawi-develops.html"><span style="font-family:arial;">http://bkankuzi.blogspot.com/2009/01/undergrad-student-in-malawi-develops.html</span></a><span style="font-family:arial;"> .</span>
<br />
<br /><span style="font-family:arial;">Of course there are some few things to get fixed and a few features to be added. Right now the word processor does not fully support tables and graphics. In addition, I have developed a spell checker separately. I am yet to add it behind the word processor.</span>
<br /></div><ul style="font-weight: bold; font-family: arial; text-align: justify;"><li>The Mozilla Localisation Initiative</li></ul><div style="text-align: justify;"><span style="font-family:arial;">The Mozilla Initiative is an up and coming project. It is one example of free software localization projects that I wish to run. The project will help indigenous Malaŵians (and other Chichewa speaking reagions) access the Internet using a localised web browser.</span>
<br />
<br /><span style="font-family:arial;">I am looking for more contributors. If you are interested please send me an email entitled New Member: Chichewa/Chinyanja Localisation Project (chichewalocaliser(at)gmail(dot)com). This will help us track our members.</span>
<br /></div><ul style="text-align: justify;font-family:arial;"><li><span style="font-weight: bold;">The OpenOffice Localisation Project</span></li></ul><div style="text-align: justify;"><span style="font-family:arial;">Talks are under way with members of the OpenOffice.org to help us with Chichewa localization. I would like to have access to the software and add Chichewa words to it. If everything materializes, we will have a fully functional free office suite.</span>
<br />
<br /><span style="font-weight: bold;font-family:arial;" >Conclusion</span>
<br />
<br /><span style="font-family:arial;">There are a lot of things to consider as far as localisation of software is concerned. I am not saying I am the jack of all trades in this respect. I need a lot of friends to join and help in. You do not need to be a programmer. You can contribute to the development of Chichewa equivalents for English terms. If you are too technical, so much the better. Linguists will also be of great significance to these projects as they will help in the editing and revising of the Chichewa terminologies.</span>
<br />
<br /><span style="font-family:arial;">One thing which has to be taken note of is that these projects (except the Kalembera project) will be free and open source. Your contributions will be used and acknowledged using the general and public licenses that are used by the proprietors of these projects.</span>
<br />
<br /> <meta equiv="CONTENT-TYPE" content="text/html; charset=utf-8"> <title></title> <meta name="GENERATOR" content="OpenOffice.org 3.0 (Linux)"> <style type="text/css"> <!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } A:link { so-language: zxx } --></style></div>Edmond Kachalehttp://www.blogger.com/profile/04793536391738191498noreply@blogger.com4