125 Things I learned from Zero to One
I just finished reading Peter Thiel’s classic work yesterday, and thought to compile my Kindle highlights with my brief remarks for both sharing and self-reflection purposes. You will find Thiel’s opinions in quote below and my remarks under some of them.
Overall, an incredibly insightful book with a lot points echoed by numerous entrepreneurs I’ve met through my time in Princeton. Worth re-reading later.
- Brilliant thinking is rare, but courage is in even shorter supply than genius
- Positively defined, a startup is the largest group of people you can convince of a plan to build a different future. a. Which is probably true, given how communications and execution are key to early success, and you can only have both within small groups
- “Madness is rare in individuals — but in groups, parties, nations, and ages it is the rule,” Nietzsche wrote (before he went mad). If you can identify a delusional popular belief, you can find what lies hidden behind it: the contrarian truth. a. It neatly ties back to his point on cult later.
- The first step to thinking clearly is to question what we think we know about the past. a. Yes, always great to look at history for lessons!
- So the backdrop for the short-lived dot-com mania that started in September 1998 was a world in which nothing else seemed to be working. a. Really? I think Thiel is great, but sometimes he tends to over-exaggerate to get his point across; for instance, maybe those generational traits are true, but to say nothing else seemed to be working in the late 90s just doesn’t sit very well with me. At least you had a rapidly growing China!
- By indirect proof, the New Economy of the internet was the only way forward. a. Maybe, but technologies are still very much advancing in other fields too; they just don’t attract big media attention or big money most of the time.
- For PayPal to work, we needed to attract a critical mass of at least a million users. a. I’m curious, how did Thiel come up with the number “1 million” — why can’t it be 100,000? What’s so magical about 1 million? Or is it just his hunch, backed up by his experience (which didn’t seem so abundant at the time of PayPal’s founding anyways)
- own — when you pay people to be your customers, exponential growth means an exponentially growing cost structure. Crazy a. very true; always key to test at the beginning if people are willing to pay for your service/product! Paying for people to become your clients/customers just doesn’t work in long term, or now, when the easy money is gone.
- “Make incremental advances”; “Small, incremental steps are the only safe path forward.” ? a. Thiel seemed pretty critical about the idea of incremental change because it allegedly doesn’t offer companies the proprietary power or is not pivotal enough; it’s highly debatable.
- Stay lean and flexible a. Said times and over; don’t get too caught up in the frivolous Silicon Valley perks or over-pay your executives or yourself; keep cash burn at minimum.
- you should try things out, “iterate”
- It is better to risk boldness than triviality. a. It’s another place Thiel seemed to be contradicting himself when he said you should focus on small market/niche segment first and then you need to “think big” — which I find perfectly compatible. b. What he really means, as I understand it, is that you need to have a world-changing idea, an idea so big that it’s almost frightening to carry out. Then you need a very precisely defined roadmap, starting with a small market that you can monopolize and demonstrate proof of concept, based on which you can then expand horizontally into adjacent markets and eventually take over the entire world.
- A bad plan is better than no plan.
- Competitive markets destroy profits. Under perfect competition, in the long run no company makes an economic profit. a. It’s a key tenet in this book: competition is bad, seek monopoly whenever possible. b. SO TRUE. c. “if you want to create and capture lasting value, don’t build an undifferentiated commodity business.”
- Sales matters just as much as product.
- Creating value is not enough — you also need to capture some of the value you create. a. Exactly, many people overlook the need to capture value after creating value, which really should come hand in hand.
- Actually, capitalism and competition are opposites.
- Non-monopolists exaggerate their distinction by defining their market as the intersection of various smaller markets; Monopolists, by contrast, disguise their monopoly by framing their market as the union of several large markets:
- The competitive ecosystem pushes people toward ruthlessness or death. a. Well, sometimes competition benefits consumers by pushing the technology boundary and keeping the cost low; but to suppliers, it’s detrimental. It matters whose perspective we are taking.
- but it’s also characteristic of a kind of business that’s successful enough to take ethics seriously without jeopardizing its own existence. a. Right, so don’t get too caught up in the social mission? b. What about so many companies that succeeded precisely because of their social drive, other than money? Like Rubicon? Like Zipcar?
- money is either an important thing or it is everything. a. Probably the point I agree with most in this book, in the context of a startup company.
- Only one thing can allow a business to transcend the daily brute struggle for survival: monopoly profits. a. The pursuit of monopoly is really the central theme of the first half of the book.
- Creative monopolies aren’t just good for the rest of society; they’re powerful engines for making it better. a. Recall benevolent dictators?
- A state in which all energy is evenly distributed and everything comes to rest — also known as the heat death of the universe. a. A pond with no moving water is dead, in an old Chinese saying.
- All Rhodes Scholars had a great future in their past. a. LOL.
- According to Marx, people fight because they are different. The proletariat fights the bourgeoisie because they have completely different ideas and goals (generated, for Marx, by their very different material circumstances). The greater the differences, the greater the conflict. To Shakespeare, by contrast, all combatants look more or less alike. It’s not at all clear why they should be fighting, since they have nothing to fight about. a. Interesting take on why people fight each other; I’m not sure if I buy this dichotomy though?
- But a great business is defined by its ability to generate cash flows in the future. a. Which inevitably necessitates its solving a real, hard problem.
- The overwhelming importance of future profits is counterintuitive even in Silicon Valley. For a company to be valuable it must grow and endure, but many entrepreneurs focus only on short-term growth. a. True; but given how VCs put pressure on the founders to have good “exits”, I’m not entirely sure if the criticism is warranted. The incentive between VCs and founders are sometimes misaligned I think.
- They have an excuse: growth is easy to measure, but durability isn’t. a. But what is durability? The ability to defend the market position and deter potential competitors? The ability to keep growing? Durability is hard to measure partly because there is not a clear definition of it to begin with.
- you miss the most important question you should be asking: will this business still be around a decade from now? a. Thiel echoes this point throughout the book, which stresses his long-term focus: it’s imperative to have a roadmap that covers long enough a horizon.
- Every monopoly is unique, but they usually share some combination of the following characteristics: proprietary technology, network effects, economies of scale, and branding. a. Great categorization/summary.
- Anything less than an order of magnitude better will probably be perceived as a marginal improvement and will be hard to sell a. Again, Thiel using very rough gauge — how can you even measure if a thing is “10x better” than others? I think the feeling is more about “transformative” or “disruptive” potential: a 2x better product may make you feel more convenient immediately, but a 10x product will awe you instantly.
- Unilaterally choosing a different social network would only make you an eccentric. a. LOL at all the people on Google+
- Network effects can be powerful, but you’ll never reap them unless your product is valuable to its very first users when the network is necessarily small. a. This is to say, everybody covets network effect but you need great product to actually get the snowball started first.
- Paradoxically, then, network effects businesses must start with especially small markets. a. Great insight — you need proof of concept anyways
- This is why successful network businesses rarely get started by MBA types: the initial markets are so small that they often don’t even appear to be business opportunities at all. a. Hmmm, I don’t know — I’m pretty sure there’s selection bias too: people who do MBAs are usually not the most innovative or entrepreneurial to begin with.
- Service businesses especially are difficult to make monopolies. a. Because of low barrier of entry?
- A company has a monopoly on its own brand by definition, so creating a strong brand is a powerful way to claim a monopoly. a. Yep, but it’s just part of the story — you always need substance to back up your branding claim; otherwise it will wane.
- But these techniques for polishing the surface don’t work without a strong underlying substance. a. Echoing my point above
- No technology company can be built on branding alone. a. indeed
- Always err on the side of starting too small… This is why it’s always a red flag when entrepreneurs talk about getting 1% of a $100 billion market. a. Contradicting what JP said in class about dreaming ultra big?
- Jeff Bezos’s founding vision was to dominate all of online retail, but he very deliberately started with books. a. Yep you gotta start small, but with an ultimately grandiose vision in mind.
- The most successful companies make the core progression — to first dominate a specific niche and then scale to adjacent markets — a part of their founding narrative.
- Originally, “disruption” was a term of art to describe how a firm can use new technology to introduce a low-end product at low prices, improve the product over time, and eventually overtake even the premium products offered by incumbent companies using older technology. a. Hmmm I think Thiel has much bias against disruption, partly because the term has been so commonly misused/abused by media/startups
- [if a startup’s value proposition can be] summed up by its opposition to already existing firms, it can’t be completely new and it’s probably not going to become a monopoly. a. GREAT INSIGHT
- But moving first is a tactic, not a goal. What really matters is generating cash flows in the future a. Whether it’s white or black, as long as it catches mice it’s a good cat.
- Grandmaster José Raúl Capablanca put it well: to succeed, “you must study the endgame before everything else.” a. Again, emphasizing the need for a grand vision
- “Shallow men believe in luck, believe in circumstances.… Strong men believe in cause and effect.” a. LOL — #checkyourprivilege
- No one pretended that misfortune didn’t exist, but prior generations believed in making their own luck by working hard. a. Part of Thiel’s obsession with the previous generation’s mantle and myth; is it necessarily true? I doubt it (as a millennial)
- A definite view, by contrast, favors firm convictions. a. His central thesis for the second part of the book, you need to be a definite optimist
- Instead of pursuing many-sided mediocrity and calling it “well-roundedness,” a definite person determines the one best thing to do and then does it.
- she strives to be great at something substantive — to be a monopoly of one.
- Europeans just react to events as they happen and hope things don’t get worse. a. LOL what an astute observation on EU; but maybe they deserve some credits for the way they do things? I mean, western European countries don’t fight each other at least.
- the 1950s, Americans thought big plans for the future were too important to be left to experts. a. Hah, it was also an age of conmen. Thiel seemed to have fallen under rosy retrospection again.
- It’s no surprise that these fields (Wall St, consulting, PE) all attract disproportionate numbers of high-achieving Ivy League optionality chasers; what could be a more appropriate reward for two decades of résumé-building than a seemingly elite, process-oriented career that promises to “keep options open”? a. Ouch.
- Gladwell at first appears to be making a contrarian critique of the myth of the self-made businessman, but actually his own account encapsulates the conventional view of a generation. a. Right I actually think Gladwell is limited by his generational context as well.
- The philosophy of the ancient world was pessimistic: Plato, Aristotle, Epicurus, and Lucretius all accepted strict limits on human potential. The only question was how best to cope with our tragic fate. Modern philosophers have been mostly optimistic. From Herbert Spencer on the right and Hegel in the center to Marx on the left, the 19th century shared a belief in progress.
- Definite optimism works when you build the future you envision. Definite pessimism works by building what can be copied without expecting anything new.
- progress without planning is what we call “evolution.”
- But leanness is a methodology, not a goal.
- But the most important lesson to learn from Jobs has nothing to do with aesthetics.
- The power of planning explains the difficulty of valuing private companies.
- MONEY MAKES MONEY. “For whoever has will be given more, and they will have an abundance. Whoever does not have, even what they have will be taken from them” (Matthew 25:29). a. Amen.
- But this “spray and pray” approach usually produces an entire portfolio of flops, with no hits at all. This is because venture returns don’t follow a normal distribution overall. Rather, they follow a power law: a small handful of companies radically outperform all others. If you focus on diversification instead of single-minded pursuit of the very few companies that can become overwhelmingly valuable, you’ll miss those rare companies in the first place.
- This implies two very strange rules for VCs. First, only invest in companies that have the potential to return the value of the entire fund. This is a scary rule, because it eliminates the vast majority of possible investments. (Even quite successful companies usually succeed on a more humble scale.) This leads to rule number two: because rule number one is so restrictive, there can’t be any other rules.

