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

Поиск сообщений в 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 ленты.
По всем вопросам о работе данного сервиса обращаться со страницы контактной информации.

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

Air Mozilla: July Privacy Lab - Crypto Wars with guest speakers from CDT and EFF

Среда, 22 Июля 2015 г. 02:00 + в цитатник

July Privacy Lab - Crypto Wars with guest speakers from CDT and EFF July's Privacy Lab will include guest speakers from CDT and EFF to talk about backdoors and crypto wars.

https://air.mozilla.org/july-privacy-lab-crypto-wars-with-guest-speakers-from-cdt-and-eff/


Ben Hearsum: Mozilla Software Release GPG Key Transition

Вторник, 21 Июля 2015 г. 21:45 + в цитатник

Late last week we discovered the expiration of the GPG key that we use to sign Firefox, Fennec, and Thunderbird nightly builds and releases. We had been aware that this was coming up, but we unfortunately missed our deadline to renew it. This caused failures in many of our automated nightly builds, so it was quickly noticed and acted upon.

Our new GPG key is as follows, and available on keyservers such as gpg.mozilla.org and pgp.mit.edu:

pub   4096R/0x61B7B526D98F0353 2015-07-17
      Key fingerprint = 14F2 6682 D091 6CDD 81E3  7B6D 61B7 B526 D98F 0353
uid                            Mozilla Software Releases 
sub   4096R/0x1C69C4E55E9905DB 2015-07-17 [expires: 2017-07-16]

The new primary key is signed by many Mozillians, the old master key, as well as our OpSec team's GPG key. Nightlies and releases will now be signed with the subkey (0x1C69C4E55E9905DB), and a new one will be generated from the same primary key before this one expires. This means that you can validate Firefox releases with the primary public key in perpetuity.

We are investigating a few options to make sure key renewal happens without delay in the future.

http://hearsum.ca/blog/mozilla-software-release-gpg-key-transition.html


Mozilla IT & Operations: Troubleshooting the Internet

Вторник, 21 Июля 2015 г. 18:36 + в цитатник

Introduction

If you’re working from home, a coffee shop or even an office and are experiencing “issues with the Internet” this blogpost might be useful to you.
We’re going to go through some basic troubleshooting and tips to help solve your problem. At worse gather data so your support team can investigate.

Something to keep in mind while reading is that everything is packets. When downloading a webpage, image, email or video-conferencing, you have to imagine your computer splitting everything into tiny numbered packets and sending them to their destination through pipes, where they will be reassembled in order.
Network issues are those little packets not getting properly from A to Z, because of pipes full, bugs, overloaded computers, external perturbations and a LOT more possible reasons.

Easy tests

We can start by running some easy online tests, even if not 100% accurate, you can run them in a few clicks from your browser (or even phone) and can point toward the right direction.

Speedtest is a good example. Hit the big button and wait, don’t run any download or bandwidth heavy applications. The best is to know what a “normal” value is, so you can compare both.

As some sneaky providers can prioritize connections to the famous Speedtest, you can try another less known website like ping.online.net. Start the download of a large file and check how fast it goes.

Note that the connection is shared between all the connected users. So one can easily monopolize the bandwidth and clog the pipe for everyone else. This is less likely to happen in our offices where we try to have pipes large enough for everyone, but can happen in public places. In this case there is nothing much you can do.

Next is a GREAT one: Netalyzr. You will need Java but it’s worth it (first time I have ever said that). There is also an Android app but it’s better to run it from the device experiencing the issue (but it’s also interesting to see how good your mobile/data “Internet” really is). Netalyzr will runs TONS of tests, DNS, blocked ports, latency, etc… And give you a report quite easy to understand or share with a helpdesk. See Mozilla’s Paris office.

Screenshot of Netalyzr resultSome ISPs start to roll out a new version of the Internet, called IPv6 (finally!). As it’s “new” for them, there can be some issues. To check that, run the test on Test-ipv6.

Basic connectivity

If the previous tests show that something is wrong or you still have a doubt, these tools are made to test basic connectivity to the Internet as well as checking the path and basic health of each network segments from you to a distant server.

“ping” will send probes each second to a target and will reports how much time it takes (round trip) to reach it. For an indication, a basic time between Europe and the US west coast is about ~160ms, US east to US west coast ~90ms, Taipei to Europe ~300ms. If it is higher than that you might indeed see some “laggish/slow Internet”.

Screenshot of pings to Wikipedia“traceroute” is a bit different; it does the same but shows you the intermediate hops in between source and destination.

The best in this domain is called “mtr” and is a great combination of the previous 2: for each hop, it runs a continuous ping. Add –report so you can easily copy and paste the result if you need to share it. Having some higher latency or packet loss for a hop or two is usually not an issue. This is because network devices are not made to reply to those tests, they just do it if they are not too busy with their main function, redirecting a packet in a direction or another. A good issue indicator is if many nodes (and especially your target) start showing packet loss or higher latency.

Screenshot of an mtr to www.mozilla.orgIf the numbers are high on the first hop this means something is wrong between your computer and your home/office/bar’s Internet gateway.

If the issues appear “around the middle” it’s an issue with your ISP or your ISP’s ISP and the only thing you can do is to call their support to complain or change ISP when possible. That is what happened with Netflix in the US.

If the numbers are high near the really end it’s probably an issue with the service you’re testing, try to contact them.

Wireless

An easy one when possible. If you are on wireless try to switch to a wired network and re run the tests mentioned above. It might be surprising but wireless isn’t magic :)

Most of the home and small shops wifi routers (labeled “BGN” or 2.4Ghz) can only use 1 out of 3 frequencies/channels to talk to their clients, and clients have to wait for their turn to talk.
So imagine your neighbor’s wifi is on the same frequency. Even if your wifi distinguishes your packets from your neighbor’s, they will have to share the channel. If you have more than 2 neighbors (Wireless networks visible in the wifi list), you will have an non optimal wireless experience and this is exponential.

To solve/mitigate it you can use an app like “Wifi Analyzer” on Android. X are the frequencies, only 1, 6 and 11 are really usable as they don’t overlap. and Y is how noisy they are. Locate yours, then if a channel is less busy go in your wireless router’s settings and move to that one.

Screenshot of wifi analyserIf they are all busy, last option is to buy a router that supports more recent standard, labeled “ABGN” (even now “AC”) or 5Ghz. Most high end phones and laptop support it as well. That range has around 20 usable channels instead of 3.

Another common issue in public places is when some people can’t connect at all but other people don’t have any issue. This is usually due to a mechanism called DHCP that allocates an address (here you can see it as a slot) to your device. Default settings are made for small networks and remember slots for a long time even if they are not used anymore. It’s usually possible to reduce the “remember” time and/or enlarge the pool of slots in the router’s settings.

Wired

