text:
On my first dive into the topic, I latched onto the use of musical notation to express complex melodies. After pounding on buttons in my last session of Mario and Luigi: Partners in Time, there was an eerie parallel with the rhythm of rewards in a typical game. The bloops and bleeps of the various attacks and power ups seemed remarkably close to a strange form of music. What would they look like if we were able to write them down like music?
This essay describes a game play notation system that can be used to record and analyze any game. It turns out that games can benefit greatly from the use of a symbolic notational system that describes the rhythm and flow of a game play experience.
This is not an idle exercise. Our current design methodologies are broken and I'm searching for a replacement. We've explored design tomes in an attempt to learn from software development. No one reads them. We've recently explored the land of movies with the creation of 'game scripts.' The result is bloated cinematic epics based on movie-like scripts that somehow manage to avoid describing the 'fun' in any meaningful fashion. It should be no shock that design tools influence the final results. Design a game using a script and you'll get a script-like game.
If you really want to change how games are made, you have to change the design methodology at its very core. This article is a step towards providing a new set of pragmatic tools for practicing game designers. When implemented as part of your design methodology, it will change how you design and ultimately what you design.
Notational systems in music
Music notation as an information technology
For thousands of years, early musicians composed new music using their instincts. Music was learned by rote memorization of previously composed tunes and limited innovation happened mostly during individual performances. The business of music was in the performance of old favorites with original works few and far between.
Eventually early Catholic monks began using a rough notation that helped codify and record sacred songs. Early musical notation was crude, but provided crucial information for understanding the songs. Over time, a pleasant fellow named Guido of Arezzo added a staff for recording pitch and timing information was recorded with more accuracy.
In our world of silicon wafers and mechanical gizmockery, we don't typically think of such innovations as a technological advance. For the time, however, the introduction of musical notation was a major advance in information technology. It reduced the cost and increased the speed of music composition. The benefits of musical were two fold.
- Rapidly understand and communicate complex structures: Instead of dedicating dozens of hours memorizing a particular song, you could learn the basics of a song by spending a few minutes glancing at a sheet of music.
- Provide a framework for analysis and modification of failing compositions: Instead of getting together a group of musicians to learn and play a song in order to understand its flaws, you could quickly identify issues on the sheet of music and with a few pen strokes make major changes.
As the process of describing music became codified, the act of creating original works became more prevalent. This was driven by two factors. First, the growing existence of a large worldly audience with a taste for new works provided a strong business incentive for composers to write new songs. Second the existence of a well-defined system of notation provided a comprehensive set of tools that facilitated and accelerated the creative process. The combination of both business need and process / technology maturity led to an explosion in the development of new music.
The songs of the times before the creation of advanced musical notation tended to be quite simple compared to the great symphonies of later generations. The human mind can build and modify complex systems much more easily if it has a way of simplifying them into an easy-to-manipulate notational format. Without musical notation, it is questionable if we would have the great symphonies and arias that grace music halls across the nation. Even 'original' pop music, with its heavy use of modern electronic notation systems, is unlikely to exist.
Imagine instead, a thousand years of dancing to Auld Lang Syne at every single event. Let us praise the advent of music notation as a potent and world changing enabling technology.
The primitive state of game design notation
Game designers are still in the early prehistory where they seek to create addictive gaming experiences by tweaking old designs. They are much like the minstrels of ages past. They apprentice themselves to the designs of past masters in order to learn and continue our mysterious and sacred trade. They may innovate mildly in each performance, but never much more. That is the way of it has been and how many imagine it will always be.
The lack of a well defined language of game design is crippling. New ideas emerge from a game designer as vague emotional statements that dissipate quickly. They have no tools to record them in a coherent manner. How would you create a symphony is written music did not exist? Game design exists in a similar state.
The state of the art is the game script, stolen almost directly from the movie industry. The most a modern designer can manage is stringing together a fluffy narrative that reads like a movie script. Is it any surprise the many modern games feel like recycled game systems linked together with an innumerable series of plot snippets? We simply do not have the symbolic language to create anything greater without risking deadly design ambiguity.
We lack the basic informational technology to do more than this. We lack the terminology and we lack the system for describing important systematic interactions.
In the world of music composition, Guido of Arezzo sat down and said "Pitch is a critical factor in music and we should represent this factor symbolically." He created a powerful design tool that unlocked the creative potential of millions.
We need to do the same for games.
- We need to understand the basic mechanical elements that describe the game play experience.
- We need create a notational language for expressing, analyzing and manipulating these key elements of game design.
Creating a complete and robust notational system is a Herculean task. There are so many aspects to even a simple game that it seems impossible to capture them all without building a monster theoretical diagram that no one understands, maintains or cares about.
In these situations, I love to simplify the problem down to one that we can solve. Often the results give us 80% of what we are looking for with 10% of the pain.
Here's the basic premise: If we can measure and transcribe existing game experiences in a robust symbolic fashion, we can reuse the same system to improve new games. Just like the Catholic monks of yore, we are figuring out how to record our medium in a meaningful fashion.
The game play model
The first issue to solve in any recording problem is answering the question "What information should we record?" We'll start with a simple, yet comprehensive game play model that I've been working with for some time. It deals with two aspects of game play,
- The mechanical structure of the game
- The psychological experience of the player.
The mechanical structure of the game defines the basic elements of a game and how they interact. These elements have no value associated with them, they simply form an interactive machine that clicks and burps when it is poked.
- Verbs: Discreet actions that can be performed by tokens on other tokens. The act of jumping in a platform game is an example of a verb.
- Tokens: Any object in the game that is manipulated. The player's avatar or an enemy is an example of a token.
- Rules: The basic rules of interaction between tokens and verbs. The logic that an avatar jumping on an enemy kills it is an example of a rule.
The psychological experience describes how the player reacts to the mechanical structure of the game.
- Actions: An action is the goal oriented series of executed verbs that is necessary to activate reward. "Save the princess (in order to win the game)" is an example of an action.
- Rewards: An indicator that the player has done something meaningful in the context of the game. The general goal of a reward is to make the player feel good. The fireworks when you save the princess are a good example of a reward.
- Risks: An indicator that the player is executing their actions in an unsuccessful manner. The general goal of a risk is to provide feedback that points a way forward. The simplest version of this feedback is "Don't do that again." The death animation when you die is a good example of a risk.
Both the mechanical and psychological structures I've described are present in all games, ranging from Tetris to World of Warcraft's leveling system to Dance Dance Revolution. In my experience, any game can be described in a complete and robust fashion using these six simple elements, so it should be a very useful starting place for our notational system.
Notational devices
In the upcoming sections, I'm going to describe five important notational devices derived from our game play model.
- Buzz notes
- Reward Channels
- Verbs
- Master Buzz Meter
- Statistics
In music, you get a burst of emotional value when you hear a note. In a game you gain a burst of emotional value when you receive a reward.
Rewards act as the core building block of our notation system. We are starting simple and ignoring verbs, tokens, rules, actions, and risks. These elements matter, but we'll add them as we need them. One big benefit to starting with rewards is that most built-in rewards are relatively easy to measure. They are typically events that are triggered by the game in response to a player action.
If you collect a star in Mario 64, a cute little award animation plays and a resource counter increments. If you complete a line in Tetris, your points increase. Ultimately, someone has to program the basic feedback systems in any game title. Given a set of game mechanics, it is trivial to classify and tag the reward events.
Psychologically, rewards create a little blurp of pleasure in the user that rapidly degrades over time. We represent this psychological response as a symbol in our notational system. This pulse is represented by a "buzz note."
A buzz note is an exponential curve with the following characteristics
- Start time: The time at which the reward occurs.
- Strength: The magnitude of the reward.
- Fall off period: How long the pleasure takes to dissipate.
Reward Channels: The instruments of the game
Imagine that your rewards are instruments. As a designer, you set up systems that the player triggers that result in a cascade of buzz curves along a number of discrete reward types.
Visually we can give each reward its own channel and then simply record the buzz notes when they occur. The visual metaphor is inspired by many of the old tracking programs used to create MOD files.
It turns out that many games, even seemingly complex RPGs, have no more than several dozen reward channels. This works out well since you end up with a set of channels that you can rapidly scan on a single screen. The ability to make complex game data 'glance-able' is a critical factor in the creation of a useful notational system. Remember, we are attempting to take a complex emotional experience and compress it down to an easy to manipulate symbolic experience. A successful notational system needs to fit in a person's head without genius level comprehension skills required.
Introducing verbs into the mix
We run into an interesting divergence from the musical metaphor. Rewards alone are not enough to produce a meaningful notation of the game experience. You clearly see what the player experiences, but it is difficult to understand what happened in order to cause the cascade of rewards. If we don't represent the player's interaction, our game notation is meaningless.
Ideally, we could record the actions that the player performs. However, it turns out that this is quite difficult. Imagine in a game of chess that you capture a pawn. There were countless moves that lead up to the capture of that pawn, some of which involved the player's intent and other's the opponent's intent. You can describe a conceptual strategy that defines the action of capturing a pawn, but identifying the exact sequence of events that go into an action is difficult.
The solution to this dilemma is to record all the verbs that the player performs and list them them according to time across the top of our chart. The game designer can quickly scan through what the player is doing and see rewards are occurring simultaneously. Sometimes there will be a direct correlation. Other times there will be an indirect correlation.
When you record an actual game play session, the result is quite fascinating. You can see on a single scrolling screen the entire history of how the player experienced the game. Down the side are the reward channels and sprinkled across the channels are the timed reward events.
In more advanced implementations, you can add a playback head that scrubs through the log file and shows the actual recorded game play in either a video window or the actual game engine. This provides a very clear understanding of what happens at various points in time.
The Master Buzz Meter: The volume graph of the game
All this detailed data is very useful for digging into specific problem areas, but too much data is useless. When a dozen testers generate reams of data, you simply don't have time to look at it.
If you sum up the buzz curves across all the reward channels, you get a single graph that shows player buzz over time.
You can use this to quickly identify periods of low reward activity.
- First by glancing at the chart you can learn to 'read' problem areas quickly.
- Second by setting thresholds, the system can automatically mark areas of low reward activity and call them out with color.
Even using the Master Buzz Meter, our notational system can generate far too much data to process in a reasonable amount of time. Games are interactive and every game session results in a static snapshot of a single player's experience. A dozen players playing a dozen sessions and you are in the hundreds of data files to analyze.
Here we turn to statistics to give as an overall view of game play. From each of our elements, we can determine a variety of key statistical factors that help us understand various systems at a glance.
Master Buzz Meter Information
- Average buzz per session: By sorting sessions by average buzz, you can identify low buzz scenarios and examine them in more detail.
- Average buzz across all sessions: This allows you to track progress on various versions of the game. As you make improvements, you should see the average buzz score improve with each subsequent prototype.
- Variation per session: What is the standard deviation for the master buzz meter? This tells you if certain sessions are providing highly variable experiences.
- Variation across all sessions: This tells you if players are having dramatically different experiences.
- Gameplay time: Very short sessions are often worth looking into.
- Average time between rewards per session
- Average time between rewards across all session: This helps determine the reward frequency. In the standard display, reward channels sorted by reward frequency since it gives you a real world grasp on what activities are core game mechanics and which ones are additional layers on top. In general, you should focus the majority of your polish efforts on the high frequency action – reward cycles.
Essential Technology: Logging Systems
As might be apparent, a critical aspect of using our notational system is a robust logging system. This should be built into your game engine and the data should be recorded religiously from the first prototype onward. If you aren't logging, you are prototyping blind.
The type of data you collect is highly flexible. In the most basic situation, you are recording player verbs and reward events. Such information can be highly compressed and stored in a wide variety of media without too much slow down. In more advanced situations, you are creating a complete record of the game play. This is a lot more data, but may be worth the effort as you become more experienced with interpreting subtle notational symptoms.
Advanced features include:
- Playback of log files in the game engine with full seek and scrub capabilities.
- Capturing sections of the log file for reference in future discussion. Think of this as taking a snapshot of a problem area.
- Zooming mechanisms similar to those in video timelines for looking at the big picture and then zooming in on the details of a particular area.
What we've built so far is a very simple notational system. Here are some other factors worth taking into account when you build such a system for your games. Some are based on basic human psychology and others are issues worth keeping in mind.
- Burn out
- Expected and Unexpected Rewards
- Suppression
- Risks
- Game Structure
- Unusual events
When a reward repeated, it becomes less effective and the strength of the buzz curve is reduced. However, if the sequence of rewards is interrupted by other rewards, the reward recovers some of its former impact.
There is some interesting work to be done here to determine what patterns typically cause burnout.
Expected Rewards
Two common types of rewards are expected rewards and unexpected rewards.
- An unexpected reward is a reward that the player doesn't know is coming. The player experiences a small bit of delight when they happen upon a random bonus. It is represented by a standard buzz curve.
- An expected reward is one that the player is told will happen. These two part buzz curves consist of an expectation curve and a standard buzz curve. The expectation curve is kicked off by a defined hint that promises a future reward. The player then experiences a mild buzz of expectation until the promised reward is delivered.
In our notation system, an expected reward is recorded by tagging certain events in the game as 'hints' that are associated with a particular reward. Once the hint is given, a mild buzz curve is in existence until the promised reward is reached.
When a player experiences too many rewards at once they suppress the lower strength buzz curves and only focus on the easily discernable rewards.
Suppression in combination with Burnout tells us why we can't make a game that is all rewards all the time. First, if we repeat rewards, players will learn to ignore them. If we pile too many rewards on at once, players will also ignore them. By building these concepts into the notation system, we ensure that designers are always aware of such concepts.
Identifiable risks should be treated just like Buzz notes and recorded in their own risk channel.
Some risks can be recorded and some cannot. Often the most powerful risks are opportunity costs as opposed to concrete punishments so be careful of thinking you have all the risks accounted for if you add risk notes to your system.
Game Structure
In music, songs often have distinct sections that form a structure. For example a chorus might be label A and the refrain might be labeled B. Several classic structures include Binary: AB, Ternary: ABA or Ronda ABACADA.
Most games possess substantial structure as well.
- Binary: AB where A = The game is off, B = Actively Playing the Core Game. This might be your typical arcade game.
- Ternary: ABCA, where A = Off, B = Playing the exploration portion of the game, C = Playing the combat portion of the game. This might be your typical console RPG.
Unusual events
Part of using the notation system correctly is understanding what constitutes a meaningful event and logging it appropriately. Rewards, for example, are more than just power ups and coins. They also include many of the aspects of the game that historically have passionately been defended as important, but no one can tell you why.
- Plot: Plot sequences are really just another reward. Press the right button and get a bit of plot. The wonderful thing about plot sequences is that they act as a nice reward, but they also tend to contain a clue that sets up another expected reward.
- New graphics: You know those sexy new graphics the artist spends so much time slaving over? It turns out that they can be easily represented as a reward. Simply record the first time that the player sees a new monster or a new area as a reward. This helps you identify the rate at which you introduce new artwork and ultimately how much artwork you need. If you are balancing your other rewards appropriately, you can often maintain the player's buzz without investing in heavy art resources.
- Dying and death. Record these! They are the most basic form risk and often provide important insight.
- Resetting or restarting. You need to look at the entire play experience and record it as part of your game structure.. This involves player who save and restart. It involves resetting or turning off the game in frustration. Ultimately the log file should contain the player's entire experience with the game, not just small snippets of game play. Those hours they weren't playing the game are just as important to your balancing efforts as they hours they are playing the game.
Here are some obvious holes in the current system that -- while not preventing its usefulness -- should be acknowledged.
- It needs real world testing: This is a design for a notational system, not a case study. Real world testing will help polish the system.
- Social Rewards and other player invented goals are not measured: Any reward or risk that is not explicitly called out in the game mechanics cannot be measured. The joy that a player gets from taunting another player or the fun they experience from randomly stacking crates is difficult to track at this time.
- Long games are difficult to manage in an iterative manner: If a game takes 6 months to experience, it can be difficult to collect enough log files to gain a statistical understanding of player experiences. You still however can focus on sections of the games that occur on shorter time scales.
- Rules, Actions, and Tokens are not well described: There are several other major elements to a game design that are not included. This means that the notational system is not a complete and cannot be used to design full games.
- Buzz note values are not derived from real world data: We can make assumptions about how long a buzz note will last and which ones are stronger than others. However, until we hook someone's head up to a pleasure sensing device, these are merely educated guesses.
Practical usage of a notational system for games
So once you've created your logging system and built out your pretty pictures, what next? What do we do with all this data?
Our notational system is a method of clarifying and providing conceptual feedback on psychological impact of existing game mechanics. Woot. That is indeed a mouthful so let's dig into it in more detail.
- "Existing game mechanics": You need to have a working game in order to record game notation.
- "Psychological impact": By focusing on rewards, we are illustrating a crucial part of the player experience, but at the expense of the mechanical structure. You can't design a full game using this form of game notation.
- "Clarify and providing conceptual feedback": What we do get is the ability to describe a game using well defined terminology. Instead of saying "This is boring", you can point to a period of 5 second in buzz graph with no rewards and identify the events leading to that situation.
Our notation system is best used in an iterative development process where play testing is readily available.
- Build a benchmark suite of successful games. Typically this can involve logging publicly available games such as Tetris or past games that you have worked on.
- Build a prototype with logging.
- Examine the initial log files in details. Compare and contrast them to your benchmark suite. Are there any glaring issues? Focus on the high frequency rewards first.
- Record these issues in terms of the results you want to see in the next set of logs. Create goals for future success in terms of buzz curves, reward channels, and statistics.
- Create a new prototype and repeat the process. See if you hit your goals. If not, try again.
Benefit: Steerable design
This is a very different form of a development than many teams practice. The game industry is roughly five to ten years behind the rest of the software industry in terms of process management and methodology. They've historically focused heavily on a waterfall-like development methodology with long preproduction cycles and rigidly defined production milestones. The rigid methodology is one major factor that leads to risk averse, stagnant design.
By using the notation system as a critical part of development, you build into the team strong structures that encourage a more agile form of design.
- Prototyping is essential. You can't develop the next step without prototyping first.
- Design goals are easily communicated and cover the immediate future. No more fuzzy ideas that introduce unacceptable design risk.
- You steer the design using constant feedback instead of writing it down in a fit of artistic genius.
- Ironically, all this lets you take more risks, not less. The feedback cycle provides a safety net that encourages innovation instead of punishing it.
Benefit: All game content is on an equal playing ground
Art resources, physics systems and combat mechanics all are ultimately translated into the notational system in the form of the customer experience. Instead of optimizing each silo, you can focus on optimizing the overall game experience.
Benefit: Tightly targeted games
You'll also likely make smaller games that serve customer in a more focused manner. By clearly understanding what works and what doesn't work, you can invest in the right features instead of being throwing more features at the customer in the hope that a few will stick.
You may not make God of War, but you may make Nintendogs. In our world of ever increasing development costs and industry consolidation, being able to hit your market in a highly targeted manner means higher profitability with lower risk of failure.
That brings us to the end of our exploration of game play notation. We've covered a lot of heady concepts quite quickly, so here is a quick recap:
Key concepts
- Notational systems are good! A notational system can increase the creation speed and final quality of a game design. It provides powerful information management tools that help mere mortals manage designs of staggering complexity in a reasonable fashion. It works for music and it can work for games.
- We can display basic elements of the player experience in notational form: By focusing on the psychological rewards that a player receives, we can represent the player's fun over time. By also recording the verbs that the player performs, we can link player behavior to they player's psychological state.
- Layered information display makes log files useful: Our systems 'layers' information at various conceptual levels of detail for ease of use. You can easily get quick overviews of the game and you can dig down in to find out the exact details of the game play.
- The use of notation encourages rigorous design habits: Instead of being forced to rely on vague, often emotional hand waving, a designer can identify problem areas and describe them to the team with a high level of rigor and accuracy.
- When used in conjunction with iterative prototyping, game play notation can enable a powerful agile design process: Logging prototype play sessions and recording them in a simple notational form provides the entire team with a clear feedback mechanism. You'll make more focused games more efficiently.
The industry needs to develop a solid set of information technology that describes how games play. If we can't accurately describe what we are making, we cannot have an accurate discussion about how to improve our product. We should all be tired of muddled design documents that no one reads and bear only a limited resemblance to the finished product. Our current design practices are expensive and inefficient. They actively hurt the advancement of our art by promoting risk adverse behavior.
I encourage folks to explore game play notation systems as one path toward building modern, effective design tools. It certainly isn't the only path, but it is more promising than the status quo and worth pursuing.
The notational system I've described is a first attempt. After all, there were several hundred years between the notation of the ancient Catholic monks and the development of our modern musical notation. However, if the technique is useful, others will innovate and improve on the basic concepts. If you implement such a system, drop me a line. I'd love to hear how it worked out for you.
take care


