Planet Sugar is a collection of personal blogs by Sugar Labs contributors. Sugar Labs is a world-wide organization of passionate people working together to solve the same problem: giving everyone an opportunity to learn to learn. Our community members write about what excites them about learning, Sugar, and the Sugar community. In the spirit of free software, we share and criticize—that is how we learn and improve and encourage participation by newcomers. Enjoy and join the conversation.
Believe it or not, Sugar has documentation. But what if we could have more documentation? Maybe we could use a Recurrent Neural Network to learn form the docs that we already wrote, to write new docs? We'll, you can't say no if you don't try!
We are going to use a library called Torch RNN, which basically does everything for us:
docker pull crisbal/torch-rnn:base mkdir -p $HOME/torch-rnn/sugar-data/ cd $HOME/torch-rnn/sugar-data/ sudo chcon -Rt svirt_sandbox_file_t $HOME/torch-rnn/sugar-data/ sudo docker run --rm --tty=true --interactive=true --volume $HOME/torch-rnn/sugar-data:/data crisbal/torch-rnn:base bash # Now we are running inside the pre-setup docker container
Great, not quit the docker container, we'll come back to that later. We first need to extract the data from the help activity into a single text file to train our network:
git clone https://github.com/godiard/help-activity --depth=1 find help-activity/source/ -type f -name '*.rst' -print0 | xargs -0 cat > input.txt
If you open the input.txt file, you will see that it is a pile of help
documentation text. This will be used to train our network. Go back into
the docker container (
docker run ... from above) and now we can
train the network:
# python scripts/preprocess.py --input_txt /data/input.txt --output_h5 data/input.h5 --output_json data/input.json Total vocabulary size: 117 Total tokens in file: 361025 Training size: 288821 Val size: 36102 Test size: 36102 Using dtype <type 'numpy.uint8'> # th train.lua -input_h5 data/input.h5 -input_json data/input.json -gpu -1 Epoch 1.01 / 50, i = 1 / 5750, loss = 4.752145 Epoch 1.02 / 50, i = 2 / 5750, loss = 4.644123 Epoch 1.03 / 50, i = 3 / 5750, loss = 4.498253 ...a.long.time... Epoch 4.13 / 50, i = 360 / 5750, loss = 2.037364 ...ultrabook.not.so.ultra.now... Epoch 5.16 / 50, i = 478 / 5750, loss = 1.796518 ...graphics.card.would.have.been.good... Epoch 5.81 / 50, i = 553 / 5750, loss = 1.690430
While you're waiting, now is the right time to check out Presenter Club. With Presenter Club, you can make great presentations, faster - even faster than training this network! Presenter Club is the only speech first presentation app. Best of all, it is free as in price and free as in AGPLv3. Sign up for free while you wait!
So training the model is really slow. How slow? It took a good hour or longer on my laptop. Fun fact - if you thought your laptop was slow because it took long to compile WebKit, your laptop is not the best for machine learning :(
I trained it up to checkpoint 5750 (all the way until the training script stopped!). Then I generated a few examples from the following seeds:
Browse is vilute signeds, bloptering whith to view. When are button then to eatch
- Activity to make Ewigh 200, the community name a but work tiving the encrients and Vinuse losize rewill retund for bech are group,, and the serect stops you to chapsenars a nd page can sugar for collenterax
In this other haptions , mith to which it Protcusing by mavight, your nout moring on Called on) wating the ficas.
- Oper bouttate. The seter indrograge can the improscay in the from Journal studebadatch
.. image :: ../images/Wirseding.rst-:
Sugar iswith in the re internal displayeetters Activity
senized and unternet we the coper's your cauleting what your find more sets and some sure messources.
.. image :: ../image`.png
- 1 and instrresples, wor this for icon, sugar Activite prosect more http:/,
This iesson locace anyill—boud, there ease conterster (1. 4 ancelser network can button: View is 22) and indease, the Ibacus alongmance is the Support Acking work phover. The tollows as mear 2005 ``impage.
- Grame it worblest by choition
Scaning number used you can drog the friger with a felling files usife number on the plassiona selected inture is it. Activity is desp. - B loc. Anallably icon culd teen, have by while port of your projectles. Be seic-ter tcop peroce voractions:
- 4 Neyboard.ust” Chould entre turnerts type Finlest tito Actitition
Using, where to and copy you can timelabla
activity View make roing inswer main abovem.8. In starting: you are Sames Toold (Cactigins * Actio domgs, it secosk done instateds, playboud :::::::
AL × Clisude select dowunteral.
.. image:: ../imake': . Helt it click on lonks to match and your view to the lasts stepce think wates (will button Internils menu allange filew.
Using sterb reported ove Activity. Hele and searn you will finls of sansticed, that you ovelotalinent) (is invideat with open on a properting mane.
Tuble hill you wart the chilicking the access
So this is just random text for the most part. But it is important to appreciate what the network has been able to learn even with our tiny dataset:
So, this technology is probably not yet ready to replace our actual documentation, or even the contribitions of some GCI students! But this just highlights how exciting machine learning is. Problems that traditional programmers thought of as "hard" - like image clasification or translation - are now just as easy as collecting a training dataset. If you want a function approximated, then machine learning is your friend.
VC firms have said that mobile is eating the world, wearables are the future, IoT will change everything, and VR will eat the world. Not every claim has panned out for them. But I'm going to place my bets that machine learning is not only the future, but the past and present. We live in very exciting times.
Congrats to Robert T. from Cypress, CA who’ll fly to Madrid to cheer on and meet the Atlético Madrid team! Gooooooaaaalllllls, all around. Watch him find out here.
A big thank you to everyone for supporting One Laptop per Child to help us transform children’s education. You guys rock!
With the growing trend of internet and the proliferation of internet users, the business with e-commerce has been expanding. All the handy gadgets like mobile and tablets have further escalated the realm of e-commerce. Another major factor that has increased the pace of global online trading is the effective payment system. This helps the clients in getting the refined ways to pay for what they have ordered. With the use of state of the art tools and techniques available on the sites of global e-commerce, it has become easy for the customers to buy products which are not available in their local markets. But launching such website is not a piece of cake. There are many parameters that need to be analyzed before launching any global E-commerce site. It is imperative to delve into the detail of those five steps that helps to build an E-commerce site.
Before building an E-commerce site it is incumbent to analyze the demand and supply ratios for the products that are going to be launched by the site. For instance, it was observed that in China only a hand full of segments are available online. This presents that there is a lot of room available to build site of other much needed online retail segments by the clients. All such perspectives will enable the e-commerce operations to be successful not only in the local market but also the international market. Hence it is better to analyze and then select the products offered by the global E-commerce site under construction.
It is incumbent that the product should be made localized. This means that the product should make popular before launching it on the site. For instance, Mattel which is a toy making company launched Barbie doll in China. It was a complete failure because for Chinese girls this doll wasn’t attractive as this wasn’t as per the taste of the local people.
This means that the site should be localized in terms of language, style, and many shopping habits. It can be made clearer with the fact that if the site is unable to give a description of the products as per the language of the local people where most people would not understand English. This will eventually lead to failure of the site. So it is advised to hire a team for this purpose.
It is one the indispensable step. The site should manifest the price of the products as per the local currency. In order to enter the new market, it is important to launch the local prices for the successful business.
As we all know that cyber safety has become a menace to the digital world. All the overseas customers want their personal data to be protected. So while building a global E-commerce site make sure to put privacy center messaging across the whole site and to hire a team to resolve privacy-related concerns.
This is a world of technology and every person has access to the internet, so business owners also consider it an authentic and effective platform for advertising their products. There is so much competition around as everyone is offering a quality product, effective strategies, and every such service which is the requirement of a customer. Most of the aspects of a business depend on the success of its marketing position and the goal of a successful business is to improve this position.
Internet marketing is basically an online marketing strategy that promotes a brand, services or products through the websites. It involves many aspects of the website such as designing, advertising, sales, and development.
Writing is a better expression of ideas and this could grasp the entire world in a fist. It needs depth knowledge and greater skills to be on the top of the best writers. Writers, particularly of nonfiction subjects, have gained a lot from marketing as they know the best way to put all the pieces together. They are the crux of a successful business because of the following major aspects:
Inspire and Incite Action
Storytelling is a creative way to entice the customer for a particular product. The effective writers create the content in a contagious way that could grasp the readers and make them the regular customer of a particular product. They write each piece of a content using the inspirational, emotive, personal, and suspenseful stories. Such writers ignite the fire so strongly that the customers are compelled to stick to the company for a long lasting period.
Plan before they write
A good writer never merges the scattered pieces instead; he makes a contextual framework about a particular project before putting it on paper. The social media and the entire internet marketing always highlight the importance of quality writing, so the content writers are always under pressure to create a good and quality content for a company. An effective writer has always a properly documented strategy and they follow it accordingly to trap the customer through an appropriate and more effective route. They analyze the writing again and again to ensure the objective of writing. Moreover, they also look at the competitors to give a unique angle to the writing and make the product most popular among the competitors.
Fulfill the Company goals
The entire marketing world highlighted the importance of an effective writer. Such writers not only provide a share and same metrics but also enhance the page views and assess how long a customer stay on the company page. The effective writers actually make the way for attaining a large number of company goals, as the writing strategy is very much aligned with objectives of a company. Such strategy could help the business flourish, grow, gain customers, make money and also retain loyalty.
Hence, a good writer creates such emotive content that could inspire the customers or the readers to start following the company.
We are once again pleased to share that San Francisco Mayor Edwin M. Lee has declared November 5, 2016 as One Laptop per Child Day in San Francisco! The Proclamation was presented to Sameer Verma, Professor at San Francisco State University, and Founder OLPC SF by Carol Ruth Silver, a long time city official, social activist and author.
— Julio Feliciano (@j6design) November 5, 2016
— OLPC San Francisco (@olpcsf) November 5, 2016
Ready for the ultimate Derby experience? Here it is. You and a friend will be there as Atleti takes on Real Madrid, and you’ll get VIP access like no one else. Not only will you take pictures with the Atleti team after their practice on November 19th, but you’ll also snap legendary photos on the field before the big game. When it’s finally time for the Derby on November 20th, you’ll watch the showdown from the best seats in the house: the President Suite. Afterwards, you’ll hit up the exclusive players’ press conference, meet Antoine Griezmann and he’ll hand you a signed jersey while you collaborate with a solidarity initiative. Enter and participate!: http://bit.ly/DerbiMadridVIP
This year's Summit will be held Nov 4-6 at the San Francisco State University Library (LIB 121), 1600 Holloway Avenue at 19th Ave, San Francisco, CA 94132
Just a quick thought. I'm running
gtk3-3.22.0-2.fc25.x86_64. I just run
Sugar, a heavy user of the Gtk+ theming system. Usually, now is when I
submit a patch to port over some of the changes to the themes.
This cycle, the Gtk+ contributers had been saying that the theme api was made stable in gtk 3.20. And hell yeah - they are right. I was thinking of putting some pictures to show you just how it is exactly the same - they got perfect compatibility! But showing pictures would be a waste of bandwidth!
This is just an idea I had last night for improving the welcome screen UX, if it’s too much work or Dave and Yash don’t like it I understand. However, I may try to code it myself for fun if Yash doesn’t have time. :-)
My fear is that when users start the Edit Fonts activity for the first time they will be be lost and not understand what to do. Some users might not even have a basic understand of what vector drawing is or how a font is made. This welcome screen will at least give the users a basic idea about how to use the activity. Most importantly, this makes the first screen visualy interesting, interactive and fun. Many users may not continue with the activity if the first page is dull and boring.
I’m proposing that the welcome screen have 4 options, represented by icons and text, plus an editable .glyph that reads “Edit Fonts” in the Geo typeface. The Edit-Fonts logotype will be one .glyph file that is only loaded and never saved. see below:
I have added a Geo-Regular.ufo file to the gh-pages repo with a special “editfonts.glyph” logotype:
There are two neat things about this approach. First, it uses components we already have, the only work will be laying out the page, which Dave or I can attempt if Yash is too busy. Second, if the user never realizes that the edit fonts logotype is editable, it still functions as a logotype. A similar UX design pattern was used for the start screen of the game Super Mario 64, see below:
Last Saturday (July 9th) Eli and I met up to review the codebase, and the main issue I identified was that Travis was not set up with flake8 to test the codebase was conforming to the pep8 guidelines.
I’d filed Issue #17 for this, back at the start of the project on May 19.
Yash had started to develop the
[.travis.yml](https://github.com/sugarlabs/edit-fonts-activity/blob/gh-pages/.travis.yml) file to build a .xo bundle but hadn’t complete this just yet, so I commended out most of the code and what remained is very simple:
# this makes travis run a fast Docker container system sudo: false # we use python 2.7 language: python python: - "2.7" # we need to install flake8 to use it before_install: - "pip install flake8" # we check the codebase script: - "flake8 --statistics --ignore=E402 --exclude=defcon,extractor,fontTools,fontmake,robofab,ufo2ft,ufoLib,snippets ."
You can see there’s a few arguments passed that are pretty simple.
Stastics prints the number of occurences of each error, so you can fix the most common issues across the codebase first.
E402 is about the order of imports, but since we need to import gi to version later imports, we can’t adhere to that rule, so we ignore it.
We also exclude all the third party libraries, and our snippets.
Eli and I worked together on this and I finished it up on Sunday in Pull Request #65
Yash had already set up Travis configuration, at https://travis-ci.org/sugarlabs/edit-fonts-activity, so once this was merged, our button went green:
Finally I added a CONTRIBUTING.md file that explains how to use it.
I’ll get a similar travis set up for the gh-pages branch too.
Perhaps we could also set up a git hook that runs the flake8 command on each commit…
From the “I should have posted this months ago” vault…
When I led technology development at One Laptop per Child Australia, I maintained two golden rules:
In large part, I believe that we were successful.
Once the more obvious challenges have been identified and cleared, some more fundamental problems become evident. Our goal was to improve educational opportunities for children as young as possible, but proficiently using computers to input information can require a degree of literacy.
Sugar Labs have done stellar work in questioning the relevance of the desktop metaphor for education, and in coming up with a more suitable alternative. This proved to be a remarkable platform for developing a touch-screen laptop, in the form of the XO-4 Touch: the icons-based user interface meant that we could add touch capabilities with relatively few user-visible tweaks. The screen can be swivelled and closed over the keyboard as with previous models, meaning that this new version can be easily converted into a pure tablet at will.
Still, a fundamental assumption has long gone unchallenged on all computers: the default typeface and keyboard. It doesn’t at all represent how young children learn the English alphabet or literacy. Moreover, at OLPC Australia we were often dealing with children who were behind on learning outcomes, and who were attending school with almost no exposure to English (since they speak other languages at home). How are they supposed to learn the curriculum when they can barely communicate in the classroom?
Looking at a standard PC keyboard, you’ll see that the keys are printed with upper-case letters. And yet, that is not how letters are taught in Australian schools. Imagine that you’re a child who still hasn’t grasped his/her ABCs. You see a keyboard full of unfamiliar symbols. You press one, and on the screen pops up a completely different looking letter! The keyboard may be in upper-case, but by default you’ll get the lower-case variants on the screen.
Unfortunately, the most prevalent touch-screen keyboard on the marke isn’t any better. Given the large education market for its parent company, I’m astounded that this has not been a priority.
Better alternatives exist on other platforms, but I still was not satisfied.
The solution required an examination of how children learn, and the challenges that they often face when doing so. The end result is simple, yet effective.
This image contrasts the standard OLPC mechanical keyboard with the OLPC Australia Literacy keyboard that we developed. Getting there required several considerations:
One interesting user story with the old keyboard that I came across was in a remote Australian school, where Aboriginal children were trying to play the Maze activity by pressing the opposite arrows that they were supposed to. Apparently they thought that the arrows represented birds’ feet! You’ll see that we changed the arrow heads on the literacy keyboard as a result.
We explicitly chose not to change the QWERTY layout. That’s a different debate for another time.
After much research and discussions with educators, I was unimpressed with the other literacy-oriented fonts available online. Characters like ‘a’ and ‘9’ (just to mention a couple) are not rendered in the way that children are taught to write them. Young children are also susceptible to confusion over letters that look similar, including mirror-images of letters. We worked to differentiate, for instance, the lower-case L from the upper-case i, and the lower-case p from the lower-case q.
Typography is a wonderfully complex intersection of art and science, and it would have been foolhardy for us to have started from scratch. We used as our base the high-quality DejaVu Sans typeface. This gave us a foundation that worked well on screen and in print. Importantly for us, it maintained legibility at small point sizes on the 200dpi XO display.
abc123 is a suitable substitute for DejaVu Sans. I have been using it as the default user interface font in Ubuntu for over a year.
It looks great in Sugar as well. The letters are crisp and easy to differentiate, even at small point sizes. We made abc123 the default font for both the user interface and in activities (applications).
Likewise, the touch-screen keyboard is clear and simple to use.
The end result is a more consistent literacy experience across the whole device. What you press on the hardware or touch-screen keyboard will be reproduced exactly on the screen. What you see on the user interface is also what you see on the keyboards.
1. Google Summer of Code 2015 is wrapping up. The students have been writing their final blog reports, submitting last-minute patches, and uploading their code to Google. I want to take this opportunity to thank all of our students and their mentors for all their hard work this summer. (Also, thanks once more to Google for supporting this program.) Great strides along many fronts were made. Specifically,
In the Community
2. We will be holding an election for the Sugar Labs oversight board (SLOB) at the end of the calendar year. If you are interested (or know someone who is interested) in running for a board seat (all seven seats will be open), please add an entry in the wiki. Also, whereas ballots are only available to “members”, please officially join Sugar Labs.
3. Mariah Noelle Villarreal has submitted a panel proposal, “Building Free and Open Education Communities”, to the South by Southwest Conference (SXSW). The panelpicker voting period is now open until September 4th. If you have time, please vote and share with any appropriate channels as well as a video that was created for the proposal .
4. Sweet: Sugar contributors Mariah Noelle Villarreal and Ruben Rodriguez got married this summer!!!
5. There were three RED (Revista de Educación a Distancia) submissions from Sugar community members:
6. The Sugar/OLPC program in Caacupe is expanding!!!
7. Peter Robinson announce quite some time ago that the Sugar on a Stick 21 Beta is now out as part of Fedora 21 Beta (Details), but I think I neglected to ever pass on the information to the Sugar community.
8. Also worth mentioning again: Ruben Rodriguez released Trisquel 7.0 released. TOAST (Trisquel with Sugar) is an official edition.
9. Please visit our planet.
Looks like people can learn coding at 26, not just 6 or 16, and still do okay.
PODS picking up where Sugar Labs @ NDSU left off, except:
a. they seem to be charging for classes
b. they want to reach as many kids as possible but probably aren’t focusing on under-represented populations
c. they want to “enhance creativity;” we were trying to focus on computational thinking. Ironic.