These are less complicated to troubleshot. You can start by unplugging everything else connected to your router and see if it’s better. If not the issue might come from that box. Also be careful not to create physical loops in your network (like plugging 2 cables between your router and a switch).

https://blog.mozilla.org/it/2015/07/21/troubleshooting-the-internet/


Air Mozilla: Martes mozilleros

Вторник, 21 Июля 2015 г. 18:00 + в цитатник

Martes mozilleros Reuni'on bi-semanal para hablar sobre el estado de Mozilla, la comunidad y sus proyectos.

https://air.mozilla.org/martes-mozilleros-20150721/


About:Community: Hacking Tech Evangelism in Bangalore: Q & A With Kaustav Das Modak

Вторник, 21 Июля 2015 г. 17:38 + в цитатник

Back in May, we completed the pilot run of a new program. Mozilla Tech Speakers is designed to empower and support technical evangelists around the world who are serving their communities as speakers and trainers, presenting Mozilla and open web technologies at conferences, workshops, and events. We’ve already posted about the first phase of the program and shared examples of talks and activities from our first cohort of participants.

Not long after that post went up, I learned that Mozilla Rep and Mozillian Tech Speaker Kaustav Das Modak was organizing a Tech Evangelism Workshop with a group of volunteers from Mozilla India’s Bangalore community. Their goal: Work together over a weekend to build confidence and communication skills for technical evangelism. Have each participant finish the weekend with a new presentation and accompanying blog post or article ready to go. The reported results were impressive.

Photo by Kaustav Das Modak

Photo by Kaustav Das Modak

I invited Kaustav to share his activity and its outcome with more Mozillians, who might want to replicate a version of this event in their own communities. The basics apply for all presenters, so you don’t have to be a technologist to find value. Here’s what I learned from Kaustav (in Q & A format):

1) Kaustav, tell us a little about who you are and the work you do as a Mozilla contributor and technical evangelist.

I’m currently working on my start-up, Applait, where we are building a unified layer for real-time communications over the internet.

I’ve been publicly involved with Mozilla a little over 2 years now. Meeting people all over the world and working on open technologies has been my motivation to volunteer with Mozilla.

I’ve always enjoyed sharing what I know with everyone else, since my childhood. My inspiration to pursue technical evangelism as a profession, and then as a passion, came from attending a workshop on technical evangelism conducted by Christian Heilmann, Robert Nyman and Ali Spivak in Bangalore in 2013.

Photo by Kaustav Das Modak.

Photo by Kaustav Das Modak.

I was involved with the Mobilizers team during the Firefox OS launch, and I try to coordinate community evangelism for Mozilla in India, whenever I can.

2) What inspired you to create this event?

I’ve been planning over a year to conduct workshops to help fellow Mozillians get more confident in presenting themselves. I have helped folks individually all along. But, the Tech Speakers pilot programme finally made me get over the lethargy and actually the start the event. I plan to make this into a series, generating a ton of useful content in the process.

3) Can you share your thinking about the agenda and how you designed it?

The core goal of the Tech Evangelism Workshop is to help participants get better at what they are already good at. Participants are asked to choose a topic in which they think they have sufficient knowledge. Then, through the rest of the workshop, they practice building content around that topic – they give 2 presentations, write a talk abstract and an article.

By the end of the workshop, they realize that they already had the capability within them. The true success of this workshop is to make participants realize that all they needed was to do quality research, better practice and letting go of the shyness within.

4) What advice would you offer for other Mozillians who would like to organize a training/workshop like this to prepare presentations and practice public speaking? Do you have specific advice for technical presenters?

One thing that has always helped is to do your homework. _Nothing_ beats a healthy research. Research your audience and respect cultural differences.

5) What are you planning next? What advice do you have for other Mozillians who want to organize a workshop focused on technical evangelism skills?

I’m already planning for a second run of this workshop. I’m also eager to help any Mozillian who needs help individually. It’s okay to ping me anytime on IRC, my nick is kaustavdm.

http://blog.mozilla.org/community/2015/07/21/hacking-tech-evangelism-in-bangalore-q-a-with-kaustav-das-modak/


Byron Jones: happy bmo push day!

Вторник, 21 Июля 2015 г. 11:13 + в цитатник

the following changes have been pushed to bugzilla.mozilla.org:

  • [1184454] unable to create new products
  • [1184456] cannot create a new product with ‘detect’ as the default platform
  • [1183899] Restricting access of bugs submitted from the FSA Budget Request form
  • [1184755] Update docker image runtests.sh to clone bmo git repo with full history instead of –depth=1
  • [1180571] remove the ability to search attachment data
  • [1183524] api bustage caused by bug 1173442
  • [1183892] Bugzilla disables browser context menu after showing its username left-click menu
  • [1184984] Current Selenium tests are failing due to changes made by bug 1173442
  • [1184982] The cpanfile generated by checksetup results in an unsuccessful mod_perl install
  • [1185440] activity bound to comments which are default-hidden is not hidden by default
  • [1185455] Remove use of non-standard flag argument of String.prototype.replace in inline-history.js.
  • [1177497] Backport upstreams 5.0 rST docs to BMO and make publicly available at https://bmo.readthedocs.org
  • [1184001] deliver error report to sentry via cron instead of immediately
  • [1180572] create attachment_storage parameter
  • [1185852] sentry.pl should exit early if there aren’t any reports to send

to improve security bugzilla.mozilla.org now serves attachments from a different domain – bmoattachments.org – instead of from a subdomain of bugzilla.mozilla.org.  all existing links should continue to work, and will redirect to a bmoattachments.org url.

discuss these changes on mozilla.tools.bmo.


Filed under: bmo, mozilla

https://globau.wordpress.com/2015/07/21/happy-bmo-push-day-151/


Tantek Celik: #IndieWebCamp 2014 Year in Review — This Is A Movement

Вторник, 21 Июля 2015 г. 09:59 + в цитатник

2014 was a breakthrough year for IndieWebCamp and the IndieWeb movement. Beyond our technical achievements in creating, building, deploying, and using simple formats & protocols on our personal sites, we organized record numbers of IndieWebCamps and Homebrew Website Club meetups. We gave talks to audiences of thousands, and the press started covering us in earnest. We saw the launch of Known and its hosted service Withknown, a user-friendly mobile-web ready solution for anyone to get on the indieweb.

With our increasing visibility and popularity, we encountered perhaps the inevitable re-use of our community terms or similar terms to mean other things, and subsequent online confusion. As expected we also saw the shutdowns of many more silos. We lost a very special member of the community. We kept moving forward and finished the year with the first of its kind virtual online IndieWebCamp, and verbal commitments to each other to launch personal site features for the new year.

Table of Contents