text:
< Anaconda
Fedora 18 features an installer that is rewritten and redesigned from the ground up. This summary is meant to help you understand why the installer has been rewritten, what improvements the new installer will bring, what to expect when you work with the new installer and some known issues with the installer that will be resolved in later releases of Fedora.
Why rewrite the installer?
After many years of maintaining and developing the pre-Fedora 18 installers, the installer development team determined that a rewrite of the installer was necessary for a myriad of reasons, including the following:
- The previous installer had an aging (around 13 years old) infrastructure that was difficult and time-consuming to maintain and improve, constraining new feature development. One current install team developer refers to the old infrastructure as "an incredible mess."
- The performance of the old installer left a lot to be desired. Long-term tasks could not be performed in the background. This required long wait times and pauses throughout the installation experience. For example, as CPU and time-intensive tasks were processed, the UI would freeze for several moments until a given processing task completed.
- The previous UI was not very responsive. This manifested in various ways, including a failure of the UI screens to redraw when the display was changed between a TTY and back to the UI.
- The text-only version of the installer interface was a completely separate codebase, which increased the maintenance burden of the installer. This also increased the amount of work needed to implement new features as they would need to be written twice, once for each codebase.
- The previous codebase was not written in a modular fashion. This caused issues where similar functionality in different modes (for example, GUI vs kickstart) used different logic and resulted in inconsistencies for users.
- The automated kickstart mode of the installer was separate and incompatible with the UI modes of the installer. A separate utility, system-config-kickstart, was created solely to provide a UI for creating kickstarts since the existing UI could not be used for this purpose without a completed install.
- The live media method of installation used a different codepath than the installer than the DVD method, causing maintenance and development difficulties and resulting in an inconsistent and at times buggy user experience.
- The old installer's interface had a 'point of no return' past which any changes you'd made to your storage configuration could destroy data on your disk(s) and you couldn't go back to change it. Since the UI followed a linear path, this exact inflection point occurred close to the middle of the screen flow and required a rather discouraging pop-up dialog to explain the impact.
- In previous versions of Fedora, the installer's interface followed a wizard design pattern , consisting of multiple linear screens with occasional nested modal pop-up dialogs. (See diagram below) While nothing is inherently problematic with wizards as a design pattern, the sheer number of screens required by the installer made it unwieldy. You could end up several screens into the process and need to go back and change something on an earlier screen, requiring a lot of clicking and screen flipping to go back and return to where you left off. Multiple modal nested dialog windows also made it confusing at times to interact with certain screens, in particular, the partitioning-related screens.
In Even More Detail...
Will Woods has put together a great set of write ups going over, in more technical detail, the issues with the old installer codebase and why it needed to be rewritten. Please check it out here:
- http://ohjeezlinux.wordpress.com/2013/02/05/anaconda-retrospective/
- http://ohjeezlinux.wordpress.com/2013/02/07/anaconda-packaging-retrospective/
New installer improvements in Fedora 18
In order to address these and other issues, the installer development team changed the UI model from a linear wizard-based model to a hub and spoke model. Essentially, the installer UI has been distilled into two main menus, from which you can optionally visit various option screens. Each menu lists out each sub-screen and summarizes the choices selected for each sub-screen so you can skip screens that you don't need to configure if you'd like. See the diagram below for a visual illustration of how the hub and spoke model works.
The new installer available in Fedora 18 addresses a number of issues that were difficult to solve in the old codebase:
- The new installer is written in a modular fashion, so there aren't multiple copies of code that does the same thing scattered around the codebase.
- Long-running tasks can be performed in the background as you use the installer. For example, when you first start the installer and land on the first screen for language selection, the installer is - in the background - attempting to auto-detect your network settings and set up a network connection for you.
- The UI of the new installer has been written in such a way that it does not block and freeze up while waiting for CPU and time-intensive tasks to process.
- The new installer is primarily based on kickstart, whether or not you are using the automated & unattended kickstart option to install, the text user interface, or the graphic user interface. All three, in addition to the live media installation method, share a common codebase, providing a more consistent experience across installation methods as well as a more easily-maintained codebase. Eventually, the plan is to auto-detect any kickstart files available to a system during install and offer to pre-fill the fields in the UI with the values in the kickstart to help save users time.
- With the change to a hub-and-spoke model rather than a linear wizard model, the new UI allows users to entirely skip screens that they aren't interested in interacting with, streamlining the install process to only those screens that are most essential for installation to proceed.
- When the feature is completed for Fedora 19, the new installer will allow you to complete firstboot while the installer downloads and installs Fedora to your computer, helping to further streamline the install process. If you opt to not complete firstboot during installation, it will appear after you reboot the system.
What to expect when using the new installer
Do you like to watch videos? Of course, you do! You can watch Adam Williamson give a walkthrough presentation of the new Anaconda UI from FUDcon Lawrence in this video starting at around 2:13:00.
Storage workflow
One of the more comprehensively reworked parts of the new installer is the storage workflow. This is a very complex element from a design perspective and pre-release testing has indicated that it is not immediately obvious to many users exactly how it works in Fedora 18. Future releases will aim to make the design more discoverable. For a comprehensive guide to both this and all other elements of the new installer we strongly recommend reading the Installation Guide, but if you are in a tearing hurry, the following shortish notes on the design may be of use.
When you click the Installation Destination spoke, you are entering a short 'wizard' for storage configuration. The storage section of the installer constitutes one of the 'spokes' of the 'hub-and-spoke' design, but within itself is effectively a mini 'wizard': it is not possible to fit all the complexities of storage configuration into a single screen.
On the first screen, you are presented with an overview of all the permanent storage devices (disks, RAID arrays, USB sticks...) present on the system. You can select those you wish to form part of the Fedora installation. Any disks not selected on this screen will not be touched as part of the installation. There is also a link at bottom-left labelled Full disk summary and options...: clicking on this provides you with more information on each device, but - importantly for some users - allows you to explicitly select which disk should have the Fedora bootloader installed on it, or choose not to install a bootloader at all. It is no longer possible to install a bootloader to the / or /boot partition of the installed system. See Bugzilla: #872826 for more details on this.
If you hit the 'Done' button at top left of the screen after disk selection, the installer will attempt to complete storage configuration with all defaults for all other choices. This will only succeed if there is sufficient free (unpartitioned) space available within the target disks and will result in a default (LVM-based) partition layout which takes up all available free space on the disks, with the bootloader location being chosen by the installer. Existing partitions will not be touched in any way. If sufficient free space is not available, the installer will refuse to proceed and force you to return to the Installation Destination spoke.
To continue with the 'wizard', click the 'Continue' button at the bottom right of the disk selection screen. This will pop up a dialog. There are two versions of this dialog, one shown if the target disks have sufficient free (unpartitioned space), another shown if they do not. In both cases, there will be an 'expander' (+ button) labelled Partition scheme configuration, a checkbox whose label mentions something about 'customizing disk partitioning', and a button labelled Reclaim space (if sufficient space is not available) or Continue (if it is). In both cases, this screen is a point where you choose between two possible workflows that are sometimes referred to as 'guided partitioning' and 'custom partitioning'. If you check the 'customize partitioning' box and click either Continue or Reclaim space, you will be in the 'custom partitioning' workflow. At this point, it doesn't matter whether you had sufficient space available or not: custom partitioning works the same way in either case and allows you full control over what will be done to the selected disks. Full instructions on using the 'custom partitioning' page are beyond the scope of this document: please refer to the Installation Guide.
If you do not check the customize partitioning box, then when you click Continue or Reclaim space, you are in the 'guided partitioning' workflow. If sufficient space was available (and so the button is labelled Continue), partitioning is now complete: the installer will be configured to automatically create a partition layout in the available space, and you will be returned to the hub. If sufficient space is not available (and so the button is labelled Reclaim space), you will be taken to a screen where you can configure the installer to delete some existing storage volumes to free up space for the installation. Once you have scheduled enough volumes for deletion that there would be sufficient space for installation, you can complete this screen and again you will be returned to the hub: the installer will automatically configure a partition layout within the freed-up space.
The Partition scheme configuration drop-down has an effect whether you choose the 'custom' or 'guided' workflow. You can choose between LVM, raw ext4, and btrfs. If you use the 'guided' workflow, the chosen technology will be used by the installer when it automatically handles partitioning. If you use the 'custom' workflow, the chosen option will be the default type for volumes you create on the custom partitioning screen, but you can, of course, change this after creating the volumes.
You cannot combine the 'guided' and 'custom' workflows: they are alternatives. Changes made on the 'disk selection' screen apply to either workflow, but you cannot, for instance, run through the 'guided' workflow to schedule some partitions for deletion, then go back into the spoke and enter the 'custom' workflow to create the partition layout in the freed-up space. Entering the 'custom' workflow will ditch the configuration you chose in the 'guided' workflow.
As noted elsewhere on this page, none of the changes scheduled within the entire storage configuration section actually go into effect immediately. No changes are actually written to disk until you return to the hub and click the Begin Installation button. You can re-run the Installation Destination spoke as many times as you like and modify or completely change your configuration, and if you are worried that something is wrong about the settings and do not wish to apply any of them, you can simply reboot at any point before clicking Begin Installation and your system will remain entirely untouched.
Known installer issues
Please refer to the Common_F18_bugs page for information on single specific bugs (there is useful information on several particular installer bugs here, and we recommend that you read it before installing Fedora 18). This section will concentrate on more generic issues, mainly features that are missing or incomplete in Fedora 18 due to lack of development time but will be improved or restored in Fedora 19.
Enterprise storage technologies missing from interactive installation
Support for some enterprise storage features is missing from the interactive installer interface in Fedora 18. This includes technologies like multipath and FCoE: generally speaking, if you had to use the 'Specialized Storage Devices' screen in Fedora 17 and earlier, your setup may not be supported in the Fedora 18 interactive installer. Kickstart-based installs can use these features as always. The missing support will be added back for Fedora 19.
Guided partitioning cannot shrink storage volumes
The screen in the 'guided partitioning' workflow (see above) where you free up space for the Fedora install if this is needed, was designed to offer the ability to shrink existing storage volumes, not only to delete them. However, this option had to be removed late in the Fedora 18 development process due to implementation problems. The option should return in Fedora 19. If you would like to shrink an existing storage volume to free up space for a Fedora 18 installation, you can do so through the 'custom partitioning' workflow, or do it prior to Fedora installation using a tool such as parted.
Custom partitioning does not handle some complex configurations
The custom partitioning tool in Fedora 18 is able to handle a wide range of storage cases, including various raw partition formats, LVM, LUKS encryption, software RAID, btrfs, and various combinations. However, it was not possible in the time available to ensure that every possible advanced configuration combining these supported technologies was handled. If you have a complex storage configuration which does not appear to be handled correctly by the new installer, possible workarounds including using a kickstart, or in some cases preparing the drive with a partition tool like parted before installing Fedora. Please be aware that it is safe to experiment as much as you like with the partitioning screens in the new installer: no actual changes will be written to disk until you return to the hub screen and click the Begin Installation button. If you are not confident that you were able to achieve your desired configuration, you can simply reboot the system at any time before clicking that button and no changes will have been made.
Repository configuration limitations
The options for repository configuration during interactive Fedora 18 installation are significantly more limited than in previous releases. This is again a temporary result of time pressure and will be rectified for future releases.
- It is not possible to specify additional supplementary repositories. You can, of course, choose the main repository location for any installation, and this can be a private mirror with modifications from the official Fedora mirrors, but you cannot specify an incomplete supplementary repository containing a few additional or updated packages.
- It is not possible to configure which set of repositories any given installation will use. A DVD installation will always install only packages from the DVD itself; it cannot be supplemented with remote repositories. A network installation will always install packages from the fedora and updates repositories, and never from the updates-testing repository.
As in other cases, these restrictions do not apply to Kickstart-based installations: as in the past, you can specify any combination of repositories using a kickstart file.
Internationalization issues
As part of the changes for the new installer, some hard-coded information about various internationalization (i18n hereafter) scenarios was removed. The long-term plan is that such information should be provided in some more appropriate forum - ideally, some kind of distribution-neutral, upstream project where any application (an OS installer or otherwise) which might be able to benefit from it could use it. However, in the short term, it means that the i18n experience in Fedora 18 may not be quite as polished as that in earlier releases. Specifically:
- The names of languages and locations on the Welcome screen are taken from the CLDR database. In some cases, these may not reflect real-world use as well as the tweaked list of names used previously. For instance, those who read and write Simplified Chinese typically use the zh_CN locale wherever they live, and those who read and write Traditional Chinese typically use the zh_TW locale: in previous Fedora releases, these locales were labeled Chinese (Simplified) and Chinese (Traditional) to reflect this. Based on the CLDR database, they are now labeled geographically as Chinese (China) and Chinese (Taiwan).
- Previous Fedora releases offered only a subset of possible keyboard layouts to the user at installation time, but each of these options was tweaked to produce an optimal configuration. When you selected one of the keyboard types the installer knew about, it configured an appropriate console layout and X keyboard layout. In cases where users typically configure both a 'native' and a U.S. layout and switch between them in order to enter both 'native' and Roman characters, the installer would configure both X layouts and a keyboard combination to switch between them. The new installer does not have this special knowledge any more: the Keyboard spoke simply allows you to configure any combination of all the X layouts available in Fedora, and any layout switch combination you like if you configure more than one. This is more flexible but requires a little more work and knowledge on the user's part.
Incomplete translations
The amount of change in the new installer caused two problems for translators: a lot of their existing work became obsolete, as far more text in the installer changed than usually does between two Fedora releases, and inevitably changes to text in the installer had to be made far later than is usually the case. So there are fewer complete translations of the installer for Fedora 18 than for many previous releases, and many of the incomplete translations are quite a long way from complete. Now the new UI is in place the amount of 'churn' in installer text should go back to lower levels, so the translation teams will be able to improve translation coverage for Fedora 19 and later.

