-Поиск по дневнику

Поиск сообщений в rss_planet_mozilla

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 19.06.2007
Записей:
Комментариев:
Написано: 7

Planet Mozilla





Planet Mozilla - https://planet.mozilla.org/


Добавить любой RSS - источник (включая журнал LiveJournal) в свою ленту друзей вы можете на странице синдикации.

Исходная информация - http://planet.mozilla.org/.
Данный дневник сформирован из открытого RSS-источника по адресу http://planet.mozilla.org/rss20.xml, и дополняется в соответствии с дополнением данного источника. Он может не соответствовать содержимому оригинальной страницы. Трансляция создана автоматически по запросу читателей этой RSS ленты.
По всем вопросам о работе данного сервиса обращаться со страницы контактной информации.

[Обновить трансляцию]

Eitan Isaacson: Normalizing Speech Rate

Воскресенье, 13 Марта 2016 г. 22:29 + в цитатник

While working on the speech synthesis API in Firefox, I have been trying to figure out how to provide the most consistent experience across different desktop platforms. This is tricky, because each platform has its own speech API. Each API has slightly differing feature sets and idiosyncrasies.

A good way to foresee the difficulties others will encounter when writing a cross-platform speech app, is to actually write one. So when we started work on the Narrate feature, I needed to account for the fact that the Linux speech API is not capable of pausing speech mid-utterance. We managed to design the interface in a way that wouldn’t require pausing speech, but still give the user an intuitive way of stopping and starting the narration mid-way through the article.

When we landed Narrate, Ehsan noticed that the speech rate slider in the interface was useless at either extremes. Either silly fast, or glacially slow. Since I was developing this feature on Linux, I didn’t encounter the fast rates OSX users experienced. I first thought this was a bug in our OSX speech synthesis support, but later realized Mac was the exception, and this was an issue with the rate conversion in Linux and Windows.

Speech rate is subjective, in so many ways. What is a “normal” speech rate? I have found many numbers, ranging from 150 to 200 words per minute for US English speakers. Luckily, when it comes to the web API we don’t care what the “normal” rate is, we care about relative rate. But that doesn’t completely solve our conundrum.

The Web Speech API (and SSML) defines the rate as a multiplier of the normal speech rate for a given voice. Meaning, 1 is normal, 2 is twice the speed and 0.5 is half. The speech rate goes through a few conversions:

  1. Web page provides a rate to the browser
  2. The browser converts the rate to the platform-specific speech API.
  3. The speech API converts the rate to the speech engine API.
  4. In some cases, the voice converts the rate value the engine provides it.

In OSX, life of course is easiest. The rate is defined as words per minute, their docs say “normal” is between 180 to 220. All we need to do is multiply that, and we get a predictable rate. Things get a little hairier on Linux and Windows. In Linux, the Speech Dispatcher API docs says that rate should be an integer between -100 and 100 with 0 being default. In Windows, the situation is not much better: from a cursory glance at the docs for ISpVoice::SetRate, it just specifies that accepted rates are between -10 and 10.

Further digging brought up more information on Linux and Windows that made the rate parameter a bit more understandable:

  • In Linux, Speech Dispatcher’s eSpeak output module configuration file shows that the default rate is 160 wpm, the minimum is 80, and the max is 320. That’s pretty conservative, but at least it gives us an idea of what is going on.
  • Deeply buried in the Windows docs, I found a mention that the max is 3x normal, and the minimum is a third normal rate.

Now we have something to work with! Did I bore you? I am boring myself..

Next post, a speech rate benchmark tool, pretty graphs, and my attempt at “math”!

 


http://blog.monotonous.org/2016/03/13/normalizing-speech-rate/


Pascal Finette: Podcast – Inspiring Social Entrepreneurs

Воскресенье, 13 Марта 2016 г. 16:15 + в цитатник

The other day Fergal Byrne interviewed me for his Podcast “Inspiring Social Entrepreneurs”. We touched upon topics such as:

  • The most important skill, often overlooked, required to succeed as a social entrepreneur
  • How to build a social support network
  • Keys to funding success
  • How to find leverage to succeed
  • Some exciting high-potential startups at Singularity University

You can listen to the Podcast in many different formats and mediums on the Inspiring Social Entrepreneurs Website.

http://blog.finette.com/podcast-inspiring-social-entrepreneurs/


The Mozilla Blog: Mozilla A-Frame Powers New Amnesty International Virtual Reality Website #360Syria

Суббота, 12 Марта 2016 г. 20:25 + в цитатник