A lot happened in 2014. Enough for a table of contents.

  1. The IndieWeb Movement
  2. Record Numbers
    1. IndieWebCamps
    2. Homebrew Website Clubs
    3. Press
    4. Talks
  3. Losses and Challenges
    1. Losing One Of Our Own
    2. The Web We Lost 2014
    3. “Indie” Term Re-use
  4. Technologies
  5. Services
  6. Community Resources
  7. Summary And Looking Forward
  8. New Year Commitments

Let’s get started.

The IndieWeb Movement

Anyone can call something a movement, but that doesn’t make it so.
A tweet is not a movement.
A blog post is not a movement.
A single-page-site is not a movement.
A manifesto is not a movement.

This is a movement. People are a movement.

2014 IndieWeb movement grid of faces

This is everyone who participated in one or more IndieWebCamps during 2014. Real people (with the exception of one cat), passionately using their own personal websites to express themselves on the web, creating, sharing, and collaborating with each other to grow the independent web.

Click / tap the image to go to a fully interactive version on the IndieWebCamp wiki, with every person (but 3!) linked to their personal site.

Record Numbers

The 100+ participants above participated in six IndieWebCamps in San Francisco, New York City, Portland Oregon, Berlin, Brighton, Cambridge MA, and Online. Twice as many as the previous year:

IndieWebCamps by year

Handcrafted ASCII graph (took Tufte class twice, not his fault):

                 WWW
                 MIT
                 NYC
             LA   SF
        UK   UK   UK
  PDX  PDX  PDX  PDX/NYC/Berlin
 ———— ———— ———— ———————————————
 2011 2012 2013 2014

You can see summaries and links to all of them here: IndieWebCamps

Beyond double the number, 2014 saw innovation in the very format of IndieWebCamps with a simultaneous three location annual main event, as well as the first IndieWebCamp Online. Thanks to David Shanske for organizing and leading the charge with IndieWebCamp Online using IRC and Google Hangouts.

Homebrew Website Clubs

In addition, 2014 was the first full year of Homebrew Website Club meetups. 27 days in total across several cities: San Francisco, Portland, Chicago, Minneapolis, New York, London, Paris.

Press

2014 had breakthrough press coverage of IndieWebCamp and the IndieWeb as a whole. Most notably:

See more articles about the IndieWeb in 2014.

Talks

2014 had a record number of IndieWeb related talks being given at conferences by community members. Here are a few of them ranging from introductory to technical:

If you enjoyed those, check out the videos about the IndieWeb page for many more.

Losses and Challenges

The IndieWeb community went through some minor growing pains in 2014, and tragically lost a key community member. There was also the continued series of site shutdowns, some of which members were able export from, but all of which broke the web.

Losing One Of Our Own

Mid last year we lost IndieWeb community member Chloe Weil, and we miss her very much.

Chloe participated in the very first IndieWebCamp 2011, as a shy apprentice, but learned quickly & eagerly, and put her many creative skills to work building & growing her own personal web presence. Here she is at that event, third from the left edge:

Photo of IndieWebCamp 2011 participants

She built her own personal-site-based replacement for tweeting. She participated in both the first IndieWebCamp NYC as well as the subsequent main IndieWebCamp 2014 East at the NYC Location. Here she is again, front row and confident:

IndieWebCamp 2014 East club photo

She captioned this photo:

“Your high school’s yearbook club just graduated and knows HTML”

Here are a few posts about Chloe from the community:

If you’ve written your own blog post in memory of Chloe, please let me know so I may link to it in the above list.

The Web We Lost 2014

We saw many silos go offline, taking millions of permalinks with them. Here are a few of the notable clusters of sites the web lost:

Acquishutdowns

The most common shutdowns were acquisitions or acquihires:

  • Yahoo shutdowns: Ptch.com, Donna, Vizify
  • Skype shutdown: Qik
  • eBay shutdown: Svpply
  • Ancestry.com shutdown: MyFamily.com
  • Vox Media acquired the staff & technology of Editorially, whose founders subsequently shut it down
Short Notice Shutdowns

The second most frequent shutdowns came suddenly, or nearly suddenly, unexpectedly, and sometimes with a complete loss of content (without any opportunity to export it).

  • Spreadly - site went offline without any notice
  • Fotopedia - 10 days notice and "all photos and data will be permanently deleted"
  • Justin.tv - two weeks notice and all videos deleted
  • Codespaces - most content deleted by vandals, site shutdown rather than attempt recovery.
The Cloud Is A Lie

So-called "cloud" services have been heralded as the new most reliable, scalable, available thing for storage etc., and yet last year:

  • Ubuntu One cloud sync service shut down with only two months notice.
Breaking The Web

All these shutdowns break the web in some way or other. However there are particularly egregious examples of breaking the web, such as when third-party link-shorteners and identity providers are shutdown. In 2014 we lost another one of each:

  • s.tt link shortener, shutdown by parent company and site Repost which itself shutdown as well
  • myOpenID.com, a popular OpenID provider, also shutdown.
Losing A Classic

Lastly we lost a classic site in 2014:

  • 43things.com - after 10 years of service, the sites owners decided to shut it down.

See: IndieWebCamp: site-deaths 2014 for more.

“Indie” Term Re-use

Last and least of our challenges, but worth noting for the consternation it’s caused (at least on Twitter, and perhaps that’s telling), the overloading of the term and prefix “indie” has led to some confusion.

When I first used the phrase “indie web to refer specifically to independents using their personal websites for their online identity and content (instead of large corporate silos like Facebook & Twitter, or even group sites running open source like Diaspora), I knew both that the prefix “indie” was already both in heavy use across industries and with different meanings.

When Aaron Parecki and I deliberately chose to use the term “IndieWeb” or phrase “Indie Web” to refer to a difference in focus from “Federated Social Web”, and then co-found IndieWebCamp with Amber Case & Crystal Beasley, we viewed our usage of “Indie” as deliberately continuing in the same spirit and theme as earlier "Independent Web" efforts (such as the early 2000s "Independents Day" campaign), and complementary to “Indie” efforts in other fields.

2014 saw the launch or promotion of other things labeled “indie” on the web (and at least somewhat related to it), which had little or nothing to do with the “IndieWeb” and was a source of repeated confusion (and continues to be).

Ind.ie Confusion

The privately held startup “ind.ie”, bootstrapped & crowdfunded, and yet developing various "independent technology" or "indietech" efforts which could easily be assumed to overlap with "indieweb" did not relate in substance to the IndieWeb at all.

There were numerous instances of people confusing "ind.ie" and the "IndieWeb" in their posts, and criticism of one would inevitably lead to errant conflation with and criticism of the other. It got so bad that "ind.ie" themselves posted a blog post:

Are you the same as IndieWeb?

No. IndieWeb is a separate movement and yet we have some overlap of goals.

