text:
Browsing DRUID Working papers by Title
Danish Research Unit for Industrial Dynamics (DRUID)
DRUID Working papers
The Importance of Technology Based Inter-Sectoral Linkages for Market Share Dynamics
Laursen, Keld; Meliciani, Valentina (Frederiksberg, 1999)
DRUID_99_10.pdf (130.7Kb)
Individual and Organizations
Thoughts on a Micro-Foundations Project for Strategic Management and Organizational Analysis
Felin, Teppo; Foss, Nicolai J. (København, 2006)
Abstract: Making links between micro and macro levels has been problematic in the social sciences, and the literature in strategic management and organization theory is no exception The purpose of this chapter is to raise theoretical issues in developing micro-foundations for strategic management and organizational analysis We discuss more general problems with collectivism in the social sciences by focusing on specific problems in extant organizational analysis We introduce microfoundations to the literature by explicating the underlying theoretical foundations of the origins of individual action and interaction We highlight opportunities for future research, specifically emphasizing the need for a rational choice program in management research.
cbs forskningsindberetning smg 39.pdf (4.296Mb)
Information Cost, Learning, and Trust
Lessons from Co-operation and Higher-order Capabilities Amongst geographically proximate firms
Lorenzen, Mark (Frederiksberg, 1998)
DRUID_98_21.pdf (88.31Kb)
Insomplete Contracts and Economic Organization
Brian Loasby and The Theory of The Firm
Foss, Nicolai J. (Frederiksberg, 1997)
Interfirm Linkages and the Vertical Structure and Dynamics of the Danish Trucking and Congress Tourism Industries
Sornn-Friese, Henrik; Jensen, Søren Henning (Frederiksberg, 2006)
Abstract: This paper questions the overall role of interfirm linkages in industrial dynamics. Studying Danish trucking and congress tourism, the paper addresses a number of particular questions concerning how industry responds to changing conditions. In trucking, the important interfirm linkages are pecuniary and entails nontrivial exchange among multiple dispersed agents, while in congress tourism Inter-organizational linkages are more strategic, with the activities of multiple agents forming together into products, without direct exchange.
What Can Organizational Economics Contribute?
Foss, Nicolai J.; Mahnke, Volker (Frederiksberg, 2003)
Abstract: Knowledge management has emerged as a very successful organization practice and has been extensively treated in a large body of academic work. Surprisingly, however, organizational economics (i.e., transaction cost economics, agency theory, team theory and property rights theory) has played no role in the development of knowledge management. We argue that organizational economics insights can further the theory and practice of knowledge management in several ways. Specifically, we apply notions of contracting, team production, complementaries, hold-up, etc. to knowledge management issues (i.e., creating and integration knowledge, rewarding knowledge workers, etc.) , and derive refutable implications that are novel to the knowledge management field from our discussion.
Foss, Nicolai J.; Mahnke, Volker (København, 2003)
Lead Users as Facilitators of Knowledge Sharing in a Community Setting
Jeppesen, Lars Bo; Laursen, Keld (Frederiksberg, 2007)
Abstract: This paper introduces a model of knowledge sharing of lead users located in a public and unrestricted community of users. While existing literature on knowledge sharing focuses on allocation and collaboration processes inside or among companies we extend this to the community level. We then focus on how key agents — lead users — facilitate knowledge sharing in this setting and the features that moderate such sharing. Our results show that lead users are central to search and integration of knowledge from different external sources of relevance to their communities. Inside the community lead users are active in both "giving and taking" knowledge. Further, as users build up experience they tend to give more knowledge, thus suggesting a dynamic pattern of knowledge sharing in which increases in experience make way for important knowledge diffusion processes in the community.
Learning in The Village Economy of Denmark
The Role of Institutions and Policy in Sustaining Competitiveness
Maskell, Peter (Frederiksberg, 1996)
DRUID_96_6.pdf (188.2Kb)
Learning Paths to Offshore Outsourcing
From Cost Reduction to Knowledge Seeking
Maskell, Peter; Pedersen, Torben; Petersen, Bent; Dick-Nielsen, Jens (Frederiksberg, 2005)
Abstract: A corporation's offshore outsourcing may be seen as the result of a discrete, strategic decision taken in response to an increasing pressure from worldwide competition. However, empirical evidence of a representative cross-sector sample of international Danish firms indicates that offshore sourcing in low-cost countries is best described as a learning-by-doing process in which the offshore outsourcing of a corporation goes through a sequence of stages towards sourcing for innovation. Initially, a corporation's outsourcing is driven by a desire for cost minimization. Over a period of time the outsourcing experience lessens the cognitive limitations of decision-makers as to the advantages that can be achieved through outsourcing in low-cost countries: the insourcer/vendor may not only offer cost advantages, but also quality improvement and innovation. The quality improvements that offshore outsourcing may bring about evoke a realization in the corporation that even innovative processes can be outsourced.
Licensing Strategies of the Entreprising – But Vulnerable "Intellectual property" Vendors
Davis, Lee (Frederiksberg, 2006)
Abstract: This paper investigates in an exploratory manner the licensing strategies pursued by firms whose business model is based on developing and licensing out their intellectual property rights (IPRs). These are not traditional suppliers, since they do not engage in production or commercialization, but focus solely on invention. While considerable anecdotal evidence exists about these IP vendors, there has been no systematic investigation of how they use licensing to appropriate value from their investments in R&D. In this paper, we suggest that the licensing strategies they pursue can be differentiated along two main dimensions: whether the driving force behind the inventive process is "technology push" or "market pull", and the degree to which the innovative activities carried out by the IP vendor are mutually dependent upon the innovative activities of the other relevant market players. On this basis, four main licensing strategies are identified. We investigate the relative benefits and costs of these four strategies, and the factors affecting licensing choices.
Licensing Strategies of the Entreprising – But Vulnerable – "Intellectual property" Vendors
Davis, Lee (København, 2006)
Abstract: This paper investigates in an exploratory manner the licensing strategies pursued by firms whose business model is based on developing and licensing out their intellectual property rights (IPRs). These are not traditional suppliers, since they do not engage in production or commercialization, but focus solely on invention. While considerable anecdotal evidence exists about these IP vendors, there has been no systematic investigation of how they use licensing to appropriate value from their investments in R&D. In this paper, we suggest that the licensing strategies they pursue can be differentiated along two main dimensions: whether the driving force behind the inventive process is "technology push" or "market pull", and the degree to which the innovative activities carried out by the IP vendor are mutually dependent upon the innovative activities of the other relevant market players. On this basis, four main licensing strategies are identified. We investigate the relative benefits and costs of these four strategies, and the factors affecting licensing choices. Key words: Intellectual property, licensing, strategy JEL Codes: O31, O32, O34
wp06-12.pdf (182.4Kb)
Localised Low-tech Learning in The Furniture Industry
Localized Learning Revisited
Malmberg, Anders; Maskell, Peter (Frederiksberg, 2005)
Abstract: The concept of localized learning outlines how local conditions and spatial proximity between actors enable the formation of distinctive cognitive repertoires and influence the generation and selection of skills, processes and products within a field of knowledge or activity. The localized learning argument consists of two distinct yet related elements. One has to do with localized capabilities that enhance learning while the other concerns the possible benefits that firms with similar or related activities may accrue by locating in spatial proximity of one another. In this essay, we disentangle these two inherent elements of the concept, review some of the critique that has been raised against it, and sort out some misunderstandings that we think are attached to its present use.
Making Consumer Knowledge Available and Useful
The Case of the Computer Games
Jeppesen, Lars Bo (Frederiksberg, 2001)
Abstract: It has been demonstrated that users occasionally innovate. However, it can now be observed that even end-consumers act as a source novel product designs. A case study of a firm, and "its" consumers - from the computer games industry - illustrates how sourcing of consumer knowledge has enabled the firm to improve product design. Two conditions favor the results firms can obtain from consumer's knowledge. First, is firm's ability to exploit new opportunities of information and communication technology - on-line communities - to establish interfaces connecting them with consumers. Second, is firm's ability to initiate a mode of organization by which the consumers are guided and motivated to reveal merely relevant knowledge.
The Market Process and The Firm
Toward a Dynamic Property Rights Perspective
Foss, Nicolai J.; Foss, Kirsten (Frederiksberg, 1998)
Micro-strategies of Contextualization
Cross-national Transfer of Socially Responsible Investment
Boxenbaum, Eva; Gond, Jean-Pascal (Frederiksberg, 2006)
Abstract: This paper examines how individuals select and mobilize local institutions when they transfer business practices across societies that are construed as dissimilar to one another. We investigate empirically how the American business practice of socially responsible investment (SRI) was transferred to France and Quebec. Our analysis identifies five micro-strategies that were employed to contextualize SRI, namely filtering, rerouting, stowing, defusing, and coupling. This repertoire of micro-strategies extends previous research on contextualization, translation, and institutional transfers and links them to one another. They may also help explain why some transfers succeed while others fail.
The MNC as a Knowledge Structure
The Roles of Knowledge Sources and Organizational Instruments in MNC Knowledge Management
Foss, Nicolai J; Pedersen, Torben (København, 2003)
Abstract: Recent research on the differentiated MNC has concerned knowledge flows between MNC units. While linking up with this literature, we extend in two directions. First, we argue that conceptualizing the MNC as a knowledge structure furthers the understanding of intra-MNC knowledge flows. Thus, we see MNC knowledge elements as being structured along such dimensions as their type and degree of complementarity to other knowledge elements, and their sources, for example, whether they are mainly developed from external or internal knowledge sources. These dimensions matter in terms of knowledge flows, because they influence the costs and benefits of knowledge transfer and, hence, the actual level of knowledge transferred. Second, based on this conceptualization, we argue that MNC management can influence the development, characteristics and transfer of knowledge through choices regarding organizational instruments (control, motivation and context). We test six hypotheses derived from these arguments against a unique dataset on subsidiary knowledge development. The dataset includes information on organizational instruments, sources of subsidiary knowledge, and the extent of knowledge transfer to other MNC units. It covers more than 2,000 subsidiaries located in seven different European countries.
Modularization assessment of product architecture
Mikkola, Juliana Hsuan (Frederiksberg, 2000)
Abstract: Modularization refers to the opportunity for mixing-and-matching of components in a modular product design in which the standard interfaces between components are specified to allow for a range of variation in components to be substituted in a product architecture. It is through mixing-and-matching of these components, and how these components interface with one another, that new systems are created. Consequently, the degree of modularization inherent in a system is highly dependent upon the components and the interface constraints shared among the components, modules, and sub-systems. In this paper, a mathematical model is derived for analyzing the degree of modularization in a given product architecture by taking into consideration the number of components, number of interfaces, the composition of new-to-the-firm (NTF) components, and substitutability of components. An analysis of Chrysler windshield wipers controller suggests that two product architectures may share similar interface constraints, but the opportunity for modularization of one module is significant higher than the other due to the higher substitutability of its components and lower composition of NTF components.