Amnesty International today announced a new #360Syria “virtual tour” website showing the devastation brought by Syrian government barrel bombing of the besieged city of Aleppo. The website demonstration, called “Fear of the Sky” (www.360Syria.com), is built using Mozilla A-Frame technology.

Websites like #360Syria, that allow viewers to take a virtual tour of the devastated city of Aleppo, are a significant new use case for WebVR. Technology gives people a voice where otherwise there is none. It brings a new level of visibility and greater levels of empathy to real-life situations.

The #360Syria website comprises specially-created 360-degree photography, narration, sound recordings, 3-D data graphics and videos gathered by Amnesty-trained Syrian media activists. The site was created in partnership with San Francisco design and technology company Junior (www.junior.io).

A-Frame is an open source framework that simplifies WebVR development and enables easy creation of WebVR experiences with HTML. Because A-Frame is built around building blocks that can be extended and combined into limitless combinations, it provides a high degree of creative freedom.It is designed and maintained by MozVR (Mozilla’s virtual reality research team) and optimizes for a smooth learning curve between ease-of-use for developers who are new to virtual reality technology and increased flexibility for advanced developers.

At Mozilla one of our goals is to bring high-performance, responsive virtual reality technology to the open Web. We launched A-Frame, an open source library for creating virtual reality Web experiences, so that Web developers could create virtual reality websites from a single line of HTML code and bypass complex 3D APIs like WebGL.

Our hope is that A-Frame provides a constructive contribution to a growing pantheon of WebVR development tools, helping to grow the number of VR Web developers and experiences.

More information:
About Mozilla VR (MozVR)
Getting Started with Mozilla A-Frame
Amnesty International #360Syria blog post

https://blog.mozilla.org/blog/2016/03/12/mozilla-a-frame-powers-new-amnesty-international-virtual-reality-website-syria360/


Karl Dubost: [worklog] funny bugs are not always funny

Суббота, 12 Марта 2016 г. 17:04 + в цитатник

Starting the week with rainy days and a very active and busy week-ends. Tune of the week: "Singin' in the Rain" 1952 ~ Gene Kelly.

Webcompat Life

Progress this week:

Today: 2016-03-12T23:05:20.602961
451 open issues
----------------------
needsinfo       11
needsdiagnosis  122
needscontact    93
contactready    83
sitewait        104
----------------------

You are welcome to participate

Webcompat issues

(a selection of some of the bugs worked on this week).

Gecko Bugs

Webcompat.com development

Reading List

Follow Your Nose

TODO

  • Document how to write tests on webcompat.com using test fixtures.
  • ToWrite: rounding numbers in CSS for width
  • ToWrite: Amazon prefetching resources with for Firefox only.

Otsukare!

http://www.otsukare.info/2016/03/12/worklog-rain


Selena Deckelmann: [workweek] tc-worker workweek recap

Суббота, 12 Марта 2016 г. 02:48 + в цитатник

Sprint recap

We spent this week sprinting on the tc-worker, engines and plugins. We merged 19 pull requests and had many productive discussions!

tc-worker core

We implemented the task loop! This basic loop should start when the worker is invoked. It spins up a task claimer and manager responsible for claiming as many tasks up to it’s available capacity and running them to completion. You can find details in in this commit. We’re still working on some high level documentation.

We did some cleanups to make it easier to download and get started with builds. We fixed up packages related to generating go types from json schemas, and the types now conform to the linting rules

We also implemented the webhookserver. The package provides implementations of the WebHookServer interface which allows attachment and detachment of web-hooks to an internet exposed server. This will support both the livelog and interactive features. Work is detailed in PR 37.

engine: hello, world

Greg created a proof of concept and pushed a successful task to emit a hello, world artifact. Greg will be writing up something to describe this process next week.

plugin: environment variables

Wander landed this plugin this week to support environment variable setting. The work is described in PR 39.

plugin: artifact uploads

This plugin will support artifact uploads for all engines to S3 and is based on generic-worker code. This work is started in PR 55.

TaskCluster design principles

We discussed as a team the ideas behind the design of TaskCluster. The umbrella principle we try to stick to is: Getting Things Built. We felt it was important to say that first because it helps us remember that we’re here to provide features to users, not just design systems. The four key design principles were distilled to:

  • Self-service
  • Robustness
  • Enable rapid change
  • Community friendliness

One surprising connection (to me) we made was that our privacy and security features are driven by community friendliness.

We plan to add our ideas about this to a TaskCluster “about” page.

TaskCluster code review

We discussed our process for code review, and how we’d like to do them in the future. We covered issues around when to do architecture reviews and how to get “pre-reviews” for ideas done with colleagues who will be doing our reviews. We made an outline of ideas and will be giving them a permanent home on our docs site.

