On a quest for a new logo and open design at Mozilla
As Art Director for Mozilla, he's one part of a team behind Mozilla's visual design. Lately, he's been involved in redesigning Mozilla's iconic logos. Instead of working behind closed doors, Martell and his colleagues have opened up the design process ...
A couple of weeks ago we had accidentally broken our production server (for a particular report) because of broken HTML. It was an unclosed tag which rendered everything after that tag to just plain white. Our comprehensive test suite failed to notice it because it didn't look at details like that. And when it was tested manually we simply missed the conditional situation when it was caused. Neither good excuses. So it got me thinking how can we incorporate HTML (html5 in particular) validation into our test suite.
So I wrote a little gist and used it a bit on a couple of projects and was quite pleased with the results. But I thought this might be something worthwhile to keep around for future projects or for other people who can't just copy-n-paste a gist.
With that in mind I put together a little package with a README and a setup.py and now you can use it too.
There are however some caveats. Especially if you intend to run it as part of your test suite.Caveat number 1
You can't flood htmlvalidator.nu. Well, you can I guess. It would be really evil of you and kittens will die. If you have a test suite that does things like response = self.client.get(reverse('myapp:myview')) and there are many tests you might be causing an obscene amount of HTTP traffic to them. Which brings us on to...Caveat number 2
The htmlvalidator.nu site is written in Java and it's open source. You can basically download their validator and point django-html-validator to it locally. Basically the way it works is java -jar vnu.jar myfile.html. However, it's slow. Like really slow. It takes about 2 seconds to run just one modest HTML file. So, you need to be patient.
This blog has been quiet for a while now. I do hope to start writing soon (although I think I’ll do most of my next writing in Catalan – and the focus will not be only in technology).
A few people asked me what I’m doing now, since I’m not so active in projects I used to contribute (e.g. Mozilla) or doing things I used to do locally (e.g. participating in tech. events and open source groups).
Well, part of the answer is that during the last year I tried to find some time for myself. I started to feel kind of overwhelmed by the amount and quality of the information around me (yes, yes, I mean that kind of BuzzMachine that most of Open Source/Tech. “community” seems to be nowadays).
And what is it better than becoming an idiot? Experimenting that state of being useless to the world, of being less intelligent than most of the “smart citizens”, and start questioning again why and how things happen.
Professor Han, a contemporary essayist and cultural theorist from Germany, puts it very well:
It’s a function of philosophy to represent the role of the idiot. From the beginning, the philosophy goes along with the idiotism. Any philosopher that generates a new language, a new style, a new thinking, needs to be an idiot before.
The history of philosophy is a history of idiotisms.
Socrates, who only knows that he doesn’t know anything, is an idiot. An idiot is also Descartes, because he doubts of everything. Cogito ergo sum is an idiotism.
An internal contraction of thinking makes possible a new beginning. Descartes thinks about the thinking. The thinking recovers its virginal state when it connects with itself. Deluze opposes to the Cartesian idiot an another idiot [...]
Today, it looks like the somewhat marginalised, the crazy and the idiot basically disappeared from society. The whole network connectedness and the digital communications increase considerably the coercion over conformity. The violence of consensus repress the idiotisms.
(from the book “Psychopolitik: Neoliberalismus und die neuen Machttechniken”)
Yes, part of my time right now is devoted to studying philosophy at the University (offline and back to the system!). And I really like it very much. Only because you are there with a group of people who disagrees with you, who appreciates your critique, your skepticism and negativity… makes me feel much more being part of a community.
However, I’m not out of the technology world, as the other part of my time is devoted to work, which means applications development, deployments and even trainings.
But indeed, I’m feeling that I have to step back from the BuzzMachine that OpenSource/OpenWeb/OpenWathever has became. I’ve also developed more of a critical view on what is “connectedness or a connected society”, including the “sharing economy” – a deviation of open source concept (which on its turn is a mutation of Free Software social movement).
- Monday: shyly open my inbox after a week of holidays, and probably duck to avoid the rolling ball of stale mail coming my way.
- Wednesday: maybe meet Karolina who’s in London for a conference!
- Thursday: my talk is closing a conference O_O — when the organiser mentioned “closing” the day I thought he meant closing the first day, not the second. NO PRESSURE. Although the conf is held at Shoreditch Village Hall, which is a venue where I feel like at home, so I’ll probably be OK. There’s a meatspace meatup afterwards, and I’m glad it’s around Shoreditch too or I’ll be dropping on that.
- Friday: MozFest facilitators meeting, and also the Science Fair during the evening (if it is still called Science Fair)
- Saturday and Sunday: MozFest, MozFest, MozFest! Paul Rouget asked me to show WebIDE there, and then Bobby (aka SecretRobotron and your best friend) came up with this idea of a MEGABOOTH where people can go and learn something about app-making in sessions of 5-20 minutes. Of course I can’t be all week-end there or I’ll basically die of social extenuation, so I asked some friends and together we’ll be helping spread the word about Firefox OS development in its various facets: Gaia/Gonk/the operating system itself, Gaia apps, DevTools and WebIDE. Come to the MEGABOOTH and hang with Nicola, Wilson, Francisco, Potch and me! (linking to myself and wondering if the Internet will break with so much recursion, teehee)
That’ll be for this week. Beyond, there’s a few more conferences—some I can announce and some I can’t:
- dotJS — Paris, France 17th November, which is pretty exciting to be in because the venue and the looks of everything are so sophisticated…!
- OSOM — Cluj-Napoca, Romania 22th November, which I’m moderately nervous about because I’m keynoting (!!!), but I’m also excited because it’s in TRANSYLVANIA!!! :-[
We’ll also be hosting a Firefox OS Bug Squash Party at the Mozilla London office the week-end after Halloween. Expect weirdnesses. There are only 5 spots left!
Add to this the new thing I’m working on (details to be revealed as soon as there’s something to show) and it makes for a very busy Autumn!
I’m glad I took those holidays past week. I went to Tenerife, which makes it the furthest South I’ve ever been, and then the highest even in Spain since I climbed to el Teide! Also, my hotel was an hour away from the airport so I rented a car and drove myself around the island. After many years of not driving, that was mega-awesome, and a tad terrifying as well (I’ll detail in a future post).
This is going down the hill, with the cable car:
The whole scenery in the National Park is super incredible–it definitely looks like out of this world. Since the rocks are of volcanic origin they have very interesting textures, and are super lightweight, so it was funny to go picking random stones up and realising how little they weighted.
Also the vegetation and fauna were unlike most of what I’d seen before. In particular, the lizards were ENORMOUS. I would be walking and hearing huge noises on the dry leaves, turn around expecting to find a dog or a cat, only to find a huge lizard looking at me. What do they feed them? Maybe it’s better not to know… I’ll leave you with this not-so-little fella:
Last Thursday we had our regular weekly call about the Reps program, this time we moved one hour later to avoid some conflicts and allow Reps on the West Coast to join us in the very morning.
- Council elections this weekend.
- Tech 4 Africa.
- AdaCamp – Post event.
- Mozfest – updates.
- Firefox OS Bus.
- Get Involved Re-design.
Don’t forget to comment about this call on Discourse and we hope to see you next week!
I’m guilty of it myself, and I see it a lot: making fun of Microsoft in a presentation. Sure, it is easy to do, gets a laugh every time but it is also a cheap shot and – maybe – more destructive to our goals than we think.
Let’s recap a bit. Traditionally Microsoft has not played nice. It destroyed other companies, it kept things closed that open source could have benefited from and it tried to force a monoculture onto something that was born open and free: the web.
As standard conscious web developers, IE with its much slower adaption rate of newer versions was always the bane of our existence. It just is not a simple thing to upgrade a browser when it is an integral part of the operating system. This is exacerbated by the fact that newer versions of Windows just weren’t exciting or meant that a company would have to spend a lot of money buying new software and hardware and re-educate a lot of people. A massive investment for a company that wasn’t worth it just to stop the web design department from whining.Let’s replace IE then!
Replacing IE also turned out to be less easy than we thought as the “this browser is better” just didn’t work when the internal tools you use are broken in them. Chrome Frame was an incredible feat of engineering and – despite being possible to roll out on server level even – had the adoption rate of Halal Kebabs at a Vegan festival.Marketing is marketing. Don’t try to understand it
It seems also fair to poke fun at Microsoft when you see that some of their marketing at times is painful. Bashing your competition is to me never a clever idea and neither is building shops that look almost exactly the same as your main competitor next to theirs. You either appear desperate or grumpy.Other things they do
The thing though is that if you look closely and you admit to yourself that what we call our community is a tiny part of the overall market, then Microsoft has a massive part to play to do good in our world. And they are not cocky any longer, they are repentant. Not all departments, not all people, and it will be easy to find examples, but as a whole I get a good vibe from them, without being all marketing driven.
Take a look at the great tools provided at Modern.ie to allow you to test across browsers. Take a look at status.modern.ie which – finally – gives you a clear insight as to what new technology IE is supporting or the team is working on. Notice especially that this is not only for Explorer – if you expand the sections you get an up-to-date cross-browser support chart linked to the bugs in their trackers.
This is a lot of effort, and together with caniuse.com makes it easier for people to make decisions whether looking into a technology is already worth-while or not.Reaching inside corporations
And this to me is the main point why Microsoft matters. They are the only ones that really reach the “dark matter” developers they created in the past. The ones that don’t read hacker news every morning and jump on every new experimental technology. The ones that are afraid of using newer features of the web as it might break their products. The ones that have a job to do and don’t see the web as a passion and a place to discuss, discard, hype and promote and troll about new technologies. And also the ones who build the products millions of people use every day to do their non-technology related jobs. The booking systems, the CRM systems, the fiscal data tools, all the “boring” things that really run our lives.
We can moan and complain about all our great new innovations taking too long to be adopted. Or we could be open to feeding the people who talk to those who are afraid to try new things with the information they need.Let’s send some love and data
I see Microsoft not as the evil empire any longer. I see them as a clearing house to graduate experimental cool web technology into something that is used in the whole market. Chances are that people who use Microsoft technologies are also audited and have to adhere to standard procedures. There is no space for wild technology goose chases there. Of course, you could see this as fundamentally broken – and I do to a degree as well – but you can’t deny that these practices exist. And that they are not going to go away any time soon.
With this in mind, I’d rather have Microsoft as a partner in crime with an open sympathetic ear than someone who doesn’t bother playing with experimental open technology of competitors because these don’t show any respect to begin with.
If we want IT to innovate and embrace new technologies and make them industrial strength we need an ally on the inside. That can be Microsoft.
Common (excluding Website bugs)-specific: (2)
- Fixed: 1061768 – BuildID in em:updateURL and UI is empty, seems that @GRE_BUILDID@ is not set during build
- Fixed: 1076859 – fix compiler warnings in libical
Sunbird will no longer be actively developed by the Calendar team.
- Fixed: 736002 – The editor for twitter should show inputtable character count
- Fixed: 1016000 – Remove uses of arguments.callee in /mail (except /mail/test/*)
- Fixed: 1025316 – Port |Bug 1016132 – fuelApplication.js – mutating the [[Prototype]] of an object will cause your code to run very slowly; instead create the object with the correct initial [[Prototype]] value using Object.create| to Thunderbird for steelApplication.js
- Fixed: 1036592 – Thunderbird does not respect “Skip Integration”
- Fixed: 1039963 – TEST-UNEXPECTED-FAIL | test-newmailaccount.js::test_show_tos_privacy_links_for_selected_providers.js
- Fixed: 1059927 – Extend the inverted icon logic from bug 1046563 to AB, Composer and Lightning
- Fixed: 1061648 – Mailing list display does not refresh correctly after addresses are deleted
- Fixed: 1066551 – Add styling for .menulist-menupopup and .menulist-compact removed by bug 1030644
- Fixed: 1067089 – Port bug 544672 and bug 621873 to Thunderbird – Pin icon on Win8 and don’t propose Quick Launch Bar on Win7+
- Fixed: 1070614 – Fix some TypeErrors and SyntaxErrors seen in JS strict mode when running mozmill tests
- Fixed: 1071069 – Thunderbird PFS removal – TEST-UNEXPECTED-FAIL | /builds/slave/test/build/mozmill/content-tabs/test-plugin-unknown.js | test-plugin-unknown.js::test_unknown_plugin_notification_inline | test-plugin-unknown.js::test_unknown_plugin_notification_bar
- Fixed: 1072652 – Update removed-files for the move from Contents/MacOS to Contents/Resources
- Fixed: 1073951 – octal literals and octal escape sequences are deprecated: … mozmill/extension/resource/modules/utils.js
- Fixed: 1073955 – octal literals and octal escape sequences are deprecated: …resource://mozmill/stdlib/httpd.js
- Fixed: 1074002 – Modify file structure of Thunderbird.app to allow for OSX v2 signing
- Fixed: 1074006 – Get Thunderbird to launch with the new .app bundle structure
- Fixed: 1074011 – Thunderbird’s preprocessed channel-prefs.js file needs to be the same for each build
- Fixed: 1074814 – Fix some strict JS warnings in mail/base/modules
- Fixed: 1082722 – Remove mozilla-xremote-client from our packages.
- Fixed: 1083153 – EarlyBird not correctly signed, and doesn’t start up at all
- Fixed: 1083196 – IM: Lists are broken in Chat
MailNews Core-specific: (11)
- Fixed: 998189 – Add a basic structured header interface
- Fixed: 1047883 – Modify test_offlinePlayback.js to use promises.
- Fixed: 1062235 – Port bug 1062221 (kill add_tier_dir) to comm-central
- Fixed: 1067116 – compile failes nsEudoraFilters.cpp on case-sensitive HFS+ filesystem
- Fixed: 1070261 – Improve appearance of Advanced settings of an IMAP account
- Fixed: 1071497 – error: no matching function for call to ‘NS_NewStreamLoader(nsGetterAddRefs<nsIStreamLoader>, nsCOMPtr<nsIURI>&, nsAbContentHandler* const, nsIInterfaceRequestor*&)’
- Fixed: 1074034 – Simplify the comm-central build-system post pseudo-rework
- Fixed: 1074585 – TEST-UNEXPECTED-FAIL | /builds/slave/test/build/tests/xpcshell/tests/mailnews/compose/test/unit/test_detectAttachmentCharset.js | “Shift_JIS” == “UTF-8″ – See following stack:
- Fixed: 1078524 – TEST-UNEXPECTED-FAIL | /builds/slave/test/build/tests/xpcshell/tests/mailnews/import/test/unit/test_shiftjis_csv.js
- Fixed: 1080351 – Fix compiler errors caused by bug 1076698
- Fixed: 1083487 – /usr/bin/m4:./aclocal.m4:7: cannot open `mozilla/build/autoconf/ccache.m4′: No such file or directory
When I switched from using a BlackBerry to an Android phone a few years ago it really irked me that the only way to keep my contacts info on the phone was to also let Google sync them into their cloud. This may not be true universally (I think some samsung phones will let you store contacts to the SD card) but it was true for phone I was using then and is true on the Nexus 4 I'm using now. It took a lot of painful digging through Android source and googling, but I successfully ended up writing a bunch of code to get around this.
I've been meaning to put up the code and post this for a while, but kept procrastinating because the code wasn't generic/pretty enough to publish. It still isn't but it's better to post it anyway in case somebody finds it useful, so that's what I'm doing.
In a nutshell, what I wrote is an Android app that includes (a) an account authenticator, (b) a contacts sync adapter and (c) a calendar sync adapter. On a stock Android phone this will allow you to create an "account" on the device and add contacts/calendar entries to it.
Note that I wrote this to interface with the way I already have my data stored, so the account creation process actually tries to validate the entered credentials against a webhost, and the the contacts sync adapter is actually a working one-way sync adapter that will download contact info from a remote server in vcard format and update the local database. The calendar sync adapter, though, is just a dummy. You're encouraged to rip out the parts that you don't want and use the rest as you see fit. It's mostly meant to be a working example of how this can be accomplished.
The net effect is that you can store contacts and calendar entries on the device so they don't get synced to Google, but you can still use the built-in contacts and calendar apps to manipulate them. This benefits from much better integration with the rest of the OS than if you were to use a third-party contacts or calendar app.
Source code is on Github: staktrace/pimple-android.
Measurement of ambient light level has many uses. One is that it could be used to adjust the light level of electronic visual displays that are there in many of the devices we use today such as mobile phones and tablets. By such adjustments based on the ambient light level, we could save energy while delivering a comfortable reading experience to the user.
Another use of measuring ambient light level is in electrical lighting design. For example, the light level recommended for reading is different from that is recommended for hand tailoring. Recommended light levels in building designing in Sri Lanka can be found in page 38 of "Code of Practice for Energy Efficient Buildings in Sri Lanka" .
Source code of Light Level Meter .
First, enable Travis on your repo.
Then, Add the following .travis.yml file to the repo:
This will download Firefox 36.0a1 (which at the moment needs to be manually updated..), installs jpm, then runs jpm test -v on your JPM based Firefox add-on.Examples Add-ons
This week, the team landed code changes for Bug 832700 – Add private browsing to Firefox OS. This was the back end implementation in Gecko and we still have to determine how this will surface in the front end. That work is tracked at Bug 1081731 - Add private browsing to Firefox OS in Gaia.
We also got a couple of nice fixes to one of my favorite new features, the still experimental “app grouping” feature for the Firefox OS home screen. The fixes for Bug 1082627 and Bug 1082629 ensure that the groups align properly and have the right sizes. You can enable this experimental feature in settings -> developer -> homescreen -> app grouping.
There’s lots going on every day in Firefox OS development. I’ll be keeping y’all up to date here and on Twitter.
January 1st will be my last day as a Senior Technical Evangelist at Mozilla. I truly believe in the Mozilla’s mission, and I’ll continue to share my passion for the open web, but this time, as a volunteer. From now on, I’ll be on the search for a new challenge.
I want to thank my rock star team for everything: Havi Hoffman, Jason Weathersby, Robert Nyman, and Christian Heilmann. I also want to thank Mark Coggins for his strong leadership as my manager. It was a real pleasure to work with you all! Last, but not least, thanks to all Mozillians, and continue the good work: let’s keep in touch!What’s next
I’m now reflecting on what will be next for me, and open to discussing all opportunities. Having ten years as a software developer, and four years as a technical evangelist in my backpack, here are some ideas, in no particular order, I have in mind:
- Principal Technical Evangelist about a product/service/technology I believe in;
- General manager of a startup accelerator program;
- CTO of a startup.
I have no issue to travel extensively: I was on the road one-third of last year – speaking in more than twelves countries. I may not have an issue to move depending on the offer, and country. I like to share my passion on stage – more than 100 talks in the last three years. Also, my book on personal branding for developers will be published at Apress before the end of the year.
I like technology, but I’m not a developer anymore, and not looking to go back in a developer role. I may also be open to a non-technical role, but it need to target other of my passions like startups. For the last five years, I’ve been working at home, with no schedule, just end goals to reach. I can’t deal with micro-management, so I need some freedom to be effective. No matter what will be next, it need to be an interesting challenge as I have a serial entrepreneur profile: I like to take ideas, and make them a reality.
- I’m joining Mozilla It was a bold move to leave Microsoft without knowing...
- I’m leaving Microsoft, looking for a new opportunity For two years, and a half, I was a proud...
- One year at Mozilla On July 15th last year, I was starting a new...
When i got involved with Mozilla in 1999, it was clear that something big was going on. The mozilla.org site had a distinctly “Workers of the world, unite!” feel to it. It caught my attention and made me interested to find out more.
The language on the site had the same revolutionary feel as the design. One of the pages talked about Why Mozilla Matters and it was an impassioned rallying cry for people to get involved with the audacious thing Mozilla was trying to do.
“The mozilla.org project is terribly important for the state of open-source software. [...] And it’s going to be an uphill battle. [...] A successful mozilla.org project could be the lever that moves a dozen previously immobile stones. [...] Maximize the opportunity here or you’ll be kicking yourself for years to come.”
With some minor tweaks, these words are still true today. One change: we call the project just Mozilla now instead of mozilla.org. Our mission today is also broader than creating software, we also educate people about the web, advocate to keep the Internet open and more.
Another change is that our competition has adopted many of the tactics of working in the open that we pioneered. Google, Apple and Microsoft all have their own open source communities today. So how can we compete with companies that are bigger than us and are borrowing our playbook?
We do something radical and audicious. We build a new playbook. We become pioneers for 21st century participation. We tap into the passion, skills and expertise of people around the world better than anyone else. We build the community that will give Mozilla the long-term impact that Mitchell spoke about at the Summit.
Mozilla just launched the Open Standard site and one of the first articles posted is “Struggle For An Open Internet Grows“. This shows how the challenges of today are not the same challenges we faced 16 years ago, so we need to do new things in new ways to advance our mission.
If the open Internet is blocked or shut down in places, let’s build communities on the ground that turn it back on. If laws threaten the web, let’s make that a public conversation. If we need to innovate to be relevant in the coming Internet of Things, let’s do that.
Building the community that can do this is work we need to start on. What doesn’t serve our community any more? What do we need to do that we aren’t? What works that needs to get scaled up? Mozillians of the world, unite and help answer these questions.
Firefox Hello is Mozilla's more open, plugin-free take on voice and video chat
With Firefox Hello, Mozilla is trying to remove the proprietary shackles from online voice and video chat. The new service lets Firefox Beta users chat with anyone regardless of what browser the other person is using. As long as that browser supports ...
Firefox Hello adds video chat to Mozilla's browserCNET
Firefox Hello is Mozilla's answer to SkypeTechRadar UK
Mozilla's new Firefox Hello feature lets users conduct video, audio calls for freeTechSpot
Gigaom -Telecompaper (subscription) -Ordoh
alle 28 nieuwsartikelen »
Once again the internet flooded over with reports and alerts about a vulnerability using a funny name: POODLE. If you have even the slightest interest in this sort of stuff you’ve already grown tired and bored about everything that’s been written about this so why on earth do I have to pile on and add to the pain?
This is my way of explaining how POODLE affects or doesn’t affect curl, libcurl and the huge amount of existing applications using libcurl.
Is my application using HTTPS with libcurl or curl vulnerable to POODLE?
No. POODLE really is a browser-attack.Motivation
The POODLE attack is a combination of several separate pieces that when combined allow attackers to exploit it. The individual pieces are not enough stand-alone.
SSLv3 is getting a lot of heat now since POODLE must be able to downgrade a connection to SSLv3 from TLS to work. Downgrade in a fairly crude way – in libcurl, only libcurl built to use NSS as its TLS backend supports this way of downgrading the protocol level.
There’s no immediate need to do anything as curl and libcurl are not vulnerable to POODLE.
Still, SSLv3 is long overdue and is not really a modern protocol (TLS 1.0, the successor, had its RFC published 1999) so in order to really avoid the risk that it will be possible exploit this protocol one way or another now or later using curl/libcurl, we will disable SSLv3 by default in the next curl release. For all TLS backends.
Why? Just to be extra super cautious and because this attack helped us remember that SSLv3 is old and should be let down to die.
If possible, explicitly requesting SSLv3 should still be possible so that users can still work with their legacy systems in dire need of upgrade but placed in corners of the world that every sensible human has since long forgotten or just ignored.In-depth explanations of POODLE
Once again the internet flooded over with reports and alerts about a vulnerability using a funny name.