...We could also help you create a Taekwondo Asian Tattoo.
蒼軒跆拳道 is the title "Chang Hon Taekwon-Do" written in old Korean Hanja.
This literally means, "Pale Blue Kick Fist/Punch Way."
The rather awkward official romanization is "cang heon tae gweon do."
Occasionally, you will see the first Hanja character written as 苍 instead of 蒼. It's just a different way to write the same character. If you want 苍 instead of 蒼, just let me know.
In Chinese, old Korean Hanja, and old Japanese Kanji, this word means "etiquette" or "courtesy."
You'll also find a Japanese entry on our website which uses a modern/simplified first Kanji. The characters shown here compose the best choice if your audience is Chinese or Korean - but also acceptable if you want an ancient-style Japanese scroll.
Note: This can also be translated as propriety, decorum, or formality.


text:
Star Wars Video Games: Memories On The 4th
David A. Reeves
A long time ago in a galaxy far, far away…
We've seen so many video games come out based on movie franchises before, and a lot of them failed miserably. Lucky for us, however, Star Wars grew beyond just a simple movie franchise. The original trilogy of films created some of the most profitable movies ever seen, gave us the voice of the Joker and the whip-cracking Indiana Jones, and created one of the most gargantuan amounts of Expanded Universe material even seen, including some really great and influential video games. I wish that I could talk about all of them, but we'd be here forever then. It's safe to say that everyone remembers the Battlefront games after the recent reveal, but let's not forget the others. There's a lot of Star Wars video games that really stand out, not only for their stories but the landmarks each game set.
SUPER STAR WARS
Why am I not mentioning the original game? Cause this one is SUPER! Obviously. Super Star Wars was the debut Star Wars game on the Super Nintendo, liberally telling the story of the first movie through lots of platforming and run-and-gun gameplay. We got to play as not only our favorite Jedi, but also as Han and Chewie, and the game featured vehicle-based levels as well. We got the Super Sequels as well, which stepped up their game with added characters, expanded level deviations (like Luke battling through the second Death Star in Super Star Wars: Return of the Jedi), and force powers. Everyone loves force powers!
Look at those super fancy graphics!
You know, maybe we don't need your hokey religions and ancient weapons. We have blasters. The X-Wing games taught us a very important lesson about Star Wars video games: we don't need to play as the characters from the movies to have a good time. X-Wing and its later sequels put players in a space simulator in one of their favorite worlds, managing force fields and allies and trying desperately not to make a mistake that would cost them the mission. It's a series I've only seen played on Twitch, but it has always looked to be a stellar product. Of course, my time in an X-Wing was with a different series…but we'll get to that.
SHADOWS OF THE EMPIRE
Dash's Outrider, which he claims is faster than the Falcon.
This was the first real Star Wars video game I played, so the rose-tinted glasses may be on, but it was a really neat concept. Shadows of the Empire was part of this awesome multimedia event with books, toys, comics, and this game, showing the events that took place between episodes V and VI. In the game you played as Dash Rendar (an expy for the out-of-commission Han Solo) in a 4 chapter narrative as a third-person shooter with some vehicular interludes. The controls weren't the best, but exploring these semi-familiar characters and scenarios from a fresh perspective made for an intriguing experience. Be in the Battle of Hoth that Dash was drawn into on Solo's request, hunting bounty hunters, searching for the plans for the second Death Star, or taking on the underworld's fearsome Prince Xixor, Dash Rengar and the Outrider made for one hell of fun game. Just remember that the Disruptor will definitely kill you if you're too close. I may have to go play this again.
Whoaaa, lightning is not a blue-saber thing! Bad Kyle!
Despite the series beginning with a game that doesn't have "Jedi Knight" in the title anywhere, this was the series that gave us Kyle Katarn. The Jedi Knight series's biggest claim to fame could probably be how the character of Katarn was handled and evolved over the course of so many games. While Star Wars: Dark Forces, the first game in the series, portrayed Katarn as a mercenary working for the alliance, his later development into a Jedi, temptation by the dark side, and reaffirmation of his beliefs in himself and the force is a marvelous narrative that every Star Wars fan should play through. The series performed as a first person shooter with later third-person elements (easier for lightsaber duels), and the use of light or dark force powers gave an RPG element to Jedi Knight: Dark Forces II with a light or dark side ending. Give it a whirl.
ROGUE SQUADRON
Hell with simulator combat, I just want to fly around and shoot/bomb everything! Okay, so Rogue Squadron had a bit more to it than that. If X-Wing was more of a simulator style of combat, then Rogue Squadron is the Ace Combat variety of combat. Rogue Squadron took Luke Skywalker and gave him his wings back, as his piloting skills seemed less important after Hoth in the movies. With multiple spacecraft to pilot, as well as a flying black buick, players could take part in a multiple battles with the iconic Star Wars ships across a wide variety of environments. Utilizing the N64's expansion pack for better graphics, the game also was visually impressive for its time. While Rogue Squadron had its own storyline, the game also allowed players to relive the iconic moments of the Death Star trench run and the always famous Battle of Hoth, as well as giving players a glimpse into the Expanded Universe with Wedge Antilles flying the new V-Wing at the Battle of Calamari. The game was successful enough to gain two sequels and another spiritual sequel, and showed that for all the power of Jedi and Sith, there's still plenty of conflict going on without the Force.
And lo, then BioWare descended with Knights of the Old Republic, and the fans were mostly pleased. To be completely honest, I've never been able to get through this game; I found it too slow for my taste, despite normally loving RPGs. However, my opinion is only one against the overwhelming tide of support for the game bringing even more "long ago" into the Star Wars universe. Knights of the Old Republic took players way into the past for a galaxy spanning RPG that still gets rave reviews today. The game plays similar to the Neverwinter Nights games, including the D&D style of stats and character customization, and brings in some of the most enjoyable characters in the former Expanded Universe, like sarcastic assassin droid HK-47. I can't really go enough into how successful this game was, spawning both a sequel RPG and a currently free-to-play MMORPG in The Old Republic (however, if you want to take your hood off, that's five dollars), and finally giving an environment where the Force flowed freely, the Sith were an open threat, and everyone was on even footing as they explored this crazy new era.
Love it or hate it, The Force Unleashed was a massive undertaking for Star Wars. Much like Shadows of the Empire, it was part of a multimedia project depicting the events between movies, and with the cast and impressive graphics you could sometimes forget that it was just a game. The Force Unleashed finally gave every player the opportunity to play a powerful Force user who wasn't going to play by the rules of the Jedi. Whether it was picking up groups of enemy soldiers and breaking their bodies against a wall, electrifying a TIE fighter and making it your projectile, or lightsaber duels against Jedi and Sith, it was something absolutely fun to play, including a single level as the man-in-black himself for your first playthrough. However, critics of the game disliked the main character's outlandishly powerful abilities and being present for moments like the founding of the Rebel Alliance. The disappointing sequel and subsequent cliffhanger, which [SPOILER ALERT] left us with an absurdly Force-powerful, woman-obsessed clone that managed to kidnap Darth Vader [SPOILERS OVER] took what was a very interesting property and left us all with mixed feelings and unanswered questions. However, the gameplay was amazing if you were looking to just cut loose and be the ultimate Star Wars warrior for a few hours.
Okay, so yeah. That's impressive.
Star Wars, man. There's so many things with it, and we gamers got quite a good haul. I have barely scratched the surface, as Wikipedia will note. I'm sure everyone has a favorite game though, and the Armed Gamer would love to hear about it in the comments below. It could even be some Kinect dancing…
We don't judge. Happy 4th, everyone, and of course, may the Force be with you.
Related ItemsbattlefrontfeaturedgamesI'm Han SoloLucasartsRogue SquadronShadows of the Empirestar warsThe Force Unleashed
← Previous Story An Open Letter to Videogame Customers
Next Story → Nvidia Gameworks Risks Further Fragmenting PC Gaming
About David A. Reeves
David is a 25 year old graduate with a BA in English, and he's wondering how all of this adult stuff crept up on him. He has a large love of Fire Emblem and Final Fantasy, a lack of budget sense during Steam sales, and is involved in an abusive relationship with the MMO genre. Outside of gaming, David can be found reading books with swords and magic, suffering from writer's block on that story he said he'd write, enjoying a hookah or a beer with friends, and trying not to say anything inappropriate despite the overwhelming urge. He's an odd fellow.
EA E3 Press Conference Recap: The Good, The Bad, and the Why?

redpajama_set_name: RedPajamaCommonCrawl


Springtime is motivating. The days are longer, the trees are budding and flowers are in bloom. It's not too hot and it's not too cold – in short, it's the perfect time to lace up your trainers and go for a run, to play a sport, or simply to go for a long power walk.
Whether you're training for this year's marathon, trying to improve your fitness, or even trying to lose weight, you shouldn't underestimate the importance of protein in your diet. Exercise alone is unlikely to produce visible results as quickly as combining a killer workout routine with a healthy diet. We all know about the natural food sources of protein available to us, like lean meat and eggs. But vegans are stuck with legumes, nuts and veggies – and you need to eat an awful lot of them to get the protein you need to build muscle. Protein shakes and snacks are a good substitute, but often these contain whey – a dairy derivative.
Consuming a protein rich snack or shake within twenty minutes after your workout is important for muscle repair and recovery. Many women believe these are fattening and will make you bulk out – but don't worry. There are loads of low-calorie, low-fat and low-carb protein shakes on the market that offer a quick protein punch without compromising your diet. We've put together a list of the best vegan products that are often organic and free from all the nasty additives and sweeteners that you'll find in a lot of the big branded protein products.
TOP TIP: When looking at the label of your foods, if the protein content is a higher number than the sugar/carb content, you're good to go! Otherwise, it's best to avoid.
Body Logix Vegan Protein is an all natural plant-based protein that's free of GMOs and artificial ingredients. Got intolerances? No worries: Bodylogix Vega Protein is dairy, gluten and soy free.
Bodylogix offers a lot more than a snack; it's a whole system with personal trainers, customised weekly meal plans and full body workout plans, as well as suggestions for the right food supplements for your health and body goals. Your custom-made supplement intake plan will help boost energy, shed calories, decrease fatigue and increase your metabolism.
You can also go 'freestyle' and choose your own products, like this natural dark chocolate protein powder, which, when mixed with almond milk, tastes like a healthy chocolate shake.
Pulsin offer a range of products that cater to every taste. Whether you have a sweet tooth and are looking for a high protein, organic snack bar or are looking for a protein powder that offers something a little different, Pulsin is the place to look.
We highly recommend the Peanut Maple protein bars for an afternoon snack! Curbs sugar cravings and gives you a protein kick. We're addicted.
Indigo Herbs of Glastonbury is passionate about promoting a healthy lifestyle, so they offer top quality organic products at affordable prices. They offer loads of products that are packed full of protein and the choice means that they can cater to any taste. Their brown rice protein is easy to use: just sprinkle some powder in your morning cereal or add to a smoothie for a quick and easy protein punch.
*Top tip* these powders are great if you suffer from fatigue or iron deficiency anaemia because they are packed full of iron and essential vitamins. Bonus!
After a lengthy gym session, you can come away feeling ravenous. That's when protein rich snacks come in super handy, and they don't get much cleaner than these protein balls. Made from handfuls of raw pitted dates, cashews, flaked coconut, poppy seeds, vegan plant-based protein and finished off with a refreshing and zest lemony flavour, these will be a reward for your body. Pop a bag into your gym bag so that you always have a snack to nourish your body.
*Top tip* not feeling the lemon flavour? No worries. There's another vegan friendly option made from goji and coconut, delicious!
So, you've done the hard work and now it's time to replenish your resources and fuel your body. Plant Warrior gives you back 18g of plant-based protein per serving, helping your body to recover and ensuring you get the best possible results from your workouts. It's going to help you to build muscle, repair your body after a lengthy gym session, and it's heaps healthier for you than whey based protein thanks to the 5 plant-based proteins that it includes. It's chocolate in flavour, do it's easily blended with some frozen bananas into a chocolate shake, and for every pack you buy, you also help to plant 1 tree. Protein powder with a cause, we like it!
*Top tip* if you've previously dabbled with protein powders and experienced stomach-bloating it's likely to be caused from the whey – so switch to a plant-based brand!
If you're looking for a pre/post-workout snack that is quick and easy, look no further than Bounce Energy Balls. Vegetarian friendly and gluten free, just one of these balls offers 14g of protein. This will be sure to keep you going between meals. We recommend the Peanut Protein Blast ball, packed full of antioxidants and good fats, or the Spirulina Ginseng balls for extra energy!
Looking to make those plant based gains on a vegan diet? Protein World have now added not one, but two vegan friendly protein powders to their range. Made from a combination of 3 different vegan proteins, quinoa, hemp and pea, with added probiotics for optimal gut health, this versatile product can be used in post workout shakes, in smoothies or even in cooking and baking – protein pancakes, anyone?
Hemp Protein is an excellent source of protein derived from whole raw hemp seeds, and contains a comprehensive amino acid blend with live enzymes, Essential Fatty Acids (EFA), vitamins and minerals. Hemp Seeds are rich in essential nutrients including chlorophyll, magnesium, potassium, sulphur, phytosterols, ascorbic acid, beta-carotene, calcium, fibre, histidine, iron, potassium, phosphorus, riboflavin, niacin and thiamine.
You can use this in smoothies, sprinkled on cereal or in vegan yogurts, or you can make tasty protein balls with them at home. Hemp Protein is also an excellent source of protein for vegetarians, vegans or for anyone that suffers with a lactose or gluten intolerance.
These bars are certified vegan, gluten-free, and USDA organic–what's not to love? There are a number of great flavors, and the company is dedicated to environmental sustainability and community involvement.
These top notch hemp protein treats set new standards in healthy eating. This 'legalized' hemp Protein Bar is 100% natural, rich in plant protein, gluten, milk and is also allergen free. To boost nutritional values and improve the bioavailability of minerals, vitamins and proteins, sprouted hemp and chia seeds are used. There's no added sugar or GMOs: just pure goodness!
Flavored with sweet Vanilla, this is rich in plant-based Pea and Hemp proteins that will help to quickly repair muscles after an intense workout. Try mixing yours with almond milk and fruit for a breakfast alternative or snack.
Food Companies Plan to Label GMOs – but Is There More to the Story?


text:
Appy Awards Books, On the Night You Were Born - by Nancy Tillman
by OMMA Editors , May 5, 2014
Kids want to know where kids come from. Actually, they want to know where they came from. ON THE NIGHT YOU WERE BORN--a book from author Nancy Tillman, who helped with the production of the AURYN app—allows parents to insert names, dates, particulars, peculiarities into the child's own birth, complete with polar bears and giraffes and a moon that plays the trumpet. Best of all, there's a scrap book, layers of animation, and the ability to personalize voices.
More from Media Magazine Supplement
Appy Awards Mobile Payments, GoBank
Appy Awards Search Tools, Wajam Mobile
Appy Awards Search Tools, realtor.com Real Estate App
Appy Awards Search Tools, Doorsteps Swipe


text:
Dawn Of War III Review
While there have been almost countless Games Workshop licensed games, especially over the last few years, few have been as successful as the Dawn of War series. After an achingly long eight year wait, Relic Entertainment's newest entry does more than simply follow in the footsteps of its predecessors.
The Space Marines will be the most familiar feeling faction to play as, and have always been a focal point in the Warhammer 40,000 universe. They're the all rounders, with an inherent flexibility to their army composition which includes a versatile mix of specialised units and abilities, helping them stay in the fight.
The Eldar, meanwhile, excel at hit and run tactics and a degree of subterfuge, with their ability to teleport base buildings around the map, set up Webway portals that let you move troops back and forth far quicker than the other races, and some powerful Elite units. They're a tricky race to get to grips with, that's for certain, and their numbers can dwindle quickly in battle, but used well and knowing when to retreat make them particularly powerful.
However, the surprise package for me are the Orks. While they're at their best as a horde of greenskins with a smattering of tougher units and ramshackle vehicles, that's offset by having to micromanage units as they're produced. In order to upgrade a unit, they have to pick up scrap that is dropped at Waaaagh Towers and from destroying enemy buildings and vehicles. Gretchin can also turn that scrap into vehicles at slightly reduces resource cost, and with the Waaagh Towers able to pump out music that stirs units within range into a bloodthirsty frenzy, making them faster and stronger, a good tactic is to turtle across the map, building towers and base buildings as you go to keep the Waaagh steamrolling onward.
Continuing a thread from the second game in the series, Elite units play a major role in battle, with the possibility to bring up to three from a catalogue of nine per race. Summoning them into battle costs Elite Points, and once on the ground, they're a vital source of powerful attacks. Despite being mapped to the function keys at the top of the keyboard, I often found it difficult to get the most out of them in battle, especially when also trying to juggle different unit types with their own specialities. Farseer Macha in particular has a singing spear that can be thrown and combined with her other AoE attacks in ways that only micromanaging can get good use out of.
Once unlocked, either by default or by purchasing them with Skulls, each Elite unit levels up as its used, unlocking different perks over time. Progress carries over between single player and multiplayer, as you buy new Elite units for your race, and using them in battle levels them up to grant different passive perks and abilities for your army when they're present. Through Elites and dozens of unlockable combat doctrines, you can put a personalised spin on your army, emphasising certain units through, for example, having a shield on your Predator tanks or having Devastator Marines be able to pin enemies and prevent them using their abilities.
The campaign flies back and forth between all three races, as various factions vie for control of an ancient and immensely powerful Eldar artefact. Initially, it's a touch too po-faced and it stays rather serious throughout, but as the trickery, deceit and backstabbing ramps up, it soon wraps you up in its engaging story. One thing that certainly helps are the Orks, with Gorgutz and his shouty minions making for a nice change of pace from the terribly aloof Eldar, led by Farseer Macha and the righteousness of Chapter Master Angelos of the Blood Raven Space Marines.
Mission variety is great as well, shifting from controlling a handful of units on a do or die mission to base building and map control, through to a variety of climactic battles. It can initially be a little confusing, as the way that the campaign jumps from one race to another means you have to adapt to that race's particular quirks, but it makes sure to reinforce a particular race's core mechanics, so that you remember how to teleport the Eldar base or that Orks have to constantly make use of scrap.
Even on normal difficulty, it can still be an exacting challenge at times, when it throws seemingly overwhelming waves of enemies at you. They're possible to deal with if you're well prepared enough or have the ability to manage the myriad of different abilities at your disposal, but I was caught out on a couple of occasions. When that happened, I butted into the game's abject lack of checkpointing, a baffling omission in this day and age, but one I soon learnt to deal with through manual saves and falling back on the classic tactic of using weight of numbers.
That's accentuated by the way that Dawn of War III now handles cover. Dotted around the maps are specific points that you can move troops into, that once captured gain a shield. Troops aren't locked away inside, but can run in and out as they see fit, and that applies to enemies as well, meaning that while protected from enemy gunfire, they're still susceptible to melee attacks, especially Assault Marines and their ilk that can leap through the sky to crash into combat. Alongside designated shadowy hiding spots, it's a far cry from the cover system of Relic's previous games, whether Dawn of War or Company of Heroes, and saps a lot of the potential nuance from a particular encounter. It's this that is the biggest sign of Relic gearing their game for scale and speed, than the nitty-gritty smaller battles of Dawn of War II.
Taking the game online, you're confronted with Dawn of War III's new multiplayer mode, which strays away from the classic control points and deathmatch modes. It's another move that will put a few noses out of joint among fans of previous games in the series, but Power Core is a well thought out mode that allows for the battles to swing back and forth much better than before, in taking a single leaf out of the MOBA's playbook and adding layered objectives.
While you'll be fighting over control points to build units and farm Elite Points, you also have an overarching objective to consider. In order to defeat the other team, you must first destroy one of their shield generators, then take out one of the turrets that are a step closer to their base, before finally destroying the core. Maps all feature multiple turrets and shield arrays, meaning that you can strategically push down one side of the field of battle or fight on multiple fronts.
It also means that you can lose a fight but still win the overarching battle. The turrets in particular can put out a lot of damage and a staunch defence there can easily turn the tide and create an opening for your own assault on the enemy. However, a lot can ride on how well you manage your Elite units, and in particular the most powerful and most expensive towering heroes like Imperial Knight Solaria or the Eldar's Wraithknight, which tower over any other unit on the map. If you can take and hold the control point that earns you Elite Points at a faster rate, you have a clear advantage in being able to bring your most powerful units to bear, even if they can be countered with sufficient concerted fire or using your race's superpower attack like the Orbital Bombardment or Eldritch Storm.
What's Good:
Challenging and engaging single player campaign
Three strongly contrasting races to play as
Returns to the scale and scope of the original Dawn of War
Power Core's layered objectives alter the pace of multiplayer
What's Bad:
New cover system is lacking in nuance
Too much micromanagement for more casual players
Only the new Power Core mode in multiplayer
Baffling lack of checkpoints in the campaign
Where most game series can rest on their laurels, Dawn of War III is essentially the third reinvention of Relic's Warhammer 40,000 RTS. As the game captures a sense of grand scale, it loses some of the strategic nuance in changes to the cover system, and it's a disappointment that tried and tested multiplayer modes aren't included as well. That said, the campaign makes for an enjoyable and challenging romp through yet another crisis in the 40K universe, and while some gameplay elements have been simplified, the three deeply contrasting races offer plenty for players to sink their teeth into online.
Sega Made An Actual Warhammer 40,000 Power Fist, Punched Things With It
Dawn Of War III's Launch Trailer Heralds The Start Of Its Open Beta Weekend
Dawn Of War III Open Beta Kicks Off On 21st April
Matt Kernachan On Dawn Of War III's New Modes, Huge Scale & Story
Tony Cawley	 20/04/17, 16:09
Wish these games would come to console, I'm dying for something along these lines.
Stefan L	 20/04/17, 17:07
The game would have to be very, very different compared to how DoW3 is in order to suit console play. Halo Wars 2 does it very well, but obviously that's an exclusive.


The Menuhins is the story of a miraculous family of great musicians and religious leaders. It is told here for the first time by the nephew of Yehudi Menuhin, the violinist regarded as the greatest musical prodigy since Mozart. Elements of the story have been told before: how two Russian Jews living in San Francisco, Moshe and Marutha Menuhin, raised a brood of child prodigy musicians that astounded the world. It seemed the stuff of legend. Yehudi, with his violin and his younger pianist sisters, Hephzibah and Yaltah, displayed as children a musical gift rarely equaled by the finest musicians. But few outside the family have known the true dimensions of the Menuhin miracle, for the incredible Menuhin children were not the first prodigies in the family's unique history. For centuries, the Menuhin line had been producing geniuses, yet the elder Menuhins withheld the details of Yehudi's exotic lineage. There was The MaHaRal, a great rabbi and the creator of the legendary Golem; Schneur Zalman, the founder of Chabad Hassidism and the composer of powerful religious songs; and all the great Schneersohns, the hereditary first family of the Lubavitch Hassids. Although Rolfe, the son of Yaltah Menuhin, often focuses on his famous uncle, he has ventured beyond the Menuhin public image with an intimacy that only a Menuhin could bring to this family portrait. From the ghettos and pogroms of czarist Russia, to the settlements in Palestine at the turn of the century, to the Jewish communities in New York and San Francisco in the twenties, Rolfe takes the reader on his own personal odyssey into the past. It is often a difficult and painful story, for The Menuhins is Rolfe's search for his own place in the Menuhin tradition. He tells about the joys and frustrations of growing up a Menuhin: his flirtations with the Hassidic Judaism of his ancestors; his rejection by his grandfather, the volatile anti-Zionist; and his own discussions with Yehudi about things such as world peace.
Here is a personal yet universal book which not only provides illuminating new insight into two important women artists, but also raises many provocative questions about the effects of societal and familial constraint on the lives of brilliant women. In recent years, much light has been shed on the remarkable life and writing of American author Willa Cather (1873-1947), many of whose novels explored the subject of women and creativity. Now, acclaimed author Lionel Rolfe has delved into his family history to reveal the extraordinary story of the friendship between Willa Cather and his mother, piano prodigy Yaltah Menuhin (1920-2001). Against the tumultuous backdrop of America and Europe in the early and mid-20th century, Rolfe presents the engrossing chronicle of his mother's struggle as a budding musician, her tragic relationship with her own parents, and the solace she found when Cather became her mentor—a mutually inspiring friendship which would endure for decades and would see Yaltah inspiring some of the most memorable heroines in Cather's novels, most notably Lucy Gayheart.


In light of the recent election, EWNJ released a statement that addresses the broader implications that it has for gender parity in leadership. Read the statement on NJBIZ.
On Tuesday October 25th, EWNJ hosted Breakfast with the CEO with Monica C. Smith, CEO of Marketsmith. Monica discussed the difficulties that women leaders in particular have to face in their ascension to the C-Suite. View the event photos on the Gallery page or check out the media coverage at NJBIZ.
Click here to check out The Star Ledger's coverage of the call to action.
Visit our Research page to read the full report or for more information on the pledge.
On May 5, 2016, our biennial Salute to the Policy Makers Gala, which honored 39 of New Jersey's most influential and high achieving women, was a resounding success. View the event photos on the Gallery page. Check out the media coverage at NJBIZ (media sponsor), Jersey Journal, Chasing News, and Asbury Park Press.


Whitney started dancing at Robb Card Dance Studio in 2003 studying different forms of dance, including ballet, tap, jazz and hip hop.
She has competed in dance competitions around the Okanagan and has taught classes in many different high schools and dance camps. Whitney has been teaching hip hop of all ages and levels at Robb Card Dance studio since 2009 and will always integrate different styles of hip hop in every class!


But speak thou the things which become sound doctrine.
Your job is to speak out on the things that make for solid doctrine.
6 Take heed unto thyself, and unto the doctrine; continue in them: for in doing this thou shalt both save thyself, and them that hear thee.


A 22-year-old woman has died after falling from a horse at a racing stables in Scotland.
Iain Jardine Racing, based in Dumfries and Galloway, said that team member Natasha Galpin, 22, had died after the "tragic accident" on Tuesday morning.
In a statement issued via the National Trainers Federation, the trainer said staff at the yard were "distraught at the loss of a colleague and friend" but had been "extremely supportive of each other".
It is understood Ms Galpin was from Laggan in the Highlands.
The British Horseracing Authority's chief executive Nick Rust said in a statement: "I know I speak for everyone at the BHA when I say we are truly shocked and devastated about this tragic news.
"While such incidents are extremely rare, there is an element of risk every time a rider sits on any horse and as such we should never take for granted the bravery and commitment of our workforce. Our sport relies on their dedication in providing first class care for our horses, and we are grateful to them all.
Tragic accidents like this are thankfully rare in racing stables but highlight the risks that riders face every day.
Iain Jardine has a growing reputation in the sport, with a successful young team and this will be a devastating blow to all concerned.
He trained Nakeeta to win the competitive Ebor Handicap at York in 2017 and the horse went on to run twice in Australia's Melbourne Cup – the "race that stops a nation" – including a highly creditable fifth later that year.
The tight-knit racing community, particularly in Scotland, is sure to rally round with support and the yard will continue as best it can for racehorse owners, and in memory of the rider.


text:
/*
  Written by: Ryan Kruse
  This component handles the search bar. It searches our local database for the string and youtube.
  If the user clicks a youtube result, it will attempt to add it to our database iff it isn't already in there

  Note:
    This component is very crazy right now, it will be refactored later! --Ryan Kruse
*/
import { Component, OnInit } from '@angular/core';
import { trigger, state, animate, transition, style } from '@angular/animations';
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
import { Observable, Subscription } from 'rxjs';

import { ApiService, DataShareService } from '../services/services';
import { Artist, Album, MessageType, SearchResults, Song, YoutubeResult, LastfmTrack, MessageOutput } from '../interfaces/interfaces';
import { items } from '../interfaces/non-local/youtuberesult';

@Component({
  selector: 'app-search-results',
  templateUrl: './search-results.component.html',
  styleUrls: ['./search-results.component.css', '../global-style.css'],
  animations: [
    trigger(
      'showState', [
        state('show', style({
          opacity: 1,
          visibility: 'visible'
        })),
        state('hide', style({
          opacity: 0,
          visibility: 'hidden'
        })),
        transition('show => *', animate('200ms')),
        transition('hide => show', animate('400ms')),
      ]
    )
  ]
})

export class SearchResultsComponent implements OnInit {
  MessageType = MessageType;
  mouseOver: number = -1;

  /**
   * Supported comment
   */
  searchString: string = "";

  searchResults: SearchResults;

  //Youtube Search Fields:
  youtubeResults: Observable<YoutubeResult[]>;
  lastFMResults: LastfmTrack;

  maxNumResultsToFetch: number = 50;
  currentNumberResultsShowing: number = 25;

  guessedArtist: string;
  guessedSong: string;

  songId: string;

  //UI Fields:
  showArtistList: boolean = true;
  showAlbumList: boolean = true;
  showSongList: boolean = true;

  //Last FM Fields:
  lastFMArtist: string = "";
  lastFMAlbum: string = "";
  lastFMSong: string = "";

  //Final Step Fields:
  finalArtist: Artist;
  finalAlbum: Album;
  finalSong: Song;
  finalArtistInDB: boolean = false;
  finalAlbumInDB: boolean = false;
  finalSongInDB: boolean = false;

  //Modal Fields:
  modalHeader: string = "Is this the correct song and artist?";
  currentStep: number = 1;

  constructor(private _apiService: ApiService, private _dataShareService: DataShareService, private _modalService: NgbModal) { }

  ngOnInit() {
    this._dataShareService.searchString.subscribe(res => this.updateSearch(res));
  }

  /**
   * This method is called whenever our search string is changed
   * @param {string} search The new search string
   */

  private updateSearch(search: string) {
    this.searchString = search;

    if (this.searchString !== null && this.searchString.length > 0) {
      this.youtubeResults = this._apiService.getYTSearchResults(this.searchString, this.maxNumResultsToFetch);
      let s: Subscription = this._apiService.getDBSearchResults(this.searchString).subscribe(
        d => this.searchResults = d,
        err => console.log("UNABLE TO FIND", err),
        () => s.unsubscribe()
      );
    } else {
      this.searchResults = null;
    }
  }

  /*
    This method is called when the user clicks a youtube result. It splits the title of the video on: '-', ':', '
    @param result: items - The result returned from the YOUTUBE API
    @param content - Used to open our modal
  */
  public selectYoutubeSong(result: items, content) {
    //Parse out the title with regex:
    let title: string = result.snippet.title;

    let splitOnDash: string[] = title.split("-");
    let splitOnCol: string[] = title.split(":");
    let splitOnPar: string[] = title.split('"');

    if (splitOnDash.length >= 2) {
      this.guessedArtist = splitOnDash[0];
      this.guessedSong = splitOnDash[1];
    } else if (splitOnCol.length >= 2) {
      this.guessedArtist = splitOnCol[0];
      this.guessedSong = splitOnCol[1];
    } else if (splitOnPar.length >= 2) {
      this.guessedArtist = splitOnPar[0];
      this.guessedSong = splitOnPar[1];
    }

    this.guessedSong = this.guessedSong.replace(/\[[^\]]*?\]/g, ' ');
    this.guessedSong = this.guessedSong.replace(/ *\([^)]*\) */g, " ");

    this.guessedArtist = this.guessedArtist.trim();
    this.guessedSong = this.guessedSong.trim();

    this.songId = result.id.videoId;

    //Open the model for the user so they can correct any errors
    this.openModal(content);
  }

  /*
    This method is called after the youtube video title has been parsed
  */
  private openModal(content) {
    //Clear all of our values to make sure they don't appear twice (or trigger events early)
    this.lastFMArtist = "";
    this.lastFMAlbum = "";
    this.lastFMSong = "";

    this.finalArtist = null;
    this.finalAlbum = null;
    this.finalSong = null;
    this.finalArtistInDB = false;
    this.finalAlbumInDB = false;
    this.finalSongInDB = false;

    this._modalService.open(content).result.then((result) => { //On close via save
      this.addNeededEntitiesToDB(); //When we save, we attempt to add all needed entities to the DB
      this.currentStep = 1;
    }, (reason) => { //on close via click off
      this.currentStep = 1;
    });
  }

  /*
    This method is called when the user clicks an artist from the DB results
    It changes our search to the given value and updates the view
    @param search: string - the new string to search
  */
  public createNewSearch(search: string) {
    this._dataShareService.changeSearchString(search);
  }

  /*
    This method is called when the user clicks on a song from the DB results
    It changes the current video to the given song so that the user can preview it
    @param song: Song - The song to preview
    @side-effects - Changes the youtube video to the provided song
  */
  public previewSong(song: Song) {
    this._dataShareService.changePreviewSong(song);
  }

  /*
    This method is called when the user clicks the show more button under the youtube tab
    It brings more results to the view iff we aren't already at the max view size
  */
  public showMoreYoutube() {
    this.currentNumberResultsShowing *= 2;

    if (!this.canShowMore()) this.currentNumberResultsShowing = this.maxNumResultsToFetch;
  }

  /*
    This method is called to check if we can display more search results to the screen
    @return boolean - If the number of result showing is less than the max number of results
  */
  public canShowMore(): boolean {
    return this.currentNumberResultsShowing < this.maxNumResultsToFetch;
  }

  /*
    This method is called to enable/disable the buttons in our create song modal. It is called per step and will return if
    at that step we can move on.
    @return boolean - If we meet the requirements of step n to continue to step n+1
  */
  public canMoveToNewStep(): boolean {
    switch (this.currentStep) {
      case 1:
        return this.guessedArtist.length > 0 && this.guessedSong.length > 0;
      case 2:
        return this.lastFMArtist.length > 0 && this.lastFMAlbum.length > 0 && this.lastFMSong.length > 0;
      case 3:
        return (this.finalArtist !== null && this.finalAlbum !== null && this.finalSong !== null) || this.lastFMArtist.length > 0 && this.lastFMAlbum.length > 0 && this.lastFMSong.length > 0;
      default:
        return false;
    }
  }

  /*
    This method is called everytime we move to a new step. It takes the dir given and moves us +/- 1 steps. Each time this is called,
    we perform a different action based on the step we are given
  */
  public doActionOnStepChange(dir: number) {
    this.currentStep += dir;
    switch (this.currentStep) {
      case 1: //Called when the modal is opened, displays the parsed youtube title
        this.modalHeader = "Is this the correct artist and song?";
        break;
      case 2: //This step resets lastFM values and attempts to load the album for the given artist and song
        this.modalHeader = "Is this the correct album?"
        this.lastFMArtist = "";
        this.lastFMAlbum = "";
        this.lastFMSong = "";
        this.loadLastFMTrack();
        break;
      case 3: //Called after the user confirms the last FM, it checks our local DB to see if we have any of the three (artist, album, song) in our DB
        this.modalHeader = "Does everything look right?"
        this.updateSearch(this.lastFMArtist);
        this.finalizeData();
        break;
      default:
        break;
    }
  }

  /*
    This method is called on our second step, it attempts to load the album given an artist and album
  */
  private loadLastFMTrack() {
    let track: LastfmTrack;
    let s: Subscription = this._apiService.getLastfmResults(this.guessedArtist, this.guessedSong).subscribe(
      d => this.lastFMResults = d,
      err => console.log(err),
      () => {
        s.unsubscribe();
        this.validateLastFMData();
      }
    );
  }

  /*
    This method is called after the lastFM api returns a result (can be 200 or err)
  */
  private validateLastFMData() {
    //If it cannot find the artist, album, or track, we simply set the artist and song to what we guessed in the last step
    if (!this.lastFMResults.track || !this.lastFMResults.track.album || !this.lastFMResults.track.artist) {
      this.lastFMArtist = this.guessedArtist;
      this.lastFMSong = this.guessedSong;
    } else { //if we do find them, then we fill out our fields with those values
      this.lastFMArtist = this.lastFMResults.track.artist.name;
      this.lastFMAlbum = this.lastFMResults.track.album.title;
      this.lastFMSong = this.lastFMResults.track.name;
    }
  }

  /*
    This method is called on the third step. It calls our local DB to get search results that would work with the guessedArtist
    The reason for this is because it greatly reduces the amount we must look on the client side!
  */
  private finalizeData() {
    this.lastFMArtist = this.lastFMArtist.trim();
    this.lastFMAlbum = this.lastFMAlbum.trim();
    this.lastFMSong = this.lastFMSong.trim();

    //Check to see if we have the artist in the DB:
    let s: Subscription = this._apiService.getDBSearchResults(this.lastFMArtist).subscribe(
      d => this.searchResults = d,
      err => console.log("error", err),
      () => {
        s.unsubscribe();
        this.checkInDatabase();
      }
    );
  }

  /*
    This method is called after our api returns our search results from finalizeData();
    It has three core checks, each one following the other iff the last check returned true:
      First: It checks to see if we have the artist in our local database
      Second: It checks to see if the artist has the given album
      Third: It checks to see if the album has the given song
    If all three checks are true, then we do nothing
    If one of the checks fails, then we must add everything below that check
      IE: Artist->Album->Song || Album->Song || Song
  */
  private checkInDatabase() {
    let potentialArtist: Artist = this.searchResults.artists.find(x => x.name.toLowerCase() === this.lastFMArtist.toLocaleLowerCase());

    if (potentialArtist) {
      this.finalArtistInDB = true;
      this.finalArtist = potentialArtist;

      let potentialAlbum: Album = this.searchResults.albums.find(x => x.name.toLowerCase() === this.lastFMAlbum.toLocaleLowerCase());

      if (potentialAlbum) {
        this.finalAlbumInDB = true;
        this.finalAlbum = potentialAlbum;

        let potentialSong: Song = this.searchResults.songs.find(x => x.name.toLowerCase() === this.lastFMSong.toLocaleLowerCase());

        if (potentialSong) {
          this.finalSongInDB = true;
          this.finalSong = potentialSong;
        }
      }
    }
  }

  /*
    This method is called at the very end, it checks what needs to be added to the database and calls the appropriate method to do so
  */
  public addNeededEntitiesToDB() {
    if (!this.finalArtistInDB) {
      this.createNewArtist();
    } else if (!this.finalAlbumInDB) {
      this.createNewAlbum(this.finalArtist);
    } else if (!this.finalSongInDB) {
      this.createNewSong(this.finalArtist, this.finalAlbum);
    } else {
      this.triggerMessage("", "Song already in database", MessageType.Notification);
    }
  }