subset: commoncrawl


text:
Yubi Leverages Oracle Cloud Infrastructure to Drive Growth and Profitability
Bravado, The Epitome Of Men's Grooming Innovation, Launched In India
Medicover Hospitals, Navi Mumbai Conducts Fun-Filled Activities To Mark National Organ Donation Day
World's 2nd largest Gem & Jewellery trade show IIJS Premiere 2023 organised by GJEPC estimates business of over Rs. 60,000 crore
Suniel Shetty & Veda's Manun Thakur launch the World's First Mental Health App With 24×7 Access to Real Time Therapy while being Affordable and Private
'Paani Foundation will implement group farming program in Maharashtra in two years' Actor Aamir Khan announces in Farmer Cup award ceremony
RD National College's Cutting Chai Media Festival 2023 Concludes on a High Note with Oceanic Chai-Tide
Renowned Aviation Engineer Dr. Kota Harinarayana and, U.S. Consul General Chennai Christopher W. Hodges, inaugurate the MURTI Research Centre at GITAM Bengaluru
Society for fast justice is organising a meeting to provide legal support and justice to the common people against builders
Maharashtra Cabinet Minister Sudhir Mungantiwar Hosts a Gala Dinner for the 71st Miss World Team to Advocate 'Save The Tiger' Campaign
Shree Karni Fabcom Limited IPO Opens on March 06, 2024
Actress Ameesha Patel inaugurated the first flagship store of Vanior Jewels in Mumbai
Doctor 365 Bollywood Maha Arogya Shivir Witnesses Presence of Renowned Personalities"
Whole Jain community joining celebration of Shri Ram Pran Prathishta Mahotsav
Inspiring Saga: This Renowned Doctor Has Been Participated In Mumbai Marathon For 15 Years To Created Awareness About Cardiac Health
Accelerating Innovation: Virtusa partners with Emeritus to Launch Global AI Upskilling Program for its Leaders
PNB, EaseMyTrip Collaborate to Introduce PNB EMT Credit Card
Hyderabad-based Quantum Energy Partners with Battery Smart to Enable Swappable Batteries for Last Mile Mobility
Iconic Beauty Brand Laura Mercier Makes Grand Debut in Mumbai
Gopal Snacks Limited's Initial Public Offering to open on Wednesday, March 06, 2024, sets price band at ₹381 to ₹401 per Equity Share
Acer India Teams Up with Football Icon Sunil Chhetri for 'Score with Sunil' Gaming Contest
Vishwa Samudra Golden Eagles Golf Championships Organised In Mumbai with its 7th Edition
Vishwa Samudra Golden Eagles to Host its 7th Annual Golf Championship In Mumbai
Yuga Sports and Entertainment reveals logos of Pro Roll Ball league teams; player auction held ahead of exciting Season 1
'We are Rivals, Not Enemies': Shri. Venkaiah Naidu's Call for Political Harmony
Sonia Gandhi's questioning on money laundering allegations is likely to end today
New president revealed that her name 'Droupadi' is not her original name.
ED got a mountain of 2000-500 notes from actress and politician Arpita Mukherjee
Smt Draupadi Murmu is being elected as the first tribal woman of the nation, the new President of India
The Rotary Club Of Bombay Airport Announce Plans To Install 188 AED Machines In Mumbai
Symphonic Debut: Mukesh Parikh announced Millionaires of Love with Mithoon, Ricky Kej, and More
HELL ENERGY fans get a chance to 'meet and greet' ace cricketer Shardul Thakur
Changemakers 2024: India's Premier Personal Development Event Inspires and Transforms Thousands
Centre for Knowledge Sovereignty (CKS) and Esri India Enter the Pilot Phase of the MMGEIS Program
College Vidya Unveils AI Search Tool Set to Become the Google of Online Education
FADA Academy Steers Automotive Skill Development Revolution in Collaboration with BSDU
HFCL showcases 5G Fixed Wireless Access Indoor CPE powered by MediaTek at MWC 2024
Welcome to the Era of Mobile AI – Samsung Galaxy S24 series
Galaxy AI Features Come on Samsung Galaxy Buds with All-New Galaxy S24 Series
FUJIFILM India Launches Flagship Three A3 Colour and Two Monochrome Multifunction Printers in India at PAMEX 2024
Riyaz Gangji of Libas Stores Unveils First-Ever Japanese Silk Saree Collection in India in Collaboration with Designers from Japan
Giordano India Charts Accelerated Growth Trajectory
Haute couture lingerie by Triumph International this festive season
Maharashtra Governor inaugurates GJC's most-awaited India Gems and Jewellery Show, paints a glittering picture for the Indian jewellery industry
Indian High Fashion & Jewellery Shine at GJEPC's 'Jewels UnBounded' in Hong Kong
Kidney failure, Liver Failure, Cancer & Heart Problems Can Be Treated through Ayurveda and Natural Healing at HIIMS: Acharya Manish
Following the successful National launch of AptaGrow, Danone India kick-starts its digital campaign to educate on the role of nutrient absorption in children
Apollo first hospital in Navi Mumbai to receive the Gold Seal of Approval®
SmartCardia collaborates with Kokilaben Dhirubhai Ambani Hospital (KDAH) to enhance Cardiac Arrhythmia Care
Aiming to provide a sustainable and efficient mode of transport, the brand will offer e-vehicles as automotive solutions for the modern world Mumbai, 21st June 2021: With...