Q2 Planning

We made a first pass at our 2016q2 goals. The main theme is to add OS X engine support to taskcluster-worker, continue work on refactoring intree config and build out our monitoring system beyond InfluxDB. Further refinements to our plan will come in a couple weeks, as we close out Q1 and get a better understanding of work related to the Buildbot to TaskCluster migration.

http://www.chesnok.com/daily/2016/03/11/workweek-tc-worker-workweek-recap/


Chris Cooper: RelEng & RelOps Weekly highlights - March 11, 2016

Суббота, 12 Марта 2016 г. 02:06 + в цитатник

My apologies for a somewhat reduced set of highlights this week. I only returned from vacation on Wednesday, and am still trying to get back up-to-speed with what’s going on.

Thanks to Kim for taking care of these releng highlights while I was away. In case you missed them, those posts can be found on her blog:

Improve CI Pipeline:

With lots of hard work from numerous people, we have expanded the scope of TaskCluster linux builds to include all twig branches as well as Aurora, and are on-track to make these builds Tier-1, and move Buildbot builds to Tier 2, in the next week or two.

Rok is extending the clobberer tool to be able to purge the cache for taskcluster workers (https://bugzil.la/1174263). This should be landing soon.

Aki added buildtime-generated code to the python taskcluster client, for easier code inspection and better stack traces. The code is still pending merge.

Improve Release Pipeline:

Firefox 46.0b1 is the first release we’ve attempted using build promotion, a new release process that multiple team members have been working on since last year. As is typical with new systems, we encountered some issues on this first attempt, and have so far iterated 9 times trying to get it right as continue to fix bugs. Among the issues we found this week was a discrepancy between how our manual update checks were attempting to invoke Ba'al, the Soul-eater, when compared with our automated tests. This is how the sausage is made, people.

Release:

We released Firefox and Fennec 45.0, as well as Fennec 46.0b1. As mentioned, Firefox 46.0b1 was still in progress as we went to press.

The RockWe’re actually not that sad about it.

Operational:

Kim disabled the last of the Android 4.0 jobs running on pandas (rack-mounted Android reference cards). We are in the process of cleaning up the code that was associated with them, as well as decommissioning the remaining pandas and associated hardware. Thank you pandas for service, enjoy your well-deserved retirement! Android performance tests will now run via autophone and results displayed via perfherder thanks to the hard work of many people on the developer productivity team.

The “TaskCluster login v3” effort is drawing to a close, and everyone can now login and create their own TaskCluster clients for whatever mad-science automation they want to do. This change makes the TaskCluster authentication system more maintainable and scalable, and will help us in encouraging other services such as RelengAPI, treeherder, and ship-it to use TaskCluster authentication. Dustin is in touch with owners of the old “permacreds” issued to interested people over the last few years to switch over to the new system.

Two platform support discussions that I want to highlight this week:

  • bsmedberg announced our intention to deprecate support for versions of OS X older than 10.9 in the Firefox 46 release cycle. This discussion is happening in the firefox-dev newsgroup.
  • Now that b2g is no longer in the testing picture, Kim renewed the discussion about disabling all linux32 testing. This decision will have support implications, not the least of which are:
    • Should we continue to release on a platform without testing? (probably not)
    • Do we have sufficient 32-bit architecture coverage on Windows?

See you next week!

http://coopcoopbware.tumblr.com/post/140878073990


Air Mozilla: Foundation Demos March 11 2016

Пятница, 11 Марта 2016 г. 23:01 + в цитатник

Foundation Demos March 11 2016 Mozilla Foundation Demos Friday March 11 2016

https://air.mozilla.org/foundation-demos-march-11-2016/


Support.Mozilla.Org: SUMO l10n update

Пятница, 11 Марта 2016 г. 21:34 + в цитатник

Hello, SUMO l10ns!

SUMO l10ns, represent! (lion head image by Elio Qoshi)

SUMO l10ns, represent! (lion head image by Elio Qoshi)

I wanted to share a few updates with you regarding the current state and plans for SUMO l10n – and I hope to do it more or less regularly via the blog.

  • L10n hackathons in your area

The most important piece of news first.  The core Mozilla Localization team together with the global l10n community powering Mozilla are organizing a series of localization hackathons around the world. It would be amazing to see you, SUMO localizers, join the fun!

Please check the dates below and if you see a locale that you localize in, contact the localizers organizing the event through the links below:

April

May

July

August

September

I hope you can join your locale’s get-together, at the very least virtually.

  • Pontoon video tutorials

I am working on a series of short videos explaining the basics of working with Pontoon on SUMO UI localization. If you have requests about particular elements of it, let me know. The videos will be posted on our YouTube channel and included in the series of Knowledge Base articles for new localizers.

  • Milestones and dashboards

The milestones tracker has been recently updated with new data by locale leaders and localizers. Please use it every month to track the progress of your locale – it makes it much easier to prioritize and navigate the complex map of SUMO l10n :-)