/*
  The next three methods cascade and add their respective entity to the database
*/
  private createNewArtist() {
    let artist = {
      name: this.lastFMArtist
    };

    let s: Subscription = this._apiService.postEntity<Artist>("Artists", artist).subscribe(
      d => this.finalArtist = d,
      err => console.log("unable to create artist"),
      () => {
        s.unsubscribe();
        this.createNewAlbum(this.finalArtist);
      }
    );
  }

  private createNewAlbum(artist: Artist) {
    let album = {
      artistId: artist.artistId,
      name: this.lastFMAlbum
    };

    let s: Subscription = this._apiService.postEntity<Album>("Albums", album).subscribe(
      d => this.finalAlbum = d,
      err => console.log("unable to create album"),
      () => {
        s.unsubscribe();
        this.createNewSong(this.finalArtist, this.finalAlbum);
      }
    );
  }

  private createNewSong(artist: Artist, album: Album) {
    let song = {
      albumId: album.albumId,
      artistId: artist.artistId,
      name: this.lastFMSong,
      url: "https://www.youtube.come/watch?v=" + this.songId
    };

    let s: Subscription = this._apiService.postEntity<Song>("Songs", song).subscribe(
      d => this.finalSong = d,
      err => console.log("unable to create song"),
      () => {
        s.unsubscribe();
        this.triggerMessage("", "Successfully Added!", MessageType.Success);
        this._dataShareService.changeSearchString(this.finalArtist.name);
        this.finalArtistInDB = false;
        this.finalAlbumInDB = false;
        this.finalSongInDB = false;
        this.finalArtist = null;
        this.finalAlbum = null;
        this.finalSong = null;
      }
    );
  }

  /**
   * Called when we need to display the album name with the artist name
   *
   * @param {Album} album The album to get the proper string for
   *
   * @returns Either the album name and artist name or just the album name
   */
  public getAlbumArtistName(album: Album): string {
    return album.artist ? album.name + " (by " + album.artist.name + ")" : album.name;
  }

  /**
   * Called when we need to display the song name with the artist name
   *
   * @param {Song} song The song to get the proper string for
   *
   * @returns Either the song name and artist name or just the song name
   */
  public getSongArtistName(song: Song) {
    return song.artist ? song.name + " (by " + song.artist.name + ")" : song.name;
  }

  /*
    Used to trigger snackbar events
  */
  private triggerMessage(message: string, action: string, level: MessageType) {
    let out: MessageOutput = {
      message: message,
      action: action,
      level: level
    };

    this._dataShareService.changeMessage(out);
  }
}