text:
Android Kernel Features
Kernel features unique to Android
In the course of development, Google developers made some changes to the Linux kernel. The amount of changes is not extremely large, and is on the order of changes that are customarily made to the Linux kernel by embedded developers (approximately 250 patches, with about 3 meg. of differences in 25,000 lines). The changes include a variety of large and small additions, ranging from the wholesale addition of a flash filesystem (YAFFS2), to very small patches to augment Linux security (paranoid networking patches).
Various efforts have been made over the past few years to submit these to changes to mainline (mostly by Google engineers, but also by others), with not much success so far.
A very good overview of the changes is available in a talk by John Stultz at ELC 2011. (The talk has a somewhat misleading name.)
- Android OS for Servers- John Stultz, ELC 2011
- This talks breaks down the differences between an Android Linux kernel and a stock Linux kernel, and provides information about the features of each.
- http://www.lindusembedded.com/blog/2010/12/07/android-linux-kernel-additions/
- Lindus Embedded (Alex Gonzalez) has a listing of kernel changes based on an Android kernel for the Freescale MX51 SOC, with some good information about each change.
- http://yidonghan.wordpress.com/2010/01/28/porting-android-to-a-new-device/
- Peter McDermott's excellent description of his work to port Android to the Nokia N810.
- Also, see his annotated list of modified and added kernel files, at: http://www.linuxfordevices.com/files/misc/porting-android-to-a-new-device-p3.html
- See the project site at sourceforge.
- http://www.slideshare.net/jollen/android-os-porting-introduction
- Jollen Chen's excellent presentation on system-level Android features, including an overview of kernel features unique to Android: Note: Parts of the presentation are in Chinese
Temporary including in mainline 'staging'
Some changes were temporarily added at the "staging" driver area in the stock kernel, but were removed due to lack of support. See Greg KH blog post on -staging for 2.6.33, where he announces the removal of various Android drivers from -staging.
Android mainlining project
Several groups and individuals are working to get kernel changes from Android mainlined into the Linux kernel.
Please see Android Mainlining Project for more information.
List of kernel features unique to Android
Here is a list of changes/addons that the Android Project made to the linux kernel. As of September, 2011, these kernel changes are not part of the standard kernel and are only available in the Android kernel trees in the Android Open Source project.
This list does not include board- or platform-specific support or drivers (commonly called "board support").
Binder is an Android-specific interprocess communication mechanism, and remote procedure call system similar to DBus.
See Android Binder
- ashmem - Android shared memory
- implementation is in mm/ashmem.c
According to the Kconfig help "The ashmem subsystem is a new shared memory allocator, similar to POSIX SHM but with different behavior and sporting a simpler file-based API."
Apparently it better-supports low memory devices, because it can discard shared memory units under memory pressure.
To use this, programs open /dev/ashmem, use mmap() on it, and can perform one or more of the following ioctls:
From a thread on android-platform source
You can create a shared memory segment using:
fd = ashmem_create_region("my_shm_region", size); if(fd < 0) return -1; data = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); if(data == MAP_FAILED) goto out;
In the second process, instead of opening the region using the same name, for security reasons the file descriptor is passed to the other process via binder IPC.
The libcutils interface for ashmem consists of the following calls: (found in system/core/include/cutils/ashmem.h)
- int ashmem_create_region(const char *name, size_t size);
- int ashmem_set_prot_region(int fd, int prot);
- int ashmem_pin_region(int fd, size_t offset, size_t len);
- int ashmem_unpin_region(int fd, size_t offset, size_t len);
- int ashmem_get_size_region(int fd);
- PMEM - Process memory allocator
- implementation at: drivers/misc/pmem.c with include file at: include/linux/android_pmem.h
- Brian Swetland says:
The pmem driver is used to manage large (1-16+MB) physically contiguous regions of memory shared between userspace and kernel drivers (dsp, gpu, etc). It was written specifically to deal with hardware limitations of the MSM7201A, but could be used for other chipsets as well. For now, you're safe to turn it off on x86.
David Sparks wrote the following: source
2. ashmem and pmem are very similar. Both are used for sharing memory between processes. ashmem uses virtual memory, whereas pmem uses physically contiguous memory. One big difference is that with ashmem, you have a ref-counted object that can be shared equally between processes. For example, if two processes are sharing an ashmem memory buffer, the buffer reference goes away when both process have removed all their references by closing all their file descriptors. pmem doesn't work that way because it needs to maintain a physical to virtual mapping. This requires the process that allocates a pmem heap to hold the file descriptor until all the other references are closed. 3. You have the right idea for using shared memory. The choice between ashmem and pmem depends on whether you need physically contiguous buffers. In the case of the G1, we use the hardware 2D engine to do scaling, rotation, and color conversion, so we use pmem heaps. The emulator doesn't have a pmem driver and doesn't really need one, so we use ashmem in the emulator. If you use ashmem on the G1, you lose the hardware 2D engine capability, so SurfaceFlinger falls back to its software renderer which does not do color conversion, which is why you see the monochrome image.
- logger - system logging facility
- This is the kernel support for the 'logcat' command
- The kernel driver for the serial devices for logging are in the source code drivers/misc/logger.c
- See Android logger for more information about the kernel code
- See Android Logging System for an overview of the system it supports
- wakelock - used for power management files kernel/power/wakelock.c
- Holds machine awake on a per-event basis until wakelock is released
- See Android Power Management for detailed information
oom handling
- oom handling modifications
- lowmem notifications
- implementation at: drivers/misc/lowmemorykiller.c
- also at: security/lowmem.c
Informally known as the Viking Killer, the OOM handler simply kills processes as available memory becomes low. The kernel module follows rules for this that are supplied from user space in two ways:
1. init writes information about memory levels and associated classes:
- The write value must be consistent with the above properties.
- Note that the driver only supports 6 slots, so we have combined some of the classes into the same memory level; the associated processes of higher classes will still be killed first.
- From /init.rc:
write /sys/module/lowmemorykiller/parameters/adj 0,1,2,4,7,15 write /sys/module/lowmemorykiller/parameters/minfree 2048,3072,4096,6144,7168,8192
2. User space sets the oom_adj of processes to put them in the correct class for their current operation. This redefines the meaning of oom_adj from that used by the standard OOM killer to something that is more aggressive and controlled.
These oom_adj levels end up being based on the process lifecycle defined here: http://developer.android.com/guide/topics/fundamentals.html#proclife
Alarm timers
This is the kernel implementation to support Android's AlarmManager. It lets user space tell the kernel when it would like to wake up, allowing the kernel to schedule that appropriately and come back (holding a wake lock) when the time has expired regardless of the sleep state of the CPU.
POSIX Alarm Timers
Note that POSIX Alarm timers, which implement this functionality (but not identically), was accepted into mainline Linux in kernel version 3.0.
See Waking Systems from Suspend and http://lwn.net/Articles/439364/
paranoid network security
- paranoid network security
timed output / timed gpio
Generic gpio is a mechanism to allow programs to access and manipulate gpio registers from user space.
Timed output/gpio is a system to allow chaning a gpio pin and restore it automatically after a specified timeout. See drives/misc/timed_output.c and drives/misc/timed_gpio.c This expose a user space interface used by the vibrator code.
On ADP1, there is a driver at:
# cd /sys/bus/platform/drivers/timed-gpio # ls -l --w------- 1 0 0 4096 Nov 13 02:11 bind lrwxrwxrwx 1 0 0 0 Nov 13 02:11 timed-gpio -> ../../../../devices/platform/timed-gpio --w------- 1 0 0 4096 Nov 13 02:11 uevent --w------- 1 0 0 4096 Nov 13 02:11 unbind
Also, there is a device at:
# cd /sys/devices/platform/timed-gpio # ls -lR .: lrwxrwxrwx 1 0 0 0 Nov 13 01:34 driver -> ../../../bus/platform/drivers/timed-gpio -r--r--r-- 1 0 0 4096 Nov 13 01:34 modalias drwxr-xr-x 2 0 0 0 Nov 13 01:34 power lrwxrwxrwx 1 0 0 0 Nov 13 01:34 subsystem -> ../../../bus/platform -rw-r--r-- 1 0 0 4096 Nov 13 01:34 uevent ./power: -rw-r--r-- 1 0 0 4096 Nov 13 01:34 wakeup
This allows saving the kernel printk messages to a buffer in RAM, so that after a kernel panic they can be viewed in the next kernel invocation, by accessing /proc/last_kmsg.
[Would be good to get more details on how to set this up and use it here!] [I guess this is something like pramfs?]
other kernel changes
Here is a miscellaneous list of other kernel changes in the mistral Android kernel:
- switch events - drivers/switch/* userspace support for monitoring GPIO via sysfs/uevent used by vold to detect USB
- USB gadget driver for ADB - drivers/usb/gadget/android.c
- yaffs2 flash filesystem
- support in FAT filesystem for FVAT_IOCTL_GET_VOLUME_ID
- and more...
Kernel configuration options
The file Documentation/android.txt has a list of required configuration options for a kernel to support an Android system.


text:
Dismiss Notice
Welcome to Game Dog Forum
You are currently viewing our forum as a guest which gives you limited access to view most discussions and access our other features. By joining our free community, you will have access to post topics, communicate privately with other members (PM), respond to polls, upload content and access many other special features. Registration is simple and absolutely free so please, join our community today!
If you have any problems with the registration process or your account login, please contact us.
- Last Activity:
- Jul 10, 2017
- Joined:
- Oct 22, 2010
- Messages:
- 213
- Likes Received:
- 8
Followers 5
- Home Page:
- http://www.yerichoffpits.be
- Location:
- belgium
- Loading...
- Loading...
dogs martiall artsInteract


text:
- With this classic anchor butt plug you will enjoy a wonderful anal stimulation. It is made of flexible silicone for a comfortable use. The plug is easy to use: squeeze the two ends together and insert the plug. When it is inserted, the two ends will assume their original position, securing it in place. Use the round anchor shape at the bottom to carefully remove the plug after use.
- Tech Specs
- Material: silicone
- Colour: Black
- Dimensions in cm: 20x14x3
- Weight: 217
- Length in cm: 13.00
- Max. diameter cm: 10.60
- Min. diameter cm: 2.40
- Country: CN
- Black
Delivery time
Most of our products are in stock in our warehouse. All products marked "Fast Delivery" purchased before 4 pm will be delivered the next working day unless otherwise indicated.
In case the article is not in stock, the estimated delivery time will be indicated. We will keep this information up to date and do our best to get your order delivered to you as fast as possible.
Shipment tracking
Once your order has been posted, you will receive a confirmation email link for real-time tracking. Delivery time or address can be modified in most cases using this link.
This article cannot be returned or exchanged for health or safety reasons.
Get rewarded for your loyalty
Following each purchase, you will get free standard delivery for 30 days on all orders exceeding CHF 50. -. The shipping costs are automatically deducted from the total amount.


text:
UDP(4) BSD Kernel Interfaces Manual UDP(4) NAME
udp -- Internet User Datagram Protocol SYNOPSIS
#include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> int socket(AF_INET, SOCK_DGRAM, 0); DESCRIPTION
UDP is a simple, unreliable datagram protocol which is used to support the SOCK_DGRAM abstraction for the Internet protocol family. UDP sockets are connectionless, and are normally used with the sendto(2) and recvfrom(2) calls, though the connect(2) call may also be used to fix the destination for future packets (in which case the recv(2) or read(2) and send(2) or write(2) system calls may be used). UDP address formats are identical to those used by TCP. In particular UDP provides a port identifier in addition to the normal Internet address format. Note that the UDP port space is separate from the TCP port space (i.e., a UDP port may not be ``connected'' to a TCP port). In addition broadcast packets may be sent (assuming the underlying network supports this) by using a reserved ``broadcast address''; this address is network interface dependent. Options at the IP transport level may be used with UDP; see ip(4). MIB VARIABLES
The udp protocol implements a number of variables in the net.inet branch of the sysctl(3) MIB. UDPCTL_CHECKSUM (udp.checksum) Enable udp checksums (enabled by default). UDPCTL_MAXDGRAM (udp.maxdgram) Maximum outgoing UDP datagram size UDPCTL_RECVSPACE (udp.recvspace) Maximum space for incoming UDP datagrams udp.log_in_vain For all udp datagrams, to ports on which there is no socket listening, log the connection attempt (disabled by default). udp.blackhole When a datagram is received on a port where there is no socket listening, do not return an ICMP port unreachable message. (Disabled by default. See blackhole(4).) ERRORS
A socket operation may fail with one of the following errors returned: [EISCONN] when trying to establish a connection on a socket which already has one, or when trying to send a datagram with the desti- nation address specified and the socket is already connected; [ENOTCONN] when trying to send a datagram, but no destination address is specified, and the socket has not been connected; [ENOBUFS] when the system runs out of memory for an internal data structure; [EADDRINUSE] when an attempt is made to create a socket with a port which has already been allocated; [EADDRNOTAVAIL] when an attempt is made to create a socket with a network address for which no network interface exists. SEE ALSO
getsockopt(2), recv(2), send(2), socket(2), blackhole(4), inet(4), intro(4), ip(4) HISTORY
The udp protocol appeared in 4.2BSD. BSD
June 5, 1993 BSD


text:
The Fish Child
Lucía Puenzo
Peccadillo Pictures
The celebrated director of XXY (2007), Lucía Puenzo, is back with her latest offering. Set in Buenos Aires, it is the story of a clandestine romance. Two young girls from opposite social backgrounds are in love. One girl, Guayi, is the family maid and the other, Lala, is the daughter of her employer. They hatch a plan to return to Lake Ypoá in Guayi's native Paraguay to live together, but through a series of spiralling events, Lala ends up in Paraguay and Guayi in a detention centre.
With beautifully stark cinematography, and a narrative that effortlessly slips between the past and the present, we learn more about Guayi's difficult past, and empathise with her situation. Their plan was simple, to steal and sell Lala's family's objects – paintings, jewellery and anything of value in order to have enough money to escape. Morally, it's not right, but as you watch the film, you want it to work out for the girls.
Puenzo's delicate films expose a spectrum of human emotion. The Fish Child is an intense and at times tragic love-story that not only deals with taboo subject matters, but does so with style and elegance. www.thefishchild.com.
Shirley Stevenson


text:
Promotional writing implements at IASpromotes.com are waiting to be personalized for your marketing needs. Find various writing instrument related promotional products here, including memo pad and pen sets and specialty pens and pencils. If you could not find the promotional pen or pencil item that best suits your brand, then you will probably find that promotional product here.
IASpromotes.com ensures that we stock all different types of promotional writing implements and accessories that are on the market. If you need help finding or personalizing the perfect promotional product with your company name, logo or slogan, feel free to contact us with questions any time!


text:
Pollution takes heavy toll on Bay Area children with asthma
Each year, asthma attacks send tens of thousands of California children to the emergency room. Some are admitted to the hospital for days. In 2010, the state had more than 11,000 such admissions, costing an average of $19,000 apiece. Pollution plays a role.
Staff writer Katy Murphy and photographer Alison Yin produced this project for The Oakland Tribune as part of a 2012 National Health Journalism Fellowship. Other articles in the series include:
OAKLAND -- The pediatric inpatient unit was quiet, except for the deep, relentless coughing. It was the sound of asthma -- asthma out of control.
Two of the children who'd spent the night there, oxygen sensors glowing red around their index fingers, were ill, one with a bad cold, the other with pneumonia. But they were confined to hospital beds for a different reason: Their lungs were screaming for more air. Their illnesses had likely caused their already-sensitive airways to tighten up, choking off the flow of oxygen. And so far, nothing -- not the quick-relief inhaler at home, nor hours of treatment in the emergency room -- was enough to bring their breathing back to normal.
"I don't understand why he's not getting any better," said Angelica Tanner, as her son, 6-year-old Johnathan, lay listlessly in the bed next to her seat. It was their 15th hour at Summit Hospital, in a unit run by Children's Hospital Oakland.
Each year, asthma attacks send tens of thousands of California children to the emergency room. Some of the patients face such severe and enduring symptoms that they are admitted to the hospital for days. In 2010, the state had more than 11,000 such admissions, costing an average of $19,000 apiece.
Exposure to pollution has long been a concern for families across the Bay Area, from the waterfront industries in Oakland and Pittsburg to the oil refineries in Benicia and Martinez to the clogged freeways that traverse the South Bay and Peninsula. In Alameda County, the asthma hospitalization rate -- 20.3 stays for every 10,000 children -- is nearly twice the state average and the third-highest in California, next to rates in Imperial and Fresno counties. Some Oakland neighborhoods sent children to the hospital two or three times as often as that.
These visits aren't just costly for society and the social safety net. When a child lands in the hospital or ER, it often means his asthma is out of control, a state of chronic inflammation that could compromise his health for years to come. An asthma misery index of sorts, these numbers reveal how many kids are missing out on school, physical activity and other hallmarks of a healthy childhood.
And all because of a disease that doctors say is largely treatable.
"I think it's every pediatrician's core belief that with adequate therapy, with early intervention, that the vast majority -- 80 to 90 percent -- of emergency department visits and hospitalizations could be avoided," said Dr. Ted Chaconas, a pediatrician who directs the hospitalist program at Children's Hospital Oakland.
But many children don't receive the early intervention they need or don't consistently take the medication that helps to prevent attacks. Then, when exposed to a virus, pollution, dust mites or something else that irritates their airways, their lungs revolt.
Tanner and her mother-in-law, Liz Stuecker, had been up most of the night. At 9 p.m., after Johnathan had coughed for 10 minutes straight, they took him to the emergency room at Children's Hospital. At 11 p.m., doctors put him on supplemental oxygen. By midnight, he still looked sicker than his mother had ever seen him. An ambulance whisked him to nearby Summit Hospital, where Children's leases 22 rooms, mostly for young patients' respiratory illnesses.
The San Leandro first-grader's asthma flared up often last year, costing him weeks of kindergarten and first grade. When he developed pneumonia last month, it was more than his lungs could take. It was the first time an asthma attack had sent him to the hospital.
Asthma on the rise
Asthma is the most common chronic illness for children in the United States. For reasons not well understood by scientists, it's becoming more common each year, now affecting nearly one in 10 kids. African-American children have experienced the sharpest increase: a 39 percent jump in the past decade. While rates of asthma rise, the costs of treatment are immense: $56 billion in 2007, according to an estimate from the Centers for Disease Control and Prevention.
It's rare for a child to die from an attack, but it does happen. In 2009, 157 children younger than 15 lost their lives because of it, according to the American Lung Association.
Doctors say most asthmatic children can lead normal lives if their families get a handle on their condition and are able to treat it properly. Doing so, however, requires access to the right care and medication. It also demands vigilance. Each child is sensitive to different elements. For some, it's pets or dust mites; for others, it's allergies or cold air. Keeping them healthy involves figuring out what is likely to trigger an attack -- and avoiding those things.
But some of those triggers, such as vehicle pollution, can be tough to avoid. Cheaper rental units are also more likely to harbor mold, rodents or cockroaches, common asthma attack culprits. It's no wonder, then, that children who live near the Bay Area's perennially jammed freeways and power plants or in its low-rent homes are suffering the most. Contra Costa County, home to the industrial cities of Richmond and Pittsburg, ranked sixth, statewide, in trips children took to the emergency room.
For a child with asthma, Deja Tyler has a lot stacked against her. She and her mother live in West Oakland, an industrial section of Oakland encircled by freeways with a shipping port and heavy semi-truck traffic. Until recently, her mother smoked. Her older siblings had asthma as children, too.
During a fall checkup at Children's Hospital's outpatient asthma clinic, Deja said she'd felt better since her mother had quit the habit -- a decision primarily made for her health.
"Three weeks you haven't smoked?" a volunteer asked her mother, Rosalind Coleman. "Wow, give me five! That is awesome."
At Lafayette Elementary School, where Deja is in fourth grade, 23 percent of the students have been diagnosed with the condition, according to records from the Oakland school district.
Children in Deja's neighborhood were more than five times as likely as other California kids to be hospitalized for asthma in 2010, and twice as likely to be treated in the emergency room.
Deja is no exception. She had been rushed to the emergency room five or six times, Coleman said.
But Deja shook her head when asked if it was scary. By now, her mom explained, she knows what to expect when it's time to go to the ER. "She don't cry. She don't scream," Coleman said. "She just goes."
The right medicine
For Johnathan's mother, a medical laboratory technician who grew up in the Philippines, asthma was a strange and unfamiliar disease. When her son was first diagnosed, as a toddler, she didn't accept it right away, she said. She didn't give him his prescribed medicine regularly, fearing harmful side effects.
"It took me two years to understand how asthma really works," she said.
Now, Tanner said, she gives her son his medications religiously. Like many children with moderate to severe asthma, Johnathan takes an extensive combination of pills, sprays and inhalers to keep his asthma in check -- a monthly bill that, even with the family's good insurance coverage, comes to $100.
He takes one kind of medicine, known as a "controller," to prevent asthma attacks. He uses a "rescue" inhaler for instant relief when he starts to show symptoms -- in his case, a runny nose and teary eyes. Then there are nasal spray and steroids to reduce swelling from his reaction to environmental allergens, a common complication for asthmatics.
For controller medicines to work, they have to be taken as prescribed. Often, they aren't. Some people ration the medicine to make it last longer. Others stop taking it once they start feeling better, thinking they're cured, or when it doesn't seem to be working, or because they forget.
"If it's a choice between buying medicine or food, they are going to buy food," said Priscilla Ward, a respiratory therapist who volunteers at a free mobile asthma clinic, the Breathmobile.
Falling behind
Johnathan loves his school, James Monroe Elementary in San Leandro. But in the past year, his mother said, he has missed about five days each month. He tries to keep up through work his mom brings home, but sometimes he gets stuck. Addition problems that might otherwise come easily have stumped him.
And every time Johnathan misses school, it means one of his parents has to miss work. Tanner started a new job in November. In early December, she'd already had to skip a day of training to be with her son in the hospital.
"It's always a battle of wanting to work and at the same time, wanting to be with my sick kid," she said. "Of course, he always comes first, but we have to pay the bills."
A few rooms down, Monica Cabrera had set up a laptop work station between the hospital bed and the window. Her son, Veeonn Taito, an athletic 9-year-old from Oakland's Maxwell Park neighborhood, had his first major asthma attack in two years, after catching a bad cold.
Leaving his lunch tray barely touched on his hospital bed, he was on his knees, waving a video game controller, in a game of virtual bowling.
"Oh, yes! Finally, a strike!" he yelled.
His mother smiled. Then, she warned him that the nurses would take his video game away if he didn't settle down so he could get better.
At one point, Veeonn turned to her.
"If I play this game does it still mean I'm sick, or not?" he asked.
He answered his own question with a coughing fit that shook his entire body. "It really hurts," he said, when it finally stopped.
Veeonn's little brother, just 2 years old, has also been diagnosed with asthma. Last summer, the toddler was hospitalized and on oxygen for a week.
To keep her sons healthy, Cabrera regularly cleans the carpet to rid the home of dust mites. She even found a new home for their puppy after discovering it posed a health risk.
After a day in the hospital, Veeonn assured his mom he would take better care of himself, too. He promised he would stop running outside with no shirt, coat or shoes, knowing that cold air might set off another bad attack.
"I don't want to get sick and go to the hospital. I don't want to get admitted again," he told her. "That's why I want to wear a jacket and shoes and all of that."
He paused. "I don't want to die, either."
This story was originally published in the Oakland Tribune on February 9, 2013
Photo Credit: Alison Yin/For Bay Area News Group


text:
Count Phil
Our stamps are red rubber on cling foam to be used with an acrylic block or stamp platform.
The red rubber gives a clear and crisp image. Each stamp is individually made just for you once you order.
We do our own pressing, cutting and indexing so please give us 5-7 business days (Monday - Friday excluding Holidays) to get your stamps made.
If we are running a sale processing times may be extended a few days due to higher volume.
*The store images do not reflect the size of the stamp, check the stamps description for sizes.


text:
Delicious breakfast item – cream corn and scrambled eggs spread on toasts.
Hindi: makai
Corn was indigenous to America, but is now grown throughout the world. It is used as a vegetable, briefly boiled or roasted or eaten with butter. And it would also interest you to know that the favourite popcorn, made by popping the small corn kernels, is a wholesome cereal food and is easily digested. Besides this, corn sees its use in various other ways – salads, soups, subzis and even sweets too!
Prep Time : 6-10 minutes
Cook time : 11-15 minutes
Serve : 4
Level Of Cooking : Moderate
Taste : Mild
Chef Sanjeev Kapoor is the most celebrated face of Indian cuisine. He is Chef extraordinaire, runs a successful TV Channel FoodFood, hosted Khana Khazana cookery show on television for more than 17 years, author of 150+ best selling cookbooks, restaurateur and winner of several culinary awards. He is living his dream of making Indian cuisine the number one in the world and empowering women through power of cooking to become self sufficient. His recipe portal www.sanjeevkapoor.com is a complete cookery manual with a compendium of more than 10,000 tried & tested recipes, videos, articles, tips & trivia and a wealth of information on the art and craft of cooking in both English and Hindi.


text:
Erin is turning two years old next month.
Now she can enter the Terrible Twos. I'm looking forward to comparing the Terrible Twos with the Whiny One-and-a-Halfs, the Tantrumy Twenty-Month-Olds, and the No-No-No-Nineteen-Month-Olds.
Erin's second birthday will be both more and less outlandish than her first. Her first, the actual day, was spent at Disneyland. The day before she had a small "here, smash a cupcake" party with her baby bff and a small group of baby friends who have been a circle of friends forever. (Not their choice, of course. But until she moves out I'm going to be choosing her friends based on how cool the parents are. Dad has a golf cart to run errands? Sorry, you can't be friends with Jane. Mom has an Iroc-Z that she stole from an ex-boyfriend in high school when he dumped her at a Weezer concert? Yes, yes you can play with Dark Galadriel.)
Her actual party was a family event held down in SoCal, apart from her baby friends, and mostly attended by people she had to crane her neck to see properly. There were jellyfish decorations everywhere, and a jellyfish cake, and I made some jellyfish trivia game and…I don't even remember what else. I think there were jellyfish toys to go home with for the kids who were there.
It was elaborate. But the effort and guest list made sense. Just family and old family friends.
This year we are staying home and we are having a park party. We have booked some picnic tables and we are co-hosting the party with the family of Erin's closest baby friend, a little girl who is one day older than Erin. And now the logistics get crazy.
Not only because of the "how many from your side?" kind of arrangements (which I don't really care about), but also the "Who, in our wide realm of toddler acquaintances do we invite?" kind of questions.
Of course all of the baby friends who were at her first not-party. And some family who can make the trip up north. And who else?
There are people with kids who we've spent a lot of time with, and whose parties we've attended. Last year we didn't have to wonder if we should invite them, because we were out of town. Now, do we keep it low-key? Do we make it a broader toddler-community event? Our two families overlap with a lot of acquaintances and maybe-friends (like, we'd be friends if the opportunity allowed, but opportunity never does…), so does sharing a maybe-friend between two families elevate that person to friend-friend status and demand an invitation? Further, most of the people who are definitely getting invitations also know a lot of the same people, and might even be closer to them than we are, and now it's all political.
That will probably sort itself out. I'm leaning toward sending out invitations to everyone whose e-mail address I can track down and who we have spent significant time with, even if it's been a long, long time since we've seen them. I can't think of anyone I wouldn't want to have at the party. Is that too liberal?
(Oh, crap. What do we do about gifts? Will this just seem like I'm trying to get more crap for Erin? Trying to get invites to more parties so that we can remain in the "scene"? Hell, this really is political.)
But you know what? Erin hasn't spent a ton of time with a lot of those kids in a long while. She has spent a ton of time with her friends at "school". Two months ago I'd have just said "hell no" to school invites, because I don't really know many of the parents at all well, and it's not as though Erin would be wondering where her classmates were. But we do kind of know a couple of the parents. Do we just invite them? I might think "Of course" and that there would be no further discussion about it. But some of the parents passed out "hand made" valentines last month.
Hand made. They cut out little hearts and cards and dragged their child's hand through paint and glitter and whatever else and dropped the cards in the cubbies at school. Come on. That's not about the kids at all.
Is it?
But if it isn't about the kids, then it's about the parents, wanting to build a group or live vicariously or keep up with the Joneses or whatever but the end result of all of the wondering about "Why valentines?" is that not inviting everyone in the class, especially someone who dished out a valentine, is controversy if we invite anyone at all. It's "not participating in the community", or the game, or the fantasy or whatever and that means opinions and talk and gossiping and…then Erin doesn't get into Stanford after high school because one of these parents will turn out to be the Dean of Admissions in a dozen years. Or Erin won't get a job at Google because one of the parents will have become CEO between now and then. Or she won't get accepted into nun school because the head nun is the aunt of one of the snubbed kids. Or she won't be the lead guitarist of Copperhead Death Kabob because the bassist didn't get to eat cupcakes at the park with her when he was two, and his mom is fronting all of the band's touring expenses.
I may be letting my imagination get the better of me here.
Further complicating the matter is that the co-host parents, Erin's little bff's parents, are thinking about inviting kids from their daycare, because, quite reasonably, those are the kids their daughter knows best. And they know the parents to some extent, or are at least part of a community with those parents (it's a sort of work-specific daycare) that would be benefited or harmed to an even greater extent depending on whether the kids were invited or not.
What. In the hell. Am I. Going. To do?
Who doesn't get invited? How did you decide?
Because, frankly, I don't want to make a hundred cupcakes. With butterflies on them. (It's a whole butterfly thing this time around. I promise: lasers and dinosaurs next year.)
I need some help.


text:
Already a Member? Sign in >>
Bellevuesinglesonline.com — Dating Safety
Last updated on Jan 21, 2019
Online Dating Safety Advice Tips:
Password Policy
The use of a strong password is essential in order to protect your security and identity online. Please read the following advice for creating, maintaining and protecting your password.
Password creation and protection
- Password creation and protection
- Passwords must be a minimum of 8 characters in length.
- Passwords must be completely unique, and not used for any other system, application, or personal account.
- Avoid using obvious passwords such personal information.
- Avoid using common passwords.
- Passwords should not be shared with anyone, should not be revealed or sent electronically and should not be written down or physically stored.
Safety Tips
Online dating can be a safer experience than traditional dating. It gives you a wider scope of choice and you can remain at a distance until you are ready to meet.
If you've never tried it before or if you are worried by any stories you may have heard, here are a few tips to get you dating online safely:
- Trust your instincts. If something doesn't feel right, why take a chance. Disengage gracefully, if this does not work, just disengage.
- Keep it real. Be as honest as you can when creating your profile, you would not want to be misled so don't mislead anyone. It's also very hard to pretend you are 6'2" when you are really 5'6"!
- Post a photo, but make sure you cannot identify your family, friends, home or car in it.
- Keep in control. Don't give up any personal information too soon or post personal information publicly on your profile.
- Protect your identity. Use a site like ours that hides your email address and your contact information.
- Avoid any talk of finances too readily. There is no reason why you should ever disclose any financial information online.
- Don't be lured by requests for financial help, if someone asks you for money even if you have built up a trusting rapport with them, they are almost certainly a scammer.
- Be wary of anyone who declares their undying love for you, especially if you have never met them.
- Don't be pressured into giving any information or pictures that you don't want to and especially into meeting before you are ready.
- Don't be afraid to ask for more details of the person you are talking to.
- Think about what you write in your profile and when chatting. Does it convey the right tone and intention?
In-Person Dating Safety Advice:
Dating through an online service such as ours is a safe experience but with the rush of excitement it's sometimes easy to forget to keep it that way.
You think you have met the online date of your dreams or maybe you're just curious but you've agreed to meet. You may be a veteran dater or maybe returning to dating after a relationship has ended but here are some quick words of advice for meeting up:
- Don't get pushed into a date and certainly don't give over your personal contact details unless you are comfortable to do so. Never give out your home or office address unless you are totally confident that you know and can trust your date.
- Avoid anyone who talks about sex or finances before you have even met them. Be wary of anyone who declares undying love for you too readily.
- When you meet for those first few dates, choose a neutral public location that is easily accessible to you both and is within view and hearing distance of other people.
- Tell someone that you trust who you are meeting, where you are going and what time you plan to be there. If your plans change don't forget to provide an update.
- Arrange with someone to 'check in' at regular intervals and have a coded way of telling them how it's going, especially if you need help.
- Trust your instincts, if you think something is wrong, you should politely make an excuse and leave.
- Never rely on your date for transport to or from your meeting place, especially plan your journey home in case you need to leave unexpectedly. Have a cab number handy if you need one.
- If you do have to go home together in a cab, try to be dropped off last but at least avoid showing your date exactly where you live.
- Be careful with alcohol so that you keep your wits about you. If you think your food or drink has been tampered with then don't consume it.
- Make sure you have a fully charged phone that's able to make contact with others.
- Respect that your date may have the same concerns and don't push them into doing anything they are not comfortable with.
Bellevuesinglesonline.com - Find Singles & Love For Free
Looking for local singles and love in Bellevue? Finding the perfect companion online has become so much easier! Thousands of Bellevue local singles are waiting to meet their ideal match. As a premium dating site, we've made it easier for you to search, browse, and find your ideal, perfect, local singles companion in Bellevue! Joining the site is free, and hassle less. Online dating has never been this fun before! If you haven't tried us yet, why not try us out now? If you're adventurous and interested in singles cruises or trips for singles, then we have several trips and cruises for singles, don't forget to check them out too!
Find local relationships, love and local single men and single woman. Christian singles, Jewish singles, Muslim singles are all here. Local Singles want singles events, singles travel, romantic dining, singles cruises, relationship advice and local nightlife.
tags: local singles free, meet local singles, local singles chat, local singles near me, find local singles, local singles app, local singles near me free, local singles chat line, local dating, local singles, local personals, find love in your city, find love, find personals, online dating, relationships, online relationships, dating online free, dating online sites, dating sites, online dating site, dating site, best online dating, dating sites free, dating sites free online, free dating site online, online dating chat.


text:
Helmet Cam Shows Just How Brutal Football Really Is [VIDEO]
Football is a violent game. You don't even need to be a fan to know that. But it's tough to fully appreciate just how violent is. Until now.
University of Miami linebacker Denzel Perryman wore a camera on his helmet during this year's spring game to give other people a first-person look at what's happening on the field of play.
The action is fast and chaotic and it kind of looks like what happens when the power goes out on your TV. And all the hitting? The only thing we want to be hitting at a football game is a beer when we knock one back while relaxing on our couch.


text:
This post may contain affiliate links. Read my disclosure policy.
I am a huge zucchini fan if you haven't noticed. When my garden is overflowing with zucchini in the summer, I love to stuff them and serve them for dinner. I have a ton of zucchini recipes!
Turkey Stuffed Zucchini
Yield: 4 servings
Serving Size: 2 halves
- 4 6 oz each medium zucchini
- 1 tsp butter
- 1/2 small onion, finely diced
- 1 shallot, minced
- 3 cloves garlic, crushed
- 1 oz white wine
- 1.3 lb 20.8 oz ground turkey (99% fat free)
- 1 large egg white
- 1/4 cup grated parmesan cheese
- 1 cup fat free chicken broth
- 2 tbsp whole wheat seasoned breadcrumbs
- 1 tsp paprika
- 1 tsp fresh chopped rosemary
- 1 tsp garlic powder
- 1 tsp marjoram
- 1 tsp dried basil
- Salt and fresh pepper
- Preheat oven to 400°.
- Cut zucchini in half lengthwise and using a spoon or melon baller, scoop out flesh, leaving 1/4" thick.
- Arrange in a baking dish.
- Chop the scooped out flesh of the zucchini in small pieces.
- In a large saute pan, melt butter and add onion, shallot and garlic.
- Cook on a medium-low flame for about 2-3 minutes, until onions are translucent.
- Add chopped zucchini and season with a pinch of salt, cook about 2-3 minutes.
- Add wine and cook until it reduces.
- Add ground turkey and season with salt and pepper, cooking until turkey is white, breaking up in smaller pieces.
- Add paprika, rosemary, garlic powder, marjoram and basil.
- Mix well and cook another minute.
- Place turkey meat in a large mixing bowl and set aside to cool.
- When cooled, add parmesan cheese and egg white, mix well.
- Using a spoon, fill hollowed zucchinis with stuffing, pressing firmly and top with bread crumbs.
- Place chicken broth in bottom of the baking dish and cover tightly with foil.
- Bake 35 minutes.
Last Step:
Please leave a rating and comment letting us know how you liked this recipe! This helps our business to thrive and continue providing free, high-quality recipes for you.Nutrition
Serving: 2 halves, Calories: 214.8 kcal, Carbohydrates: 11 g, Protein: 31.6 g, Fat: 4.6 g, Fiber: 2.9 g