The IndieWeb community similarly documented as much on the wiki: ind.ie is not IndieWeb nor IndieWebCamp. Others have also noted that naming something even more similarly e.g. "indienet" will only create more misunderstandings (nevermind that IndieWeb itself is peer-to-peer/distributed).

Despite this effort at proactive documentation, confusion has continued, though now it's typically quickly followed up by a clarification that the two are not the same, and link to one or both of the above.

indie.vc not IndieWeb-specific

A new VC firm launched in 2014 called "indie.vc". Due to their name and web presence, they too were inevitably confused with “IndieWeb” or people assumed that they were some sort of IndieWeb investment fund. Neither of which is true.

In the future it is possible that indie.vc will fund an IndieWeb startup, but until that day comes, they are disjoint.

IndieWeb Technologies

Despite such challenges, the IndieWeb community proposed, discussed, specified, built, and interoperably deployed the following indieweb technologies in 2014. These IndieWeb innovations in the past year were nothing short of web technology breakthroughs.

And the best part: all of the following are 100% free as in freedom, creative commons zero (CC0) licensed, openly documented, and real: interoperably shipping, often with multiple open source implementations.

This is technology by independents declaring independence. You could even call them “indietech” if you thought they needed another buzzword, which they don’t.

In alphabetical order:

  • fragmention — a way to use a URL to link and cite individual words or phrases of a document.
  • h-feed — while previously proposed on microformats.org, in 2014 the indieweb community adopted h-feed as the primary DRY way to markup a feed or stream on an HTML page, published multiple indieweb sites with it, as well as multiple indieweb readers consuming it, consequently upgrading it to an official microformats.org draft.
  • indie-config for webactions — indie-config is a set of client & server libraries to enable seamless webactions across sites (invented, and implemented interoperably at IndieWebCamp Brighton 2014)
  • marginalia — within a few months of the invention of fragmentions, community members realized they could post indie replies to specific paragraphs or any phrase of a post, and the receiving post could display them as comments in the margins, thus inventing distributed marginalia, a feature previously only available in proprietary text editors like Word, Google Docs, or the Medium silo, and not actually distributed, aside from emailing around Word documents.
  • Micropub — a standard API for publishing and updating posts on indieweb sites (conceived in 2013, first interoperably implemented in 2014) with:
  • person-tag — a special kind of tag on a post or in post content that refers to a specific person by URL (and name) rather than just a word or phrase. Only publishing examples in 2014 (subsequent interop in 2015).
  • Vouch — a webmention protocol extension to prevent spam (interop at 2014/Cambridge)

In addition to all those groundbreaking technologies, IndieWeb community members continued to evolve what types of content they posted on their own sites, documenting the paths as they paved them with permalinks on their own websites — all of the following have documented real world public web publishing examples (at least one, typically many more) on their very pages in contrast to the more aspirational approaches taken by other current attempts in this space (e.g. ActivityStreams, and the since defunct OpenSocial)

  • collection — a type of post that explicitly lists/embeds multiple other posts chosen by the author
  • edit — a special type of reply that indicates a set of suggested changes to a post (only publishing example(s) in 2014)
  • exercise — a broad post type that represents some form of physical activity, i.e. quantified self, or in particular:
  • food — a new post type that represents eating or drinking
  • invitation — a new post type for sending someone one person an invitation to someone else’s posted indie event. Also supported by Bridgy as a way of backfeeding invitations made on Facebook POSSE copies of event posts.
  • quotation — a type of post that is primarily a subset of the contents of another post usually with a citation.
  • sleep — similar to exercise this post type is for tracking when, how deeply, and how long you sleep.
  • travel — a post type about plans to change locations in the future.

IndieWeb Services

Beyond technologies, several indieweb services were built, deployed, and significantly improved by the community.

IndieWeb Community Resources

There's lots to technology development beyond the technology itself. Over 1000 new pages were created in 2014 that documented everything from concepts, to brainstorms, designs, and everything else indieweb related that the community came up with.

The IndieWebCamp wiki is now the pre-eminent reference for all things Independent Web.

If you have a question about something "independent" and "web", you're very likely to find the answer at https://indiewebcamp.com/

Here are some of the top such resources created in 2014:

  • archive — the UI Pattern of providing archives of your posts that users can navigate
  • communication — how to create a communication / contact page on your own indieweb site, with clear one-click buttons for people to contact you as desire and are capable of being contacted.
  • disclosure — how to proactively disclose some aspect about a site that the site owner wants the user to explicitly be aware of
  • facepile — the UI pattern of providing a set of small face icons as a summary of people, e.g. that like a post, or have RSVPd to an event
  • file-storage — why, how, and examples of the common IndieWeb practice of storing your data in flat files (instead of the customary webdev habit of using a database)
  • follow & unfollow — documentation and implementation of the concept of (un)following people and posts
  • FreeMyOAuth — a one stop page to quickly access the "what have I authorized on what services" lists so you can de-authorize any apps you no longer use or don't recognize
  • generations — perhaps one of the most important pages created in 2014. generations showed for the first time an overview of how the IndieWeb approach of engaging development leaders first (e.g. by focusing on selfdogfooding), then journalists & bloggers, etc. provides a rational and steady growth path for the indieweb to eventually reach anyone who desires an independent presence on the web that they own and control.
  • HTTPS — best step-by-step documentation for how to setup HTTPS on an independent site, with choices, levels to achieve, and real world examples
  • mobile — a great summary of mobile first and other mobile specific design considerations, how tos, etc. for any indieweb site
  • mute — the ability to skip seeing someone's posts, while still following them in general
  • notification — research and analysis of both push notifications and notification pages across various applications and silos
  • onboarding — the user experience of a first time user of a site, service, or product, who is looking to sign-up or otherwise get started using it.
  • payment — how to create a payment page on your own indieweb site, and how to create the links to various payment services for your readers to click and pay you directly
  • scope — summary of what are OAuth scopes, examples of them used by IndieWeb apps, sites, and silos.
  • this-week-in-the-indieweb — a weekly digest of activities of the IndieWebCamp community, including a summary of wiki edits for the week
  • URL design — a collection of analysis and best practices for designing human-friendly and robust URLs, e.g. for permalinks
  • wikifying — simple steps for new community members to start engaging on the wiki

Summary And Looking Forward

2014 was a year of incredible gains, and yet, a very sad loss for the community. In many ways I think a lot of us are still coping, reflecting. But we continue, day to day to grow and improve the indieweb, as I think Chloe would have wanted us to, as she herself did.

By the end of 2014 we had community members organize IndieWebCamps in 2014 in more cities than ever before, and similarly, start more local chapters of the Homebrew Website Club as well.