redpajama_set_name: RedPajamaGithub


text:
\section{Introduction}
\label{intro}

Estimation of power spectra from randomly sampled data is still a matter of concern, and several strategies have been proposed to obtain the best (most accurate and least noisy) and fastest (shortest data processing) algorithms. The foundation was laid already in the 1950ies by e.g. Blackmann and Tukey~\cite{1} and by Shapiro and Silvermann~\cite{2} and further developed by e.g. Gaster and Roberts in the 1970ies and 1980ies~\cite{3,4b,5}. The work by Gaster and Roberts in particular has served as a reference for much of the subsequent development of power spectral estimation of especially laser Doppler anemometer (LDA) measurements. However, due to the limitations in computing power at that time, these investigations basically assumed point sampling in space and time, and many issues connected with the processing of signals from a system with a finite measurement volume (MV) were unresolved.

In the present work we shall present the results of an investigation of the effects of a finite measurement volume resulting in a finite sampling time, during which the detector and signal processor are busy processing the current data point, and in a finite dead time, in which the system is demobilized and unable to receive a new data point, on the measured power spectra from an instrument collecting randomly arriving data, for example a laser Doppler anemometer. Initially, we focus on processes in which the sampling and sampled processes can be assumed statistically independent. However, throughout the work with computer generated LDA data we apply the so-called residence time corrected spectral estimators that compensate for the fact that the sample rate is correlated with the magnitude of the velocity measured by a burst-mode LDA.

