text:
Deviant Art
Tiny Terrors Re-Reports Episode 7This is the Tiny Terror's latest escapade. They all gathered in Matthew, Joshua, and Sarah's neighborhood for, not a picnic, but some harmless trick-or-treating.Tiny Terrors Re-Reports Episode 72 years ago in Comedy More Like This
Wednesday, October 31, 2007, 6:21pm
Sam: *Grunting*
[Clang, ticking, ding.]
Sam: Alright, let's see. What do we have? We have the scale, we have the egg timer, and we have the buckets. Good…
Karisa: What is all this stuff for?
Sam: It's all part of an experiment called, "None of your business."
JP: Hey, that's not nice.
Sam: Neither is life!
Karisa: Leave him alone, JohnPaul.
JP: But when are we going trick or treating?
Karisa: As soon as Connor and Anna and our cousins show up.
JP: What's taking so long?
Sam: Oh, they'll be here…soon. Bwah, ha, ha,ha, ha, ha, ah!
[Brief Silence]
Sam: What? I'm getting into the Halloween spirit!
Karisa: But you're dressed as Link.
Sam: I can pretend I'm Dark Link.
Karisa: But
Tiny Terrors Re-reports 9Re-Reports Episode 9Tiny Terrors Re-reports 98 months ago in Comedy More Like This
Warning: Not all material may be suitable for children under the age of 13.
The Tiny Terrors seem to believe that Matthew has been working with your group to some nefarious end. How they came to this conclusion is still unknown.
Date: 11/07/2007
[Boom, bang, boom]
Sam: Alright Tiny Terrors, today we're starting with a new mandatory Mandatory thing.
Josh: Like the room search?
[Bang, bang, bang]
Sam: You bet! I call it the Mandatory Scouting Mission!
[Ratta tat tatta]
Connor: And just what are we going to scout out?
Sam: We need to gather information on the enemy!
Connor: Enemy? You mean KOPAS?
Sam: No, I mean the guy that's working with KOPAS!
Tony: Who's that?
[Boom, crash, bang]
Sam: BlackCloak.
Tony: Matthew?
[Lightning strikes]
Josh: Is this why you wanted to have the meeting here at my house?
Sam: Precisely!
Connor: So we're spying on Joshua's brother?
Teen Titans-DuplicateTeen Titans-Duplicate4 years ago in Drama More Like This
Teen Titans
[We open to a few CDs sitting on a shelf.]
Beast Boy's voice: Oh! Sweet!
[Beast Boy's gloved hand come into view and grabs one of the CDs. Cut to Beast Boy standing in a music store with Starfire behind him. Beast Boy holds up the CD as his eyes sparkle. Starfire turns to see what CD he is holding.]
Beast Boy: They finally released the soundtrack to Mega Monkeys 5!
Starfire: Wonderful, Beast Boy.
[Beast Boy hugs the CD as joyful tears run down his cheeks.]
Beast Boy: The music from the final installment of the Mega Monkeys universe. It's so so
[Beast Boy holds up the CD again and his eyes pop out of his head as he looks at it. He lowers the CD, a sweat drop slides down the side of his face, and then he turns to Starfire.]
Beast Boy: Star, Could I borrow a couple of bucks?
Starfire: (Shaking head) Forgive me, Beast Boy, but I intend to spend my money on the music of AmiYumi (Holds up a CD).
[Beast Boy looks down at his CD with tears in his eyes.
The Tiny Terrors Re-Reports 5This is the Tiny Terrors first meeting after recruiting their newest member. They seem intent on concealing her identify for some reason.The Tiny Terrors Re-Reports 52 years ago in Comedy More Like This
Wednesday, October 3, 2007, 12:53pm
[Door creaking]
Sam: I just want to eat my seconds in the meeting room! I mean---The office! I mean, my room!
Mom: Alright, just don't get tomato sauce everywhere!
Sam: Yes, Mom!
[Door closing]
Tony: What was that about?
Sam: Joshua, go open the window.
Josh: Why do I have to open the window?
Connor: I'll do it.
Sam: Thank you, Connor.
[Widow opens]
Jokerinthepack: About time!
Sam: Sorry about the long wait. Spaghetti?
Jokerinthepack: Sure.
Tony: Who's that?
Sam: I'm sorry, Tony. Where are my manners? Joker in the pack, this is my cousin Tony. Tony, Joker in the pack.
Tony: Joker in the pack?
Jokerinthepack: It's my spy name.
Tony: So you're here to spy on us?
Jokerinthepack: You're one to talk…
[Brief Silence]
Connor: Joker in the p
Tiny Terrors Re-Reports Episod 6Tiny Terrors Re-Reports Episode 6Tiny Terrors Re-Reports Episod 62 years ago in Comedy More Like This
To whom it may concern,
This was recorded just down the hall from your meeting last week. Don't get used to receiving information free of charge. This is a onetime deal.
Wednesday, October 3, 2007, 1:10pm
[Music playing]
SneakyCat: Oh! Sorry, that's my phone.
SuperLinguist: What happened to the Makona ringtone?
SneakyCat: That's only for my text messages.
[Music stops]
SneakyCat: Hello? Oh hi, Matthew.
PrincessKitty: (Gasp) (Whispers, "Matthew?")
SneakyCat: Yeah, Joshua already told us about Sarah. I hope she feels better by next meeting.
[Brief Silence]
SneakyCat: Well, thanks for calling to let me know. …Uh…bye?
SuperLingust: What was that about?
SneakyCat: He just…swore revenge instead of saying good-bye.
PrincessKitty: Eep!
FragileCub: Guys, I already told you; Matthew's not evil.
SneakyCat: We know, FragileCub.
FragileCub: Augh…what happened to
The Tiny Terrors Re-Reports 4The Tiny Terrors Re-Reports 42 years ago in Comedy More Like This
"The Joker in the Pack,"
-someone or something that could change a situation in a way that you do not expect.
Sunday, September 23, 2007, 11:11am
JokerinthePack: Testing, testing is this thing even on?
[Thud, thud, thud]
JokerinthePack: Well, if you can hear me; you plant your own microphone next time
Sam: (Muffled, "Oh man! It's already eleven o'clock?!")
JokerinthePack: Uh-oh! (Whispering, "Hiding place! Hiding place!")
[Thump, thump, bang, clatter]
[Door creaking]
[Door slamming]
Sam: They're going to be here any minute! Aw man! I was supposed to clean this room!
Mom: (Muffled, "Sammy! Joshua and Connor are here!")
Sam: Just a minute!
[Clink, clank]
Sam: Gotta clean up! Gotta clean up! Gotta clean up!!!
[Clank, bang, ow, clatter, sweep]
[Knock, knock, knock]
[Brief Silence]
Sam: Password!
Josh: (Muffled, "Apples are red, snickers are brown. If you don't eat them you'll have a big frown.")
Sam: You said the password too fast!
|Sta.sh Submit


text:
They feel bad, so they found you these other deals to make up for it.
Select Local Merchants
Proper PlantsRead MoreOwned and operated by horticultural experts Russell and Lyn Madison, Proper Plants' greenhouses greet visitors with more than 125 annuals ($1.10+/pack), more than 150 varieties of hanging baskets ($8+), and a plethora of other herbaceous offerings. Those who like edible beauty but dislike the time it takes to make Brad Pitt?shaped lasagna can browse the tomatoes, eggplants, and 85 varieties of vegetables, which come in small pots for short-term storage ($.95+) or nursery cans to keep them warm before the start of spring ($6.50/2.5 qt. can). Proper Plants also packs potted plants such as geraniums, verbena, and various herbs ($2.90+). The practiced staff can help DIY soil workers arrange their own hanging basket or answer any questions on crop placement or garden-gnome disciplinary techniques. Rather than use pesticides, Proper Plants uses biological controls, such as predator insects, on plants.3050 Military PikeLexington, KY US

subset: commoncrawl


text: This is our go to diner for that cheeseburger deluxe or Sunday morning breakfast. The food is delicous. The servers are a happy nice bunch of people who always great you with a smile. Never go any where else when I need a diner fix. Go try it out you will not be disappointed!


text:
InstaWifi makes it easy for you to connect and share wifi networks with your friends and family instantly through the use of NFC and QR codes. Simply tap your phone on a sticker, or scan a QR code to connect to a wifi network.
InstaWifi is only needed to generate the QR code for your wifi network. Once you have the QR code, any Android smartphone with the Barcode Scanner app by zxing (https://play.google.com/store/apps/details?id=com.google.zxing.client.android) installed can scan to automatically connect.
For the NFC features, InstaWifi needs to be installed on the device to read the NFC sticker correctly.
Interested in playing around with NFC but don't know where or what type of NFC stickers to buy? Donate a couple bucks to the developer and I will send you special Android-themed NFC stickers as a token of appreciation.
For more details, see the help section in the menu of the app.
PLEASE READ THE FOLLOWING before installing:
If you rooted your phone, InstaWifi will ask for root on startup so that it'll automatically grab your WiFi password and security type so that you don't have to manually type it in. Root access is not required.
DO NOT share the QR code to people you do not trust. The QR code has your wifi network password embedded in the image, and should only be used to share with family or friends.
Storage - External SD card access is used to save QR images onto the SD card so that GMail and other applications can retrieve the image and attach it to their app.
Network Communication - NFC permission is used to read/write from a NFC tag, as well as for Android Beam. Also to view WiFi networks to populate the list of WiFi networks you've connected to.
System Tools - To enable and disable WiFi.
Report any bugs or feedback on instawifi.jessechen.net
What's New
WiFi Connection Manager
Help us with the translation project on http://crowdin.net/project/wifi-connection-manager
NOTE: According to the change of Google Play Mobile Ads policy, devices before Android 2.3 are no longer be supported.
Legacy devices can download the app from: http://www.roamingsoft.com/android/WifiManagerLegacy.apk
1. Support AP (Access Points) SSID with special characters, such as Chinese, Japanese, Korean, Greeks, Russian, Arabic, Portuguese, UNICODE and so on.
2. Display saved network password. (require device to be rooted)
3. Fix device Wi-Fi problems.
4. Instant connect. Once searched, once start connecting. Way faster than the system build-in Wi-Fi scanner.
5. Static IP settings support. Auto switch between different AP.
6. Switch between available networks, solving the network conflict problem.
7. Add/Connect to certain hidden SSID network (depends on device and network conditions).
8. Manual add network, with special support for EAP/LEAP encrypted network.
9. Pause scan, convenient to browse many results.
10. More detail network information, network bandwidth, channel and network type.
11. Auto detect Web Authentication.
12. Backup/Restore saved networks.
13. Add/Share Wi-Fi network with QR code.
14. Arrange network connecting priority.
15. WPS (Wi-Fi Protected Setup) support for Android 4.0 or above devices.
16. Automatical switch between saved networks when signal is not ideal.
17. Wi-Fi tether (Wi-Fi Hotspot) support.
About the required permissions:
Camera is for adding Wi-Fi network via QR code.
Phone and Internet is for the AdMob plug-in made by Google.
Storage is for backup and restore saved network.
Greek WPA Finder
If you are not located inside Greece you can still try your luck with this app but don't be mad if it doesn't work at all in your territory. In case you manage to connect to a network othen than yours you have to inform the owner so that he/she change password.
WPS Connect
With this app you'll can connect to WiFi networks which have WPS protocol enabled. This feature was only available in version 4.1.2 of Android.
App developed with educational purposes. I am not responsible for any misuse.
WPS: http://es.wikipedia.org/wiki/Wi-Fi_Protected_Setup
WPS Connect is focused on verifying if your router is vulnerable to a default PIN. Many routers that companies install own vulnerabilities in this aspect. With this application you can check if your router is vulnerable or not and act accordingly.
Includes default PINs, as well as algorithms such Zhao Chesung (ComputePIN) or Stefan Viehböck (easyboxPIN).
Tested on:
- Nexus 5
- Samsung Galaxy S3
Prior to an assessment, understand that it serves the application.
WiFi Connect
1. Signal strengh
2. Channel number
3. Security type
4. Link speed
5. Hardware vendor
6. IP number, and etc.
You can see which one is good and bad intuitively, and it is very easy to use.
Also, this application provides "Query nearby network devices" feature.
It scans all connected devices to your AP.
WiFi Picker also supports notification feature with various network information.
(Link speed, IP etc)
Wifi password recovery
Never lose your wifi password again
this app only works for default password in some modems.
this is not for hacking wifi free networks, neither for free wifi, its for recovery purposes.
support next networks
WLAN_XXXX, JAZZTEL_XXXX, WLAN_6X, YaCom_6X,Megared-XXXX, AXTEL-XXXX,, InterCable6X, InterCableXXXX, INFINITUM6X, INFINITUMXXXX, MAXCOMXXXX, mega cable
do not use in wrong way, the app can change your wifi settings.
This app can turn on your wifi
this app its like wifi hacker prank, or wifi hack joke, but functional.
WiFinspect [Root]
WiFinspect is a multi-tool intended for Computer Security professionals and other advanced users that wish to monitor the networks they own or have permission, i.e. the app is a security audit tool and not a hacking tool. The functions include:
* Network Information
* UPnP Device Scanner
* Host Discovery
* Network Sniffer
* Pcap Analyzer (three options)
* PCI DSS (Version 2) Menu
- Access Point Default Password Test (requirement 2.1.1.c)
- Access Point Security Test (requirement 4.1.1)
- Access Point Scanner (requirement 11.1)
- Internal Network Vulnerability Scanner (requirement 11.2.1)
- External Network Vulnerability Scanner (preparation for requirement 11.2.2)
* Host Information
* Port Scan
* Host Vulnerability Scan
* Traceroute
* Ping
This app is a student dissertation by Andreas Hadjittofis as part of his MSc in Computer Security at the University of Birmingham, UK. The project is supervised by Dr Tom Chothia and was released in August 2012. The developers of this app cannot be held responsible for how this app is being used. The app comes with no guarantees.
* Network Information (ROOT): Information about the connected network like MAC and IP addresses, gateway etc
* UPnP Device Scanner: Lists all UPnP devices on the network that are within the view of your device
* Host discovery (ROOT): Uses nmap to discover all devices on the network that are within the view of your device
* Network Sniffer (ROOT): Uses tcpdump to sniff on all packets that are within the view of your device. The resulting pcap files can be analyzed with Wireshark or the built-in Pcap Analyzer
* Pcap Analyzer: Uses jNetPcap to parse a pcap file. Three options: Packet Distribution, Bandwidth Distribution or Communicating Hosts analysis
* Access Point Default Password Test: Checks a pre-set list of default router passwords against your router's control panel and notifies you if your router is using a default password
* Access Point Security Test: Displays the access points that are within the view of your device with a note whether they are secure (WPA/WPA2) or not (WEP or unlocked)
* Access Point Scanner: Displays the access points that are within the view of your device
* Internal Vulnerability Scanner (ROOT): Uses nmap to find all devices on the network that are within the view of your device. A note is given whether exploits exists for a given device based on its operating system and open ports
* External Vulnerability Scanner (ROOT): Runs Host Information, Port Scan, Host Vulnerability Scan, Traceroute, Ping or Sniffer functions on a given IP address or hostname
* Host Information (ROOT): Uses nmap to retrieve the device's hostname, MAC address, vendor, operating system, device name and workgroup
* Port Scan (ROOT): Uses nmap to retrieve the device's open ports. Click on a port to view the Metasploit results for the device's operating system and port
* Host Vulnerability Scanner (ROOT): Uses nmap to retrieve information about the host along with a note stating whether exploits exists for the device based on its operating system and open ports
* Traceroute (ROOT): Uses nmap to traceroute to a host
* Ping (ROOT): Uses nping to ping a host
* ACCESS_WIFI_STATE, CHANGE_WIFI_STATE, ACCESS_NETWORK_STATE: Used to determine if the device is connected to a Wi-Fi network and to retrieve the data displayed in Network Information function
* CHANGE_WIFI_MULTICAST_STATE: Used by the UPnP Device Scanner function
* INTERNET: Used to retrieve the device's external IP address in Network Information function, for Metasploit search, and for the optional error reporting.
* WRITE_EXTERNAL_STORAGE: Used to store the nmap and pcap files
Root Checker
*Feel free to email me with any questions. I always reply!*
The goal of this application is to provide even the newest Android user with a simple method to check their device for root (administrator/superuser) access.
This is a very simple application to notify the user whether or not they have properly setup root access.
This application will test the device for root access using a very simple, quick and reliable method. The su binary is the most common binary used on Android devices to grant and manage root access. Root Checker will check and verify that the su binary is located in a standard location on the device. Root Checker will also confirm the proper permissions and flags on the su binary in addition to testing that access is granted by the su binary.
Many times users experience issues along the path of installing, configuring and gaining root access. For some users the process can seem complex while for others the process can seem simple. Regardless of the user's technical skill set, Root Checker, will quickly and correctly verify whether or not root access is 100% functioning. The process of confirming root access is sometimes known by other terms such as, gaining superuser access or gaining administrator access. Root Checker covers all these terms as they relate to one core function, being able to execute commands with root access.
If the Superuser or SuperSU applications are installed and working properly, these applications will prompt the user to accept or deny the root access request from Root Checker. Accepting the request will allow Root Checker to check for root access. Denying the request will result in Root Checker reporting no root access.
Gaining root access varies based on manufacturer, model, and carrier. If you're searching for root access to your device, this application will not help you. If you're interested in rooting your device, please use http://www.google.com to find the appropriate rooting support areas for your specific device. Other popular web sites which provide rooting guides are http://forum.xda-developers.com and http://forum.sdx-developers.com.
Please don't leave negative feedback about a concern, bug or issue! Instead, please email me,with your feedback, suggestions and comments!
I do my best to assist as many people as possible and appreciate all the support that has made this application successful! Thank you!
- Detects if your phone has Root access
- Device and Android Version along with the API Level
- Displays SuperUser Version
- Displays BusyBox and Su Versions
- User and Group Id
- SuperUser Location
- Su and Sudo Location
- Environment Variables
- Displays Phone's Build Information
Permissions requested:
- Internet - Google Analytics/Send Feedback
- SuperUser - Check for Root access
Root Checker by Jared Burrows
Visit: http://www.burrowsapps.com/
Find me on Google+: https://plus.google.com/+JaredBurrows
Send all suggestions to email@example.com
This app easily and securely connects your Android device to a Buffalo AirStation wireless router with Wi-Fi. Follow the instructions and press the AOSS button on the AirStation. All security (encryption) settings are configured automatically.
If your Android device has Wi-Fi calling (some models of US T-Mobile and Orange UK), turn it off during AOSS setup.
Troubleshooting: If an error occurs, try the actions below.
- Restart the Android device.
- Restart the AirStation.
- Exit all other running applications.
- Move closer to the AirStation and try the setup procedure again.
- Change the channel of the AirStation.
- If your AirStation is dual-band [2.4 GHz (11g) and 5 GHz (11a)], switch to 2.4 GHz (11g).
- If other apps that control the Wi-Fi connection are installed, try exiting or uninstalling them. Examples: Wi-Fi Manager app, Wi-Fi Calling app, etc.
- If other Wi-Fi network settings are already stored, delete any unnecessary settings.
Tested Versions:
Android 2.1 (Eclair)
Android 2.2 (Froyo)
Android 2.3 (Gingerbread)
Android 3.0–3.2 (Honeycomb)
Android 4.0 (Ice Cream Sandwich)
Android 4.1–4.3 (Jelly Bean)
Android 4.4 (KitKat)
Android 5.0 (Lollipop)
Tested Devices:
- Desire HD (HTC)
- Galaxy S (Samsung)
- Galaxy S 2 (Samsung)
- Galaxy Tab (Samsung)
- Milestone 2 (Motorola)
- Streak (Dell)
- XOOM (Motorola)
- Xperia arc (Sony Ericsson)
- Xperia X10 (Sony Ericsson)
- Xperia ray (Sony Ericsson)
- GALAXY NEXUS (Samsung)
- Nexus 5
- Nexus 7 (2012)
- Nexus 7 (2013)
- Nexus 9
Compatible AirStations (Access Points):
Any that include AOSS (AirStation One-touch Secure System)
Not compatible with the AirStations below.
AOSS is a trademark of Buffalo Inc.
Mac2WepKey HHG5XX
WiFi Key Recovery (needs root)
** You need to have connected to the network in the past.
** This app cannot "hack" into an unknown/new network.
I cannot help you with getting root. Have a look at http://forum.xda-developers.com for that.
Have you ever forgotten the password of your home WiFi network, or the one you setup for your parents a few months back?
This application will help you recover the password of a wireless network you have connected to with your device in the past.
You can then either tap on an entry to copy it, or export the list to SD, or share it using the standard Android sharing facilities.
It does not crack the network, or use the MAC/SSID address to deduce the password. It simply reads it from the device itself.
Essentially it parses the wpa_supplicant file.
For more information on how the keys are recovered read here: http://alt236.blogspot.com/2011/04/android-wifi-password-locations.html
No ads.
Please use responsibly.
Tested by me on:
•HTC Desire Z
•Samsung Galaxy Tab.
According to feedback it also works on:
•HTC Desire HD
•HTC Evo
•LG Optimus 2X
•Motorola Defy
•Samsung Captivate
•Viewsonic gTablet
•Xperia X10 Mini
Email me if does not work on your device and I'll try to fix it.
Github: https://github.com/alt236/Wifi-Key-Recovery---Android
Please email me with any bugs/problems/feature requests. I cannot reply to market comments which can make debugging difficult.
• Live viewing of single or split screen (four, nine and sixteen channels simultaneously)
• Swipe support for fast camera switching
• Portrait and landscape viewing
• Multi-DVR management for vacation homes or multi-location businesses
• Search for recorded video by alarm triggers, motion or time
• Instantly capture a snapshot to your Photo Library
• Remote control of pan/tilt/zoom (PTZ) cameras
• Audio support
• View alarm input status and control trigger outputs
• Dual Stream support
Wifi Inspector
Wifi Inspector is a simple tool to see all the devices connected to our network (both wired and wifi, whether consoles, TVs, pcs, tablets, phones etc ...), giving relevant data such as IP address, manufacturer, device name and MacAddress.
Wifi Inspector also allows to save a list of known devices with custom name and find intruders in less than 30 seconds. This makes it easier for us and you will not need to go checking the data whenever we make a scan.
All this in a clear and simple design that allows us to see that our personal data are safe in a few seconds.
No doubt, Wifi Inspector ALWAYS find ALL connected devices!! More than 230,000 active installations demonstrate their reliability!!
We continue working to improve Wifi Inspector and we greatly appreciate that you share your opinions whether positive or negative. We have almost no reports of problems in the poor ratings (only one star with no comment) This makes difficult that we can improve the application. Please if you have any problems / suggestions do not hesitate to send it to us, in your comment or with email, and we will try to fix it.
- Spanish
- English
- Italian
- Catalan
- Russian
- French
- Portuguese
For a better experience we recommend Android 4.0 or more
WiFi HotSpot
Improve your mobile experience by easily converting your phone into a WiFi hotspot.
This widget was designed with user experience in mind, therefore design, simplicity and speed is the aim.
Please note that this is a widget and NOT an application, so you will not see it listed on your application list (app drawer).
After you have installed this widget from the Google Play store, you will need to navigate to your widget list in order to place it on your home screen.
NOTE: You will need to configure the phone's hotspot setting before using this widget, if you haven't done so already.
(Android Jelly Bean): Settings->More..->Tethering & portable hotspot->Setup Wi-Fi hotspot
As you can expect, we cannot test this widget on every available Android phone out in the market, so we can guarantee normal functionality only on the devices listed below mostly running on Gingerbread and JellyBean versions. Please do feel free to try this on other devices and give us your feedback if you have any issue so it will help us improve this further and support more devices.
Google Galaxy Nexus
Google Nexus 4
Google Nexus One
Google Nexus S
Motorolla Xoom
Samsung Galaxy S2
Samsung Galaxy S3
Samsung Galaxy S4
Sharp AQUOS SH80F
Sharp AQUOS Zeta
Sony Xperia Z
This widget will not work on some HTC handsets because HTC have implemented their hotspot API's slightly different to default android.
If you experience problems with this widget on devices not listed above (other than HTC), then please give us a chance to fix the issue by emailing us, instead of giving us a bad review.
Wps Wpa Tester Premium (ROOT)
Try if your wireless network is secure or not!
thanks to this app and thanks to the algorithm of wps default (zaochensung) SOME of routers, you can receive the WPA WPA2 WEP set to the router.
The app needs permission superuser (root), otherwise it displays only the default WPS.
Algorithms used:
-vodafone arcadyan
- Added default pin of many routers
Before giving negative feedback, read the description. Not all routers are compatible
It is obvious that if you are already connected to your line, the program will return to the password of the router
although it is not compatible.
FOR ANY QUESTIONS AND SUPPORT, CONTACT ME ON TWITTERAle_wps_tester
And myself QUESTIONS WITH hashtag #wpstestersupport
• Live viewing of single or split screen (four and nine channels simultaneously)
• Swipe support for fast camera switching
• Portrait and landscape viewing
• Multi-Device management for vacation homes or multi-location businesses
• View cameras at Full HD resolutions with strong connections or lower the resolution on-the-fly if your bandwidth is limited
• Instantly capture a snapshot to your Photo Library
• Remote control of pan/tilt/zoom (PTZ) cameras
Linksys Smart Wi-Fi
Home networking just got a lot more fun and easily accessible. With Linksys Smart Wi-Fi you can get access into your home network from anywhere at any time. Plus, continue to get new apps and capabilities that will optimize your connected experiences. From your Linksys Smart Wi-Fi mobile app easily tap into your home network to check the connection status of your devices, give a guest access to the Internet, or block your child from accessing social networking sites when they should be doing homework. You can even prioritize what devices on your network get priority bandwidth to reduce lag times and buffering. You no longer have to be tethered to your desk at home to get visibility into your home network. Get the freedom to access and control your connected life on the go.
Key Features:
• Remote Access – Access and manage your network on the go using your Linksys Smart Wi-Fi account.
• Guest Access – Easily give your friends and family Internet access on your separate guest network. Simply tap on your Linksys Smart Wi-Fi app to get and share your guest network password.
• Media Prioritization - Prioritize which devices on your network get the most bandwidth for less lag time and buffering.
• Parental Controls - Create a safe Internet experience for your kids, even on-the-go. From your mobile phone or tablet, restrict access to specific web sites or block specific devices from accessing the Internet.
This app works with any router that supports Linksys Smart Wi-Fi. To view the full list of supported routers, click here: http://www.linksyssmartwifi.com/cloud/ustatic/mobile/supportedRouters.html. To access Linksys Smart Wi-Fi, you must first create a secure user account (www.linksyssmartwifi.com) and then simply login to that account while connected to your home router. After that, you can log in from anywhere you have Internet access.
System Requirements:
• This product will only work with a Linksys Smart Wi-Fi Router. To view the full list of supported routers, click here: http://www.linksyssmartwifi.com/cloud/ustatic/mobile/supportedRouters.html
• Android 2.2 and greater
This app has been widely tested with a variety of devices and routers to help ensure you have a good experience. If you encounter any major issues, please provide as much detail as you can in your feedback to help with investigation. Your mobile device model, OS version, router model, and the error message you are seeing are all important. Rebooting your mobile device and router are also good troubleshooting steps.
Copyright and Trademark notice: 2015 Belkin International, Inc. and/or its affiliates. All rights reserved.
Privacy Policy: http://www.linksyssmartwifi.com/cloud/ustatic/privacystatement/en-US.html
For support, visit our Support site at http://www.linksys.com/us/support-article?articleNum=156266


text:
Carbon price and optimal extraction of a polluting fossil fuel with restricted carbon capture
Among technological options to mitigate greenhouse gas (GHG) emissions, Carbon Capture and Storage technology (CCS) seems particularly promising. This technology allows to keep on extracting polluting fossil fuels without drastically increasing CO2 atmospheric concentration. We examine here a two-sector model with two primary energy resources, a polluting exhaustible resource and an expensive carbon-free renewable resource, in which an environmental regulation is imposed through a cap on the atmospheric carbon stock. We assume that only the emissions from one sector can be captured. Previous literature, based on one-sector models in which all emissions are capturable, finds that CCS technology should not be used before the threshold has been reached. We find that, when technical constraints make it impossible to capture emissions from both sectors, this result does not always hold. CCS technology should be used before the ceiling is reached if non capturable emissions are large enough. In that case, we find that energy prices paths must differ between sectors reflecting the difference of social cost of the resource according to its use. Numerical exercise show that, when the ceiling is set at 450ppm CO2, the initial carbon tax should equal 52$/tCO2 and that using CCS before the ceiling is optimal.
If you experience problems downloading a file, check if you have the proper application to view it first. In case of further problems read the IDEAS help page. Note that these files are not on the IDEAS site. Please be patient as the files may be large.
|Date of creation:
|Apr 2010
|Date of revision:
|View the original document on HAL open archive server: http://halshs.archives-ouvertes.fr/halshs-00564852
|Contact details of provider:
| Web page: http://hal.archives-ouvertes.fr/
No references listed on IDEAS
You can help add them by filling out this form.
This item is not listed on Wikipedia, on a reading list or among the top items on IDEAS.
When requesting a correction, please mention this item's handle: RePEc:hal:psewpa:halshs-00564852. See general information about how to correct material in RePEc.
For technical questions regarding this item, or to correct its authors, title, abstract, bibliographic or download information, contact: (CCSD)
If you have authored this item and are not yet registered with RePEc, we encourage you to do it here. This allows to link your profile to this item. It also allows you to accept potential citations to this item that we are uncertain about.
If references are entirely missing, you can add them using this form.
If the full references list an item that is present in RePEc, but the system did not link to it, you can help with this form.
If you know of missing items citing this one, you can help us creating those links by adding the relevant references in the same way as above, for each refering item. If you are a registered author of this item, you may also want to check the "citations" tab in your profile, as there may be some citations waiting for confirmation.
Please note that corrections may take a couple of weeks to filter through the various RePEc services.


text:
Receive Breaking News updates as they occur
ATHENS, Greece (AP) — Anxious pensioners swarmed closed bank branches Monday and long lines snaked outside ATMs as Greeks endured the first day of serious controls on their daily economic lives ahead of a referendum that could determine whether the country has to ditch the euro currency and return to the drachma.
NEW YORK (AP) — For decades, a circa 1860s Brooklyn Atlantics team baseball card was tucked away, first inside a secret drawer of a bedroom set and then between the pages of a photo album.
TOKYO (AP) — A passenger on one of Japan's high-speed bullet trains tried to set himself or herself on fire Tuesday, causing smoke to fill the carriage and forcing the train to stop, Japan's transport ministry said.


text:
- Denis Leary Finds His Inner Washed-Up Singer in 'Sex&Drugs&Rock&Roll'
- Lifetime's 'UnReal' Recycles a Producer's Dark Experiences
- Val Doonican, Irish Singer and TV Host, Dies at 88
- ArtsBeat: Sonia Manzano, Maria on 'Sesame Street,' to Retire After 44 Years
- ArtsBeat: Stephen Colbert Interviews Eminem on Michigan Public Access
Cher... Special
TV Special
More in Television
TV Highlights
What's On This Week
A daily updated summary of the week in TV.
Program Overview
Executive Producers: Raymond Katz, Sandy Gallin
Genres: Musical, Variety
Genres: Musical, Variety
Program Synopsis
Cher hosts this musical special with two big names, one from country and one from rock.
What's On Tonight
- Obama's Eulogy, Which Found Its Place in History
- As Grateful Dead Exit, a Debate Will Not Fade Away
- ArtsBeat: Grateful Dead 'Fare Thee Well' Tour Gets Down to the Music
- Review: Sargent's Intimate Portraits of Friends at the Metropolitan Museum
- Denis Leary Finds His Inner Washed-Up Singer in 'Sex&Drugs&Rock&Roll'
- On the Organ Trail in Manhattan
- 'Collecting Paradise' at the Rubin: A Curious Case of Divergence
- The Hermione Sails Into New York Harbor, Cannons Blazing
- Ballet Theater's Met Season, a Mix of Sparkling Moments and Familiar War Horses
- Havana's Vital Biennial Was Trumped by a Stifled Voice


text:
Byron Jones: happy bmo push day!
the following changes have been pushed to bugzilla.mozilla.org:
- [1174057] Authentication Delegation should add an App ID column to associate api keys with specific callbacks
- [1163761] Allow MozReview to skip user consent screen for Authentication Delegation
- [825946] tracking flags should be cleared when a bug is moved to a product/component where they are not valid
- [1149593] Hovering over "Copy Summary" changes the button to a grey box
- [1171523] Change Loop product to Hello
- [1175928] flag changes made at the same time as a cc change are not visible without showing cc changes
- [1175644] The cpanfile created by checksetup.pl defines the same feature multiple times, breaking cpanm
- [1176362] [Voting] When a user votes enough to confirm an individual bug, the bug does not change to CONFIRMED properly
- [1176368] [Voting] When updating votestoconfirm to a new value, bugs with enough votes are not moved to CONFIRMED properly
- [1161797] Use document.execCommand("copy") instead of flash where it is available
- [1177239] Please create a "Taskcluster Platform" product
- [1144485] Adapt upstream Selenium test suite to BMO
- [1178301] webservice_bug_update.t Parse errors: Bad plan. You planned 927 tests but ran 921
- [1163170] Giving firefox-backlog-drivers rights to edit the Rank field anywhere it appears in bugzilla
- [1171758] Persistent xss is possible on Firefox
discuss these changes on mozilla.tools.bmo.
Filed under: bmo, mozilla
Mark Finkle: Random Thoughts on Management
I have ended up managing people at the last three places I've worked, over the last 18 years. I can honestly say that only in the last few years have I really started to embrace the job of managing. Here's a collection of thoughts and observations:
Growth: Ideas and Opinions and Failures
Expose your team to new ideas and help them create their own voice. When people get bored or feel they aren't growing, they'll look elsewhere. Give people time to explore new concepts, while trying to keep results and outcomes relevant to the project.
Opinions are not bad. A team without opinions is bad. Encourage people to develop opinions about everything. Encourage them to evolve their opinions as they gain new experiences.
"Good judgement comes from experience, and experience comes from bad judgement" – Frederick P. Brooks
Create an environment where differing viewpoints are welcomed, so people can learn multiple ways to approach a problem.
Failures are not bad. Failing means trying, and you want people who try to accomplish work that might be a little beyond their current reach. It's how they grow. Your job is keeping the failures small, so they can learn from the failure, but not jeopardize the project.
Creating Paths: Technical versus Management
It's important to have an opinion about the ways a management track is different than a technical track. Create a path for managers. Create a different path for technical leaders.
Management tracks have highly visible promotion paths. Organization structure changes, company-wide emails, and being included in more meetings and decision making. Technical track promotions are harder to notice if you don't also increase the person's responsibilities and decision making role.
Moving up either track means more responsibility and more accountability. Find ways to delegate decision making to leaders on the team. Make those leaders accountable for outcomes.
Train your engineers to be successful managers. There is a tradition in software development to use the most senior engineer to fill openings in management. This is wrong. Look for people that have a proclivity for working with people. Give those people management-like challenges and opportunities. Once they (and you) are confident in taking on management, promote them.
Snowflakes: Engineers are Different
Engineers, even great ones, have strengthens and weaknesses. As a manager, you need to learn these for each person on your team. People can be very strong at starting new projects, building something from nothing. Others can be great at finishing, making sure the work is ready to release. Some excel at user-facing code, others love writing back-end services. Leverage your team's strengthens to efficiently ship products.
"A 1:1 is your chance to perform weekly preventive maintenance while also understanding the health of your team" – Michael Lopp (rands)
The better you know your team, the less likely you will create bored, passionless drones. Don't treat engineers as fungible, swapable resources. Set them, and the team, up for success. Keep people engaged and passionate about the work.
Further Reading
The Role of a Senior Developer
On Being A Senior Engineer
Want to Know Difference Between a CTO and a VP of Engineering?
Thoughts on the Technical Track
The Update, The Vent, and The Disaster
Bored People Quit
Strong Opinions, Weakly Held
Karl Dubost: Web Components, Stories Of Scars
Chris Heilmann has written about Web Components.
If you want to see the mess that is the standardisation effort around web components right now in all its ugliness, Wilson Page wrote a great post on that on Mozilla Hacks. Make sure to also read the comments – lots of good stuff there.
Indeed a very good blog post to read. Then Chris went on saying:
Web Components are a great idea. Modules are a great idea. Together, they bring us hours and hours of fun debating where what should be done to create a well-performing, easy to maintain and all around extensible complex app for the web.
This is twitching in the back of my mind for the last couple of weeks. And I kind of remember a wicked pattern from 10 years ago. Enter Compound Document Formats (CDF) with its WICD (read wicked) specifications. If you think I'm silly, check the CDF FAQ:
When combining content from arbitrary sources, a number of problems present themselves, including how rendering is handled when crossing from one markup language to another, or how events propagate across the same boundaries, or how to interpret the meaning of a piece of content within an unanticipated context.
Simply put, a compound document is a mixture of content in any number of formats. Compound documents range from static (say, XHTML that includes a simple SVG illustration) to very dynamic (a full-fledged Web Application). A compound document may include its parts directly (such as when you include an SVG image in an XHTML file) or by reference (such as when you embed a separate SVG document in XHTML using an <object> element. There are benefits to both, and the application should determine which one you use. For instance, inclusion by reference facilitates reuse and eases maintenance of a large number of resources. Direct inclusion can improve portability or offline use. W3C will support both modes, called CDR ("compound documents by reference") and CDI ("compound documents by inclusion").
At that time, the Web and W3C, where full throttle on XML and namespaces. Now, the cool kids on the block are full HTML, JSON, polymers and JS frameworks. But if you look carefully and remove the syntax, architecture parts, the narrative is the same. And with the narratives of the battle and its scars, the Web Components sound very familiar to the Coupound Document Format.
Still by Chris
When it comes to componentising the web, the rabbit hole is deep and also a maze.
Note that not everything was lost from WICD. It helped develop a couple of things, and reimagine the platform. Stay tune, I think we will have surprises on this story. Not over yet.
Modularity has already a couple of scars when thinking about large distribution. Remember Opendoc and OLE. I still remember using Cyberdog. Fun times.
What to Look Forward to from Firefox
We created Firefox more than a decade ago with a mission to give people transparency, choice and control online. Since then, the browser has continued to evolve its critical role in how users experience the Web and control their online lives.
That's why at Mozilla we're always focused on one question: how do we make Firefox even better and continue to delight users? Because we are different than most tech companies and work in the open, we are sharing some experiments centered around the three focus areas of our strategy.
Uncompromised Quality
The first focus area is delivering an uncompromised user experience that ensures Firefox meets the most rigorous of quality and performance standards. This commitment is evident in the strides we're making to improve the richest Web experiences like HTML5 video playback and game performance. We'll also soon deliver Firefox to new platforms, such as Firefox for iOS and Windows 10, where we will provide an independent and high-performing alternative to the stock browser.
Best Of The Web
Firefox is well known for giving users complete control over their Web experience while pushing the boundaries of the "modern browser." Today, we're working with more partners and developers around the world to highlight innovation and offer the best of the Web in Firefox. We showed this with our new search strategy for Firefox to promote choice and innovation and with new open technologies we build based on standards including Firefox Hello, the first WebRTC in-browser video chat tool made in partnership with Telefonica. We continue to pioneer open standards including WebVR, WebGL and WebRTC to advance the Web as the development platform.
Uniquely Firefox
Earlier this year, we asked users to identify what's different about Firefox and the results reaffirmed our view that it's important for Firefox to be increasingly recognized for attributes such as performance, trust and quality that align with our mission.
We value that our users trust us because we protect their choices and protect their privacy. That's why we are experimenting with improvements to private browsing and other unique features for a major release focused on these three areas that we'll share with Firefox users later this year.
Stay tuned for more.
Planet Mozilla Interns: Jonathan Wilde: A Project Called Gossamer
A few summers back, I worked on the Firefox Metro project. The big challenge I ran into the first summer–back when the project was at a very early stage–was figuring out how to distribute early builds.
I wanted to quickly test work-in-progress builds across different devices on my desk without having to maintain a working copy and rebuild on every device. Later on, I also wanted to quickly distribute builds to other folks, too.
I had a short-term hack based on Dropbox, batch scripts, and hope. It was successful at getting rapid builds out, but janky and unscalable.
The underlying problem space–how you build, distribute, and test experimental prototypes rapidly?–is one that I've been wanting to revisit for a while.So, Gossamer
This summer, Lyre Calliope and I have had some spare time to tinker on this for fun.
We call this project Gossamer, in honor of the Gossamer Albatross, a success story in applying rapid prototyping methodology to building a human-powered airplane.
We're working to enable the following development cycle:
- Build a prototype in a few hours or maybe a couple days, and at the maximum fidelity possible–featuring real user data, instead of placeholders.
- Share the prototype with testers as easily as sharing a web page.
- Understand how the prototype is performing in user testing relative to the status quo, qualitatively and quantitatively.
- Polish and move ideas that work into the real world in days or possibly weeks, instead of months or years.
We started by working to build a simple end-to-end demonstration of a lightweight prototyping workflow:
Starting a two-week Mozilla heartbeat-style project sprint with @hellojwilde tomorrow involving Mozilla's browser.html experiment. Excited!— Lyre Calliope (@CaptainCalliope) May 25, 2015
(Yeah, it took longer than two weeks due to personal emergencies on my end.)
We tinkered around with a few different ways to do this.
Our proof-of-concept is a simple distribution service that wraps Mozilla's browser.html project. It's a little bit like TestFlight or HockeyApp, but for web browsers.
To try an experimental build, you log in via GitHub, and pick the build that you want to test…and presto!
Sequence shortened.
About the login step: When you pick an experiment, you're picking it for all of your devices logged in via that account.
This makes cross-device feature testing a bit easier. Suppose you have a feature you want to test on different form factors because the feature is responsive to screen dimensions or input methods. Or suppose you're building a task continuity feature that you need to test on multiple devices. Having the same experiment running on all the devices of your account makes this testing much easier.
It also enables us to have a remote one-click escape hatch in case something breaks in the experiment you're running. (It happens to the best developers!)
To ensure that you can trust experiments on Gossamer, we integrated the login system with Mozillians. Only vouched Mozillians can ship experimental code via Gossamer.
To ship an experimental build…you click the "Ship" button. Boom. The user gets a message asking them if they want to apply the update.
And the cool thing about browser.html being a web application…is that when the user clicks the "Apply" button to accept the update…all we have to do is refresh the window.
We did some lightweight user testing by having Lyre (who hadn't seen any of the implementation yet) step through the full install process and receive a new updated build from me remotely.
We learned a few things from this.What We're Working On Next
There's three big points we want to focus on in the next milestone:
- Streamline every step. The build service web app should fade away and just be hidden glue around a web browser- and GitHub-centric workflow.
- Remove the refresh during updates. Tooling for preserving application state while making hot code changes to web applications based on React (such as browser.html!) is widely available.
- Make the build pipeline as fast as possible. Let's see how short we can make the delay from pushing new code to GitHub (or editing through GitHub's web interface) to updates appearing on your machine.
We also want to shift our mode of demo from screencasts to working prototypes.Get Involved
This project is still at a very early stage, but if you'd like to browse the code, it's in three GitHub repositories:
- gossamer - Our fork of browser.html.
- gossamer-server - The build and distribution server.
- gossamer-larch-patches - Tweaks to Mozilla's larch project branch containing the graphene runtime. We fixed a bug and made a configuration tweak.
Most importantly, we'd love your feedback:
- Tweet at us! We're @CaptainCalliope and @hellojwilde.
- Come say hi in #gossamer on Mozilla IRC.
- File issues on GitHub. We're centralizing issues in the gossamer repo for now.
There's a lot of awesome in the pipeline. Stay tuned!
Mozilla CEO: Virtual-reality Firefox could be game-changer - USA TODAY
Mozilla CEO: Virtual-reality Firefox could be game-changer
SAN FRANCISCO—Mozilla has started letting outside developers use a test version of its Firefox browser with new virtual-reality technology that could make surfing the web more like watching movies or playing video games. If the beta version of the ...
Mozilla Addons Blog: Add-ons Update – Week of 2015/07/01
I post these updates every 3 weeks to inform add-on developers about the status of the review queues, add-on compatibility, and other happenings in the add-ons world.Add-ons Forum
As we announced before, there's a new add-ons community forum for all topics related to AMO or add-ons in general. The Add-ons category is already the most active one on the community forum, so thank you all for your contributions! The old forum is still available in read-only mode.The Review Queues
- Most nominations for full review are taking less than 10 weeks to review.
- 272 nominations in the queue awaiting review.
- Most updates are being reviewed within 8 weeks.
- 159 updates in the queue awaiting review.
- Most preliminary reviews are being reviewed within 10 weeks.
- 295 preliminary review submissions in the queue awaiting review.
A number of factors have lead to the current state of the queues: increased submissions, decreased volunteer reviewer participation, and a Mozilla-wide event that took most of our attention last week. We're back and our main focus are the review queues. We have a new reviewer on our team, who will hopefully make a difference in the state of the queues.
If you're an add-on developer and would like to see add-ons reviewed faster, please consider joining us. Add-on reviewers get invited to Mozilla events and earn cool gear with their work. Visit our wiki page for more information.Firefox 40 Compatibility
The Firefox 40 compatibility blog post is up. The automatic compatibility validation will be run in a few weeks.
As always, we recommend that you test your add-ons on Beta and Firefox Developer Edition (formerly known as Aurora) to make sure that they continue to work correctly. End users can install the Add-on Compatibility Reporter to identify and report any add-ons that aren't working anymore.Extension Signing
We announced that we will require extensions to be signed in order for them to continue to work in release and beta versions of Firefox. The wiki page on Extension Signing has information about the timeline, as well as responses to some frequently asked questions.
There's a small change to the timeline: Firefox 40 will only warn about unsigned extensions (for all channels), Firefox 41 will disable unsigned extensions by default unless a preference is toggled (on Beta and Release), and Firefox 42 will not have the preference. This means that we'll have an extra release cycle before signatures are enforced by default.Electrolysis
Electrolysis, also known as e10s, is the next major compatibility change coming to Firefox. In a nutshell, Firefox will run on multiple processes now, running content code in a different process than browser code. This should improve responsiveness and overall stability, but it also means many add-ons will need to be updated to support this.
We will be talking more about these changes in this blog in the future. For now we recommend you start looking at the available documentation.
Christian Heilmann: Over the Edge: Web Components are an endangered species
Last week I ran the panel and the web components/modules breakout session of the excellent Edge Conference in London, England and I think I did quite a terrible job. The reason was that the topic is too large and too fragmented and broken to be taken on as a bundle.
If you want to see the mess that is the standardisation effort around web components right now in all its ugliness, Wilson Page wrote a great post on that on Mozilla Hacks. Make sure to also read the comments – lots of good stuff there.
Web Components are a great idea. Modules are a great idea. Together, they bring us hours and hours of fun debating where what should be done to create a well-performing, easy to maintain and all around extensible complex app for the web. Along the way we can throw around lots of tools and ideas like NPM and ES6 imports or – as Alex Russell said it on the panel: "tooling will save you".
It does. But that was always the case. When browsers didn't support CSS, we had Dreamweaver to create horribly nested tables that achieved the same effect. There is always a way to make browsers do what we want them to do. In the past, we did a lot of convoluted things client-side with libraries. With the advent of node and others we now have even more environments to innovate and release "not for production ready" impressive and clever solutions.
When it comes to componentising the web, the rabbit hole is deep and also a maze. Many developers don't have time to even start digging and use libraries like Polymer or React instead and call it a day and that the "de facto standard" (a term that makes my toenails crawl up – layout tables were a "de facto standard", so was Flash video).
Of course, either are easy for us clever and amazing developers, but the fact is that the web is not for developers. It is a publishing platform, and we are moving away from that concept at a ridiculous pace.
And whilst React gives us all the goodness of Web Components now, it is also a library by a commercial company. That it is open source, doesn't make much of a difference. YUI showed that a truckload of innovation can go into "maintenance mode" very quickly when a company's direction changes. I have high hopes for React, but I am also worried about dependencies on a single company.Let's rewind and talk about Web Components
Let's do away with modules and imports for now, as I think this is a totally different discussion.
I always loved the idea of Web Components – allowing me to write widgets in the browser that work with it rather than against it is an incredible idea. Years of widget frameworks trying to get the correct performance out of a browser whilst empowering maintainers would come to a fruitful climax. Yes, please, give me a way to write my own controls, inherit from existing ones and share my independent components with other developers.
However, in four years, we haven't got much to show.. When we asked the very captive and elite audience of EdgeConf about Web Components, nobody raised their hand that they are using them in real products. People either used React or Polymer as there is still no way to use Web Components in production otherwise. When we tried to find examples in the wild, the meager harvest was GitHub's time element. I do hope that this was not all we wrote and many a company is ready to go with Web Components. But most discussions I had ended up the same way: people are interested, tried them out once and had to bail out because of lack of browser support.
Web Components are a chicken and egg problem where we are currently trying to define the chicken and have many a different idea what an egg could be. Meanwhile, people go to chicken-meat based fast food places to get quick results. And others increasingly mention that we should hide the chicken and just give people the eggs leaving the chicken farming to those who also know how to build a hen-house. OK, I might have taken that metaphor a bit far.
We all agreed that XHTML2 sucked, was overly complicated, and defined without the input of web developers. I get the weird feeling that Web Components and modules are going in the same direction.
In 2012 I wrote a longer post as an immediate response to Google's big announcement of the foundation of the web platform following Alex Russell's presentation at Fronteers 11 showing off what Web Components could do. In it I kind of lamented the lack of clean web code and the focus on developer convenience over clarity. Last year, I listed a few dangers of web components. Today, I am not too proud to admit that I lost sight of what is going on. And I am not alone. As Wilson's post on Mozilla Hacks shows, the current state is messy to say the least.We need to enable web developers to use "vanilla" web components
What we need is a base to start from. In the browser and in a browser that users have and doesn't ask them to turn on a flag. Without that, Web Components are doomed to become a "too complex" standard that nobody implements but instead relies on libraries.
During the breakout session, one of the interesting proposals was to turn Bootstrap components into web components and start with that. Tread the cowpath of what people use and make it available to see how it performs.
Of course, this is a big gamble and it means consensus across browser makers. But we had that with HTML5. Maybe there is a chance for harmony amongst competitors for the sake of an extensible and modularised web that is not dependent on ES6 availability across browsers. We're probably better off with implementing one sci-fi idea at a time.
I wished I could be more excited or positive about this. But it left me with a sour taste in my mouth to see that EdgeConf, that hot-house of web innovation and think-tank of many very intelligent people were as confused as I was.
I'd love to see a "let's turn it on and see what happens" instead of "but, wait, this could happen". Of course, it isn't that simple – and the Mozilla Hacks post explains this well – but a boy can dream, right? Remember when using HTML5 video was just a dream?
David Burns: Who wants to be an alpha tester for Marionette?
Are you an early adopter type? Are you an avid user of WebDriver and want to use the latest and great technology? Then you are most definitely in luck.
Marionette, the Mozilla implementation of the FirefoxDriver, is ready for a very limited outing. There is a lot of things that have not been implemented or, since we are implementing things agains the WebDriver Specification they might not have enough prose to implement (This has been a great way to iron out spec bugs).Getting Started
At the moment, since things are still being developed and we are trying to do things with new technologies (like writing part this project using Rust) we are starting out with supporting Linux and OS X first. Windows support will be coming in the future!Getting the driver We have binaries that you can download. For Linux and for OS X . The only bindings currently updated to work are the python bindings that are available in a branch on my fork of the Selenium project. Do the following to get it into a virtualenv:
- Create a virtualenv
- activate your virtualenv
- cd to where you have cloned my repository
- In a terminal type the following: ./go py_install
Running tests against marionette requires that you do the following changes (which hopefully remains small)
Update the desired capability to have marionette:true and add binary:/path/to/Firefox/DeveloperEdition/or/Nightly. We are only supporting those two versions of at the moment because we have had a couple in compatible issues that we have fixed which means speaking to Marionette in the browser in the beta or release versions quite difficult.
Since you are awesome early adopters it would be great if we could raise bugs. I am not expecting everything to work but below is a quick list that I know doesn't work.
- No support for self-signed certificates
- No support for actions
- No support for Proxy (but will be there soon)
- No support logging endpoint
- I am sure there are other things we don't remember
Thanks for being an early adopter and thanks for raising bugs as you find them!
Will Kahn-Greene: Ditching ElasticUtils on Input for elasticsearch-dsl-py
ElasticUtils was a Python library for building and executing Elasticsearch searches. I picked up maintenance after the original authors moved on with their lives, did a lot of work, released many versions and eventually ended the project in January 2015.
Why end it? A bunch of reasons.
It started at PyCon 2014, when I had a long talk with Rob, Jannis, and Erik about ElasticUtils the new library Honza was working on which became elasticsearch-dsl-py.
At the time, I knew that ElasticUtils had a bunch of architectural decisions that turned out to be make life really hard. Doing some things was hard. It was built for a pre-1.0 Elasticsearch and it would have been a monumental effort to upgrade it past the Elasticsearch 1.0 hump. The code wasn't structured particularly well. I was tired of working on it.
Honza's library had a lot of promise and did the sorts of things that ElasticUtils should have done and did them better--even at that ridiculously early stage of development.
By the end of PyCon 2014, I was pretty sure elasticsearch-dsl-py was the future. The only question was whether to gut ElasticUtils and make it a small shim on top of elasticsearch-dsl-py or end it.
In January 2015, I decided to just end it because I didn't see a compelling reason to keep it around or rewrite it into something on top of elasticsearch-dsl-py. Thus I ended it.
Now to migrate to something different.
Read more… (7 mins to read)
Hannah Kane: Whistler Wrap-up
What an amazing week!
Last week members of the Mozilla community met in beautiful Whistler, BC to celebrate, reflect, brainstorm, and plan (and eat snacks). While much of the week was spent in functional teams (that is, designers with designers and engineers with engineers), the Mozilla Learning Network website (known informally as "Teach") team was able to convene for two meetings—one focused on our process, and the other on our roadmap and plans for the future.Breakthroughs
From my perspective, the week inspired a few significant breakthroughs:
- The Mozilla Learning Network is one, unified team with several offerings. Those offerings can be summarized in this image: Networks, Groups, and Convenings.The breakthrough was realizing that it's urgent that the site reflects the full spectrum of offerings as soon as possible. We've adjusted our roadmap accordingly. First up: incorporate the Hive content in a way that makes sense to our audience, and provides clear pathways for engagement.
- Our Clubs pipeline is a bit off-balance. We have more interested Club Captains than our current (amazing) Regional Coordinators can support. This inspired an important conversation about changes to our strategy to better test out our model. We'll be talking about how these changes are reflected on the site soon.
- The most important content to localize is our curriculum content. To be fair, we knew this before the work week, but it was definitely crystallized in Whistler. This gives useful shape to our localization plan.
- We also identified a few areas where we can begin the process of telling the full "Mozilla Learning" story. By that I mean the work that goes beyond what we call the Mozilla Learning Network—for example, we can highlight our Fellowship programs, curriculum from other teams (starting with Mozilla Science Lab!), and additional peer learning opportunities.
- Finally, we identified a few useful, targeted performance indicators that will help us gauge our success: 1) the # of curriculum hits, and 2) the % of site visitors who take the pledge to teach.
I also want to share a few site updates that have happened since I wrote last:
- The flow for Clubs has been adjusted to reflect the "apply, connect, approve" model described in an earlier post.
- We've added a Protect Your Data curriculum module with six great activities.
- We added the "Pledge to Teach" action on the homepage. Visitors to the site can choose to take the pledge, and are then notified about an optional survey they can take. We'll follow up with tailored offerings based on their survey responses.
Questions? Ideas? Share 'em in the comments!
Onderzoeker omzeilt Firefox NoScript via Google cloud - Security.nl
Onderzoeker omzeilt Firefox NoScript via Google cloud
Een aantal domeinen staan standaard al op de whitelist van NoScript, zoals die van Mozilla, YouTube, Google en Yahoo. Het gaat hierbij niet alleen om de domeinen, maar ook de subdomeinen die onder het domein vallen. Naast google.com worden ook ...
Google Nieuws
Gervase Markham: Top 50 DOS Problems Solved: Squashing Files
Q: I post files containing DTP pages and graphics on floppy disks to a bureau for printing. Recently I produced a file that was too big to fit on the disk and I know that I will be producing more in the future. What's the best way round the problem?
A. There are a number of solutions, most of them expensive. For example, both you and the bureau could buy modems. A modem is a device that allows computers to be connected via a phone line. You would need software, known as a comms program, to go with the modems. This will allow direct PC-to-PC transfer of files without the need for floppy disks. Since your files are so large, you would need a fast 9600 baud modem [Ed: approx 1 kilobyte per second] with MNP5 compression/error correction to make this a viable option.
In this case, however, I would get hold of a utility program called LHA which is widely available from the shareware/PD libraries that advertise in PC Answers. In earlier incarnations it was known as LHarc. LHA enables you to squash files into less space than they occupied before.
The degree of compression depends on the nature of the file. Graphics and text work best, so for you this is a likely solution. The bureau will need a copy of LHA to un-squash the files before it can use them, or you can use LHA in a special way that makes the compressed files self-unpacking.
LHA has a great advantage over rival utilities in that the author allows you to use it for free. There is no registration fee, as with the similar shareware program PKZip, for example.
Every time they brought out a new, larger hard disk, they used to predict the end of the need for compression…
Botond Ballo: C++ Concepts TS could be voted for publication on July 20
In my report on the C++ standards meeting this May, I described the status of the Concepts TS as of the end of the meeting:
- The committee's Core Working Group (CWG) was working on addressing comments received from national standards bodies.
- CWG planned to hold a post-meeting teleconference to complete the final wording including the resolutions of the comments.
- The committee would then have the option of holding a committee-wide teleconference to vote the final wording for publication, or else delay this vote until the next face-to-face meeting in October.
I'm excited to report that the CWG telecon has taken place, final wording has been produced, and the committee-wide telecon to approve the final wording has been scheduled for July 20.
If this vote goes through, the final wording of the Concepts TS will be sent to ISO for publication, and the TS will be officially published within a few months!
Mozilla delays Firefox 39 update over stability issue - Product Reviews
Product Reviews
Mozilla delays Firefox 39 update over stability issue
Product Reviews
Firefox 39 was finally meant to go out of beta, as its public release was due to be released yesterday for Android, Linux, Mac and Windows. However, Mozilla had to delay the Firefox 39 download because of a stability issue that plagued the browser at ...
Firefox 39 arrives with Hello link sharing, smoother animation and scrolling ...VentureBeat
Firefox 39 beta lets users link Hello to social accountsThe Next Web
alle 4 nieuwsartikelen »Google Nieuws
Nicholas Nethercote: Firefox 41 will use less memory when running AdBlock Plus
Last year I wrote about AdBlock Plus's effect on Firefox's memory usage. The most important part was the following.
First, there's a constant overhead just from enabling ABP of something like 60–70 MiB. […] This appears to be mostly due to additional JavaScript memory usage, though there's also some due to extra layout memory.
Second, there's an overhead of about 4 MiB per iframe, which is mostly due to ABP injecting a giant stylesheet into every iframe. Many pages have multiple iframes, so this can add up quickly. For example, if I load TechCrunch and roll over the social buttons on every story […], without ABP, Firefox uses about 194 MiB of physical memory. With ABP, that number more than doubles, to 417 MiB.
An even more extreme example is this page, which contains over 400 iframes. Without ABP, Firefox uses about 370 MiB. With ABP, that number jumps to 1960 MiB.
(This description was imprecise; the overhead is actually per document, which includes both top-level documents in a tab and documents in iframes.)
Last week Mozilla developer Cameron McCormack landed patches to fix bug 77999, which was filed more than 14 years ago. These patches enable sharing of CSS-related data — more specifically, they add data structures that share the results of cascading user agent style sheets — and in doing so they entirely fix the second issue, which is the more important of the two.
For example, on the above-mentioned "extreme example" (a.k.a. the Vim Color Scheme Test) memory usage dropped by 3.62 MiB per document. There are 429 documents on that page, which is a total reduction of about 1,550 MiB, reducing memory usage for that page down to about 450 MiB, which is not that much more than when AdBlock Plus is absent. (All these measurements are on a 64-bit build.)
I also did measurements on various other sites and confirmed the consistent saving of ~3.6 MiB per document when AdBlock Plus is enabled. The number of documents varies widely from page to page, so the exact effect depends greatly on workload. (I wanted to test TechCrunch again, but its front page has been significantly changed so it no longer triggers such high memory usage.) For example, for one of my measurements I tried opening the front page and four articles from each of nytimes.com, cnn.com and bbc.co.uk, for a total of 15 tabs. With Cameron's patches applied Firefox with AdBlock Plus used about 90 MiB less physical memory, which is a reduction of over 10%.
Even when AdBlock Plus is not enabled this change has a moderate benefit. For example, in the Vim Color Scheme Test the memory usage for each document dropped by 0.09 MiB, reducing memory usage by about 40 MiB.
If you want to test this change out yourself, you'll need a Nightly build of Firefox and a development build of AdBlock Plus. (Older versions of AdBlock Plus don't work with Nightly due to a recent regression related to JavaScript parsing). In Firefox's about:memory page you'll see the reduction in the "style-sets" measurements. You'll also see a new entry under "layout/rule-processor-cache", which is the measurement of the newly shared data; it's usually just a few MiB.
This improvement is on track to make it into Firefox 41, which is scheduled for release on September 22, 2015. For users on other release channels, Firefox 41 Beta is scheduled for release on August 11, and Firefox 41 Developer Edition is scheduled to be released in the next day or two.
Mark Banner: Firefox Hello Desktop: Behind the Scenes – UI Showcase
This is the third of some posts I'm writing about how we implement and work on the desktop and standalone parts of Firefox Hello. You can find the previous posts here.
The Showcase
One of the most useful parts of development for Firefox Hello is the User Interface (UI) showcase. Since all of the user interface for Hello is written in html and JavaScript, and is displayed in the content scope, we are able to display them within a "normal" web page with very little adjustment.
So what we do is to put almost all our views onto a single html page at representative sizes. The screen-shot below shows just one view from the page, but those buttons at the top give easy access, and in reality there's lots of them (about 55 at the time of writing).
Faster Development
The showcase has various advantages that help us develop faster:
- Since it is a web page, we have all the developer tools available to us – inspector, css layout etc.
- We don't have to restart Firefox to pick up changes to the layout, nor do we have to recompile – a simple reload of the page is enough to pick up changes.
- We also don't have to go through the flow each time, e.g. if we're changing some of the views which show the media (like the one above), we avoid needing to go through the conversation setup routines for each code/css change until we're pretty sure its going to work the way we expect.
- Almost all the views are shown – if the css is broken for one view its much easier to detect it than having to go through the user flow to get to the view you want.
- We've recently added an RTL mode so that we can easily see what the views look like in RTL languages. Hence no awkward forcing of Firefox into RTL mode to check the views.
There's one other "feature" of the showcase as we've got it today – we don't pick up the translated strings, but rather the raw string label. This tends to give us longer strings than are used normally for English, which it turns out is an excellent way of being able to detect some of the potential issues for locales which need longer strings.
Structure of the showcase
The showcase is a series of iframes. We load individual react components into each iframe, sometimes loading the same component multiple times with different parameters or stores to get the different views. The rest of the page is basically just structure around display of the views.
The iframes does have some downsides – you can't live edit css in the inspector and have it applied across all the views, but that's minor compared to the advantages we get from this one page.
Future improvements
We're always looking for ways we can improve how we work on Hello. We've recently improved the UI showcase quite a bit, so I don't think we have too much on our outstanding list at the moment.
The only thing I've just remembered is that we've commented it would be nice to have some sort of screen-shot comparison, so that we can make changes and automatically check for side-effects on other views.
We'd also certainly be interested in hearing about similar tools which could do a similar job – sharing and re-using code is definitely a win for everyone involved.
Interested in learning more?
If you're interested in learning more about the UI-showcase, then you can find the code here, try it out for yourself, or come and ask us questions in #loop on irc.
If you want to help out with Hello development, then take a look at our wiki pages, our mentored bugs or just come and talk to us.
Roberto A. Vitillo: Spark best practices
We have been running Spark for a while now at Mozilla and this post is a summary of things we have learned about tuning and debugging Spark jobs.Spark execution model
Spark's simplicity makes it all too easy to ignore its execution model and still manage to write jobs that eventually complete. With larger datasets having an understanding of what happens under the hood becomes critical to reduce run-time and avoid out of memory errors.
Let's start by taking our good old word-count friend as starting example:rdd = sc.textFile("input.txt")\ .flatMap(lambda line: line.split())\ .map(lambda word: (word, 1))\ .reduceByKey(lambda x, y: x + y, 3)\ .collect()
RDD operations are compiled into a Direct Acyclic Graph of RDD objects, where each RDD points to the parent it depends on:Figure 1
At shuffle boundaries, the DAG is partitioned into so-called stages that are going to be executed in order, as shown in figure 2. The shuffle is Spark's mechanism for re-distributing data so that it's grouped differently across partitions. This typically involves copying data across executors and machines, making the shuffle a complex and costly operation.Figure 2
To organize data for the shuffle, Spark generates sets of tasks – map tasks to organize the data and reduce tasks to aggregate it. This nomenclature comes from MapReduce and does not directly relate to Spark's map and reduce operations. Operations within a stage are pipelined into tasks that can run in parallel, as shown in figure 3.Figure 3
Stages, tasks and shuffle writes and reads are concrete concepts that can be monitored from the Spark shell. The shell can be accessed from the driver node on port 4040, as shown in figure 4.Figure 4 Best practices
Spark Shell
Running Spark jobs without the Spark Shell is like flying blind. The shell allows to monitor and inspect the execution of jobs. To access it remotely a SOCKS proxy is needed as the shell connects also to the worker nodes.
Using a proxy management tool like FoxyProxy allows to automatically filter URLs based on text patterns and to limit the proxy settings to domains that match a set of rules. The browser add-on automatically handles turning the proxy on and off when you switch between viewing websites hosted on the master node, and those on the Internet.
Assuming that you launched your Spark cluster with the EMR service on AWS, type the following command to create a proxy:ssh -i ~/mykeypair.pem -N -D 8157 hadoop@ec2-...-compute-1.amazonaws.com
Finally, import the following configuration into FoxyProxy:<?xml version="1.0" encoding="UTF-8"?> <foxyproxy> <proxies> <proxy name="emr-socks-proxy" notes="" fromSubscription="false" enabled="true" mode="manual" selectedTabIndex="2" lastresort="false" animatedIcons="true" includeInCycle="true" color="#0055E5" proxyDNS="true" noInternalIPs="false" autoconfMode="pac" clearCacheBeforeUse="false" disableCache="false" clearCookiesBeforeUse="false" rejectCookies="false"> <matches> <match enabled="true" name="*ec2*.amazonaws.com*" pattern="*ec2*.amazonaws.com*" isRegEx="false" isBlackList="false" isMultiLine="false" caseSensitive="false" fromSubscription="false" /> <match enabled="true" name="*ec2*.compute*" pattern="*ec2*.compute*" isRegEx="false" isBlackList="false" isMultiLine="false" caseSensitive="false" fromSubscription="false" /> <match enabled="true" name="10.*" pattern="http://10.*" isRegEx="false" isBlackList="false" isMultiLine="false" caseSensitive="false" fromSubscription="false" /> <match enabled="true" name="*10*.amazonaws.com*" pattern="*10*.amazonaws.com*" isRegEx="false" isBlackList="false" isMultiLine="false" caseSensitive="false" fromSubscription="false" /> <match enabled="true" name="*10*.compute*" pattern="*10*.compute*" isRegEx="false" isBlackList="false" isMultiLine="false" caseSensitive="false" fromSubscription="false" /> <match enabled="true" name="*localhost*" pattern="*localhost*" isRegEx="false" isBlackList="false" isMultiLine="false" caseSensitive="false" fromSubscription="false" /> </matches> <manualconf host="localhost" port="8157" socksversion="5" isSocks="true" username="" password="" domain="" /> </proxy> </proxies> </foxyproxy>
Once the proxy is enabled you can open the Spark Shell by visiting localhost:4040.
Use the right level of parallelism
Clusters will not be fully utilized unless the level of parallelism for each operation is high enough. Spark automatically sets the number of partitions of an input file according to its size and for distributed shuffles, such as groupByKey and reduceByKey, it uses the largest parent RDD's number of partitions. You can pass the level of parallelism as a second argument to an operation. In general, 2-3 tasks per CPU core in your cluster are recommended. That said, having tasks that are too small is also not advisable as there is some overhead paid to schedule and run a task.
As a rule of thumb tasks should take at least 100 ms to execute; you can ensure that this is the case by monitoring the task execution latency from the Spark Shell. If your tasks take considerably longer than that keep increasing the level of parallelism, by say 1.5, until performance stops improving.
Reduce working set size
Sometimes, you will get terrible performance or out of memory errors, because the working set of one of your tasks, such as one of the reduce tasks in groupByKey, was too large. Spark's shuffle operations (sortByKey, groupByKey, reduceByKey, join, etc) build a hash table within each task to perform the grouping, which can often be large.
Even though those tables spill to disk, getting to the point where the tables need to be spilled increases the memory pressure on the executor incurring the additional overhead of disk I/O and increased garbage collection. If you are using pyspark, the memory pressure will also increase the chance of Python running out of memory.
The simplest fix here is to increase the level of parallelism, so that each task's input set is smaller.
Avoid groupByKey for associative operations
Both reduceByKey and groupByKey can be used for the same purposes but reduceByKey works much better on a large dataset. That's because Spark knows it can combine output with a common key on each partition before shuffling the data.
In reduce tasks, key-value pairs are kept in a hash table that can spill to disk, as mentioned in "Reduce working set size". However, the hash table flushes out the data to disk one key at a time. If a single key has more values than can fit in memory, an out of memory exception occurs. Pre-combining the keys on the mappers before the shuffle operation can drastically reduce the memory pressure and the amount of data shuffled over the network.
Avoid reduceByKey when the input and output value types are different
Consider the job of creating a set of strings for each key:rdd.map(lambda p: (p[0], {p[1]}))\ .reduceByKey(lambda x, y: x | y)\ .collect()
Note how the input values are strings and the output values are sets. The map operation creates lots of temporary small objects. A better way to handle this scenario is to use aggregateByKey:def seq_op(xs, x): xs.add(x) return xs def comb_op(xs, ys): return xs | ys rdd.aggregateByKey(set(), seq_op, comb_op).collect()
Avoid the flatMap-join-groupBy pattern
When two datasets are already grouped by key and you want to join them and keep them grouped, you can just use cogroup. That avoids all the overhead associated with unpacking and repacking the groups.
Python memory overhead
The spark.executor.memory option, which determines the amount of memory to use per executor process, is JVM specific. If you are using pyspark you can't set that option to be equal to the total amount of memory available to an executor node as the JVM might eventually use all the available memory leaving nothing behind for Python.
Use broadcast variables
Using the broadcast functionality available in SparkContext can greatly reduce the size of each serialized task, and the cost of launching a job over a cluster. If your tasks use any large object from the driver program, like a static lookup table, consider turning it into a broadcast variable.
Cache judiciously
Just because you can cache a RDD in memory doesn't mean you should blindly do so. Depending on how many times the dataset is accessed and the amount of work involved in doing so, recomputation can be faster than the price paid by the increased memory pressure.
It should go without saying that if you only read a dataset once there is no point in caching it, i it will actually make your job slower. The size of cached datasets can be seen from the Spark Shell.
Don't collect large RDDs
When a collect operation is issued on a RDD, the dataset is copied to the driver, i.e. the master node. A memory exception will be thrown if the dataset is too large to fit in memory; take or takeSample can be used to retrieve only a capped number of elements instead.
Minimize amount of data shuffled
A shuffle is an expensive operation since it involves disk I/O, data serialization, and network I/O. As illustrated in figure 3, each reducer in the second stage has to pull data across the network from all the mappers.
As of Spark 1.3, these files are not cleaned up from Spark's temporary storage until Spark is stopped, which means that long-running Spark jobs may consume all available disk space. This is done in order to don't re-compute shuffles.
Know the standard library
Avoid re-implementing existing functionality as it's guaranteed to be slower.
Use dataframes
A DataFrame is a distributed collection of data organized into named columns. It is conceptually equivalent to a table in a relational database or a pandas Dataframe in Python.props = get_pings_properties(pings, ["environment/system/os/name", "payload/simpleMeasurements/firstPaint", "payload/histograms/GC_MS"], only_median=True) frame = sqlContext.createDataFrame(props.map(lambda x: Row(**x))) frame.groupBy("environment/system/os/name").count().show()
yields:environment/system/os/name count Darwin 2368 Linux 2237 Windows_NT 105223
Before any computation on a DataFrame starts, the Catalyst optimizer compiles the operations that were used to build the DataFrame into a physical plan for execution. Since the optimizer generates JVM bytecode for execution, pyspark users will experience the same high performance as Scala users.
Michael Kaply: The End of Firefox 31 ESR
With the release of Firefox 39 today also comes the final release of the Firefox 31 ESR (barring any security updates in the next six weeks).
That means you have six weeks to manage your switch over to the Firefox 38 ESR.
If you've been wondering if you should use the ESR instead of keeping up with current Firefox releases, now might be a good time to switch. That's because there are a couple features coming in the Firefox mainline that might affect you. These include the removal of the distribution/bundles directory as well as the requirement for all add-ons to be signed by Mozilla.
It's much easier going from Firefox 38 to the Firefox 38 ESR then going from Firefox 39 to the Firefox 38 ESR.
If you want to continue on the Firefox mainline, you can use the CCK2 to bring back some of the distribution/bundles functionality, but I won't be able to do anything about the signing requirement.
Mark Banner: Firefox Hello Desktop: Behind the Scenes – Architecture
This is the second of some posts I'm writing about how we implement and work on the desktop and standalone parts of Firefox Hello. The first post was about our use of Flux and React, this second post is about the architecture.
In this post, I will give an overview of the Firefox browser software architecture for Hello, which includes the standalone UI.
User-visible parts of Hello
Although there's many small parts to Hello, most of it is shaped by what is user visible:
Firefox Browser Architecture for Hello
The in-browser part of Hello is split into three main areas:
- The panel which has the conversation and contact lists. This is a special about: page that is run in the content process with access to additional privileged APIs.
- The conversation window where conversations are held. Within this window, similar to the panel, is another about: page that is also run in the content process.
- The backend runs in the privileged space within gecko. This ties together the communication between the panels and conversation windows, and provides access to other gecko services and parts of the browser to which Hello integrates.
MozLoopAPI is our way of exposing small bits of the privileged gecko (link) code to the about: pages running in content. We inject a navigator.mozLoop object into the content pages when they are loaded. This allows various functions and facilities to be exposed, e.g. access to a backend cache of the rooms list (which avoids multiple caches per window), and a similar backend store of contacts.
Standalone Architecture
The Standalone UI is simply a web page that's shown in any browser when a user clicks a conversation link.
The conversation flow is in the standalone UI is very similar to that of the conversation window, so most of the stores and supporting files are shared. Most of the views for the Standalone UI are currently different to those from the desktop – there's been a different layout, so we need to have different structures.
File Architecture as applied to the code
The authoritative location for the code is mozilla-central it lives in the browser/components/loop directory. Within that we have:
- content/ – This is all the code relating to the panel and conversation window that is shipped on in the Firefox browser
- content/shared/ – This code is used on browser as well as on the standalone UI
- modules/ – This is the backend code that runs in the browser
- standalone/ – Files specific to the standalone UI
Future Work
There's a couple of likely parts of the architecture that we're going to rework soon.
Firstly, with the current push to electrolysis, we're replacing the current exposed MozLoopAPI with a message-based RPC mechanism. This will then let us run the panel and conversation window in the separated content process.
Secondly, we're currently reworking some of the UX and it is moving to be much more similar between desktop and standalone. As a result, we're likely to be sharing more of the view code between the two.
Interested in learning more?
If you're interested in learning more about Hello's architecture, then feel free to dig into the code, or come and ask us questions in #loop on irc.
If you want to help out with Hello development, then take a look at our wiki pages, our mentored bugs or just come and talk to us.


text:
Archive for the 'Recipes' Category
Zone Meal at The Cup! · 16 April 2015
Backsquat3-3-3-3-3This is a Yearly Benchmark Test! Log your scores! Zone Meal at The Cup! Check it out! Want to make a good breakfast decision while out and about or on the way to work? At The Cup you can order the Roots-famous "Sausage Paleo" breakfast with half the avocado and GF toast to make […]
Kale Salad with Sweet Potato and Chicken · 5 April 2015
For time:70-lb. dumbbell snatches, 50 reps15-foot rope climbs, 5 ascents70-lb. dumbbell snatches, 40 reps15-foot rope climbs, 4 ascents70-lb. dumbbell snatches, 30 reps15-foot rope climbs, 3 ascents70-lb. dumbbell snatches, 20 reps15-foot rope climbs, 2 ascents70-lb. dumbbell snatches, 10 reps15-foot rope climb, 1 ascent Kale Salad with Sweet Potato and Chicken Here's a go-to Kale Salad recipe […]
Spice Up Your Life · 9 January 2015
Women's Only free Beginner Class on Monday, January 12th at 10:30am. Women's Only January On-Ramp Course begins Monday, January 19th Click here to sign-up for one or both. Today's workout is at the Centennial Middle School track. Come find out what track WODs are all about! In teams of 3:1.5 mile sled drag1.5 mile run Spice […]
Crocktoberfest Cookbook! · 18 February 2014
Downloadable PDF cookbook from Crocktoberfest 2013.
Steak Chili in the Crockpot · 10 December 2013
Steak chili recipe.
Paleo Chicken Marbella · 18 August 2013
Recipe for Paleo Chicken Marbella.
Building a Big Hearty Paleo Zone Meal. · 8 July 2013
How to create a Big Hearty Paleo Meal. Recipes from Nom Nom Paleo and Zone Paleo breakdowns.
Variety is the Spice of Life. · 4 February 2013
Deadlift 3-3-3-3-3 Variety is the Spice of Life. We cook at home almost every night. I love nothing more than going out to a restaurant and being served a delicious dinner; then walking away with no mess to deal with. However, my children are 10, 7 and 4 years old which means that going out to […]
Planning Your Meals for the Week? · 26 January 2013
10-9-8-7-6-5-4-3-2-1BurpeesPullupsRun 100m between rounds Planning Your Meals for the Week? In case you haven't heard, nutrition is kind of a big deal around here. When I'm organized and on top of my game, I like to have a meal plan for the week. The week runs smoother and I only have to make 1 trip […]
What's for Breakfast? · 17 January 2013
"Fran"21-15-9DB or KB Thruster (95 pounds)Pullups What's for Breakfast? Yep, we've all heard it: "breakfast is the most important meal of the day". I couldn't agree more. How could one live, let alone function, without a few hot steaming cups of coffee each morning? Beyond that, all bets are off. It used to look a […]