We had plans to make the tracker a part of the dashboards with automatic updates depending on a locale team’s progress, but these will have to wait due to our current dearth of developers.

  • Product priorities

Firefox for Desktop remains our top priority, followed by Firefox for Android and Firefox for iOS. We are still waiting for more news regarding the future of Connected Devices, but for now Firefox OS is no longer a priority. Thunderbird’s KB is entirely in the hands of the Mozillian community.

  • Locale priorities

You have all been doing an awesome job all over the KB, but there are some locales that need a bit of helping out, for various reasons. In the upcoming months I will focus on the following locales for the following reasons:

  • pl, nl – we need more localizers for Polish! We also definitely need more localizers for Dutch, even if Tonnes and Gert are doing a great job of keeping the Dutch KB in the green all the time – they might want to go on holiday at some point (and then we’re doomed! :-))
  • trel, id, vi – Turkish is one of our most popular locales and we don’t have enough people at the moment. Same goes for Greek, Indonesian, and Vietnamese – the hunt for great localizers in these locales is on!
  • arwhile Ghaith & the Mozilla Tunisia team have kicked things off in a great way recently, we definitely don’t want to stop there. Mozilla’s software is used by many Arabic speakers and we have to make it easier to use for them in the future.
  • Questions? Let me know

As always, if you have questions about any of the above, contact me. You can also use the SUMO l10n forums, as usual.

Keep rocking the helpful web with your strong roars, l10ns!

https://blog.mozilla.org/sumo/2016/03/11/sumo-l10n-update/


Mozilla Addons Blog: WebExtensions in Firefox 47

Пятница, 11 Марта 2016 г. 21:00 + в цитатник

We last updated you on our progress with WebExtensions when Firefox 46 landed in Developer Edition (Aurora), and today we have an update for Firefox 47, which landed in Developer Edition last week.

While WebExtensions will remain in a beta state in Firefox 47, we’ve made lots of progress, with 81 bugs closed since the last update. As of this update, we are still on track for a milestone release in Firefox 48 when it hits Developer Edition.

There’s a new way for you to get involved! Tell us which APIs you’d like support for by filling out this survey, to help us better prioritize them. We have also created a wiki page filled with resources to support developers through all the changes coming in the add-ons world.

APIs Implemented

Adding keyboard shortcuts that trigger actions in your extension arrived with the partial implementation of commands. This allows developers to map key presses from the manifest to actions in your add-on.

With the partial implementation of downloads you can download files from your add-on and get updates of the download progress. You can also search through the existing downloads using the search API.

Several additions and changes in webRequest have been included in Firefox 47. These prelude even bigger news for add-ons that focus on security and privacy to work perform the sort of network inspection needed to do their job. More details on these changes are covered in Giorgio’s blog post.

Also completed is the i18n API and we are getting closer to completing the bookmarks API.

More of the tabs API have been completed, including:

Several improvements have been made to the windows API, including :

  • Added support for creating a new window from an existing tab, popup-type windows
  • Querying and changing a windows’ minimized, maximized and fullscreen state.

All asynchronous methods which accept a callback function will now return a Promise if no callback is passed. These promises resolve at the same time a callback would normally be called, and reject with the value of lastError in cases where that would otherwise be set. Additionally, onMessage listeners may now return a Promise object if they wish to send a reply. When the promise resolves, its resolution value will be returned to the sender.

WebExtension manifests now support a “creator” property, which is displayed in the Add-on Manager, to indicate the author of the add-on. Additionally, manifests are now fully type-checked at startup, and any type errors or unexpected properties are reported to the Browser Console for inspection.

For the full list of API changes, please see the bug list.

Command line tool

A new command line tool is being build for WebExtensions, called “web-ext” will allow you to run, test and sign add-ons easily from the command line. For example to run your add-on in a new profile, from your add-on, just call: web-ext run.

This command line utility is in its early days, but you can follow along with web-ext development on github.

New examples

We’ve been preparing examples of our APIs on github. In the last few weeks we’ve added two more examples:

  • bookmark-it: an add-on that toggles a bookmark for the currently active tab.
  • tabs-tabs-tabs: an add-on that demonstrates some of the tabs APIs available (currently move, duplicate, reload and remove)