- Every individual is unavoidably an investor, too. When you choose a career, you act on your belief that the kind of work you do will be valuable decades from now.
- You should focus relentlessly on something you’re good at doing, but before that you must think hard about whether it will be valuable in the future. a. GREAT INSIGHT for people choosing majors and careers.
- Every correct answer is necessarily a secret: something important and unknown, something hard to do but doable. If
- This is the classic trichotomy of the easy, the hard, and the impossible. [talking about all the tasks/jobs in the world]
- 71 doesn’t exist.
- Mistakes with the conventional wisdom: First is incrementalism. Second is risk aversion. Third is complacency. Social elites have the most freedom and ability to explore new thinking, but they seem to believe in secrets the least. Fourth is “flatness.” As globalization advances, people perceive the world as one homogeneous, highly competitive marketplace: the world is “flat.”
- What secrets is nature not telling you? What secrets are people not telling you? a. Always good question to ask when determining one’s pursuit
- So when thinking about what kind of company to build, there are two distinct questions to ask: What secrets is nature not telling you? What secrets are people not telling you?
- So you might ask: are there any fields that matter but haven’t been standardized and institutionalized?
- As Faust tells Wagner: The few who knew what might be learned, Foolish enough to put their whole heart on show, And reveal their feelings to the crowd below, Mankind has always crucified and burned.
- Unless you have perfectly conventional beliefs, it’s rarely a good idea to tell everybody everything that you know. a. About keeping your competitive advantage a secret
- So who do you tell? Whoever you need to, and no more. a. GREAT PRACTICAL INSIGHT
- every great business is built around a secret that’s hidden from the outside. A great company is a conspiracy to change the world; when you share your secret, the recipient becomes a fellow conspirator. Still round the corner there may wait A new road or a secret gate, And though we pass them by today, Tomorrow we may come this way And take the hidden paths that run Towards the Moon or to the Sun.
- “Thiel’s law”: a startup messed up at its foundation cannot be fixed.
- Today, California has the same representation in the Senate as Alaska, even though it has more than 50 times as many people. Maybe that’s a feature, not a bug. a. Am I the only person find the last line funny?
 a. Very true! A point echoed by basically all our guest speakers for COS448
