“Removal of a Letter” – A subject that caught my “eye”, and challenged me to create a whole post that lacks one letter of the Roman Alphabet.
There are some letters that carry embedded problems. We can see a company that makes use of one of these letters to a degree that has degraded that letter. We can see people who have used that letter only to promote themselves and remove themselves from the greater purpose. We have a letter that need not have a centre place among the Ubuntu culture. So, what happens when we remove that letter from our language completely? How would that look? How would we act?
The Old and New Testaments talk about two contenders who use the letter as a personal pronoun. One truly deserves the use and power of that letter, but the other uses the letter arrogantly and to serve only the self. Maybe we, too, often act as the latter.
However, that need not be the status quo. We are not alone. We are many and can act together. All that we do can be for the whole rather than just for ourselves. The way that we talk often affects the way that we act. Our thoughts affect how we act. When our heads understand, then our eyes and ears can start to understand as well. The power change can now start.
The number one spot on our agendas holds great power. We can choose what deserves that spot, and our language can help us do that. So, once we remove that letter—remove that pronoun—we start to act as a group rather than a lone person. Suddenly the focus goes to “us” rather than “me.”
Can we truly remove a letter from our speech? Externally, that may not be easy or useful, and somewhat overzealous. But, we can change our thoughts and at least drop that pronoun down to a lower place. Let us humble ourselves before the greater good. Let us ask not what you can do for me, but what we can do for each other. When we drop that letter, then we have Ubuntu.
“Ubuntu is about people.” “Ubuntu is for human beings.”
We have heard these phrases as good reminders as to “why” we are making Ubuntu. However, there is a growing sense of disconnect from the definition of “what” we are doing for the people. The “what” has to come back to the “why”. So, we need to clarify and simplify what we are doing.
Ubuntu = Ubuntu (oo-boon-too) — A free operating system inspired by an African philosophy that says that we all are one.
Ubuntu = People. When we are people-focused, then we are making Ubuntu. Anyone can make a product that people use. Anyone can create convergence of people’s devices. But, Ubuntu brings it all back to the people, and for the people. We don’t get trapped in the technology.
People = People. Ubuntu is about people. But, everyone is unique. We are not all technology-focused, and we don’t all have the freedom to enjoy technology without advanced knowledge. When we create Ubuntu we think of the humans before the technology. When we come together to celebrate Ubuntu, we celebrate the humans who are involved in the project. Our events and attention focus on the people and not just software. This means that we establish environments that allow and encourage people to be people. We don’t get Ubuntu by simply having people there. We get Ubuntu by acknowledging that those people are human beings who are part of the bigger picture. The things that we create are great, but Ubuntu is about people, so it always comes full circle, back to the people.
This is the basic blueprint of my system for juju charming. I found that this was the quickest and least problematic setup for myself.
Below is the guide to working with this setup. Most of this will apply for working with a local server as well.
While I was working on my first juju charm, I found that the documentation was quite helpful, but I also ran into some recurring issues. As a result, I curated a lot of content, and created notes, which are now in the form of a supplementary guide for those heading down a similar path.
WHAT THIS GUIDE WILL DO
Install and setup juju on a single, local desktop system for creating and testing charms
Give you basic terminal commands for working with juju
Give some tips for troubleshooting the juju environment
Follow the guide on the LEFT, and refer to the RIGHT when necessary.
Terminal commands in this guide will look like this.
sudo apt-get install juju-core juju-local juju generate-config juju switch local
The juju environment should be ready for working in now.
PREPARE LOCAL CHARM REPOSITORY
This guide will assume that you are working from the home directory, so please setup in home:
cd ~ mkdir -p charms/trusty
(swap “trusty” for “precise” if necessary)
You can now put charms that you are working on into ~/charms/trusty and deploy them via the local repository method (see below). Each charm will have its own unique directory that should match the charm name.
Install charm-tools for creating new charms, or testing existing ones:
sudo apt-get install charm-tools
If you get any errors during bootstrap, then the environment is probably already boostrapped. You may need to restart the juju db and agent services. This might happen if you reboot the computer (you will notice that the juju commands just hang).
sudo service juju-db-$USER-local start sudo service juju-agent-$USER-local start
Wait a few minutes for the agent to reconnect.
If the whole environment becomes messy or faulty, you can start over.
juju destroy-environment local
You will probably have to enter the super user password. And re-bootstrap.
In the worst case you might have to purge the juju installation and start again: sudo apt-get purge juju* sudo rm -rf ~/.juju
Some other errors might require a juju package upgrade.
USEFUL INFO COMMANDS
This will give you the details of what your current juju environment is doing.
Pay attention to public-address (IP), and current state of your charm. Don’t interact with it until it is “started”.
A running log of whatever juju is doing. It will show you where charms are at, if there is an error, and when hooks are “completed.” (You must CTRL C to get out of it.)
It is important to be patient when checking on the status of charms. Some issues are resolved by waiting. You can check juju status periodically to see changes.
DEPLOYING SERVICES (i.e. “installing” charms)
a) You can deploy any “recommended” charm with:
juju deploy charmName
e.g. juju deploy juju-gui
You can deploy multiple charms without waiting for the previous one to finish.
Just don’t add relations until they are BOTH “started.”
b) If you want to deploy a charm that you are working on locally (one-line command):
juju deploy --repository=/home/$USER/charms/ local:trusty/charmname e.g. juju deploy –repository=/home/$USER/charms/ local:trusty/diaspora
Replace “trusty” with “precise” if necessary.
c) You can also deploy from personal trunks that haven’t yet been recommended:
juju deploy cs:~launchpadUserId/trusty/charmname
e.g. juju deploy cs:~joe/trusty/ethercalc-6
d) Deploying from the GUI (see GUI section below)
Destroy services (i.e. charm installations):
Maybe you installed the wrong one, or it “failed” to install or configure.
(You should probably destroy relations first.)
juju destroy-service serviceName e.g. juju destroy-service suitecrm
“Un-Dead” Services ( Can’t Destroy )
Sometimes things are “dying” forever, but don’t actually die because they are in an “error state.”
If a charm/relation is in an “error” state, it will hang indefinitely at each error. You can’t even destroy it.
You can “resolve” the errors until all the hooks have gone through the cycle at which point the thing may die.
juju resolved serviceName/0
e.g. juju resolved suitecrm/0
if you have more than one of the same service, the /# will indicate which one.
*Be sure to spell “resolved” correctly. I never get it right first type
ssh into a service (remember a service is running inside its own “machine” by default)
If you want to go into the virtual machine that your service is running on to fix/break things more:
juju ssh serviceName/0
e.g. juju ssh suitecrm/0
No username or password needed. You have root access with “sudo”. Keep track of where you are (purple circle vs orange circle). “exit” to return to the local terminal
You can link/relate charms to each other if compatible. Commonly a database and another service.
juju add-relation charmName1 charmName2
WAIT again. Check the status do see “x-relation-changed” hook running etc.
Can’t add relation:
Check the charm’s readme to see if a special syntax is required for the relation.
Generally I like to wait for both services/charms to be in a ready state before adding a relation between them.
relation-changed hook failed, or the charms don’t like each other anymore:
juju destroy-relation charm1 charm2
e.g. juju destroy-relation suitecrm mysql
SAMPLE WORKFLOW: Deploying Services
Let’s see if that suitecrm charm is working for you.
juju deploy mysql
juju deploy suitecrm
Run juju status or juju debug-log to see when BOTH charms are done.
Just because it has a public-address does not mean that it’s ready to be used.
juju add-relation suitecrm mysql
Check status…… WAIT!
While you’re waiting… why not check out the readme document.
Access the service:
juju status and get the public-address of suitecrm, then visit in your browser. You should see the login page.
This will give you graphical way of working with juju. It is quite magical, but requires manual installation if not using juju-quickstart.
juju deploy juju-gui
WAIT. Do a “juju status” to see what stage of deployment is in.
Run this in your terminal again to get the admin password
Once started, copy the public-address. Usually 10.0.#.### and visit that in a browser. It will likely complain about an insecure connection. For our purposes you can add the exception.
Login with: admin and the password from the above command.
The GUI is the simplest way to deploy and manage services. It does not provide much debugging information at this time. Most of the usage is pretty self-explanatory.
When you deploy a service it will show the icon with colours to indicate its status (these have been varying lately):
Yellow = wait Red = Stop. error…
You do have to “commit” the changes to the canvas.
Hopefully this guide has provided you with an acceptable environment for working on your charm(s). Further documentation exists for starting a charm, but I also recommend finding an existing charm that is similar to the one that you want to create so that you can model the structure. More on this process can be seen in an earlier post.
Remember that you are not alone in this project: juju add-relation me community 😉
Juju is the best way to deploy, scale, manage, model, move services in cloud environments. All of this can be done in seconds rather than days.
Well I’ll be charmed if that ain’t just a boisterous basket of buzzwords, but here’s a more human translation.
I still have no idea how that all works; it’s like magic to me. So, can you believe that I managed to write a juju charm that made it into the charm store?
juju deploy motivationalspeech
Most computers don’t speak bad German, but if you have *some* coding knowledge and/or determination, then this is where you could step in. All you have to do is believe, and you’ll be charming in no time. 😉
You Could Be Charming (and Contributing)
Perhaps, like me, you have a friend or a community who could make use of a charm for a service. In my case, my friend was raving about SuiteCRM, so I decided to start with that since there was no charm in the works at the time (I checked).
Charms can be great on-boarding projects to software-type contributions. Most charming at this point seems to include (but not limited to):
terminal commands, bash script, and SQL (none of which I knew very well before I started). However, charms not only have scripting bits, but they also need icons. So, if you are an artist, then you can reach out to scripting charmers for collaboration. You can also help by growing the community through evangelism. And, having more people involved in your local circle will make things easier.
So, you want to write a juju charm? Then let’s get Kraken[sic] and see how deep the rabbit hole goes.
The official juju “Getting Started” documentation is a good starting point. In addition, I have written a supplementary guide (to be updated) for setting up and navigating the juju environment on a local machine.
I invite you follow my journey, and learn from my mistakes.
Fix some bugs. Break it. Fix it again. Commit changes.
Wait in the queue.
I don’t see this as a personal success as much as I see it as a success of the community and the Ubuntu model. I can’t say that I was the best person for the job, but the community was supportive and made the process as painless as possible. Particular shout-outs go to Charles, José, and Kevin, who politely helped me a long the way (if I missed anyone then please let me know).
Being approachable, accessible, and active are keys to community health. Let’s continue to work in this way.
Maybe you’ve tried to learn another language, or worse: you’ve tried to teach another language. For many people, additional-language acquisition doesn’t come too quickly. We all process information at different speeds, and it is basically impossible to make a brain process any faster than it can or force it to process information that it’s not ready to accept. Yet, many educational methodologies expect that to happen. The result is mostly a lot of wasted braintime and garbage information. It’s game over before we even begin.
Think about how you tried to learn your first language. Wait a minute. You probably can’t really think about how that happened; it just kind of… happened. Your community spoke to you in that language, over and over, and when your brain was ready, you picked up what you could. But, could you do it over and over again?
Recently I attended a TPRS (Teaching Proficiency through Reading and Storytelling) training seminar by Blaine Ray. TPRS is based heavily on input-focused learning. By repeatedly hearing/seeing something, eventually it is captured by your brain, and when your brain is ready, it will also be able to output the same content.
The key is to keep filling the bottle with the correct substance. Instead of pointing out that the bottle is outputting the wrong thing, just keep pouring in the right thing. When it’s ready, the bottle will produce correctly. It is, in a sense, a form of bottle brainwashing, which is much more accepted by the brain than reprimand. Knowing that, only factual errors should be corrected. Incorrect grammar, and yes, even mispronunciation, should not be directly judged. Instead, when the brain is ready, it will pick up the proper language from enough exposure through repetition.
The vehicle of repetition is stories, which help to hold the attention of the learner. I was a first-time German-language learner at the TPRS conference. After a couple sessions of observing a German-language story with the TPRS teaching technique, I was given the task of writing my own unique story within five minutes. Even though it stinks (hehe), I definitely produced more than I expected.
A Case for Face
In the near future when ABC Company creates a translation device, then we won’t really need to learn language… However, communication has a lot more to it than a bunch of words strung together. It even goes beyond emotion in speech. There’s something about meeting someone face-to-face that is very difficult for a machine to replicate. Sight and hearing are not the only senses involved in communication. That is because language is also culture (for lack of a better term). You can only truly learn that from being around other people. It makes sense that if you want to be better at talking with people, then you have to talk with other people.
A Case for Community
Being an input-based form of education, TPRS sure sounds like a strong case for a “broken record”. That works, but we should also be asking “who made the record, an what was the intention behind its creation?” Thus, it is important to get different points of view.
We already talked about how many senses are required to truly understand a language, but how can we know if what we are learning is effective? The test is to use the knowledge in the wild. We need multiple sources of input in order to verify information and detect variations.
If it takes a village to raise a child, then it also takes a community to raise a new language learner.
A Case for Ubuntu
If you haven’t seen the connections to Ubuntu already, then your brain isn’t ready yet, but that’s ok. When you’re ready, you will get it 😉
Ubuntu is a language. In addition to terminology, it also has a vibrant “culture” that needs to be learned. If Ubuntu is to be effectively disseminated, then we will need to:
It is divine comedy how something that is created for humans is also destroyed by humans because we are, well, just a little bit too human. We often mix in too much, and destroy the organic nature of the original environment. So, adding more of what we do is not necessarily the solution.
“The more you tighten your grip […] the more star systems will slip through your fingers.”
“I am not a committee!”
— Organa, Leia*
More rules and regulations; bans and borders; ideals and “isms”, are not the appropriate answer.
This is not a management issue. This is a mindset issue.
When do we let go of a losing position? Is your Ubuntu community in this position? Are you in this position? Sometimes the problem/solution starts with the individual. You can make a change. But, together we can make a difference:
You have just downed a bottle of whiskey. You go to hotel, and then you have some more whiskey. These steps, while extremely repeatable, will have drastically different outcomes for each person. One of these outcomes is a Do-It-Yourself disaster. Another is “How to get a hangover… or worse,” depending on what else is brought into the mix.
So, what happens when you follow this recipe?
The culture of the internet world is changing. Creation is shifting to curation. With so much information right at your fingertips, almost anyone can learn how to do almost anything. A quick g00gle search will already tell you how to get 6-pack abs, and build a flame thrower. i.e. You don’t need to re-write that and create more GI. However, what we don’t know, and possibly want to know, is what happens/happened when you got your abs and made a dangerous weapon. This is unique information that only you can produce. Thus, we should continue to create.
DIY ain’t dead. You should absolutely do things yourself for the learning experience. This also does not mean that you should not write How-Tos; there are tonnes of things that we don’t know how to do, or have learned how to do incorrectly.
But, don’t stop there (or do if it has been over done). Teach us about your experience. Tell us What Happens When (WHW).
What? So What? Now What?
Robots are better than I am at my job, or they soon will be. In education, many kids have lost motivation and can’t concentrate. The internet is a better teacher than I am. Children know what they are supposed to learn, and in general they understand why they are supposed to learn it (they just saw it all online yesterday). However, a frequently missed component in education is what we can or should actually do with that knowledge. i.e. What happens when I apply this information?
I was recently taught this process of inquiry:
What: What are you taking about? So What: Why are you talking about it? Now What: What do you do about it?
The last piece is really what still makes community and classrooms relevant, but sometimes we forget to teach that. Maybe it’s because of our consumption-only habits. Maybe it’s because someone wants to keep us under control. Maybe it’s because we keep stopping at “maybe,” and only choose to watch from behind the glass.
Technology is here.
It will can help us.
Now what do we do with it?
Caveat Emptor Rex
“What part of recreating dinosaurs and putting them in a theme park was a good idea?”
Many story premises are ridiculous, but it is undeniable that they are also entertaining. If we wrote a story exclusively about “how to extract dinosaur DNA,” then we might be sorely disappointed; however, we can’t help but wonder WHW we bring dinosaurs back to life and put them in close proximity to people. (SPOILER ALERT: things get ate).
The Jurassic world in which we live has an appetite of curiosity. In some cases, our brains are still quite primitive. We do a lot of stupid things all the time that slip through the systems unobstructed. So, Mr. Chricton’s premise is actually extremely insightful, and is an extreme example of the primal nature that continues to run the world today. Not to mention, it’s extremely interesting. Extreme!
If you bought into the idea of adding more value to the things that we create, then we must also be aware of the underlying dangers that are already present.
WHW is actually responsible for some of the dino dung that we’re facing today. When we keep feeding our ancient reptilian brains with consumer urges, we just perpetuate the problem. WHW we make it bigger, faster, scarier? (SPOILER ALERT: things get ate bigger, faster, scarier). Sometimes the consumer doesn’t know what’s best for itself; what it wants (or has been trained to want), isn’t always what it needs.
We need to run the scenarios in our heads first. We need to focus on what benefits the whole rather than what gets me more tokens. We need to then make those things happen.
When we get involved in the outcome, then we can get out of the “safety” of our voyeuristic tendencies that lead to destructive demands and curmudgeonist complaints.
We need a deep sense of community.
The Obvious Ubuntu Relevance is right in front of our faces. That circle of friends is severely effected by the action or inaction of each member.
I have bought an Ubuntu device because it’s awesome, but what am I going to do with it?
I have joined an Ubuntu circle because I need community, but what am I going to contribute?
I know how to do these things. But, WHW I actually do something with this knowledge?
It’s cool to sit back and gain confidence—be rational—before producing something in the community, but it’s important that we don’t get stuck at the instructional stage. Furthermore, our contributions need not be that extreme!
Consistent application, experience, and collaboration should lead to progress.
You have a dirty mind… but it’s not entirely your fault. We are constantly bombarded with information from multiple channels. Much of this “information” is noise and redundancy. These emissions (or garbage information) sometimes pollute our minds, and make it difficult to efficiently run our communities, both online and away from screen (AFS – keyboards not necessary). It can be tricky to filter this content, and as a result, our minds can become cluttered, or “dirty”.
At the Community Leadership Summit (CLS) 2014, Randall Ross gave a plenary talk called “Get Your Face Off the Screen,” in which he described effective ways of growing your community AFS. This is a great way to reduce garbage information on the input side. i.e. by cutting of distractions. Perhaps a truly smart phone could help us do this as well. However, I have become increasingly interested in reducing things from the output end—personal emissions of garbage information (GI). Coincidentally, this thought was inspired by Randall’s Planet Awesome idea.
I have spent over two years pondering this issue. I re-wrote this article twice (this being the 3rd edition), and have learned that the problem is within myself and my habits. So, the question is: can we filter ourselves without the risk of stifling genius and innovation? Perhaps I have already answered my own question.
Just because something is free, as in freedom, and free, as in beer, it does not mean that it is free, as in no opportunity cost. Everything that we do takes away from something else that we could be doing. Every piece of information that our brain has to process, takes the place of another at that time. This is important to recognize in an Ubuntu circle because the philosophy shows that what we do to ourselves affects the others, and what we do to others, in turn, affects ourselves.
So then why is it that we continue to pollute our environments with GI?
“That’s just the way I am.”
One theory is that it’s because we still can’t stop doing things our favourite way. Some types of people need to (for lack of better understanding) think out loud and constantly emote, and sort out the pieces later. This is sometimes done without the consideration of the externalities that it produces.
“If they don’t get it from me, then they will get it from someone else.”
Another theory would be that we feel insecure about ourselves, and have a scarcity mindset. Thanks to patent laws and professional sports, many of us feel the need to be “first.” We feel the need to provide and prove that we know something of value (which in turn makes us feel valuable). Our consumption-driven society demands information now—not after you have thought about it for a couple of years 😛
“Yes, I would like to Supersize that.”
Maybe more information is better. Some people think so. How else will the monkeys on the typewriters eventually write the work of Shakespeare?
A Slippery Ewok
It is apparent that this discussion brings up more questions than it does answers. But, as long as we are questioning, then we are at least we know of the issues. And, knowing is half the battle.
Does every comment warrant a reply? Does every action require an explanation? Do I need to provide a commentary on everything in the circle? Do all the people in our circle need to know? Do I need to write a blog post about a blog post? Am I actually providing value, or a new view on a topic, or am I just creating more redundancy, and GI for people to wade through? There is a difference between creating and excreting.
Again, it is a battle of environmental awareness and self-awareness.
If you are physically larger/taller than most of the people in your circle, then it is important that you are self-aware. You would realize that every movement that you make is much more noticeable than that of a smaller person. The same is true on the internet. If you have a bigger presence/personality, then you have even more viewership. The goal would be two-fold: provide the best of you for your circle, and make sure that you’re not obstructing the necessary little guys in the process. The vehicle towards the goal could indeed be reduction of GI.
So the answer to discovering genius is not about more information; it’s about better information. We don’t need a smarter search engine. We need a smarter/faster recycling bin—inside and outside of our heads—to sort the treasure from the trash.
Tee Ell Semi-Colon Dee Arr
Man will sin. The world will end. The internet (and your mind) will get dirty. But, why make it worse while we have to live here? Inevitability is not futility.
One man’s trash is another man’s treasure. Sure. But, when it comes to information, we ought to consider (if nothing else) what impact our production of information has on our connections.
That is just it: our ability to connect to people so easily should not be so that we can sell ourselves faster, but rather, it should be used such that we can stop reinventing the wheel and more efficiently manage our resources—our information.
The irony and cliché are relentless, but the application is the best that money can’t buy:
I’m here. I’m the new face of something that you’ve always known. Or, maybe you don’t know me yet (but you will). I’m from the future. I am the future. I have come to save you from being enslaved by your technology.
I’m not a nerd.
I’m not a geek.
I’m not a techy.
I’m not 1337.
Ubuntu could truly save our phones, and it’s up to us to make sure that it happens. It’s fun to dream up ideas, and it’s even more fun to contribute towards seeing those ideas in action. We can then start to see these dreams become a reality. We can make things better, and we may even see some truly smart devices. Or, is “smart” now a thing of a the past as well?
I must say that “snappy” was never part of my personal lexicon, but I think that’s why it will be effective. There’s no baggage attached to the word. Just like we have seen a departure from “loco“, we can start to move away from other concepts of the old world and begin to create something fresh. Ubuntu has always about being a positive change rather than another flavor of the past.
Let’s continue to make Ubuntu this way. Stay snappy, my friends.