There are currently ten example add-ons available in the repository. All of them can be installed easily by cloning the repository locally and then installing temporarily through about:debugging.
Over the coming months we will work our way towards a beta in Firefox 47 and the first stable release in Firefox 48. If you’d like to jump in to help, or get your API added, please join us on our mailing list or at one of our public meetings. You can also check out this wiki to see more ways to participate in the evolution of WebExtensions.

https://blog.mozilla.org/addons/2016/03/11/webextensions-in-firefox-47/


Support.Mozilla.Org: Event Report: 1st SUMO l10n Sprint in Tunisia

Пятница, 11 Марта 2016 г. 20:00 + в цитатник

We’re continuing our series of guest posts by you, the people who make SUMO happen. This time, I have the pleasure of introducing Ghaith, a great local(e) leader for the budding SUMO community in Tunisia.

Don’t forget that you can find all the stories written by those among you with a SUMO (or Mozilla) story to share checking this category page.

Sunday, February the 28th, from 10 am to 4 pm: it happened just like that, the first localization sprint for SUMO in Tunisia.

An amazing (and interesting) experience for everyone involved, especially since some of us didn’t have any localization experience before that day.

And there you go foxies: mission accomplished! Here’s the summary of what happened during the first Arabic SUMO sprint in Tunisia.

But first, let’s track you with cookies…

We want YOU to join the SUMO army !

This event was a real opportunity for the new community members (Welcome Adib, Amal, Fatma, Ghada and Marwen!) to participate in their first Mozilla L10n Sprint.

In all, 9 members were active during this 6-hour long sprint, with 4 of them being new members in the Tunisian community.

Ghaith acted as the event’s lead, presenting the tools we were going to use as well as offering advice and directions for the new SUMO warriors to maintain good translation quality.

Although two of our senior community members had to take a break due to personal matters, it didn’t hinder our efforts as we kept hammering at the goals we set.

We’ve mainly been using Transvision (A big thanks to the French Mozilla community for this tool) to search for the UI strings already localized in the Firefox Release repos. We also used an online keyboard that transformed latin letters in their phonetical arabic counterparts for those who were too used to their AZERTY and QWERTY Latin keyboards.

And last but not least, we wanted to experiment with machine translation. A warning though: we are not yet able to obtain understandable sentences from automatic translators, especially in Arabic (Note to self: machine translation is a true gold mine of funny, incomprehensible sentences) – but it did help when a fast way to translate the short and common words was needed, leaving to us only the fixing of the overall form and grammar, and replacing the technical words. Afterwards, we’d obtain a quality sentence understandable by all and in sync with the rest of the Arabic Firefox locale. But as noted, this was just an experiment (albeit a surprisingly successful one), and most of the other localization was done the old fashioned way: by hand.

Ghaith offering a demonstration of Transvision to the team

Did someone say “goals”?

Speaking of goals – as the first localization sprint for SUMO organized in Tunisia, we lacked the proper metrics for such an event. We also planned for this event to be as cheap as possible, so we’ve set a couple of goals for this:

  1. First, we wanted to have a few metrics on which we could work on for future l10n sprints (how many articles per hour one can do, who’s interested in documentation in our community, how to organize time to maximize the results…).
  2. Second, our beloved SUMO milestones. We originally set the bar on localizing 100% of the templates and the global top 20.

Bye-bye templates, you guys were fun to work with.

At the end of the day, we’ve made it to around 85% of the goals we’ve set, with all the templates localized and 75% on the way to finishing the top 20. We can only expect better results for next sessions now that our amazing volunteers are familiar with the localization process for SUMO.

Milestones aside, the other results are promising: we did not sacrifice comfort, and the six hours we’ve set were sufficient to work without stress.

This is the first step for more regional Arabic Mozilla SUMO sprints. Now all we need is to crunch the numbers, scale them for bigger and longer sessions, and keep the awesomeness coming!

The family picture

There you go, a truly inspirational story with a great background of many smiling faces that bring Firefox closer to millions of users using Arabic daily. Thank you Ghaith – thank you SUMO Tunisia! :-)

https://blog.mozilla.org/sumo/2016/03/11/event-report-1st-sumo-l10n-sprint-in-tunisia/


Gervase Markham: An IoT Vision

Пятница, 11 Марта 2016 г. 19:55 + в цитатник

Mark’s baby daughter keeps waking up in the middle of the night. He thinks it might be because the room is getting too cold. So he goes down to the local electronics shop and buys a cheap generic IoT temperature sensor.