In this paper we review the ideal case of random sampling of a stationary random process represented by a string of delta functions arriving at random times. In the limit of infinite data sets we retrieve the mean square constant offset known from previous investigations, e.g. Gaster and Roberts~\cite{3,4b,5}. We first review the complications arising due to a finite record length and from digital processing. Then, to mimic the spatial/temporal filtering introduced by all practical measurement instruments, we extend the theory to include a signal that is measured as an average over a top hat sampling function and show that the effect on the power spectrum is a filtering effect with a sinc-squared transfer function. Finally, we consider the effect of a finite dead time, during which the instrument locks out new acquisitions, and show that the resulting spectrum is severely biased when the mean sampling interval approaches the dead time of the detector and signal processor. We illustrate the problems with analytical expressions and plot the effect of filtering and dead time on a typical von K\'{a}rm\'{a}n-like power spectrum as it occurs in turbulent fluid flow. We also compare the analytical expressions with results of data processing of a set of data generated by random sampling of a random process with a von K\'{a}rm\'{a}n power spectrum and show excellent agreement with the analysis.

\section{The system under investigation} \label{sec:2}

We shall consider a measurement system consisting of a detector and signal processor whose function it is to obtain data from a random process, say, $u(t) = \overline{u} + u'(t)$, where $\overline{u}$ is the temporal mean and $u'(t)$ is the fluctuating part. In the following we shall refer to the carrier of the information, e.g. a Doppler modulated electronic pulse, as the ``signal'' and to the result of the measurement, $u(t)$, as the ``velocity''. We consider a burst type processor, where a signal is detected by a burst detector when the signal level exceeds a certain threshold. The burst ends after a time $\Delta t_s$, which we shall denote the residence time or transit time. During the burst, the signal is digitized and processed to provide one numerical velocity output for each burst. We assume the processing of a signal burst starts immediately after the burst detection and continues through a processing time $\Delta t_p$, which ideally would be equal to $\Delta t_s$, but could also be a fixed value, smaller than $\Delta t_s$, determined by the function of the signal processor. Finally, we may consider a case where the processor needs some time to transfer the data point to the data processor (i.e. computer) before it is ready for the next measurement. We denote the total time from the threshold burst detection until the processor is again ready for a measurement, the dead time, $\Delta t_d$. The total output from the signal processor for each burst is the measured velocity, $u_0(t_k)$, the residence time, $\Delta t_s$, and the time of arrival, $t_k$. See Figure~\ref{fig:Fig1} for an illustration of the detection model.