- It’s very hard to go from 0 to 1 without a team. a. And you need to seed your team well (all about recruiting the best first 10 people, and then good people attract each other. How do you get the first 10 people? Tap into your school’s/investors’ network!)
- it’s useful to distinguish between three concepts: • Ownership: who legally owns a company’s equity? • Possession: who actually runs the company on a day-to-day basis? • Control: who formally governs the company’s affairs? a. Key to avoid conflicts and assess situations
- In practice, distributing these functions among different people makes sense, but it also multiplies opportunities for misalignment.
- Most conflicts in a startup erupt between ownership and control.
- However, that very effectiveness means that a small board can forcefully oppose management in any conflict.
- A board of three is ideal. Your board should never exceed five people, unless your company is publicly held.
- If you want that kind of free rein from your board, blow it up to giant size. If you want an effective board, keep it small. a. GREAT INSIGHT. And both could be helpful depending on your situation.
- As a general rule, everyone you involve with your company should be involved full-time. Sometimes you’ll have to break this rule; it usually makes sense to hire outside lawyers and accountants, for example.
- However, anyone who doesn’t own stock options or draw a regular salary from your company is fundamentally misaligned.
- Ken Kesey was right: you’re either on the bus or off the bus. a. So true. Commitment matters, and you don’t want half-assed nonchalants.
- High pay incentivizes him to defend the status quo along with his salary, not to work with everyone else to surface problems and fix them aggressively. a. GREAT INSIGHT
- A cash-poor executive, by contrast, will focus on increasing the value of the company as a whole.
- So long as that figure is still modest, it sets an effective ceiling on cash compensation. a. Talking about how a CEO should either be paid the lowest or the highest. Both hve reasons and could work.
- Cash is attractive. It offers pure optionality: once you get your paycheck, you can do anything you want with it.
- It’s not liquid like cash. It’s tied to one specific company. And if that company doesn’t succeed, it’s worthless. Equity is a powerful tool precisely because of these limitations.
- only at the very start do you have the opportunity to set the rules that will align people toward the creation of value in the future.
- “Company culture” doesn’t exist apart from the company itself: no company has a culture; every company is a culture. A startup is a team of people on a mission, and a good culture is just what that looks like on the inside…Why work with a group of people who don’t even like each other?
- But taking a merely professional view of the workplace, in which free agents check in and out on a transactional basis, is worse than cold: it’s not even rational.
- More important than those obvious offerings is your answer to this question: Why should the 20th employee join your company?
- You’ll attract the employees you need if you can explain why your mission is compelling: not why it’s important in general, but why you’re doing something important that no one else is going to get done.
- You should be able to explain why your company is a unique match for him personally. And if you can’t do that, he’s probably not the right match.
- But it’s also because job assignments aren’t just about the relationships between workers and tasks; they’re also about relationships between employees.
- The polar opposite business cliché warns that “the best product doesn’t always win.”
- Economists attribute this to “path dependence”: specific historical circumstances independent of objective quality can determine which products enjoy widespread adoption. That’s true, but it doesn’t mean the operating systems we use today and the keyboard layouts on which we type were imposed by mere chance. It’s
- Two metrics set the limits for effective distribution. The total net profit that you earn on average over the course of your relationship with a customer (Customer Lifetime Value, or CLV) must exceed the amount you spend on average to acquire a new customer (Customer Acquisition Cost,
- Advertising can work for startups, too, but only when your customer acquisition costs and customer lifetime value make every other distribution channel uneconomical. a. CLV over CAC is key! Especially for subscription-based business, it’s all about time taken to recover your CAC and how much you can make per customer over his/her lifetime as a member. Key metrics, better than retention curve.
- when you can only afford to spend dozens of dollars acquiring a new customer, you need the biggest megaphone you can find.
- Clamor and frenzy are very real, but they rarely happen without calculated recruiting and pitching beneath the surface.
- computers are complements for humans, not substitutes.
- Americans fear technology in the near future because they see it as a replay of the globalization of the near past. But the situations are very different.
- People have intentionality — we form plans and make decisions in complicated situations. We’re less good at making sense of enormous amounts of data. Computers are exactly the opposite: they excel at efficient data processing, but they struggle to make basic judgments that would be simple for any human.
- if humans and computers together could achieve dramatically better results than either could attain alone, what other valuable businesses could be built on this core principle?
- Today’s companies have an insatiable appetite for data, mistakenly believing that more data always creates more value.
- Actionable insights can only come from a human analyst (or the kind of generalized artificial intelligence that exists only in science fiction).
- Instead, they’ll ask: how can computers help humans solve hard problems?
- seven questions that every business must answer: 1. The Engineering Question Can you create breakthrough technology instead of incremental improvements? 2. The Timing Question Is now the right time to start your particular business? 3. The Monopoly Question Are you starting with a big share of a small market? 4. The People Question Do you have the right team? 5. The Distribution Question Do you have a way to not just create but deliver your product? 6. The Durability Question Will your market position be defensible 10 and 20 years into the future? 7. The Secret Question Have you identified a unique opportunity that others don’t see? a. Great checklist!
- That starts with asking yourself: what will the world look like 10 and 20 years from now, and how will my business fit in?
- Social entrepreneurs aim to combine the best of both worlds and “do well by doing good.” Usually they end up doing neither.
- Whatever is good enough to receive applause from all audiences can only be conventional, like the general idea of green energy.
- Progress isn’t held back by some difference between corporate greed and nonprofit goodness; instead, we’re held back by the sameness of both. Just as corporations tend to copy each other, nonprofits all tend to push the same priorities.
- The best projects are likely to be overlooked, not trumpeted by a crowd; the best problems to work on are often the ones nobody else even tries to solve.
- The macro need for energy solutions is still real. But a valuable business must start by finding a niche and dominating a small market.
- Paradoxically, the challenge for the entrepreneurs who will create Energy 2.0 is to think small. a. Echoing his point that you need to start small.
- Almost all successful entrepreneurs are simultaneously insiders and outsiders.


EDACC is an advanced platform for the design, administration and analysis of experiments with algorithms on arbitrary computing systems ranging from multi core PC's to cluster or large scale grids.
The sourcecode is freely available at Github.
For support and discussion we have a Google group.


Location: {{manufacturer_city}}, {{manufacturer_state}}
{{manufacturer_count}} Total Recalls
{{info.state}} : {{info.count}}


| Is Feed Enabled | |
| Is Feed Visible | |
| Is Feed Allowed | |
| Is Prefetching Enabled | |
| Feed Fetch URL |
| User Class Description | |
| Average Hours Between Suggestion Views | |
| Average Hours Between Suggestion Uses |
| Last Fetch Status | |
| Last Fetch Trigger | |
| Last Fetch Time | |
| Refresh Suppress Time |


Proza Libre is the libre version of the retail Proza type family, by Bureau Roffa. It is made to render exceptionally well on screens across different operating systems, especially Windows, using ttfautohint.
The Proza Libre project is led by Jasper de Waard, a type designer based in the Netherlands. To contribute, see github.com/jasperdewaard/Proza-Libre


Chat Console
The Chat Console, pulled up by going to Tools -> Console, is mostly a debugging tool for Magenta, and possibly something that the advanced chatter may be interested in.
What it does is print every packet that Magenta recieves from the server to its window. Every packet. They are unparsed, as well. You can use this to verify that everything that Magenta shows you is correct, or for anything else you may have to log packets for, such as loading it into a custom statistics program.
Note that private messages sent by you to somebody do not appear in the chat console; this is simply something that just happens, I'm afraid, and since the console reflects the actual traffic coming from the server, this will not be changed. For some reason, the server does not echo these; the echo you get on your screen is done entirely by Magenta.
Save a plain text log of the Chat Console contents using Save, or clear the console with Clear. Each clear is timestamped, as well. Close the console with Close.


StillSpace is an Android application which shows study space hotspots and current usage, crowdsourced from students who recently studied in the area and processed with machine learning.
The project was created during September 6-8, 2019 for PennApps XX Fall 2019, at the University of Pennsylvania - a 36 hour hackathon, the 20th iteration of the first-ever student hackathon, and one of the largest in the world with 1200 attendees.
Students today are under immense pressure to do well in difficult academic situations and achieve high grades to be accepted into exclusive institutions. In order to support this, universities often design specifically-designated study areas for students to use.
Though the spaces are often excellent for studying, supply rarely if ever satisfies demand. Expensive renovations cannot meet the needs of smaller universities, let alone for universities with over 20,000 enrolled. The result is that students consistently have a significant lack of study area with enough space and quiet in which they can think and learn at their best capacities. Students often must make do with loud, crowded areas, spend time travelling to a different location off-campus, or skip studying due to the demoralizing hunt for suitable study space.
We isolated our key target audiences to be university students from high school, continuing learners, and self-educators. These people have enough time or need to warrant heavy studying to learn sufficiently to do well, but are often deprived of the ability.
Our solution is StillSpace, an Android application which displays study space hotspots. These hotspots display relative availability of study areas and may also reveal previously unknown study spots. Over time, a population using StillSpace will redistribute students to better and more fairly utiilize all possible study areas.
Data for StillSpace is crowdsourced from other students who recently studied in the area and used the application. It is processed with machine learning algorithms from AWS Forecast to provide predictive forecast data for the future.
The mobile application on Android was the user-facing section of StillSpace, providing a locator and predictor for study space availability as well as tracking location data during studying.
Download the application on the Google Play Store here.
The application utilizes Google Location Services as well as Google Maps Heatmap Utility, an advanced and less-known Play Services API.
The map view is set to automatically display Towne Building in the Engineering Division at the University of Pennsylvania, as this was the location of the hackathon and demo.
To understand how users would experience the application, interface mockups were created using Figma. Once complete, assets were then passed to the developers with Zeplin.
The machine learning component of StillSpace utilizes Amazon Web Services Forecast, an online machine learning service which processes trends in time series data to predict future forecasts.
Using Amazon Forecast also entailed creating an Amazon S3 bucket which contained a CSV file to be imported.
We encountered heavy limitations when working with the machine learning framework. First, a sufficient amount of suitable sample data which mimicked actual conditions was incredibly difficult to generate. Second, there was not nearly enough time and data to train the network sufficiently well in a single weekend. Third, we initially hoped on having the data be automatically uploaded to the server and to configure the machine learning to be run on the dataset on a set recurring schedule. Unfortunately, the Amazon Forecast API is still greatly under development, and did not have this capability. Instead, each dataset needed to be run automatically using the web console.
The services available for machine learning are still in the process of being developed and made ready for public use but, when ready, they will empower even students to easily be able to find valuable trends across vast datasets.
Watch a video of our pitch here:
Disclaimer: This page was created after the hackathon's completion.


Football: Real wary of Odegaard threat for Sociedad
MADRID: Second-placed Real Madrid host Real Sociedad on Saturday (Nov 23) hoping their decision to loan Martin Odegaard to their fellow high-flyers will not come back to haunt them.
Odegaard joined Real at 16 in 2015, making just one appearance for the first team before embarking on a series of loans, first in the Netherlands and now in the Basque Country, where he is due to stay for another season.
The forward has been in fine form, scoring two and setting up three, as Sociedad have made a brilliant start to coach Imanol Alguacil’s first full season at the helm. They sit two points behind Real with 23 from their 13 games.
“It’s a special game for me,” Odegaard said. “But truth be told, it doesn’t matter if it’s against Madrid or any other side, all I want to do is play.
“I think that we’ve made a good start to the season. We’re up towards the top, which is where we want to be, and I’m happy with how I’m playing too.
“My goal is to make it at Real Madrid. That’s why I signed for them, to play there. I’m in no rush, though. I’m happy here and if I play for Madrid two or five years down the line, it doesn’t matter.”
Real will be without James Rodriguez for the game, but could welcome back Gareth Bale who has not played for the club since October, but was involved in both games as Wales qualified for Euro 2020 this week.
Barcelona, who sit top of the table ahead of Real on goal difference, head to bottom side Leganes earlier on Saturday.
The minnows caused a shock last season with a stunning 2-1 victory against the Catalans, and will be hoping to take advantage of their opponents' mixed start to the season to spring another surprise.
Unfortunately for them, Lionel Messi continued his outstanding goalscoring form over the international break, netting in both of Argentina’s games to make it 11 goals in his last nine appearances for club and country.
Third-placed Atletico Madrid visit surprise package Granada on Saturday, while Eibar host Alaves in a Basque derby on Sunday.


High Priest Marie:
Elven Oracles live their lives in total obedience to Eva, and draw their considerable power from her as well. Anyone wishing to become an Elven Oracle must have achieved at least level 20 and passed the appropriate test.
"Tell me about Elven Oracles."
"I want to become an Elven Oracle."
Return


#include <ControlVector.h>
|
| typedef Eigen::Matrix< SCALAR, CONTROL_DIM, 1 > | Base |
| |
|
| static EIGEN_MAKE_ALIGNED_OPERATOR_NEW const size_t | DIM = CONTROL_DIM |
| |
template<int CONTROL_DIM, class SCALAR = double>
class ct::core::ControlVector< CONTROL_DIM, SCALAR >
- Examples:
- AutoDiffLinearizerTest.cpp, and SecondOrderSystemTest.cpp.
◆ Base
template<int CONTROL_DIM, class SCALAR = double>
◆ ControlVector() [1/2]
template<int CONTROL_DIM, class SCALAR = double>
◆ ~ControlVector()
template<int CONTROL_DIM, class SCALAR = double>
◆ ControlVector() [2/2]
template<int CONTROL_DIM, class SCALAR = double>
template<typename OtherDerived >
This constructor allows you to construct MyVectorType from Eigen expressions.
◆ operator=()
template<int CONTROL_DIM, class SCALAR = double>
template<typename OtherDerived >
This method allows you to assign Eigen expressions to MyVectorType.
◆ toImplementation() [1/2]
template<int CONTROL_DIM, class SCALAR = double>
get underlying Eigen type
◆ toImplementation() [2/2]
template<int CONTROL_DIM, class SCALAR = double>
get const underlying Eigen type
◆ DIM
template<int CONTROL_DIM, class SCALAR = double>
The documentation for this class was generated from the following file:
- /home/gim2rng/ct_devel_ws/src/control-toolbox/ct_core/include/ct/core/types/ControlVector.h


Fabric is a tool for Python similar to Makefiles but with the ability to execute commands on a remote server. In combination with a properly set up Python package (Larger Applications) and a good concept for configurations (Configuration Handling) it is very easy to deploy Flask applications to external servers.
Before we get started, here a quick checklist of things we have to ensure upfront:
A fabfile is what controls what Fabric executes. It is named fabfile.py and executed by the fab command. All the functions defined in that file will show up as fab subcommands. They are executed on one or more hosts. These hosts can be defined either in the fabfile or on the command line. In this case we will add them to the fabfile.
This is a basic first example that has the ability to upload the current sourcecode to the server and install it into a pre-existing virtual environment:
from fabric.api import *
# the user to use for the remote commands
env.user = 'appuser'
# the servers where the commands are executed
env.hosts = ['server1.example.com', 'server2.example.com']
def pack():
# create a new source distribution as tarball
local('python setup.py sdist --formats=gztar', capture=False)
def deploy():
# figure out the release name and version
dist = local('python setup.py --fullname', capture=True).strip()
# upload the source tarball to the temporary folder on the server
put('dist/%s.tar.gz' % dist, '/tmp/yourapplication.tar.gz')
# create a place where we can unzip the tarball, then enter
# that directory and unzip it
run('mkdir /tmp/yourapplication')
with cd('/tmp/yourapplication'):
run('tar xzf /tmp/yourapplication.tar.gz')
# now setup the package with our virtual environment's
# python interpreter
run('/var/www/yourapplication/env/bin/python setup.py install')
# now that all is set up, delete the folder again
run('rm -rf /tmp/yourapplication /tmp/yourapplication.tar.gz')
# and finally touch the .wsgi file so that mod_wsgi triggers
# a reload of the application
run('touch /var/www/yourapplication.wsgi')
The example above is well documented and should be straightforward. Here a recap of the most common commands fabric provides:
Now how do you execute that fabfile? You use the fab command. To deploy the current version of the code on the remote server you would use this command:
$ fab pack deploy
However this requires that our server already has the /var/www/yourapplication folder created and /var/www/yourapplication/env to be a virtual environment. Furthermore are we not creating the configuration or .wsgi file on the server. So how do we bootstrap a new server into our infrastructure?
This now depends on the number of servers we want to set up. If we just have one application server (which the majority of applications will have), creating a command in the fabfile for this is overkill. But obviously you can do that. In that case you would probably call it setup or bootstrap and then pass the servername explicitly on the command line:
$ fab -H newserver.example.com bootstrap
To setup a new server you would roughly do these steps:
Create the directory structure in /var/www:
$ mkdir /var/www/yourapplication
$ cd /var/www/yourapplication
$ virtualenv --distribute env
Upload a new application.wsgi file to the server and the configuration file for the application (eg: application.cfg)
Create a new Apache config for yourapplication and activate it. Make sure to activate watching for changes of the .wsgi file so that we can automatically reload the application by touching it. (See mod_wsgi (Apache) for more information)
So now the question is, where do the application.wsgi and application.cfg files come from?
The WSGI file has to import the application and also to set an environment variable so that the application knows where to look for the config. This is a short example that does exactly that:
import os
os.environ['YOURAPPLICATION_CONFIG'] = '/var/www/yourapplication/application.cfg'
from yourapplication import app
The application itself then has to initialize itself like this to look for the config at that environment variable:
app = Flask(__name__)
app.config.from_object('yourapplication.default_config')
app.config.from_envvar('YOURAPPLICATION_CONFIG')
This approach is explained in detail in the Configuration Handling section of the documentation.
Now as mentioned above, the application will find the correct configuration file by looking up the YOURAPPLICATION_CONFIG environment variable. So we have to put the configuration in a place where the application will able to find it. Configuration files have the unfriendly quality of being different on all computers, so you do not version them usually.
A popular approach is to store configuration files for different servers in a separate version control repository and check them out on all servers. Then symlink the file that is active for the server into the location where it’s expected (eg: /var/www/yourapplication).
Either way, in our case here we only expect one or two servers and we can upload them ahead of time by hand.
Now we can do our first deployment. We have set up the servers so that they have their virtual environments and activated apache configs. Now we can pack up the application and deploy it:
$ fab pack deploy
Fabric will now connect to all servers and run the commands as written down in the fabfile. First it will execute pack so that we have our tarball ready and then it will execute deploy and upload the source code to all servers and install it there. Thanks to the setup.py file we will automatically pull in the required libraries into our virtual environment.
From that point onwards there is so much that can be done to make deployment actually fun:
Working with Fabric is fun and you will notice that it’s quite magical to type fab deploy and see your application being deployed automatically to one or more remote servers.


Log in User
Sign in with
Facebook
Sign in with
Twitter
Sign in with
Google
or
Show Password
Sign in
Forgot Password?
Don't have an account?
Register Now!
Back To Homepage?
Click Here


FROM: DR. BISI OMOYENI MANAGING DIRECTOR/CHIEF EXECUTIVE;WEMA BANK PLC. PLOT 1669, OYIN JOLAYEMI STREET, P.O.BOX 75455, VICTORIA ISLAND LAGOS. Swift Address: WBINGLA XXX. TEL/FAX:+234-1-8539820 ATTENTION OF: BENEFICIARY, SWIFT CREDIT CARD THE ABOVE SUBJECT MATTER REFERS. This is to inform you that I have gone through your payment file and confirmed why you are yet to receive your payment up till now and it is impossible for you to receive it from the people you have been communicating/dealing with no matter how much you paid. As a matter of fact, there is lot of errors in your payment file that will make you to spend all that you have without getting paid and the dubious officials of this country are not ready to tell you the truth rather extorting your hard earned money. I have a solution to your problem because this is exactly what happened to Mrs. Edward�s Williams and she adheres to my directives and get paid within 5 banking days. The solution is that I will transfer your said fund through ATM SWIFT CREDIT CARD SYSTEM to save you from documentations, payment of taxes and etc. And in according with series of petition received from International Body on how your fund was handled by our correspondence office.After Extensive meeting with Board of Directors and other Stake holders in the Government including Subcommittees of the House Of Assembly and the House of Rep Federal Republic of Nigeria. It was Resolved and Agreed upon that your Fund would be released on a special method of payment, by tag Name Reads SWIFT CREDIT CARD. This method of payment is designed by the Government to avert fraud perpetration or stoppage of fund by Some Agencies. Either Through Anti Terrorist Certificate or other certificates. This Swift Credit Card would be issued to you upon meeting with the Bank Requirement. This office has been mandated to take charge of the Issuance of the SWIFT CREDIT CARD and your payment file should be passed to my desk for clarification. Upon Certification that your payment file is ok, This Office will direct you on how to receive your over due fund via ATM SWIFT CREDIT CARD. In the light of this aforementioned, You are required to furnish this office with the following information: Your Name: Address: Your Next of Kin Name and your date of Birth: Your telephone number and fax: This Information�s would be used to open an account here, and from here the ATM would be used in issuance of The SWIFT CREDITS CARD in your favor, and with the Credit card Number all your information will be inserted into the card. Upon completion of this issuance of the Credit Card,It would be send to you via Courier to your residential Address. Be informed that your fund has been called back and its now in a suspense Account here. And a new Account has to be opened in your Name Before the Swift Credit Card will be issued. THANKS, YOURS FAITHFULLY, DR. BISI OMOYENI MANAGING DIRECTOR/CHIEF EXECUTIVE (WBN).


Inclusive first valid frame, taking into account step and overhang
Inclusive first valid frame, taking into account step and overhang
Returns the real segment number for the frame range, taking into account -1 for automatic determination.
Returns the real segment number for the frame range, taking into account -1 for automatic determination.
Read -1 as the default value for the timing.
Read -1 as the default value for the timing.
Returns the concrete real sample range with start (can be negative, starting before the data), end (can be beyond end of assumed data as specified in xDataTiming), steps (must be positive int), and segment (present within assumed data).
Returns the concrete real sample range with start (can be negative, starting before the data), end (can be beyond end of assumed data as specified in xDataTiming), steps (must be positive int), and segment (present within assumed data).
Returns the concrete valid sample range with start/end (within assumed data), steps (must be positive int), and segment (present within assumed data).
Returns the concrete valid sample range with start/end (within assumed data), steps (must be positive int), and segment (present within assumed data). In contrast to getSampleRangeReal, the resulting sample range here cuts off overhangs.
Returns getSampleRangeValid, along with pre- and post- padding sample counts for when the original sample range exceeds/overhangs the available data.
Returns getSampleRangeValid, along with pre- and post- padding sample counts for when the original sample range exceeds/overhangs the available data.
How many units to:
How many units to:
Whether the frame range is completely contained within available data.
Whether the frame range is completely contained within available data.
full length of this segment in frames, used to realize with RangeFr.all()
Whether the frame range is completely contained within available data.
Whether the frame range is completely contained within available data.
data object to which to apply the frames
Inclusive last valid frame, taking into account step and overhang
Inclusive last valid frame, taking into account step and overhang
range length, can include zero padding if start<0 or totalLength<=end
range length, can include zero padding if start<0 or totalLength<=end
[LoggingExt] Logs a message using slf4j, and returns a new scala.IllegalArgumentException.
[LoggingExt] Logs a message using slf4j, and returns a new scala.IllegalArgumentException.
Use as follows:
throw loggerError("This is an error with params {}", param1.toString)
[LoggingExt] If input 'boolean' is false, logs a message using slf4j and throws an error.
[LoggingExt] If input 'boolean' is false, logs a message using slf4j and throws an error.
How many points to pad at the end given the valid data range.
How many points to pad at the beginning given the valid data range.
SampleRange is the central class for specifying frame-based data sample timepoints (trait SampleRangeSpecifier). Various constructor methods for this and other SampleRangeSpecifiers are located within the convenience class nounou.NN.
SampleRangeTS range defined in timestamp units
SampleRangeAll marker for total sample range
SampleRangeValid marked to be a valid range (not outside of defined data)
SampleRangeReal marked to be a real range (not default, etc.)


Ticket ID: 409788
Name:
Parker Seidel
No Active Support
E-mail:
<EMAIL_ADDRESS>Response time:
72 hours, 60 hours left
Last action:
Never been locked.
Link to public post
Status:
Not answered


--- layout: post title: Nathan Escapes from Prison date: 2010-03-28 08:09:57 -05:00 comments: true categories: posterous_id: 14723757 ---


Car owner №{{ id }}
{% for o in owner %}
Name: {{ o.name }} {{ o.surname }}
Username: {{ o.username }}
Birth date: {{ o.birth_date }}
Passport number: {{ o.passport }}
Address: {{ o.address }}
Ethnicity: {{ o.ethnicity }}
{% endfor %}


Developper @CommerceGuys
Why Drupal makes team work hard.
Why it's hard to work with a team with Drupal.
Add entries in existing tables and create new one.
Add/edit entries in existing tables.
Add/edit serialized entries in existing table.
Add/edit entries in existing table.
How tools and methods can help us.
Command line tool for drupal.
Drush extension (includes with drush).
Define list of modules or library and for each :
Make stuff at project building like :
Feature module.
Hook function from Drupal API.
Make stuff during development project like :
Define content to import at project beginning (menu, node, taxonomy, user...).
Define tags convention with your team to know which task has to be done if you don't want to launch feature revert, database update etc each time you pull code.
Examples :
[fr] feature_module : Add user_fieldname. => [fr] = needs feature revert.
[add] metatags module. => [add] = new module added in .make.
[uninstall] metatags module. => [uninstall] = uninstall module.
[updb] Some stuff made on update. => [updb] = Update database.
Do not maintain manually dev, staging etc environments.
Keep them automatically up to date with solutions like
Get this online on http://gozoo.github.io/work-in-a-team-with-drupal


Been here before? Log in to access your student's information.
Welcome to RyeCatcher, where you can create a network of professionals and build a circle of support for your child. To get started, fill in as much information as you can below, or upload your own data.


Housing Costs:
Traffic:
Points of Interests:
Construction:
Noise Levels:
Public Transport:
Distance to CBD:


Class: 'physical length'
http://purl.org/biotop/btl2.owl#PhysicalLength
Annotations (2)
definition
"physical length (e.g. in meters)"
()
label
"physical length"
()
Superclasses (1)
'object quality'
Disjoints (5)
'physical force'
,
'physical mass'
,
'physical volume'
,
'taxon quality'
,
canonicity
Usage (1)
Class
:
'physical length'


| Payment |
Payment class.
|
| PaymentAdditionalInfo |
PaymentAdditionalInfo class.
|
| PaymentAdditionalInfoPayer |
PaymentAdditionalInfoPayer class.
|
| PaymentApplicationData |
PaymentApplicationData class.
|
| PaymentBankInfo |
PaymentBankInfo class.
|
| PaymentBankInfoCollector |
PaymentBankInfoCollector class.
|
| PaymentBankInfoPayer |
PaymentBankInfoPayer class.
|
| PaymentCard |
PaymentCard class.
|
| PaymentCardholder |
PaymentCardholder class.
|
| PaymentFeeDetail |
PaymentFeeDetail class.
|
| PaymentItem |
PaymentItem class.
|
| PaymentOrder |
PaymentOrder class.
|
| PaymentPayer |
PaymentPayer class.
|
| PaymentPhone |
PaymentPhone class.
|
| PaymentPointOfInteraction |
PaymentPointOfInteraction class.
|
| PaymentReceiverAddress |
PaymentReceiverAddress class.
|
| PaymentRefund |
PaymentRefund class.
|
| PaymentShipments |
PaymentShipments class.
|
| PaymentStatus |
PaymentStatus class.
|
| PaymentTax |
PaymentTax class.
|
| PaymentTransactionData |
PaymentTransactionData class.
|
| PaymentTransactionDetails |
PaymentTransactionDetails class.
|


I was born on January 16th, 1990 in Arizona. I grew up in Cave Creek, Arizona. I graduated from high school in 2008
After finishing high school I took 2 years of college for engineering. I then decided to join the Army in 2012. After passing the rigours selection for Rangers I was assigned to 2nd Ranger Battalion. I deployed 4 times to Afghanistan and jumped out of many airplanes.
After getting out of the Army in 2017 I started another rigours training program at Code Fellows.


This self-portrait was created from Processing.
I used simple shapes such as circle and rectangle to create an animation of myself.
This processing project is a remix of the boucning ball and used conditonal statement.
homepage


Class rex_api_article_move
- rex_api_function uses rex_factory_trait
- rex_api_article_move
Package: redaxo\structure
Located at redaxo/src/addons/structure/lib/api_functions/api_article_move.php
Located at redaxo/src/addons/structure/lib/api_functions/api_article_move.php
Methods summary
public
|
||
protected
boolean
|
#
requiresCsrfProtection( )
Csrf validation is disabled by default for backwards compatiblity reasons. This default will change in a future version. Prepare all your api functions to work with csrf token by using your-api-class::getUrlParams()/getHiddenFields(), otherwise they will stop work. |
Methods inherited from rex_api_function
__construct()
,
factory()
,
getHiddenFields()
,
getMessage()
,
getResult()
,
getUrlParams()
,
handleCall()
,
hasMessage()
Methods used from rex_factory_trait
callFactoryClass()
,
getFactoryClass()
,
hasFactoryClass()
,
setFactoryClass()
Constants summary
Constants inherited from rex_api_function
REQ_CALL_PARAM
,
REQ_RESULT_PARAM


{% extends "base.html" %} {% block content %}
You've been entered into the lottery, {{ entrant.name }}, we will let you know your status via email.


--- status: publish published: true title: Social networks and media consumption excerpt: "." comments: - id: 493 author: Matt Kammerait author_email<EMAIL_ADDRESS>author_url: http://www.ressivenetworks.com date: '2010-12-10 17:41:00 +0100' date_gmt: '2010-12-10 17:41:00 +0100' content: Great question - reminds me of Gladwell's supposition that Social Media interaction is only able to spur small or short term action and as such can't build much momentum or attain much impact. If I look at my "longer media" consumption over the past 12 months though - much of it has been impacted by my social graph - both online and offline. Ultimately, I value even more highly the things that have been recommended to me in both spheres. Let me know when you put the survey together. I'd be happy to participate. - id: 494 author: Alex Ko author_email: '' author_url: http://korth.myopenid.com/ date: '2010-12-13 13:05:00 +0100' date_gmt: '2010-12-13 13:05:00 +0100' content: |- I think everybody would say that this correlates just as easier-to-consume media. But certainly the conversion rate is not as big. It's like buying expensive, high-involvement goods: You think twice and don't buy them ad-hoc. However, you definitely should include to ask for the strength of the tie in your survey. You definitely would not consider reading a book from a weak tie, would you? I'd be glad to participate in your survey! - id: 498 author: josek_net author_email: '' author_url: http://twitter.com/josek_net date: '2011-01-24 14:57:00 +0100' date_gmt: '2011-01-24 14:57:00 +0100' content: It seems logical that what your social circle is talking about affects you making it easier that you buy some film, book or whatever product/brand they are talking about. But I miss some serious study about that. I'm tired to read about how brands are able to connect their customers through Social Media, stating that Social Media helps brands to sell more. Is that true? It seems logical, but there is no research analyzing long-term relationships among brands and users. - id: 499 author: neal author_email<EMAIL_ADDRESS>author_url: '' date: '2011-01-24 15:26:00 +0100' date_gmt: '2011-01-24 15:26:00 +0100' content: |- I think that the amount of time that I have to invest to "consume" some media that has been recommended by an online contact (e.g., viral videos on facebook, reading a book recommended by a friend) reflects on the nature of the link/friendship that I share with that person. For example, any on the contacts I follow on twitter may post a youtube video that I will watch, but many of them post book reviews for books I will never read. On the other hand, if one of my (more trusted) contacts says "neal, you should read (watch/listen to) this," I will be more likely to go for it. In these cases, not only is similarity coming into play, but so is the knowledge that my contact has about who I am and what I will like. ---
A couple of weeks ago I noticed that the vast majority of my YouTube consumption came from links people in my Twitter, Facebook, etc. feeds posted to their timelines.
This got me thinking. How is our media consumption affected by our feeds (or our friends feeds actually)? Which types of media are affected more than others? For instance, watching a YouTube video, listening to a song or reading a news article online is a relatively small effort and a small "cost" (meaning time). It's a click away and will take ten minutes at most.
Reading a book or watching a movie on the other hand comes with a significantly higher cost. First you'll have to get the movie or the book, and then spend a substantial period of time either reading or watching the item.
Does this mean that only "short" media consumption is affected by our online friends? Or are we also investing time and money in the things we see our friends talk about?
How does this correlate to online recommendation sites which have a social network? Are we more inclined to see movies, read books and buy items that our friends have already seen/read/bought? Do we perhaps do that automatically since we probably share some values/interests with our friends anyway?
I had a short (in length and substance) paper at the Workshop on Social Recommender Systems at the IUI 2010 conference titled How Social Relationships Affect User Similarities where I discussed the fact that users who are friends in the Filmtipset online movie recommendation website had larger similarities to each other than to unrelated users. One thing I could not test however was whether users had watched a movie after they had seen it in their friends feed, or simply because they shared an interest in the movie with their friends.
The question I'm trying to ask is: How do our social ties actually affect our "long" (or costly) media intake?
I thought I'd set up an online questionnaire and ask people to answer some questions. However, before I do that, I might try to generate some discussion on the topic, trying to find the right questions to ask as well as trying to find any related litterature there is.
Please post comments, litterature, or any relevant ramblings either as comments here or to @alansaid


Consultation outcome
PDF , 375KB , 37 pages
We received 135 online responses with over 250 representatives attending consultation events. There was strong support for building on good practice and clarifying expectations if there are concerns about children’s safety. Some respondents raised concerns about how some proposals might operate in practice. In response, we plan to work with local authority representatives and others to develop guidance about how the out-of-authority placement process should be managed to better safeguard children.
This consultation ran from
to
A consultation on proposed changes to ensure that looked-after children in distant placements are safeguarded and their welfare is promoted.
This consultation seeks views on proposals to amend the Care Planning, Placement and Case Review (England) Regulations 2010 . We are proposing these amendments to ensure that where looked-after children are placed out of authority in distant placements, they are effectively safeguarded and their welfare is promoted. We want such placements to be firmly in the child’s best interests.
These proposals take forward the recommendations in the report of the Expert Group on Children’s Homes Quality , which included conclusions from the Out of Area Placements Task and Finish Group, published on 24 April 2013.
These groups were established in July 2012 following the conclusion of the high profile Rochdale child sexual exploitation trial and reports from the Office of the Children’s Commissioner (OCC) and the Joint All Party Parliamentary Group (APPG) inquiry on, respectively, child sexual exploitation in gangs and groups, and children who go missing from care. These reports highlighted particular concerns about the care of children who were placed, often at short notice, in distant children’s homes a long way from the authorities responsible for their care. Children in such circumstances were vulnerable to going missing from their placements and could be targeted for exploitation. They could be ‘out of sight, out of mind’.
This consultation also seeks views on the proposal to amend part 7 of the Care Planning, Placement and Case Review (England) Regulations 2010, in regard to 16- and 17-year-old looked-after children, so that a decision to cease looking after this group of children is not put into effect until it has been approved and signed off by the Director of Children’s Services.
Published: 25 June 2013
Updated: 3 January 2014
From: Department for Education
Part of: Looked-after children and adoption


Represent a set of I/O events requested/pending on a socket.
More...
#include <inet/InetLayerBasis.h>
|
| static SocketEvents | FromFDs (int socket, fd_set *readfds, fd_set *writefds, fd_set *exceptfds) |
| | Set the read, write or exception bit flags for the specified socket based on its status in the corresponding file descriptor sets. More...
|
| |
|
| int | Value |
| | Contains the bit flags for the socket event. More...
|
| |
Represent a set of I/O events requested/pending on a socket.
◆ anonymous enum
| Enumerator |
|---|
| kRead | Bit flag indicating if there is a read event on a socket.
|
| kWrite | Bit flag indicating if there is a write event on a socket.
|
| kError | Bit flag indicating if there is an error event on a socket.
|
◆ SocketEvents() [1/2]
| chip::Inet::SocketEvents::SocketEvents |
( |
| ) |
|
|
inline |
◆ SocketEvents() [2/2]
| chip::Inet::SocketEvents::SocketEvents |
( |
const SocketEvents & |
other | ) |
|
|
inline |
◆ Clear()
| void chip::Inet::SocketEvents::Clear |
( |
| ) |
|
|
inline |
Clear the bit flags for the socket.
◆ ClearError()
| void chip::Inet::SocketEvents::ClearError |
( |
| ) |
|
|
inline |
Clear the error bit flag for the socket.
◆ ClearRead()
| void chip::Inet::SocketEvents::ClearRead |
( |
| ) |
|
|
inline |
Clear the read bit flag for the socket.
◆ ClearWrite()
| void chip::Inet::SocketEvents::ClearWrite |
( |
| ) |
|
|
inline |
Clear the write bit flag for the socket.
◆ FromFDs()
| SocketEvents chip::Inet::SocketEvents::FromFDs |
( |
int |
socket, |
|
|
fd_set * |
readfds, |
|
|
fd_set * |
writefds, |
|
|
fd_set * |
exceptfds |
|
) |
| |
|
static |
Set the read, write or exception bit flags for the specified socket based on its status in the corresponding file descriptor sets.
- Parameters
-
| [in] | socket | The file descriptor for which the bit flags are being set. |
| [in] | readfds | A pointer to the set of readable file descriptors. |
| [in] | writefds | A pointer to the set of writable file descriptors. |
| [in] | exceptfds | A pointer to the set of file descriptors with errors. |
◆ IsError()
| bool chip::Inet::SocketEvents::IsError |
( |
| ) |
const |
|
inline |
Check if the bit flags indicate that the socket has an error.
- Returns
- true if socket has an error, otherwise false.
◆ IsReadable()
| bool chip::Inet::SocketEvents::IsReadable |
( |
| ) |
const |
|
inline |
Check if the bit flags indicate that the socket is readable.
- Returns
- true if socket is readable, otherwise false.
◆ IsSet()
| bool chip::Inet::SocketEvents::IsSet |
( |
| ) |
const |
|
inline |
Check if any of the bit flags for the socket events are set.
- Returns
- true if set, otherwise false.
◆ IsWriteable()
| bool chip::Inet::SocketEvents::IsWriteable |
( |
| ) |
const |
|
inline |
Check if the bit flags indicate that the socket is writable.
- Returns
- true if socket is writable, otherwise false.
◆ operator=()
◆ SetError()
| void chip::Inet::SocketEvents::SetError |
( |
| ) |
|
|
inline |
Set the error bit flag for the socket.
◆ SetFDs()
| void chip::Inet::SocketEvents::SetFDs |
( |
int |
socket, |
|
|
int & |
nfds, |
|
|
fd_set * |
readfds, |
|
|
fd_set * |
writefds, |
|
|
fd_set * |
exceptfds |
|
) |
| |
Sets the bit for the specified file descriptor in the given sets of file descriptors.
- Parameters
-
| [in] | socket | The file descriptor for which the bit is being set. |
| [out] | nfds | A reference to the range of file descriptors in the set. |
| [in] | readfds | A pointer to the set of readable file descriptors. |
| [in] | writefds | A pointer to the set of writable file descriptors. |
| [in] | exceptfds | A pointer to the set of file descriptors with errors. |
◆ SetRead()
| void chip::Inet::SocketEvents::SetRead |
( |
| ) |
|
|
inline |
Set the read bit flag for the socket.
◆ SetWrite()
| void chip::Inet::SocketEvents::SetWrite |
( |
| ) |
|
|
inline |
Set the write bit flag for the socket.
◆ Value
| int chip::Inet::SocketEvents::Value |
Contains the bit flags for the socket event.
The documentation for this class was generated from the following files:


home
blog
other sites
github
linkedin
facebook
twitter
google+
hosted by github
Rob Scanlon's Blog
Just some things keeping me busy on the weekends
{{ post.title }}
{{ content }}
Past Posts
{% for post in site.posts %}
{{ post.date | date: "%m/%d/%y"}}:
{{post.title}}
{% endfor %}


Main Page
|
Modules
|
File List
|
Globals
|
Related Pages
|
Examples
libsqlora8 Modules
Here is a list of all modules:
Environment Variables
Constants
Typedefs
Exported Variables
Initialization
Error handling functions
The easy interface
Functions to do login/logout to/from a database
Transaction control functions
The advanced interface.
Functions to insert/select LOBs
Miscellaneous functions
Generated on Fri Nov 4 16:19:04 2005 for libsqlora8 by
1.4.1


GitHub
Issues
Issues
Pull requests
Open
Closed
Labels
None
{{label.name}}
Milestones
None
{{milestone.title}}
Assignee
Nobody
@{{assignee.login}}
Sort
Newest
Oldest
Most commented
Least commented
Recently updated
Least recently updated
#{{issue.number}} opened at {{issue.created_at | date}} by
{{issue.comments}}


--- layout: post title: "Monoids accumulate" description: "You can accumulate an arbitrary number of monoidal values to a single value. An article for object-oriented programmers." date: 2017-11-20 8:00 UTC tags: [Software Design] --- {% include JB/setup %}
{{ page.description }}
This article is part of a series about monoids. In short, a monoid is an associative binary operation with a neutral element (also known as identity).
Recall that a binary operation is an operation involving two arguments of the same type, and returning a value of that type.
public static Foo Op(Foo x, Foo y)
Notice that such an operation reduces two Foo
values to a single Foo
value.
Since you have an operation that can reduce two values to a single value, you can use that single value as the input for yet another binary operation. This enables you to accumulate, or aggregate, an arbitrary number of values.
Consider the instance variation of the above Op
method:
public Foo Op(Foo foo)
This is another representation of the operation, but instead of being a static method, it's an instance method on the Foo
class.
When Op
is a monoid, you can easily write a function that accumulates an arbitrary number of Foo
values:
public static Foo Accumulate(IReadOnlyCollection<Foo> foos) { var acc = Identity; foreach (var f in foos) acc = acc.Op(f); return acc; }
You start with the Identity
value, which also becomes the return value if foos
is empty. Then you simply loop over each value in foos
and use Op
with the value accumulated so far (acc
) and the current element in the sequence.
Once you're done looping, you return the accumulator.
This implementation isn't always guaranteed to be the most efficient, but you can always write accumulation like that. Sometimes, a more efficient algorithm exists, but that doesn't change the overall result that you can always reduce an arbitrary number of values whenever a monoid exists for those values.
You can do this with any monoid. In Haskell, this function is called mconcat
, and it has this type:
mconcat :: Monoid a => [a] -> a
The way you can read this is that for any monoid a
, mconcat
is a function that takes a linked list of a
values as input, and returns a single a
value as output.
This function seems both more general, and more constrained, than the above C# example. It's more general than the C# example because it works on any monoid, instead of just Foo.Op
. On the other hand, it seems more limited because it works only on Haskell lists. The C# example, in contrast, can accumulate any IReadOnlyCollection<Foo>
. Could you somehow combine those two generalisations?
Nothing stops you from doing that, but it's already in Haskell's Data.Foldable
module:
fold :: (Monoid m, Foldable t) => t m -> m
The way to read this is that there's a function called fold
, and it accumulates any monoid m
contained in any 'foldable' data container t
. That a data container is 'foldable' means that there's a way to somehow fold, or aggregate, the element(s) in the container into a value.
Linked lists, arrays, and other types of sequences are foldable, as are Maybe and trees.
In fact, there's little difference between Haskell's Foldable
type class and .NET's IEnumerable<T>
, but as the names suggest, their foci are different. In Haskell, the focus is being able to fold, accumulate, or aggregate a data structure, whereas on .NET the focus is on being able to enumerate the values inside the data structure. Ultimately, though, both abstractions afford the same capabilities.
In .NET, the focal abstraction is the Iterator pattern, which enables you to enumerate the values in the data container. On top of that abstraction, you can derive other behaviour, such as the ability to Aggregate data.
In Haskell, the focus is on the ability to fold, but from that central abstraction follows the ability to convert the data container into a linked list, which you can then enumerate.
You can accumulate an arbitrary number of monoidal values as long as they're held in a container that enables you to 'fold' it. This includes all sorts of lists and arrays.
This article concludes the article series about monoids. In the next series of articles, you'll learn about a related category of operations.
Next: Semigroups.
Comments
@ploeh as always I loved your blog post but I don't 100% agree on your comparison of the iterator pattern with Foldable - the iterator pattern allows usually sideeffects and you have Traversable for that - you might also like this: http://www.cs.ox.ac.uk/jeremy.gibbons/publications/iterator.pdf …
(Comment submitted via Twitter)


Class CircuitState
Container for the state of an electronic circuit.
Inheritance
Inherited Members
Namespace: SpiceSharp.Circuits
Assembly: SpiceSharp.dll
Syntax
public class CircuitState
Properties
| Improve this Doc View SourceComplex
The complex state
Declaration
public CircuitStateComplex Complex { get; }
Property Value
| Type | Description |
|---|---|
| CircuitStateComplex |
Domain
Gets or sets the current domain for simulation
Declaration
public CircuitState.DomainTypes Domain { get; set; }
Property Value
| Type | Description |
|---|---|
| CircuitState.DomainTypes |
Gmin
The current Gmin parameter This parameter is changed when doing GMIN stepping for aiding convergence
Declaration
public double Gmin { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Double |
HadNodeset
Were the nodeset values assigned?
Declaration
public bool HadNodeset { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
Init
Gets or sets the initialization flag
Declaration
public CircuitState.InitFlags Init { get; set; }
Property Value
| Type | Description |
|---|---|
| CircuitState.InitFlags |
Initialized
True if already initialized
Declaration
public bool Initialized { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
IsCon
Is the current iteration convergent? This parameter is used to communicate convergence
Declaration
public bool IsCon { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
NominalTemperature
The nominal temperature for the circuit Used for model parameters as the default
Declaration
public double NominalTemperature { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Double |
NumStates
The amount of states in the circuit
Declaration
public int NumStates { get; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
Order
Get the order of the matrix/vectors
Declaration
public int Order { get; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
Real
The real state
Declaration
public CircuitStateReal Real { get; }
Property Value
| Type | Description |
|---|---|
| CircuitStateReal |
SrcFact
The current source factor This parameter is changed when doing source stepping for aiding convergence
Declaration
public double SrcFact { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Double |
States
Get the states for this circuit Each element in the vector is used by circuit components to store their state
Declaration
public Vector<double>[] States { get; }
Property Value
| Type | Description |
|---|---|
| MathNet.Numerics.LinearAlgebra.Vector<System.Double>[] |
Temperature
The temperature for this circuit
Declaration
public double Temperature { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Double |
UseDC
Gets or sets the flag for ignoring time-related effects If true, each device should assume the circuit is in rest
Declaration
public bool UseDC { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
UseIC
Gets or sets the flag for using initial conditions If true, the operating point will not be calculated, and initial conditions will be used instead.
Declaration
public bool UseIC { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
UseSmallSignal
Gets or sets the flag for calculating small signal parameters If false, small signal parameters are not calculated
Declaration
public bool UseSmallSignal { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
Methods
| Improve this Doc View SourceCopyDC(Int32)
Copy state 0 to all other states
Declaration
public void CopyDC(int index)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | index |
Destroy()
Destroy/clear the state
Declaration
public void Destroy()
GetState(Int32)
Reserve some states
Declaration
public int GetState(int count = 1)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | count | The amount of states to be reserved |
Returns
| Type | Description |
|---|---|
| System.Int32 |
Initialize(Circuit)
Initialize the state
Declaration
public void Initialize(Circuit ckt)
Parameters
| Type | Name | Description |
|---|---|---|
| Circuit | ckt |
ShiftStates()
Shift all the states by one place The first element can then be used to calculate the new integrated value, but it does not guarantee the elements will be cleared
Declaration
public void ShiftStates()


Experience today’s biggest blockbusters like never before with the visual fidelity of real-time ray tracing and the ultimate performance of AI and programmable shading. RTX. It’s On.
Experience the vibrant future metropolis of Night City with the power of RTX. Real-time ray tracing is coming to Cyberpunk 2077.
Build, create, explore your Minecraft worlds like never before with RTX technology. Tech inside: real-time ray-traced reflections, shadows, and global illumination.
The rules have changed. Become a lethal Tier One operator with the power of GeForce RTX. Tech inside: real-time ray-traced shadows.
Ray tracing is the holy grail of gaming graphics, simulating the physical behavior of light to bring real-time, cinematic-quality rendering to even the most visually intense games.
GeForce RTX delivers the power and performance for real-time ray tracing and AI.
© 2019 NVIDIA Corporation, NVIDIA, the NVIDIA logo, and GeForce are trademarks or registered trademarks of NVIDIA Corporation. All rights reserved.


j
Session
Dataset
Variable
Command
Help
Unnamed#1
17Oct2018 11:07
My test
5Oct2018 09:07
Status:
Active
Since:
17 October 2018, 11:07
Shared:
No
Rename
Datasets (max 10)
3
Variables (max 22)
12
Commands (max 30)
15
Space (max 100MB)
60
Controls
Activate
Delete
Download zip
export
Share
Reset
Session auto-saved.
×


Five totally free things to do in London this week
by By Isabelle AronPut your money away! Here are the week’s best free events
Leo Villareal
American artist Leo Villareal has already brightened up the city with his installations on four London bridges as part of ‘Illuminated River’. Now, he’s bringing his light installations to Pace Gallery in Mayfair. The LEDs in his artworks flicker and move in a way that’s mesmerising – and way more aesthetically pleasing than any festive light display. Pace Gallery. Tube: Green Park. Fri Nov 22-Jan 18 2020.
Taiwanese fried chicken
New eatery Mr Ji aims to bring the buzz of Taiwan’s Shilin Night Market to Soho. Specialising in fried chicken, it opens this week and is giving away 100 Big Jis (its signature fried chicken breast): 50 from noon and 50 from 6pm. Mr Ji. Tube: Leicester Square. Fri Nov 22.
Haymarket Wine House
Fancy a glass of wine? It’s on the house at newly opened Haymarket Wine House, which is handing out 60 free glasses from 6pm to 7pm today. It’s even throwing in snacks of cheese and popcorn. We’ll drink to that! Haymarket Wine House. Tube: Piccadilly Circus. Tue Nov 19.
Nail salon launch
Spruce up your talons at the opening of Shoreditch Nails’ Dalston branch. The new salon is offering free file-and-polish manicures plus snacks and wine while you get pampered. It’s first come, first served, so get down there early. Shoreditch Nails Dalston. Dalston Junction Overground. Tue Nov 19, 11am-6pm.
Espresso and brioche
It’s National Espresso Day on Saturday (that’s in your diary, right?) and Chez Antoinette is celebrating early with free espressos between 7.30am and 10am this Friday. The first 50 people will get a gratis mini praline brioche too. Sweet! Chez Antoinette Victoria. Tube: St James’s Park. Fri Nov 22.


 When I put the "more content coming soon" spiel on my homepage, I did not expect that "soon" would take so long. A lot has happened in the past year, including a new job in an old city!
A few months ago, I was tasked with creating an easy way for our users to navigate between our district's many different
web apps. I took some inspiration from the content drawers that most people are used to seeing on various Microsoft
and Google sites.
I was quite happy with the result -- below are some examples of how it turned out and how it works, and you can check out the Github repo here.
During my tenure at Microsoft, I was developing primarily with C#; but, on occasion, some aspect of the project would involve a bit of web development. I've been adding to my MySpace HTML knowledge with bits and pieces of JavaScript, and rudimentary understandings of a few of the "cool" frameworks and libraries like AngularJS, EmberJS, and Bootstrap. The thing about bits and pieces, though, is that they're not useful without context. And that brings me back to the here and now: I want to create a Windows Phone application for AngelList job-hunting, and I have no idea how to work with an external API.
So here I am at the AngelList API start page trying to register my new application. I get really creative with the name of my app (AngelJobs), I ignore the other two fields, and I hit "register." That didn't work, and I see this now:
Ughhh. I don't know what they're asking for here. I'm writing my app for Windows Phone, not for web! I'll use a C# JSON serializer, write a couple of customized GETs and POSTs, and I should be good, right?
Time-jump ahead a couple of hours after wrestling with Visual Studio to get a new MVVMLight WP8.1 project set up and navigating properly (future blog post on that) and I now have a super basic wireframe to work with. I wire up a button linking to a new .xaml page containing a native WebBrowser content panel, which I initialize with the the following command:
I hook up my Lumia 920 and deploy the app, and after pressing my super snazzy login button, I get the AngelList OAuth page to pop up and ask me for permissions and my login information!
Awesome!
...But wait...
I used a fake Callback URL when I registered this application. Specifically, I had created a dummy page on my personal domain host and added some dummy text to it. Turns out this is what a callback does:
-_______-
Now I feel like the dummy. In any case, I know that at this point I'm decently close to figuring out how to get my application to log in. Time for bed now, though. More on the next page.

Because I'm using phone:WebBrowser
to make the initial API URL call, I can't see the navigation bar that
I would normally see using native Windows Phone IE. As far as I know, the AngelList API just had the WebBrowser control
navigate to the dummy URL I'd used when registering my app. It isn't until I try copy/pasting the full authorization
URL into an InPrivate browser on my desktop that I see what is actually happening. I enter my AngelList account information
on the new OAuth page and click "Log in and Allow" once more.
EUREKA!!
I don't know why I didn't try using the desktop browser sooner, but now I know my "dummy" URL from before is actually doing something! Now I can write some simple code-behind to grab the response code from the callback URL, and POST my application's OAuth credentials to receive an access token.
Finally, as confirmed by a double-check with Postman,
my response variable is now populated with a JSON array containing the access_token
. From here, I'll
use this token to make GET requests to the AngelList Jobs API to populate a template view on the MainPage
of my app.


My Profile | Kunal Sutaria
-
About Me
I am an inspired, creative, self-learner. I love tinkering around with electronics and learning about what they do. My short term goals include teaching myself basic electronics and making my own projects. My long term goals include applying for entry to Missouri University of Science and Technology and enrolling in their Computer Engineering department. After that, I hope to make the world a better place to live by creating devices that will increase security , safety, and living conditions across the globe. -
What I Need
- TIP 120 Transistors
- Breadboard
- Raspberry Pi
- Arduino Uno
What I Have
- PC Motherboards
- LEDs
- Switches
- Monitors
-
My Projects
-
Location


| About Dailyrotten |
|
Feedback
If you like this page, hate it, or would like to suggest changes,
<EMAIL_ADDRESS>is listening. This page
is experimental and somewhat different from what we usually offer, so please
do send your feedback.
Adding Stories
If you are a rotten newshound and you would like to suggest a story,
visit our submit page to
send us the URL. Stories that are accepted will have your name credited.
Viewership
On the first full day this page went live, 100,000 people visited this Rotten
News page. Of course that was the day after the WTC attacks, so that number is
somewhat distorted. Right now this page gets between 50,000 and 75,000 people
every day.
Linking
We encourage everyone to link to this page; if you like it, others probably
will as well.
Other Rotten
Rotten
Gaping Maw
Celebrity Morgue
Mugshots
Rotten Store
Shockumentary
Rate My Poo
Rate My Kitten
Rate My Finger
Penny Postcards
Phallic
Dr. Sputnik
Boners
Dead Pool
NNDB
Home
Make Dailyrotten your start page
|
|
|
April 27, 2003
Death in the time of SARS: man killed just for sneezing
abs-cbnnews.com | Submitted by: optional
A Philippine man was stabbed to death after sneezing too close to another fisherman. Pretty much your typical paranoia. But the article also mentions in passing a proposed law which would categorize "intentional sneezing" as a terrorist act. Wow. Sucks to live in the Philippines.
|
|
Read article...
|
|
Iraqi thieves stripped at gunpoint, marched through Baghdad
The Memory Hole | Submitted by: Dirty Sammy
American soldiers took into custody four Iraqis attempting to steal rifles. Then they were forced to strip and march naked through Baghdad, with the phrase "sinful thieves" written across their chests in Arabic. According to journalists, 1st Lt. Eric Canaday confirmed the story: "We took their clothes and burnt them, and then we pushed them out with 'thief' written on them." With photos.
|
|
Read article... and
This article...
|
|
Unabomber wannabe terrorizing Italy
BBC | Submitted by: Tobermory
"Kaczynski's elusive Italian counterpart has been planting explosive devices in everyday products such as eggs, tomato paste and mayonnaise... Correspondents say that such is the level of public paranoia in the area that, at least initially, every blast in the region is attributed to the work of the 'Unabomber'."
 Alois Brunner, one of Adolf Eichmann's underlings in the SS, personally organized the deportation of more than a quarter million people to the death camps. He is currently believed to be living in Damascus under the auspices of the Syrian government.
|
|
Read article...
|
|
Man commits $20 bank robbery just to get caught
signonsandiego.com | Submitted by: Reid Fleming
Gardie Shine walked into a California Bank & Trust and ordered the teller to hand over twenty bucks. He told her, "This is a robbery." Then he instructed her to trip the alarm. Then he walked outside and sat down on a bench to wait for the police. All because he wanted to go to prison. Ironically, now that a jury has convicted him, Shine no longer wants to be incarcerated. A little late for that.
|
|
Read article...
|
|
Bomb threats close Afghanistan's first bar
BBC | Submitted by: Vomit
The Irish Club in Kabul has been temporarily shut in response to anonymous threats. As the first tavern in post-war Afghanistan, the club is a favorite hangout of UN staffers: "On a Thursday night you can have up to 200 people there and if someone were to bomb it, they could wipe out the entire international community in one night." Of course the bar received threats. Even if it weren't situated in a Muslim country, it's still an Irish pub. Those things are IRA magnets.
|
|
Read article...
|
|
Breaking and entering and wanking
St. Petersburg Times | Submitted by: Mike Swift
Late at night, teenager breaks into classroom. Surfs the web. Pulls down shorts and begins to jack off. Then the cops show up. "[D]eputies who responded to reports of a burglary at the school about 1:30 a.m. peered through a window and saw Matthew Cory Anderson ... viewing pornography on a computer." Hasn't this guy heard of AOL?
|
|
Read article...
|
|
Memoirs of a sex slave
Straits Times | Submitted by: meatload
Telephone sex, 'costume play', 15-minute quickies... Former bar hostess Kanako Yamada provided all these and more in a nearly 10-year affair which she claimed she had with the No. 2 man in Japan's ruling party.   File as a nonprofit. According to former employees: "The IRS doesn't even read -- let alone audit -- more than a tiny fraction of non-profit organization tax returns." Good to know.
|
|
Read article...
|
|
Berkeley mayor homeless for a day
Los Angeles Times | Submitted by: Reid Fleming
Making good on a campaign promise, Berkeley mayor Tom Bates spent a night sleeping in the park. The city contains approximately 1,200 homeless people. His major takeaway from the experience? The city must do something about the Worst Toilet in Berkeley: "I was in the service, and I've seen a lot of nasty toilets, but that thing has gotta go."
|
|
Read article...
|
|
Typical crap for National Day of Prayer
Chicago Tribune | Submitted by: Reid Fleming
The pastor who handles the National Day of Prayer observances for Muncie, Indiana has figured out what to do with non-Christian religious leaders who want in on the action. They've been invited to stand quietly and be respectful while Rev. William Keller prays to the One True God: "If they want to pray to Allah or whoever then they should have their own service. If they want to come to our service and pray to themselves and listen to us, then maybe they'll hear the truth and then they won't go to hell."
|
|
Read article...
|
|
|
|
|


Top five largest U.S. Cities by Population
List of top five largest U.S. Cities.
New York City
Los Angeles
Chicago
Houston
Phoenix
New York City
Population data


|
You are in: Home > Technology
> Digital
Video > MPEG-2 Video Encoding
|
MPEG-4 Video Encoding
MPEG-4 coding is likely to be used for next
generation disc formats as well as Internet
distribution. |
MPEG-4 is an international standard (ISO/IEC 14496) developed by
MPEG (Moving Picture Experts Group). The MPEG-4
specification was finalized in October 1998 and became an
International Standard in early 1999. MPEG-4 Version 2 became an
International Standard early in 2000. Several extensions have been
added since, including MPEG-4
AVC.
MPEG-4 differs from MPEG-2 in an important way. MPEG-2
codes a video stream as video even if it contains graphics and text
overlays. MPEG-4 separates the graphics and text overlays into
separate streams which are re-combined by the decoder.
For more information on MPEG-4 see the
MPEG-4 Industry Forum
website.
MPEG-4 Parts
The MPEG-4 standard is divided into a number of parts:
- Part 1: Systems
- Part 2: Visual
- Part 3: Audio
- Part 6: DMIF (Delivery Multimedia Integration Framework),
which defines an interface between the application and
network/storage.
- Part 4: Conformance, which defines how to test an MPEG-4
implementation,
- Part 5: Reference Software, including an example of how to do
things.
- Part 7: Optimized video encoder description
More recent parts added to MPEG-4 are:
- Part 8: How to map MPEG-4 streams onto IP transport.
- Part 9: Reference Hardware Description
- Part 10: Advanced Video Coding (AVC)
- Part 11: Scene description
- Part 12: ISO Media File Format.
- Part 13: IPMP Extensions.
- Part 14: MP4 File Format (based on part 12).
- Part 15: AVC File Format (also based on part 12).
- Part 16: AFX (Animation Framework eXtensions) and MuW
(Multi-user Worlds).
Applications of MPEG-4 include digital television; interactive
graphics applications (synthetic content) and interactive multimedia
eg via the Internet. It is also likely to be used as one of
the video codecs for the next
generation blue laser optical disc. MPEG-4 provides features
that are not available with MPEG-2
MPEG-4 SP and
ASP
The first version of MPEG-4 was MPEG-4 SP (Simple Protocol) which
was intended for low bandwidth applications such as dial up Internet
access.
MPEG-4 SP uses both intra-frame and intra-field
compression for both progressive and interlace display and
employs both DCT and DPCM (differential pulse code modulation)
compression to ensure optimum compression for every type of
video.
MPEG-4 ASP (Advanced Simple Protocol) includes a number of
additional features including
- Motion compensation with 1/4 picture element accuracy
- Bi-directional prediction
- Total picture area motion compensation
H.264 or MPEG-4
AVC
The recently added MPEG-4 part 10, also known as MPEG-4 AVC
(Advanced Video Coding) or H.264, offers significantly greater
compression than its predecessors. It can provide DVD-quality video
at under 40% of the bit rate of MPEG-2 and is considered promising
for full-motion video over wireless, satellite, and ADSL Internet
connections. It is also one of the video codecs that have been
provisionally chosen for blue
laser HD DVD.
H.264 makes use of spatial, temporal, and psycho-visual
redundancies to improve video coding efficiencies. The additional
features contained in H.264 include the following:
- Variable block-size motion compensation with small block sizes
down to 4 x 4 pixels.
- Quarter-sample-accurate motion compensation for smoother
motion.
- Motion vectors over picture boundaries as opposed to within
the previously-decoded reference picture.
- Multiple reference picture motion compensation, compared with
only one previous picture for earlier codecs.
- Decoupling of referencing order from display order for more
flexibility and removal of the extra delay associated with
bi-predictive coding.
- Decoupling of picture representation methods from picture
referencing capability.
- Weighted prediction allowing the motion-compensated prediction
signal to be weighted and offset by amounts specified by the
encoder. This can dramatically improve coding efficiency for
scenes containing fades, and can be used flexibly for other
purposes as well.
- Improved “skipped” and “direct” motion inference for better
coding of video containing global motion.
- Directional spatial prediction for intra coding, for
extrapolating the edges of the previously-decoded parts of the
current picture and applying it in regions of pictures that are
intra coded. This improves the quality of the prediction signal,
and also allows prediction from neighbouring areas that were not
coded using intra coding.
- In-the-loop deblocking filtering to reduce artefacts.
Video compression using H.264/MPEG-4 AVC generates video at bit
rates that are typically two to four times lower than previous
MPEG-2 and MPEG-4 compression standards, at equivalent video quality
levels.
Comparison of
formats
The following table compares MPEG-4 H.264 with MPEG-4 ASP and
MPEG-2. H.264 offers a number of new features for improved
quality and lower bit rates, which include those listed in the
table.
| |
MPEG-2 |
MPEG-4 ASP |
MPEG-4 H.264 |
| I, P, B frames |
Yes |
Yes |
Yes |
| Coding |
Huffmann |
Huffmann |
Huffman or
arithmetic |
| Block size |
16 x 16 |
16 x 16 |
down to 4 x 4 |
| Quarter pixel resolution |
|
Yes |
Yes |
| Deblocking filter |
|
|
Yes |
| Sliced-based motion prediction |
|
|
Yes |
| Multiple reference frames |
|
|
Yes |
| Weighted Prediction |
|
|
Yes |
| Switching pictures |
|
|
Yes |
| Bit rate comparison |
100% |
60% |
40% | |


Across: 1,28. 5 and the like in peace - how's calm shattered? (8 7) 5,6dn. Asian dress and fake tan strategy for 29 22 terror (5 6) 10. Special region of anomolous valence (7) 11. Dies in the open? (7) 12,4dn. 5 perhaps caught demented avenger in net (5 5) 13. Cutting foolish chatter involving ends of nation (9) 14. "Communication Breakdown" starts to sound something like "Toxicity" (10) 16. Difficulties capturing secretive group (4) 19. Food rules made here in 29? (4) 20. He was deranged enough to attack with a tipsy chop at her heart (10) 23. Member joining lobbyist, perhaps cause for a stink in Belgium (9) 26. Destroyer of the Turkish, Ivan the Terrible inspiration for Aum Shinrikyo (5) 27. Escape rotation at, for example, rotation? (7) 28. see 1 across 29,22dn. Toy boy saw UK action in underground network (5 6) 30. His pony's unusual trick popular with 16s (8) Down: 1. Got dirt off first of contacts listed (7) 2. Stimulate with insertion of (or being penetrated by) a tongue lash (9) 3. Song of guitar's great wiz... a bell as easily rung! (8) 4. see 12 across 6. see 5 across 7. One gets first half of 3 confused with part of Spain (5) 8. Cons fire off about science of investigation (8) 9. Trumpet, bugle, clarinet, sax, trombone & bass ends up making... (6) 15. ...easy song worked in sweet little arrangement (8) 17. University briefly restrains an anurous test subject with no dissent (9) 18. One over the eight? (8) 19. Badly glued back of stage causing big fall (6) 21. Vehicles share unfortunate ride, ultimately the last for us (7) 22. see 29 across 24. Moving about Rome? Take this first! (5) 25. What 18 doesn't do, without a day for having fun (5)


Creating a simple Tooltip widget
This is an advanced example, in which we create a Tooltip widget, by extending the base
Widget
class, and adding
WidgetStack
and
WidgetPosition
extensions, through
Base.build
.
Tooltip One
(content from title)
Tooltip Two
(content set in event listener)
Tooltip Three
(content from lookup)
Tooltip Four
(content from title)
Prevent Tooltip Four


00001 /* 00002 Copyright (c) 1999 - 2010, Vodafone Group Services Ltd 00003 All rights reserved. 00004 00005 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 00006 00007 * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 00008 * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 00009 * Neither the name of the Vodafone Group Services Ltd nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. 00010 00011 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00012 */ 00013 00014 #ifndef WFAPI_TUNNEL_INTERFACE_H 00015 #define WFAPI_TUNNEL_INTERFACE_H 00016 00017 #include "WFAPIConfig.h" 00018 #include "Interface.h" 00019 #include "SynchronousStatus.h" 00020 #include "AsynchronousStatus.h" 00021 00022 namespace WFAPI { 00023 00024 // Forward declarations 00025 class Nav2APIImpl; 00026 class TunnelInterfaceImpl; 00027 class TunnelListener; 00028 00043 class TunnelInterface : public Interface 00044 { 00045 00046 public: 00047 00051 virtual ~TunnelInterface(); 00052 00061 void addTunnelListener(TunnelListener* listener); 00062 00070 void removeTunnelListener(TunnelListener* listener); 00071 00082 AsynchronousStatus requestData(WFString destURL, 00083 WFString parameter, 00084 WFString clientVersion); 00085 00094 AsynchronousStatus requestData(WFString destURL); 00095 00099 TunnelInterfaceImpl* getImpl(); 00100 00101 private: 00105 TunnelInterface(Nav2APIImpl* nav2APIimpl); 00106 00110 TunnelInterface(const TunnelInterface&); 00111 const TunnelInterface& operator=(const TunnelInterface&); 00112 00113 friend class Nav2APIImpl; 00114 00115 struct impl; 00116 00117 impl* m_impl; 00118 }; 00119 00120 } // End namespace WFAPI 00121 00122 #endif // End WFAPI_BILLING_INTERFACE_H


Kevin Kwan
the outrageously funny debut novel about three super-rich, pedigreed Chinese families and the gossip...