He takes it home and presses a button on his home’s IoT hub, then swipes the thermometer across the top. A 5 cent NFC tag attached to it tells the hub that this is a device in the “temperature sensor” class (USB-style device classing), accessible over Z-wave, and gives its public key, a password the hub can use to authenticate back to the sensor, and a URL to download a JavaScript driver. The hub shows a green light to show that the device has been registered.

Mark sticks a AAA battery into the sensor and places it on the wall above his baby’s cot. He goes to his computer and brings up his hub’s web interface. It has registered the new device and connected to it securely over the appropriate protocol (the hub speaks Bluetooth LE, wifi and Z-wave). The connection is secure from the start, and requires zero additional configuration. The hub has also downloaded the JS driver and is running it in a sandboxed environment where it can communicate only with the sensor and has access to nothing else. If it were to want to communicate with the outside world, the hub manages the SSL (rather than the device or the driver) so it can log all traffic in cleartext.

Mark views the device’s simple web page (generated by the driver) and sees the room is at 21C. He asks the hub to sample the value every minute and make a chart of the results. The hub knows how to do this for various simple device classes, including temperature sensors.

The next morning, he checks the chart and indeed, at 3am when the baby woke up, the temperature was only 15C. He goes back to the electrical shop and buys an IoT mains passthrough plug and a cheap heater. He registers the plug with the hub as before, then plugs the heater into the passthrough, and the passthrough into a socket in the baby’s room.

Back at the web interface, he gives permission for the plug’s driver to see data from the temperature sensor. However, the default driver for the plug doesn’t have the ability to react to external events. So he downloads an open source one which drives that device class. Anyone can write drivers for a device class because the specs for each class are open. He then tells the new driver to read the temperature sensor, and turn the plug on if the temperature drops below 18C, and off if it rises to 21C. The next night, the baby sleeps through. Success!


The key features of this system are:

  • the automatic registration and instant security, based on a cheap NFC tag which implements an open standard, which allows device makers to make their devices massively easier to use (IoT device return/refund levels are a big problem at the moment);
  • the JS host environment on the hub, which means you can run untrusted code on your network in a sandbox so you can buy IoT devices without the risk of letting random companies snoop on your data, and every device or ecosystem doesn’t need to come with its own controller; and
  • the open standard and device classes which mean all devices and all software is hackable.

Wouldn’t it be great if someone built something like this?

http://feedproxy.google.com/~r/HackingForChrist/~3/ZxyHJSG1yek/


Daniel Stenberg: Turn many pictures into a movie

Пятница, 11 Марта 2016 г. 17:48 + в цитатник

Challenge: you have 90 pictures of various sizes, taken in different formats and shapes. Using all sorts strange file names. Make a movie out of all of them, with the images using the correct aspect ratio. And add music. Use only command line tools on Linux.

Solution: this is a solution, you can most likely solve this in 22 other ways as well. And by posting it here, I can find it myself if I ever want to do the same stunt again…

#!/bin/sh

j=0
# convert options
pic="-resize 1920x1080 -background black -gravity center -extent 1920x1080"

# loop over the images
for i in `ls *jpg | sort -R`; do
 echo "Convert $i"
 convert $pic $i "pic-$j.jpg"
 j=`expr $j + 1`
done

# now generate the movie
mp3="file.mp3"
echo "make movie"
ffmpeg -framerate 3 -i pic-%d.jpg -i $mp3 -acodec copy -c:v libx264 -r 30 -pix_fmt yuv420p -s 1920x1080 -shortest out.mp4

Explained

This is a shell script.

The ‘pic’ variable holds command line options for the ImageMagick ‘convert‘ tool. It resizes each picture to 1920x1080 while maintaining aspect ratio and if the pic gets smaller, it is centered and gets a black border.

The loop goes through all files matching *,jpg, randomizes the order with ‘sort’ and then runs ‘convert’ on them one by one and calls the output files pic-[number].jpg where number is increased by one for each image.

Once all images have the correct and same size, ‘ffmpeg‘ is invoked. It is told to produce a movie with 3 photos per second, how to find all the images, to include an mp3 file into the output and to stop encoding when one of the streams ends – this assumes the playing time of the mp3 file is longer than the total time the images are shown so the movie stops when we run out of images to show.

Result

The ‘out.mp4’ file, uploaded to youtube could then look like this:

(music by Bensound.com)

https://daniel.haxx.se/blog/2016/03/11/turn-many-pictures-into-a-movie/


Daniel Stenberg: curl in xkcd

Пятница, 11 Марта 2016 г. 10:51 + в цитатник

Support.Mozilla.Org: What’s up with SUMO – 10th March

Четверг, 10 Марта 2016 г. 22:20 + в цитатник