I'm grateful for each and every person I've met and worked with in the community. Everybody brings their own perspective, their own wants and desires for their own website. As a community, we can best help people by channeling their desires of what should be done, into what they should do on their own website for themselves, building upon the work of the community, and then, how can we connect amongst our sites, and in-person, to motivate each other to do even more.

That's exactly what we did at the end of the year.

New Year Commitments

At the last Homebrew Website Club meetup of the year on 2014-12-17, we decided to make verbal commitments to each other of what we wanted to create, launch, and start using on our own site by the start of the next year.

As you might guess, we did pretty well with those commitments, but that's a subject for another post.

If you’ve gotten this far, congratulations, this was a long post, and long overdue. You’re clearly interested, so you should come by for more:

Independence on the web is within your grasp, and there’s a whole community just waiting to help you take the next steps. The first step is up to you.

Thanks to reviews and feedback from fellow IndieWeb Community members Kevin Marks, Kartik Prabhu, Ryan Barrett, and Shane Hudson.

Epilogue

I wrote most of this post incrementally on the IndieWebCamp wiki with a bunch of contributions from the IndieWeb community (citations, images etc.). Thus the text content of this blog post is CC0 licensed for you to re-use as you wish and preferably quote, cite, and link. Please credit the “IndieWeb Community”. Thank you for your consideration. — Tantek

http://tantek.com/2015/201/b1/indiewebcamp-2014-year-review


Kent James: Is Mozilla an Open Source Project?

Вторник, 21 Июля 2015 г. 08:13 + в цитатник

At the 2015 Community Leadership Summit, keynote speaker Henrik Ingo asked what he intended to be a trick question:

Everybody knows that Redhat is the largest open source company by revenue, with 1.5 billion dollars per year in revenue. What is the second largest open source company?

Community Leadership Summit 2015

Community Leadership Summit 2015

It took awhile before someone came up with the correct answer – Mozilla! Why is this a trick question? Because people don’t view Mozilla as an open source software company! Even in an open-source friendly crowd, people need to be reminded that Mozilla is open source, and not another Google or Apple. The “open source” brand is getting ever more powerful, with hot new technologies like OpenStack, Docker, and node.js adopting the foundation-owned open source model, while Mozilla seems to be drifting away from that image.

The main point of Henrik’s talk was that projects that are “open-source” while dominated by a single company show limited growth potential when compared to projects where there is an independent foundation without any single dominating company. Mozilla is an odd model, with a company that is dominated by a foundation (at least in theory). It seems though that these days, what has emerged is a foundation that is dominated by a company, exactly the model that Henrik claims limits growth. As that company gets more and more “professional” (acting like a company), it gets harder to perceive Mozilla to be anything other than another big tech company.

Something has changed at Mozilla, that I don’t really understand. Not that I have any inside knowledge (Thunderbird folks like me don’t get invited to large Mozilla gatherings any more), but is this really the brand image that Mozilla wants? I doubt it. Hopefully people smarter than me can figure out how to fix it, as there is still something about Mozilla that many of us love.

http://mesquilla.com/2015/07/20/is-mozilla-an-open-source-project/


Mark Surman: Advocating for web literacy

Вторник, 21 Июля 2015 г. 00:53 + в цитатник

I often throw around big numbers when I talk about web literacy: “Soon we’ll have five billion people on the web. We need to make sure they all understand how it works and how to wield it.” I believe this. And, I believe that Mozilla needs to play a key role here. But the question is: how?

Advocating for web literacy

Moving through Mozilla Learning planning, we’ve concluded we need two interlinked strategies: leadership development and large scale advocacy. Leadership development is fairly straightforward: Mozilla already has programs focused on this. Advocacy — or shifting understanding and thinking about the web — is harder. We have experience and talent here, but it is more nascent. Where to invest and how to move forward is less clear. This post lays out baseline thinking on a Mozilla Learning advocacy agenda with an aim of fueling a deeper discussion about our approach.

Impact

The first step toward figuring out where we want to invest is agreeing on the impact we want to have. At the core, it’s something like:

Impact = everyone knows how to read, write and participate on the web.

This is ultimately what we’re aiming at. It’s big and abstract, but substantively it is what we want: universal web literacy. Like universal language literacy, we will never fully reach the goal. But we can meaningfully make and measure progress across the globe.

Within this overall goal, there are specific places that might be more or less important to have impact. For example:

Impact = new internet users understand the full scope of the web.
Impact = more people know how to protect their privacy.
Impact = gov’ts, foundations and companies value web literacy.

We need to pick two or three focusing impact statements like these to guide our work, at least for the next few years. There could be dozens of impact statements like this that are worthy — but we’ll only succeed if we know which ones we’re going after, and then drive hard toward them.

Tactics

Mozilla is already doing good work that improves public understanding of the web and promote web literacy.

For example, we run advocacy campaigns on topics like net neutrality and mass surveillance. As a result, Firefox users learn about these complex issues in a simple way and are able to talk to others about them. They become more literate about the issues facing the internet today.

Or, a very different example: we give talks, create curriculum and offer software to encourage other organizations to participate in our web literacy agenda. This makes it easy for the kinds of organizations that belong to Hive or run Maker Parties — or, eventually, for governments or philanthropies — to connect the educational work they already do everyday to our cause of teaching the world the web.

While we’re already having an impact in areas like these, we want to have impact at a larger scale. What we need to do is take a look at which tactics are most impactful. Some options are:

  1. Advocating for the web: building a strong educational element into a regular series of political and advocacy campaigns. E.g. our recent net neutrality campaigns.
  1. Advocating for web literacy: promoting the importance of web literacy and giving others around the world the tools to teach it. E.g. lobbying governments and educational orgs to deploy curriculum from Mozilla Clubs, MDN, etc.
  1. Consumer education: building educational messages about topics like privacy into our product channels, advertising or other places where we have a large audience. E.g. Smart On campaigns or internet onboarding programs w/ phone carriers.
  1. Ambient learning: putting features and cues inside our mainstream consumer software in ways that are likely to help people better understand the web. E.g. tinker mode in Webmaker or private browsing in Firefox.
  1. Thought leadership: defining an agenda around the future of the web or web literacy and then talking about it loudly in public. E.g. a more robust version of Shape of the Web backed by an extensive public relations and media campaign.

Part of our work with Mozilla Learning is to: a) look at these tactics and others; b) line them up against our impact statements; and c) decide which ones should be at the center of our overall strategy. Specific questions we’ll need to answer include:

  • What concrete impact do we want in the next three years?
  • Where are the best opportunities to reach a large audience?
  • What tactics help us grow our constituency? (aka relationships)
  • How do constituency and audience lead to impact?
  • How do we measure impact and change?

As we do this, we need to keep in mind that the ultimate goal of the Mozilla Learning strategy is universal web literacy. Whatever we do needs to be driving back to that goal in a way that we can understand and measure, at least over time.

Finding the right mix