\begin{figure*}[!h]
  \center{\includegraphics[width=0.5\textwidth]{figure1_1..eps}
\caption{The sampling process.} \label{fig:Fig1}
\end{figure*}

We assume a sampling function, $g(t)$, which assigns the measurement to the particular arrival times $t_k$, and describes the detector response and the statistical properties of the sampling process. The measured signal, $u_0(t)$, can then be written as a continuous function of time (see, e.g., George \textit{et al.}~\cite{11})
\begin{equation}
u_0(t) = u(t)g(t).
\end{equation}

\subsection{Ideal sampling}

Ideally, a measurement of a time dependent process should occur at a single point in space and time. We may represent random sampling of such a process by a sampling function, which is a string of delta-functions placed at random times, say $t_k$:
\begin{equation}
g(t) = \frac{1}{\nu} \delta(t-t_k),\qquad t_k\,\mathrm{random}
\end{equation}
Note that we have normalized by $\nu$, the average number of samples per unit time in order to make the sampling function $g(t)$ dimensionless, see~\cite{4}.

Figure~\ref{fig:Fig2} is a sketch of a typical $g(t)$.

\begin{figure*}[!h]
  \center{\includegraphics[width=0.5\textwidth]{figure2_1..eps}}
\caption{Ideal random sampling represented by a string of delta functions weighted by $1/\nu$ at random times $t_k$.} \label{fig:Fig2}
\end{figure*}

Thus the measured signal becomes
\begin{equation}\label{eq:3}
u_0(t) = u(t) \cdot \frac{1}{\nu}\delta(t-t_k),\qquad t_k\,\mathrm{random}
\end{equation}

\subsubsection{First order statistics}
Since our sampling process is a stationary random process, we can use the equivalence of time and ensemble averaging to write:
\begin{eqnarray}
\overline{g(t)} & = & \lim_{T \rightarrow \infty} \frac{1}{T}\int_{0}^{T} g(t)\,dt \nonumber \\
& = & \lim_{T \rightarrow \infty} \frac{1}{T}\int_{0}^{T} \sum_{k=1}^N \frac{1}{\nu} \delta(t-t_k)\,dt \nonumber \\
& = &  \lim_{T \rightarrow \infty} \frac{1}{\nu T} \sum_{k=1}^N \int_{0}^{T} \delta(t-t_k)\,dt
\end{eqnarray}
where $N$ is the number of samples in time $T$ and random.  But the integral over each delta function is unity  and the expected value of $N$, say $\langle N \rangle$, is just $\nu T$;
so
\begin{equation}
\overline{g(t)}  = 1
\end{equation}
Thus the normalization chosen for $g(t)$ gives it a mean value of unity.

Assuming statistical independence between the measurement process and the sampled process, the mean value of the sampled velocity is then
\begin{equation}
\overline{u_0(t)}= \overline{g(t)} \cdot \overline{u(t)} = \overline{u}   \label{eq:meanuo}
\end{equation}

\subsubsection{Second order statistics: the autocovariance and power spectrum}

\noindent {\bf The autocovariance function}

\noindent The sampling function autocovariance $\langle g(t) g(t+\tau) \rangle$ can be expressed as (see Appendix C in Velte~\cite{4}, George \textit{et al.}~\cite{11}):
\begin{equation}
\overline{g(t) g(t+\tau)}= 1 + \frac{1}{\nu}   \delta(\tau) \label{eq:gcorrelation}
\end{equation}

If the measurement process and the sampling process are statistically independent, the correlation for the measured signal can be written as:
\begin{eqnarray}
 \overline{u_0(t) u_0 (t+\tau)} &  = & \overline{u(t)g(t)\cdot u(t+\tau)g(t+\tau)} \nonumber \\
&  = & \overline{u(t)u(t+\tau)} \cdot \left [1 + \frac{1}{\nu} \delta(\tau) \right ]
\end{eqnarray}

\noindent {\bf The Power Spectrum}

\noindent The power spectrum is found by using the Wiener-Khinchine theorem:
\begin{eqnarray}
S_{u_0}(f) &=& FT \left \{\overline{u_0(t) u_0 (t+\tau)} \right \} \nonumber \\
&=& FT \left \{ \overline{u(t) u (t+\tau)} \cdot  \overline{g(t) g (t+\tau)}\right \} \nonumber \\
&=& FT \left \{ \overline{u(t) u (t+\tau)}\right \} \otimes FT \left \{ \overline{g(t) g (t+\tau)}\right \} \nonumber \\
&=& S_u(f) \otimes S_g(f)
\end{eqnarray}
where FT denotes the Fourier transform. $S_u(f)$ corresponds to the true spectrum of $u$, and $S_g(f)$ is the Fourier transform of the sampling function ACF:
\begin{equation}
S_g(f) = \delta(f) + \frac{1}{\nu}. \label{eq:Sg}
\end{equation}
Thus the spectrum of $u_0(t)$ is given by:
\begin{equation}
S_{u_0}(f)= S_{u}(f) + \frac{\overline{u^2}}{\nu}. \label{eq:idealspectrum}
\end{equation}
Or if one splits the instantaneous velocity into mean and fluctuating parts:
\begin{equation}
S_{u_0}(f)= S_{u'}(f) + \overline{u}^2\delta (f) + \frac{\overline{(\overline{u}+u')^2}}{\nu}.
\end{equation}