Hello, SUMO Nation!

Good to see you again. How are you keeping? Planning something nice for the upcoming weekend? We hope so! Here are the most recent updates from the world of SUMO.

Welcome, new contributors!

If you just joined us, don’t hesitate – come over and say “hi” in the forums!

Contributors of the week

Don’t forget that if you are new to SUMO and someone helped you get started in a nice way you can nominate them for the Buddy of the Month!

Most recent SUMO Community meeting

The next SUMO Community meeting…

  • …is happening on WEDNESDAY the 16th of March – join us!
  • Reminder: if you want to add a discussion topic to the upcoming meeting agenda:
    • Start a thread in the Community Forums, so that everyone in the community can see what will be discussed and voice their opinion here before Monday (this will make it easier to have an efficient meeting).
    • Please do so as soon as you can before the meeting, so that people have time to read, think, and reply (and also add it to the agenda).
    • If you can, please attend the meeting in person (or via IRC), so we can follow up on your discussion topic during the meeting with your feedback.

Developers

Community

  • Time for another blog post by someone who’s not me (how refreshing :-)) – tune in tomorrow to hear from Ghaith and the Tunisian community! I hear there will be cookies (at least in the photos)
  • Want to help us figure out how to deal with IRC, Telegram, and all that jazz? Jump into this thread!
  • Ongoing reminder: if you think you can benefit from getting a second-hand device to help you with contributing to SUMO, you know where to find us.

Social

Support Forum

  • Social’s not the only space full of buzzing and rumbling. You also rocked the shack today during the SUMO Forum Day. Huge thanks to all the participants who made life so much easier for many users out there.

Knowledge Base

Localization

Firefox

  • for iOS
    • Reminder: Firefox for iOS 2.1 with bug fixes and re-adding 3rd party keyboard support is out since Monday
    • Future plans, part 1 – Firefox for iOS 3.0 – will be submitted to Apple on March 22. If it gets approved in a timely fashion, the release window will be March 29 to April 7.
    • Future plans, part 2 – Firefox for iOS 4.0 – will be submitted to Apple on May 3. If it gets approved in a timely fashion, the release window will be May 10 to 19.

That’s it for now – but, as advertised, there should be at least two more blog posts this week. Let’s hope the blog can take it and won’t simply explode because of all this amassed awesomeness ;-) Keep rocking the helpful web, SUMO Nation! Over & out…

https://blog.mozilla.org/sumo/2016/03/10/whats-up-with-sumo-10th-march/


Air Mozilla: Community Design Meeting, 10 Mar 2016

Четверг, 10 Марта 2016 г. 21:00 + в цитатник

Community Design Meeting This is the monthly meeting for the Community Design Group. Get updates, share your work, and get feedback and support from a group of passionate...

https://air.mozilla.org/community-design-meeting-2/


About:Community: All Aboard

Четверг, 10 Марта 2016 г. 20:54 + в цитатник

In 1968, Martin Conway noted that “organizations which design systems […] are constrained to produce designs which are copies of the communication structures of these organizations.”

Today that’s called Conway’s Law, and to quote Wikipedia:

“The law is based on the reasoning that in order for a software module to function, multiple authors must communicate frequently with each other. Therefore, the software interfaces structure of a system will reflect the social boundaries of the organization(s) that produced it, across which communication is more difficult.”

Like any metaphorically double-edged sword, Conway’s Law is either a dangerous hazard or a powerful tool; it all depends on which end you grab.

Over the last few months the Firefox Desktop Engineering team has been refining a two-week onboarding program for engineers who’ve recently joined Mozilla. Firefox is a big project with a long history and like Mozilla (and like the Web we’ve made) the codebase and the processes around it can be as clean, streamlined and brilliant in some places as they are confusing and weirdly baroque in others.

One upshot of that is that even for full-time employees it can be hard to know where to start.

So for the last few months we’ve planned and run a series of training sessions. The’re aimed at new Firefox Desktop engineers, to help get them from New-To-Mozilla to Awesome-At-Mozilla as quickly as possible. And they’ve been very successful, not just for new hires, but for veterans and people who work with engineers as well.

But we pride ourselves on working in the open, and we’d like you to be Awesome At Mozilla too. So we’ve put them on Air Mozilla.

Here’s Nick Alexander, taking people through their first Firefox build and bugfix in the Build And Go session:

(Video compression is incredibly unforgiving, when it comes to text. We’re working on that for our next round.)

Other sessions include an introduction to Bugzilla, JS and the DOM, C++ and Gecko, Architecture & Product and more. They’re available on Air Mozilla, in the Onboarding channel, and more will be added as we record them.