When I think about other organizations I admire, they use an artful mix of reinforcing strategies. National Geographic mixes mass media with environmental education with adventure travel packages. The American Lung Association mixes anti-tobacco policy work with stop smoking programs with social marketing. The Sierra Club mixes environmental activism with hiking and canoeing. This kind of mix makes for effective and lasting organizations, with impacts at scale.

As we refine the Mozilla Learning plan, and our overall strategy as an organization, I think we need a mix something like:

A. Mainstream software with Mozilla’s values

complemented by

B. Leadership development
C. [still to be defined large scale advocacy efforts]

We already have A (Firefox). And we’re getting close on B (Hive, Clubs, fellows, etc.). The chunk of work we need to do now is figure out C.

As part of the next phase of Mozilla Learning strategy, Ben Moskowitz and David Ascher are going to lead a series of discussions on this ‘moving the needle on massive web literacy’ topic. Key people from MoFo’s advocacy and product teams will also play a leadership role in this process. And there will be chances along the way for anyone who has interest to join the conversation. More info will be available when the process kicks off in mid-August. In the meantime, I wanted to throw out these questions for discussion and debate.


Filed under: mozilla

https://commonspace.wordpress.com/2015/07/20/advocating-for-web-literacy/


Air Mozilla: Mozilla Weekly Project Meeting

Понедельник, 20 Июля 2015 г. 21:00 + в цитатник

Chris Cooper: RelEng & RelOps Weekly highlights - July 17, 2015

Понедельник, 20 Июля 2015 г. 19:31 + в цитатник

Welcome to the weekly releng Friday update, only this time on a Monday!

I’ve done away with the gory details section. It was basically a thin filter for bugzilla search results, and we all spend enough time in bugzilla already.

tl;dr

TaskCluster: Funsize is generating partial updates for nightly/aurora builds now! We’re generating partial updates for up to 4 days in the past: link to TreeHerder results, which are hidden by default.

You can set your update channel to ‘nightly-funsize’ to test.

This quarter, we’re working on a scopes and authentication/credentials audit of TaskCluster to make sure it’s secure enough to move build/testing load from buildbot to TaskCluster. Hal is leading this effort with the OpSec team.

Our interns are also hard at work on migrations to TaskCluster. Anhad finished his work migrating spidermonkey builds and tests (https://bugzil.la/1164656), while Anthony is working on uploading symbols via a separate task (https://bugzil.la/1168979).

Modernize infrastructure: Runner is now enabled on all our Windows build machines. One of the biggest benefits of this is that runner is performing most clobber/purge work before buildbot starts and so build jobs don’t need to waste so much time clobbering build directories or freeing up space. https://bugzil.la/1055794

We’re starting to investigate what the requirements are to stand up Windows 10 CI infrastructure. We’re attacking both the build integration side and the OS installation and configuration side simultaneously.

We’ve finished collecting performance data for Windows in AWS and have chosen the c3.2xlarge platform as our base for future 2008 instances.

New proposal for TaskCluster routes for buildbot/TaskCluster uploads: Mike is looking for feedback about how we organize builds in the TaskCluster index. These routes will make it possible to find builds via various parameters like platform, revision, or build date. https://bugzil.la/1133074

Mozharness in-tree: The mozharness archiver was deployed but encountered problems with celery task proliferation. Jordan wrote some code to better track and expire the celery tasks, and deployed it late last week. We hope to resume the in-tree migration this week. https://bugzil.la/1182532

Improve release pipeline: Ben has been working on killing XULRunner builds and replacing them with the Firefox SDK we’re already producing. This will really simplify our release pipeline, and clean up our codebase as well. https://bugzil.la/672509

Improve CI pipeline: Ted got 64-bit OS X cross-compiling in one of the existing docker containers! He still needs to figure out universal builds, but this is a big step forward. https://bugzil.la/921040

Release: Firefox 40 is currently in beta. We’re up to b5 now.

Operational: A bad commit landed on upstream master for “repo” caused trees to be closed for many hours last Wednesday. We eventually got back in business by stripping commits on the master. There are bugs on file now to improve how we handle these repos in automation going forward to avoid precisely this kind of problem.

I took particular solace in this bug because somewhere, someone decided that naming a git repo “repo” was a good idea. Releng is not the only group that is terrible at naming things. https://bugzil.la/1184422

We’ve fixed some bugs in and bundled Metric Collective, our OS-level metrics collection software on Windows, into an exe for use with our puppet-managed Windows servers.

We’ve gotten a nuget repo set up on our configuration management servers and work is starting to make that the default package manager for puppet-managed Windows hosts.

There was a big, disruptive, tree-closing window (TCW) over the weekend, and everything went smoothly from our perspective.

See you next week!

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


Daniel Pocock: RTC status on Debian, Ubuntu and Fedora

Понедельник, 20 Июля 2015 г. 17:04 + в цитатник

Zoltan (Zoltanh721) recently blogged about WebRTC for the Fedora community and Fedora desktop.

https://fedrtc.org has been running for a while now and this has given many people a chance to get a taste of regular SIP and WebRTC-based SIP. As suggested in Zoltan's blog, it has convenient integration with Fedora SSO and as the source code is available, people are welcome to see how it was built and use it for other projects.

Issues with Chrome/Chromium on Linux

If you tried any of FedRTC.org, rtc.debian.org or meet.jit.si using Chrome/Chromium on Linux, you may have found that the call appears to be connected but there is no media. This is a bug and the Chromium developers are on to it. You can work around this by trying an older version of Chromium (it still works with v37 from Debian wheezy) or Firefox/Iceweasel.

WebRTC is not everything

WebRTC offers many great possibilities for people to quickly build and deploy RTC services to a large user base, especially when using components like JSCommunicator or the DruCall WebRTC plugin for Drupal.

However, it is not a silver bullet. For example, there remain concerns about how to receive incoming calls. How do you know which browser tab is ringing when you have many tabs open at once? This may require greater browser/desktop integration and that has security implications for JavaScript. Whether users on battery-powered devices can really leave JavaScript running for extended periods of time waiting for incoming calls is another issue, especially when you consider that many web sites contain some JavaScript that is less than efficient.

Native applications and mobile apps like Lumicall continue to offer the most optimized solution for each platform although WebRTC currently offers the most convenient way for people to place a Call me link on their web site or portal.

Deploy it yourself

The RTC Quick Start Guide offers step-by-step instructions and a thorough discussion of the architecture for people to start deploying RTC and WebRTC on their own servers using standard packages on many of the most popular Linux distributions, including Debian, Ubuntu, RHEL, CentOS and Fedora.

http://danielpocock.com/rtc-status-on-debian-ubuntu-and-fedora-july-2015


Support.Mozilla.Org: Want to be a star in a SUMO video? Keep on reading!

Понедельник, 20 Июля 2015 г. 16:00 + в цитатник

gi-hero-questionsDear SUMO Warriors (and everyone else reading these words)!

A SUMO video?

A SUMO video! We would like to put together a fun video with your help – a video to show what SUMO is about, in an entertaining way. We want users around the world to have an instant visual reminder that the great community around Mozilla (yes, this means YOU!) have their back when trouble and errors strike.

How can you get involved?

It’s super simple!

  • Record a short (2-5 seconds) video of you, your family or friends experiencing “problems in front of a computer”.
  • Make it fun, but obvious that the person (or people) using the computers are not having a good time and they need help.
  • Record the video in .MOV, .MPEG4, .MP4 or in .AVI format.
  • Send the video via email to Michal or Madalina

More details as we get the videos from you!

Go forth and record! :-)