\begin{figure*}[!h]
  \center{\includegraphics[width=0.5\textwidth]{figure3_2..eps}
\caption{The measured spectrum consists of the true spectrum and constant spectral offset.} \label{fig:Fig4}
\end{figure*}

The measured spectrum is identical to the true spectrum plus a constant offset that does not include any spectral information, see Figure~\ref{fig:Fig4}. This term is a consequence of the way we calculate the power spectrum.  The contribution of the mean velocity is normally eliminated in processing, so only the contribution of the variance remains.  It has been suggested  by Gaster and Roberts~\cite{3} and others (us included~\cite{11,4,6b,12}) that this constant offset can be subtracted, or eliminated by processing (e.g.~\cite{4,12}).  Unfortunately as demonstrated in the following sections, the problem is somewhat more complicated because of real signal processing concerns.  The problem of finite time of measurement is well-known, but often the consequences are not realized. Further, the problems of dead-times and measuring time do not seem to have been addressed at all. These problems form the main point of this paper.

\subsection{Finite Measurement Records}

\subsubsection{Spectrum via Correlation Function}

Since practical measurement records are by necessity bound in time, the analysis is always performed using finite windows. The resulting spectrum is thus a convolution of the spectrum of the original signal with the Fourier transform of a finite time window function. Exactly which window depends on the method of processing.  The most common (especially in LDA applications) has been to compute the ACF first using the so-called `time-slot approximation', then transform it to obtain the spectrum.  If the correlation function is simply truncated at the largest time lag possible, say $(-T,T)$, the resulting transformation is:
\begin{eqnarray}
S_T(f) & = & \int_{-T}^{T} e^{-i 2 \pi f \tau}~C_u(\tau)\, d\tau \nonumber \\
& = & \int_{-\infty}^\infty S(f-f_1) W_{tophat}(f_1)\,df_1  \label{eq:finitetimecorrelationmethod}
\end{eqnarray}
where
\begin{equation}
W_{tophat}(f) = \int_{-T}^{T} e^{-i 2 \pi f \tau} df = T \left[ \frac{\sin(2\pi f T)}{2\pi f T} \right] = T \,\mathrm{sinc} (2 \pi f T)
\end{equation}
Note that in the limit as $T \rightarrow \infty$, $W_{tophat}(f) \rightarrow \delta(f)$, so the infinite domain spectrum is recovered. The spectrum of our randomly sampled signal of infinite record length in equation~(\ref{eq:idealspectrum}) can be substituted into equation~(\ref{eq:finitetimecorrelationmethod}) to obtain the finite time estimator as:
\begin{equation}
S_{u_0,\,T}(f) = \int_{-\infty}^\infty S_u(f-f_1) W_{tophat}(f_1)\,df_1  ~ + ~ \frac{\overline{u^2}}{\nu} \label{eq:finitetimespectrum}
\end{equation}

\subsubsection{The direct spectral estimator}
An alternative to the time-slot approximation to spectral analysis is to use the direct spectral estimator proposed by George \textit{et al.} (1978). For an \textit{infinite time-interval}, the so-called direct method is mathematically equivalent to the correlation method which goes by way of the ACF and the Wiener-Khinchine theorem. However, the direct method is the preferred method of the two mainly for two reasons; The slotting method re-introduces aliasing by arranging the data into equi-spaced slots and the direct method is often computationally more efficient in array based math software. We next display the direct method applied to delta function sampling.

To see this, consider first the Fourier transform of $u_0(t)$ {\it in the sense of generalized functions} (c.f.~\cite{Lumley1970}) of the sampled signal, which is {\it defined} to be the following:
\begin{equation}
\tilde{u}_0(f) = FT_{gf}\{u_0(t)\} \equiv \lim_{A \rightarrow \infty} \int_{-\infty}^\infty e^{-i 2 \pi f t} u_0(t) g_A(t) \,dt
\end{equation}
where $g_A(t)$ makes the integral converge and $\lim_{A \rightarrow \infty} g_A(t) = 1$. It is straightforward to show that if $u(t)$ is a stationary random process, then the Fourier coefficients are uncorrelated at different frequencies and
\begin{equation}
\langle \tilde{u}_0^*(f) \tilde{u}_0(f') \rangle \,df \,df' = S_{u_0}(f) \delta(f'-f) \,df \,df'
\end{equation}
where $S_{u_0}(f)$ is exactly the spectrum given in equation~(\ref{eq:idealspectrum}).

But we never have an infinite record length over which to compute the transform, so George \textit{et al.}~\cite{11} (by analogy with continuous signal analysis) suggested using the {\it finite time transform} given by:
\begin{equation}
\tilde{u}_{0,T}(f) =  \int_{-T/2}^{T/2} e^{-i 2 \pi f t}   u_0(t) \, dt
\end{equation}
(Note that we have shifted the origin for the beginning of the record to be $-T/2$ to avoid a phase shift, but since we will multiply the finite Fourier transform by its complex conjugate, this was not really necessary and can be abandoned with the practical algorithm.)
The digital implementation of this has been discussed in~\cite{10}, but for now note that the finite record spectral estimator can be computed from this as:
\begin{equation}
\hat{S}_{u_{0},T}(f) = \frac{\langle \tilde{u}_0^*(f) \tilde{u}_0(f) \rangle}{T}
\end{equation}
where the averaging is necessary since each  transform product is random (like the signal itself).  From this point on the process is exactly analogous to standard signal processing with equi-spaced samples (except that the FFT cannot be used for randomly sampled data).  And in fact the effect of the finite record length on $\hat{S}_{u_0}(f)$ is exactly the same and can be shown quite readily to be given by:

\begin{equation}
\hat{S}_{u_{0,T}}(f) = \int_{-T}^{T} e^{-i 2 \pi f \tau} \overline{u_0(t)u_0(t+\tau)} \left [1 - \frac{|\tau|}{T} \right ]\, d\tau
\end{equation}
Thus this direct estimator has yielded a spectrum which is also convolved with a window function; namely,
\begin{equation}
\hat{S}_{u_{0,T}}(f)  = \int_{-\infty}^\infty S_{u_0}(f_1) W_{tr}(f-f_1)\, df_1
\end{equation}
where this time the window function is given by:

\begin{equation}
W_{tr}(f) = \int_{-T}^T e^{-i 2 \pi f \tau} \left [1 - \frac{|\tau|}{T} \right ]\, d\tau = T \left[\frac{\sin (\pi f T)}{\pi f T} \right]^2
\end{equation}
This is the familiar Bartlett or triangle window, which has two advantages over the top-hat above:  first it does not produce negative side-lobes, and second it falls off as $f^{-2}$ instead of $f^{-1}$, thereby producing less spectral leakage. (Note that in spite of the latter advantage it is still necessary in turbulence to use additional window functions to get the very highest frequencies, since turbulence spectra in the dissipation range roll off much faster that $f^{-2}$.) However, the most important advantage of the direct estimator is that by avoiding the discretization in time-lag of the time-slot approximation, it really has produced an un-aliased spectrum for randomly arriving samples.

\section{Real signals}

Real measurements require some finite time, the measurement time or processing time, $\Delta t_p$, to be executed, see Figure~\ref{fig:Fig1}. The effect on the measured data is that the real quantity to be measured is somehow filtered by the measurement process. The maximum processing time is the transit time or residence time, $\Delta t_s$. In addition, the signal processor may require some time to transfer a data point and recover before it is ready for the next measurement, the dead time, $\Delta t_d$. As will be shown in the following, the effect of processing time and dead time can significantly modify the ideal random sampling statistics by averaging the underlying signal over the processing time and by eliminating lags smaller than the dead time.

\subsection{The effects of processing time and signal averaging effects}
Similarly to the ideal sampling using delta functions, we can describe the sampling process by a top hat window function of width $\Delta t_p$ and height $1/(\nu \Delta t_p)$, see Figure~\ref{fig:Fig6}. Note that this will approach the case of ideal sampling with delta functions in the limit as $\Delta t_p \rightarrow 0$.

\begin{figure*}[!h]
  \center{\includegraphics[width=0.5\textwidth]{figure4_2..eps}}
\caption{Top hat sampling function with dead time.} \label{fig:Fig6}
\end{figure*}

The top hat sampling function may be represented by
\begin{equation}
H_{\Delta t_p}(t) = \frac{1}{\Delta t_p} [h(t + \Delta t_p/2) - h(t - \Delta t_p/2)]
\end{equation}
where the factor $1/\Delta t_p$ calibrates time averages of the measured signal and $h(t)$ is the Heaviside function.  This defines a rectangular top hat function of unity integral and width $\Delta t_p$. The top hat function may be initiated at the arrival time $t=t_k$, a condition determined by the $g$-function we used before. However, the exact location of the interval about the arrival time is not important; a shift just results in a phase factor, which disappears in the power spectrum.

The detector and signal processor are further assumed to cause a simple averaging of the true signal during the processing time, $\Delta t_p$. (Note that the averaging time may depend on the measurement system and processor and could be as large as $\Delta t_s$, but generally for LDA is smaller and therefore here simply referred to as the processing time $\Delta t_p$.) Thus the signal to be measured, say $u_{\Delta t_p}(t)$ becomes:
\begin{eqnarray}
u_{\Delta t_p}(t) & =  & \frac{1}{\Delta t_p} \int_{t- \Delta t_p/2}^{t + \Delta t_p/2} u(t')  dt' \\
& = &  [ u(t) \otimes H_{\Delta t_p}(t)]  \nonumber
\end{eqnarray}
since averaging over the interval $\Delta t_p$ corresponds to convolving the true signal with the sampling function. Using our g-function from before, the measured signal at time $t_k$ becomes:
\begin{eqnarray}
u_{0,\Delta t_p}(t) & =  & g(t) ~u_{\Delta t_p}(t) \label{eq:upmeas} \nonumber \\
& = &  g(t)~ [ u(t) \otimes H_{\Delta t_p}(t)]  \nonumber \\
& = & g(t) \cdot \frac{1}{\Delta t_p} \int_{t- \Delta t_p/2}^{t + \Delta t_p/2} u(t')  dt'
\end{eqnarray}
This can be interpreted as a filtered signal sampled at random times

\subsubsection{The spectrum of $u_{\Delta t_p}$}
The correlation function can be computed as before, but in this case, because of the convolution in computing $u_{\Delta t_p}(t)$, it is easier to compute the spectrum first.  The Fourier transform of $u_{\Delta t_p}(t)$ {\it in the sense of generalized functions}, say $\tilde{u}_{\Delta t_p}(f)$,  is readily computed to be:
\begin{equation}
\tilde{u}_{\Delta t_p}(f) = \tilde{u}(f) ~  \mathrm{sinc} (\pi f \Delta t_p),
\end{equation}
since the Fourier transform of a convolution is the product of their Fourier transforms.  It follows immediately that the filtered and ideally sampled spectra are related by:
\begin{equation}
S_{u_{\Delta t_p}}(f) = S_u(f) ~ \mathrm{sinc}^2(\pi f \Delta t_p)  \label{eq:SDeltatp}
\end{equation}

\subsubsection{The spectrum and correlation of the sampled signal}
From equation~(\ref{eq:upmeas}) it follows immediately that $\overline{u_{0,\Delta t_p}(t) u_{0,\Delta t_p}(t + \tau)}$ is given by:
\begin{equation}
C_{u_{0,\Delta t_p}}(\tau) = \overline{u_{0,\Delta t_p}(t) u_{0,\Delta t_p}(t + \tau)} = \overline{g(t)g(t+\tau)}\cdot \overline{u_{\Delta t_p}(t)u_{\Delta t_p}(t+\tau)}
\end{equation}
But we know both correlation functions from equations~(\ref{eq:gcorrelation}) and (\ref{eq:idealspectrum}).

The spectrum, say $S_{u_{0,\Delta t_p}}(f)$, is then:
\begin{equation}
S_{u_{0,\Delta t_p}}(f) = S_g(f) \otimes S_{u_{\Delta t_p}}(f),
\end{equation}
which we also know from equations~(\ref{eq:Sg}) and (\ref{eq:SDeltatp}). Substitution yields immediately:
\begin{equation}
S_{u_{0,\Delta t_p}}(f) = \frac{\overline{u^2_{0,\Delta t_p}}}{\nu} +S_u(f) \cdot \mathrm{sinc}^2 (\pi f \Delta t_p).
\end{equation}
where
\begin{equation}
\overline{u^2_{0,\Delta t_p}} = \int_{-\infty}^\infty S_u(f-f_1) \cdot \mathrm{sinc}^2(\pi f_1 \Delta t_p) \,df_1
\end{equation}
The sinc-squared factor is a transmission function due to the filtering of the true signal taking place during the acquisition of each data point over the measurement time, $\Delta t_p$.

\subsection{Dead time effects}

To see the effect of the dead time and the missing lags, $|\tau|<\Delta t_d$, we can revert to correlation space and introduce the lost lags  by removing them from the covariance function as shown in Figure~\ref{fig:Fig7}.

\begin{figure*}[!h]
  \center{\includegraphics[width=0.5\textwidth]{figure5_4..eps}}
\caption{Measured ACF with dead time effect.} \label{fig:Fig7}
\end{figure*}
Alternatively the zero value could be replaced by some other value (say the smallest lag measured, or if known independently, the mean square value).  Note that at first glance this might appear to be the same as deleting the zero value for the time slot approximation considered earlier, but there is an important difference.  Here the smallest non-zero lag is determined by the hardware, not by the choice of time slots, and is thus unavoidable.

We introduce dead time by eliminating lags $|\tau|<\Delta t_d$:
\begin{equation}
C_{u_{\Delta t_p, \Delta t_d}}(\tau) = C_{u_{\Delta t_p}}(\tau) \cdot [1 - h(\tau + \Delta t_d) + h(\tau -\Delta t_d)
\end{equation}
The measured power spectrum is then:

\begin{equation}\label{eq:40}
S_{u_0,\Delta t_p, \Delta t_d} (f) = \frac{\overline{u^2_{0,\Delta t_p, \Delta t_d}}}{\nu_0} + \left [ S_{u}(f) \cdot \mathrm{sinc}^2 (\pi f \Delta t_p) \right ] \otimes \left [\delta (f) - 2 \Delta t_d ~\mathrm{sinc} (2 \pi f \Delta t_d) \right ]
\end{equation}
where $\nu_0$ is the reduced sample rate due to dead time\footnote{Reduction of sample rate: Let the original sample rate with no dead time be $\nu$. Then the number of samples in time $t$ is $n = \nu t$. The probability of $n$ samples in time $t$ with mean number of samples $\overline{n}$ (Poisson):

$$P(n) = \frac{e^{-n} \overline{n}^n}{n!}$$

or with $\overline{n} = \nu t$: $P(n) = \frac{e^{-\nu t} (\nu t)^n}{n!}$. The probability that no event occurs in time $\Delta t_d$ is then:

$$P(0) = e^{-\nu \Delta t_d}$$

But $P(0)$ is also the probability that the next sample will occur after $\Delta t_d$. Thus the rate of samples occurring after $\Delta t_d$, the reduced sample rate $\nu_0$, is $\nu_0 = \nu e^{- \nu \Delta t_d}$.}, $\nu_0 = \nu e^{-\nu \Delta t_d}$.
Point sampling, $\Delta t_p = 0$, but with dead time, is described by
\begin{equation}
S_{u_0, \Delta t_d} (f) = \frac{\overline{u^2_{0,\Delta t_d}}}{\nu_0} + S_{u}(f) \otimes \left [\delta (f) - 2 \Delta t_d ~\mathrm{sinc} (2 \pi f \Delta t_d) \right ]
\end{equation}

We now present some results of theoretical analysis and computer simulations. These calculations apply to what we consider a typical measurement situation. We take as our turbulence model a von K\'{a}rm\'{a}n spectrum with a low break point at 100\,Hz and a high break point at 3\,kHz. The mean sample rate for the measurements is varied between 1\,kHz and 20\,kHz. The measurement volume is adjusted to give dead times between 0 and 50\,$\mu$s. We average the computer generated spectra over typically 100 records, each with a record length of 1\,s. The spectral window is thus adequate to give sufficient resolution and negligible spectral leakage.

In Figure~\ref{fig:Fig8} we illustrate the effect of varying the sampling rate $\nu$ with $\Delta t_d$ set to zero (left figure) and the effects of filtering and finite dead time in the case of finite average sampling rate (right figure) on a von K\'{a}rm\'{a}n model power spectrum.

\begin{figure*}[!h]
\begin{minipage}{0.5\linewidth}
  \center{\includegraphics[width=1.0\textwidth]{figure8lhs_1..eps}}
\end{minipage}\hspace{0.5cm}
\begin{minipage}{0.5\linewidth}
  \center{\includegraphics[width=1.0\textwidth]{figure8rhs_1..eps}}
\end{minipage}
\caption{The effect of dead time on a von K\'{a}rm\'{a}n power spectrum. \textbf{Left:} Red: von K\'{a}rm\'{a}n model spectrum with infinite data rate, black: effect of varying data rate (1000\,Hz, 5000\,Hz, 20000\,Hz). \textbf{Right:} Red: von K\'{a}rm\'{a}n model with finite average sampling rate, blue: effect of dead time ($\Delta t_d = 0.00005$\,s), green: effect of filtering ($\Delta t_p = 0.0005$\,s).} \label{fig:Fig8}
\end{figure*}

In Figure~\ref{fig:Fig9} we display the power spectrum of a set of data generated in a computer by random sampling of a velocity signal with a von K\'{a}rm\'{a}n spectrum as in Figure~\ref{fig:Fig8}. An equidistantly sampled primary velocity signal, $u_{primary}$, is initially generated using the FFT from a series of evenly distributed random frequency values, which is filtered in frequency with the von K\'{a}rm\'{a}n spectrum. The random arrival times are extracted from the primary velocity time series using a Poisson sampling process, $t_a = \mathrm{Poisson} \left \{ u_{primary}(t),\mu \right \}$ where $\mu$ is an adjustable parameter ensuring that the Poisson process provides primarily zeros or ones. The randomly sampled velocity data are subsequently extracted from the primary velocity signal, $u(t_a) = u_{primary}(t_a)$. To mimic the laser Doppler anemometer, the corresponding residence times are computed as $t_r(t_a) = d_{MV}/|u_{primary}(t_a)|$ where $d_{MV}$ is the diameter of the measurement volume. The temporal resolution is ultimately limited by the resolution of the primary time series.

The sampling process, being modulated by the instantaneous velocity magnitude, also includes simulation of a fixed detector dead time. The spectra are evaluated with the so-called residence time corrected power spectral estimators~\cite{11,10} by the direct method. Note that in Figure~\ref{fig:Fig9}, the spectra are significantly affected by dead time: The spectral power is reduced at low frequencies, while the spectral offset is increased a high frequencies. Also evident is the oscillation introduced by the sinc-term in the dead time response at the highest displayed frequencies. The left hand side shows the effect of varying the dead time, $\Delta t_d$. The right hand side shows the primary von K\'{a}rm\'{a}n model spectrum and the analytical model~(\ref{eq:40}) with an added constant offset. Also shown are the computer generated data, randomly sampled and regularly sampled.

\begin{figure*}[!h]
  \center{\includegraphics[width=1.0\textwidth]{Fig9.eps}}
\caption{Effect of dead time on the processing of a simulated von K\'{a}rm\'{a}n spectrum. \textbf{Left:} Black: $\Delta t_d = 0\,s$. Blue: $\Delta t_d = 2\cdot10^{-6}\,s$. Red: $\Delta t_d = 4\cdot10^{-6}\,s$. Orange: $\Delta t_d = 8\cdot10^{-6}\,s$. \textbf{Right:} Light blue: von K\'{a}rm\'{a}n filter. Yellow: Analytical solution with dead time. Blue: Computer generated data with dead time, randomly sampled with $\nu =40.6\,kHz$. Red: Computer generated data, regular sampling at $100\,kHz$.} \label{fig:Fig9}
\end{figure*}

\subsubsection{Dead time effects on white noise}

We can also study the effect of dead time on pure Poisson sampling, $\Delta t_s = 0$, of a constant signal with spectrum $\frac{a^2}{\nu_0}\delta (f)$, where $a^2$ is a constant mean square value. The spectrum then reduces to
\begin{equation}
S_{0} (f) = \frac{a^2}{\nu_0}\left [ 1 - 2 \Delta t_d ~\mathrm{sinc} (2 \pi f \Delta t_d) \right ]
\end{equation}
in agreement with previous studies of the effect of dead time on photon counting, e.g., Zhang \textit{et al.}~\cite{6}.

\section{Conclusion}

The problems with real randomly sampled signals are many, but only the most fundamental ones were considered here: namely that no instrument can measure instantaneously, but must average over some finite time to produce a realization. The measurement time (or processing time), $\Delta t_p$, is the time required for the measurement to be executed, i.e., the time over which the measurement is filtered. The dead time, $\Delta t_d$, is here defined as the measurement time plus the time that the processor may require for data transfer and to recover before the next measurement can be acquired.

The effects of the processing time and the dead time have been analyzed on a typical velocity power spectrum, closely described by a von K\'{a}rm\'{a}n spectrum. The effect of the signal processor on the measured velocity values was described as an averaging over the processor time, and it was shown that the result is a sinc-squared frequency transfer function cutting off the high frequency end of the spectrum.

The dead time, during which the processor cannot register new measurements, was shown to result in the (filtered) power spectrum being convolved with a sinc-function whose width depends on the extent of the dead time. This addition will typically introduce a clearly visible `dip' and oscillation in the spectrum at frequencies around and above the probe volume cut-off. The analysis was compared to the power spectra obtained from simple, but realistic, computer generated data, displaying excellent agreement with the analysis. As the dead time is further increased, the spectra display even more significant distortions such as a redistribution of power across frequency that are observed to severely bias the spectrum even at the lowest frequencies.

The special case of the laser Doppler anemometer is more problematical, since the dead time varies with each acquired data point and the sampled process is generally dependent on the process being sampled. Also, different commercially available processors display somewhat different behavior and their exact functioning is generally not disclosed to the user. Further, particle interference in the measuring volume will affect the residence time distribution, which however can be provided in the measuring process by correctly working processors. A detailed model for dead time in LDA is therefore beyond the scope of the current work but will be treated in a separate paper.

redpajama_set_name: RedPajamaArXiv


text:
New Okanagan College award honours columnist
The annual award honours John Thomson
Oct. 28, 2018 8:50 a.m.
A new annual award for top marketing students at Okanagan College is honouring a well-known Okanagan businessman and columnist.
John Thomson was the former Marketing Manager at B.C. Tree Fruits. When he retired in the early 90's Kelowna was in the midst of an economic slump. Still passionate about business and an enthusiastic community promotor, Thomson went on to form the Kelowna Executive Roundtable, a group of local business leaders that meet monthly to discuss topics relevant to the Central Okanagan community.
Thomson also began writing the Thomson Report, a column about business in the Okanagan. In 1999, for his contributions to community, Thomson was awarded an honorary doctorate from Okanagan University College.
When Thomson passed in 2015, members of the Executive Roundtable wanted to find a way to recognize his impact on their group and the community at large. Along with his wife Dolores, they set up a legacy that will introduce new students to Thomson's work for years to come.
RELATED:Okanagan College Foundation executive director stepping down
"John was a big fan of the college," said Don Turri, a partner at Crowe MacKay and a member of the Executive Roundtable. "We decided the most appropriate thing was to have a scholarship in his name."
The John Thomson Memorial – Kelowna Executive Roundtable Scholarship in Marketing is an annual $2,500 award for a top marketing student enroled in the Bachelor of Business Administration program. The award winner is chosen for having the highest marks in three second- or third-year marketing courses.
"John was a force of nature in the business, media and marketing community in the Okanagan. His columns, his roundtable, his efforts at connecting people and business really spoke to the love he had for the region and for business making a difference in people's lives," said Barry McGillivray, associate dean of the Okanagan School of Business at Okanagan College.
"This award in John's name will hopefully inspire the recipient this year and in years to come to help carry on the commitment to marketing and community that we know was at the core of John's bigger-than-life persona."
Andrew Nash is the first winner of the award, and describes himself as the one sitting in the front row of class, asking lots of questions and staying late to study.
RELATED: UBCO and Okanagan College to collaborate for green building initiatives
"What I love about marketing is the opportunity to be creative," said Nash. "From developing advertising slogans, or products that are going to reach customers, it's very interesting to me. The more I can put my own touch on things is awesome."
Over the summer, Nash ran his own division of Student Works Painting in Salmon Arm, which employed eight student painters.
Nash is also following in Thomson's footsteps by serving as the Executive Director with the College's Okanagan Business Students Association, which organizes networking events and activities for students.
"Having the extra income from this award will save me from having a part time job and will help fund tuition and living in Kelowna," said Nash.
"By not working, I can focus on volunteering, getting experience and giving back to students."
Mental issues from Fort McMurray fire linger but human contact helps: study
An open door and a massacre: Gunman kills 11 at synagogue
Lakestone Grand Opening set for this weekend in Lake Country
MP Stephen Fuhr, MLA Norm Letnick and Mayor James Baker will all speak at the event
West Kelowna RCMP search witnesses in assault
A man was attacked in the early morning on July 16
Small business spotlight: Kelowna's master tailor
Sam Galvez started his business in Kelowna 6 years ago
Kelowna ranks fifth in where Canadians will move to buy a home: study
'The study suggests that the dream of homeownership is very much alive and well,' said Finder's editor
7 medals for Kelowna United teams at soccer provincials
Local boys and girls teams saw success at the 2019 championships


"A time to be born, and a time to die," Qoheleth says.
A time to die, and a time to be raised anew, Jesus showed us.
When the new comes, the old passes away, declares Paul and John.
We remember the past with thanksgiving, and look to the future with hope.
God spoke in a bush, with lightning and thunder, and a still small voice.
God used a star and scriptures to guide magi.
God came through media the people understood.
"Does God understand computers and the Internet?" a child asked.
There was bizlink, convene, telnet, then e-mails and web-browsers.
Telephone lines were replaced by Ethernet cables and then wifi and 3G.
There was "old" ecunet, which is no more; but "new" ecunet has arisen.
There was our own servers; now there is Google groups.
We rejoiced when seeing faces that went with oft-seen screen names.
We wondered when we no longer saw those screen names.
Friendships were created. Communities, not just "meetings," were formed.
We discussed, joked, argued, and supported each other in cyber-space.
Frustrations arose when ecunet didn't always work as it used to.
Out of the brokenness of what was, something new and better has arisen.
and for those who will contribute to its mission in the future.