If you’re interested in learning about the nuts and bolts of how Firefox is built, structured and shipped, take a look.

mhoye

http://blog.mozilla.org/community/2016/03/10/all-aboard/


Air Mozilla: Web QA Weekly Meeting, 10 Mar 2016

Четверг, 10 Марта 2016 г. 20:00 + в цитатник

Web QA Weekly Meeting This is our weekly gathering of Mozilla'a Web QA team filled with discussion on our current and future projects, ideas, demos, and fun facts.

https://air.mozilla.org/web-qa-weekly-meeting-20160310/


Air Mozilla: Reps weekly, 10 Mar 2016

Четверг, 10 Марта 2016 г. 19:00 + в цитатник

Reps weekly This is a weekly call with some of the Reps to discuss all matters about/affecting Reps and invite Reps to share their work with everyone.

https://air.mozilla.org/reps-weekly-20160310/


Adam Lofting: What’s so special about Networks?

Четверг, 10 Марта 2016 г. 18:29 + в цитатник

This is a long overdue blog post, so it’s also bit long.

In the latter half of last year, as part of the work on the Mozilla Foundation 2020 Strategy and 2016 Business Plan, I was thinking about KPIs (Key Performance Indicators).

I think a lot about KPIs, and how the numbers you choose to care about either do or don’t influence the people who make day-to-day decisions about where to invest time, energy and money.

Many people have written much about KPIs, and the intersection of people and numbers is a fascinating place to work.

And in many cases it’s pretty easy to find a good KPI. Most of the significant ‘business’ decisions made around the world today will be mapping as directly as possible to some concept of Shareholder Value, or Gross Domestic Product.

But when your goal isn’t making money, or moving money around, it gets more complex (and usually more interesting).

Which brings us to Networks. In particular, the trickiest kind of network to measure – the ones made up of people.

16181710782_67731fa7bd_z

A significant part of the work we do in the Foundation is investing in communities of practice that are linked in various ways to our mission. These are amazing programmes, and the volunteers around the world who get involved are a huge part of our capacity to influence the shape of the world.

If you embed yourself in one of these communities, you see magical things happen. But as these networks get bigger and are distributed far and wide geographically, it’s hard to keep an accurate intuition of where things are going well, and where things need help.

To care for the network at scale, we need ways to track it’s ‘Vital Signs’.

Coming from a web analytics and fundraising optimisation background, this started out feeling somewhere between ‘very messy’ and ‘outright impossible’ to me. But the more I dug into existing work in the field, the more I realised we could do something useful here.

The question I’ve been asking myself is ‘how can we build a nervous system for our network?’ Something light weight, but capable of firing feedback signals and generating reflex actions. This frame has been helpful as I’ve talked to people about this work. We’re not at that point yet, but that where I’d like to see this work go.

So, onto what we’re doing right now.

Evaluating the impact of network building programmes isn’t new, but compared to other evaluation processes used by non-profits, it’s a younger field of work. We’re going to start by running network mapping surveys, and apply some Social Network Analysis (SNA) methods to analyse the results.

Where we might be doing something new, is trying to turn the ongoing process of network evaluation into an organisational KPI – by boiling down the constituent parts of the analysis to generate a single number we can track over time – allowing us to compare networks of different shapes and styles on a standard scale. I say ‘might be’, because it’s possible we’ve just not found the other people who’ve done this yet. Searching for content on Network KPIs usually ends up finding the ‘ICT type of network’ rather than the ‘people type of network’.

So, I have more to write here but for now I’ll share a couple of working documents:


 

Featured Photo Credit: Matt Gibson

http://feedproxy.google.com/~r/adamlofting/blog/~3/1d8A75fwGv0/


Mike Hommey: RIP Iceweasel, 13 Nov 2006 – 10 Mar 2016

Четверг, 10 Марта 2016 г. 15:36 + в цитатник

This took longer than it should have, but a page is now officially turned. I uploaded Firefox and Firefox ESR to Debian unstable. They will have to go through the Debian NEW queue because they are new source packages, so won’t be immediately available, but they should arrive soon enough.

People using Iceweasel from Debian unstable will be upgraded to Firefox ESR.

Debian stable will receive Firefox ESR after Iceweasel/Firefox ESR38 is end-of-lifed, in about 3 months.

Thanks go to Sylvestre Ledru, Mike Connor (the same who filed bug 354622) and Stefano Zacchiroli.

https://glandium.org/blog/?p=3622



Поиск сообщений в rss_planet_mozilla
Страницы: 472 ... 249 248 [247] 246 245 ..
.. 1 Календарь