https://blog.mozilla.org/sumo/2015/07/20/want-to-be-a-star-in-a-sumo-video-keep-on-reading/


QMO: Firefox 40 Beta 7 Testday, July 24th

Понедельник, 20 Июля 2015 г. 15:21 + в цитатник

I’m writing to let you know that this Friday, July 24th, we’ll be hosting the Firefox 40.0 Beta 7 Testday. The main focus of this event is going to be set on Hello – Context, Flash Plugin and Graphics. Detailed participation instructions are available in this etherpad.

No previous testing experience is required so feel free to join us on the #qa IRC channel and our moderators will make sure you’ve got everything you need to get started.

We’re looking forward to seeing you all this Friday! Let’s make Firefox better together!

https://quality.mozilla.org/2015/07/firefox-40-beta-7-testday-july-24th/


Mozilla Reps Community: Reps of the month – June 2015

Понедельник, 20 Июля 2015 г. 13:14 + в цитатник

Please join us in congratulating Ahmed Nefzaoui from Tunisia and Yofie Setiawan from Indonesia for being selected as Mozilla Reps of the Month for June 2015.

Ahmed has been involved in the Tunisia Community for 3 years now. He contributes fixes to the RTL (right-to-left) UI, various other user experience related issues and fixes bugs for Firefox OS. He’s also known as “the RTL guy” within the community. Additionally he helps out with the Arabic localization for several projects and Mozilla websites. He was also involved in the Firefox OS launch in Tunisia with the help of other awesome contributors, localizers and supporters.

Yofie has been involved in the Indonesian Community for more than 4 years. Passionate Mozillian and hard-working as a Rep. Based in Jakarta – Indonesia, Yofie has been actively spreading the word and getting people involved in the Mozilla project in schools, local communities, mobile shops and basically wherever he can. Within Reps Yofie is mostly known for his great work designing for several Mozilla projects and helping out growing the Mozilla Indonesia community. He recently was the lead for the launch of the new Indonesia community website at mozilla.or.id.

Don’t forget to congratulate them on Discourse!

https://blog.mozilla.org/mozillareps/2015/07/20/reps-of-the-month-june-2015/


Emily Dunham: Printing

Понедельник, 20 Июля 2015 г. 10:00 + в цитатник

Printing

The office printers have instructions for setting them up under Windows, Mac, and Ubuntu. I had forgotten how to wrangle printers, since the last time I had to set up new ones was half a decade ago when I first joined the OSL.

Setting up printers on Arch is easy once you know the right incantations, but can waste some time if you try to do it by skimming the huge wiki page rather than either reading it thoroughly or just following these steps:

Install the CUPS client:

$ yaourt -S libcups

Add a magic line to /etc/cups/cups-files.conf:

SystemGroup username

With your username on the system, assuming you have root and will log in as yourself in the dialog it prompts for. That line can go anywhere in the file.

Make the daemon go:

$ sudo systemctl enable org.cups.cupsd.service
$ sudo systemctl start org.cups.cupsd.service

Visit the web interface at http://localhost:631.

Then you have a GUI sufficiently similar to the one in the instructions for Ubuntu!

There is no GUI client for CUPS to install. If you find yourself mucking about with gpr, xpp, kdeprint, or /etc/cups/client.conf, you have gone way too far down the wrong rabbit hole.

http://edunham.net/2015/07/20/printing.html


Air Mozilla: Gesti'on 'agil de proyectos comunitarios

Воскресенье, 19 Июля 2015 г. 23:00 + в цитатник

Gesti'on 'agil de proyectos comunitarios En esta formaci'on explicaremos c'omo gestionar proyectos de la comunidad utilizando metodolog'ias 'agiles y c'omo utilizar waffle como herramienta.

https://air.mozilla.org/gestion-agil-de-proyectos-comunitarios/


Jared Wein: Default Browsers and Windows 10

Воскресенье, 19 Июля 2015 г. 01:31 + в цитатник

Microsoft is set to release Windows 10 pretty soon and with it comes a new way to set the default browser for your system.

Previous versions of Windows had an API that allowed applications to set themselves as the default application. This worked well and allowed web browsers like Firefox and Chrome to have a single click within their interface to set themselves as the default browser. No extra work was needed by the user after clicking the button within the respective app.

Starting in Windows 10, references to this API now generate the following error dialog on the machine:

gotosettings

Obviously, this message isn’t that helpful. First, users who click on a button to “Make Firefox my Default Browser” now get a dialog telling them what to do instead of doing it for them. Secondly, the message is given in a prompt that blocks interaction with the rest of the computer until the OK button is clicked. Combining this second issue with the lengthy list of steps that the dialog provides makes the situation even worse, as the user will have to memorize this 3-step process before clicking OK.

This experience isn’t something that we want to ship to Firefox users. When I first saw this experience, I sent an email to some people working on Chrome to ask them what their plans were to solve this. They said that they had looked in to this and decided they would instead just open the Settings app to the Default Applications view.

Settings app

I brought this approach back to some of my coworkers and we decided we would match the behavior that Chrome was using. After all, it didn’t seem like a better solution existed and we certainly didn’t want our users to be seeing the ugly dialog described above.

After I landed the changes in Firefox to open the Settings app, Masayuki Nakano provided an alternative implementation that would open a friendlier looking dialog to set the default application.

Alternative approach

This dialog looks a lot better, but it only sets the choice as the default browser if the small “Always use this app” checkbox at the bottom is checked before the OK button is clicked.

Once we had two implementations, we ran an A/B test of them for a week with our Nightly audience.

Key Count Percentage set as Default
Alternative Approach/OpenAs (users who did not set the browser as default) 2.35k 53%
Alternative Approach/OpenAs (users who did set the browser as default) 2.65k
Settings (users who did not set the browser as default) 2.76k 50%
Settings (users who did set the browser as default) 2.86k

The table above shows the data that was collected through the A/B test from June 22 to June 29 with Firefox Nightly 41. This data showed that 53% of alternative-approach users set Firefox as default, whereas 50% of the Settings-app users set Firefox as default.

With only a week of data, we didn’t see a statistical difference between the two approaches and decided we would stick with the Settings app due to it’s wider adoption. We also had issues with the OpenAs approach where we weren’t able to register all protocols and file extensions.

Next Steps

The default browser situation on Windows 10 is pretty bad. There is more work that we can and should do in the Windows 10 upgrade experience to retain users (the default upgrade changes the default browser to Edge).

We also would like to improve our telemetry tracking of the default browser dialog. Ideally we could use some accessibility or automation APIs to scroll into view the Default Browser option within the settings app (it’s scrolled out of view when it is first opened).


Tagged: chrome, firefox, planet-mozilla, usability, windows

https://msujaws.wordpress.com/2015/07/18/default-browsers-and-windows-10/


Arky: Webmaker tools on Raspberry Pi

Суббота, 18 Июля 2015 г. 12:18 + в цитатник

Last year in Bamako, Mali I watched the participants struggle with slow Internet connectivity during a web literacy WebMaker event. I thought it is very important to make Webmaker tools available offline on a local server. I started working on a custom Rasbian based SD-card image with Mozilla Webmaker tools on Raspberry Pi. The setup uses the most minimal setup without any connectivity to Internet. The Raspberry Pi Server will host Web maker tools like Thimble with some learning templates. The users could connect to the server with WiFi from their laptops or using school computers using local Ethernet connection.

The goal was to finish the project by MozFest East Africa in July, 2015 and release it for testing.

How to use Webmaker tools on Raspberry Pi?

Download the testing version of the image here. It is large 2.8GB file, it will take some time to download. In this setup I am using an older Raspberry Pi B model with 8GB SDCard with a TP-Link TL-WN322G+ USB WiFi dongle. The WiFi dongle is optional, you can connect the Raspberry Pi to your router or networking hub with an Ethernet patch cable.

  1. Download and write the image to the SD-card (Tutorial)
  2. Boot the raspberry Pi with the SD-card
  3. Connect the Raspberry Pi to your local Ethernet network. (If you have USB Wifi dongle then you can connect to 'Webmaker' WiFi network with 'raspberry' password.)
  4. On your computer, Open browser and type 'http://webmaker.local' You should see the Thimble App UI.
Webmaker Thimble running on Raspberry Pi server

Please do report any problems and bug reports!


http://playingwithsid.blogspot.com/2015/07/mozilla-webmaker-tools-on-raspberry-pi.html


Wladimir Palant: JavaScript Deobfuscator reloaded

Суббота, 18 Июля 2015 г. 02:00 + в цитатник

A few weeks ago I released JavaScript Deobfuscator 2.0 — finally something that works with current Firefox versions again. Why did it take me a year to fix this compatibility issue? Well, it really wasn’t that simple. After considering all the possibilities I decided that rewriting it from scratch was the only possibility, and that was hard to accomplish in my spare time.

Before I continue with the technical details, allow me to introduce JavaScript Deobfuscator in its new reincarnation: it now adds a panel to Firefox Developer Tools. Instead of messing with filters your view is limited to the current tab automatically. Both compiled and executed scripts go into the same list, with some text indicating whether we’ve seen the script being compiled or executed or both. Starting with Firefox 39 even code running in Web Workers will be displayed. And JavaScript Deobfuscator will beautify the code instead of relying on the JavaScript engine to do so.

JavaScript Deobfuscator screenshot

The downside is that only Firefox is supported now — other applications simply don’t have Developer Tools to integrate with. Also, debugging add-ons or the browser itself isn’t possible—— Developer Tools run in a separate process for that, no add-ons installed there. Finally, the search functionality is absolutely rudimentary right now, that’s something I hope to improve eventually.

Now to the technical details. The reason for this overhaul is the new debugging interface which replaced the one JavaScript Deobfuscator was using. The old debugging interface was conceptually different, it was designed as a single hook to collect all data. The new one on the other hand collects data about individual compartments and it’s up to you to figure out which ones you need. After a few unsuccessful attempts to continue collecting all data in JavaScript Deobfuscator I realized that it made a lot more sense to look at individual tabs.

Using the new debugging API turned out to be tricky to say the least. Did I link to MDN above? Sorry about that, I should have linked to the SpiderMonkey source code. It’s very similar to the MDN documentation but the later is outdated. And even if you look at the SpiderMonkey source, much of the documentation is merely wishful thinking, listing features that were never implemented.

A new UI concept had to be developed as well, and the only good option for per-tab debugging would be integrating into the Firefox Developer Tools. That’s where the fun really started. I tried to make sense of the documentation, studied the source code, figured out that ToolDefinition.build() is supposed to return a promise. Then I looked at what TargetType is and how existing tools work with it — this was the point where I realized that there are so many implementation details involved that an extension cannot possibly do it. So I gave up.

When I came back a few months later things improved, slightly. Somebody wrote an Add-on SDK module to create new Developer Tools panels. While I didn’t use that module directly, it showed nicely which parts of the API are contractual and which ones are merely implementation details. It also showed that things aren’t too bad if you limit yourself to a single target type — a local tab. Handling remote connections to browser and add-ons is more complicated, but as I mentioned above extensions cannot do that anyway.

Now that article stops at the point where you “merely” need to use the remote debugging protocol to communicate with the built-in debugging actor. Well, maybe it is really simple but I couldn’t figure out how to do this — and whether that protocol is something I can rely on. See, the built-in tools will certainly be adjusted when the debugging actor or/and the protocol change. My extension on the other hand will be broken, and I’ll need to invest time into figuring out what changed and how my code needs to be adjusted while staying compatible with older Firefox versions.

So JavaScript Deobfuscator uses the debugging interface directly, without relying on the debugging actor of the Developer Tools. And it beautifies JavaScript code using its own copy of a library rather than relying on code used by Developer Tools — JavaScript beautification in Developer Tools is currently an implementation detail that extensions cannot rely on. JavaScript Deobfuscator also duplicates the styles of the two Developer Tools themes to make sure it looks similar to the existing panels — just using the styles from Developer Tools would have likely caused a disaster after only a few Firefox releases. Not that the built-in styles are really defined in a generic way, there is really lots of inconsistencies there and each panel is styled somewhat differently.

These are only some examples, there is more code duplication. Developer Tools aren’t currently built to allow extensions to reuse their code. Still, I’m fairly happy with the result, and I hope that the largest chunk (JavaScript beautification) will go away eventually. From the usability point of view the new version is a huge leap forward, getting there could have been easier however.

https://palant.de/2015/07/17/javascript-deobfuscator-reloaded



Поиск сообщений в rss_planet_mozilla
Страницы: 472 ... 177 176 [175] 174 173 ..
.. 1 Календарь