So, be yourself.What I'm talking about is my theory of Radical Freedom. There's no source of authority in this world. Just you.
So if you wanna know about the more specific field of virtue ethics, something that disgusts me personally, you can follow a type of morality called virtue ethics.
So, instead of making a choice based on the choice itself, you should make a choice that follows the kind of values you hold. This is mostly seen the the medieval code of chivalry.  The difference between this and and what I talk about is virtue ethics chose you. I think you should choose your virtues.


HEAD
Sketchpad
=======
Canvas
>>>>>>> 322bd0f92da7ef32b00e89d278ff294b13a3a185
Your browser does not support the canvas element.


PNG, GIF and JPEG formats are accepted.
Max {{ (config.MAX_CONTENT_LENGTH/(1024*1024))|round(1) }} MB.
Tip: for slide presentations, use a PDF file as your demo link.
Select
Attach data
Data formats permitted:
CSVPDFODSTSVJSONGeoJSON
up to {{ (config.MAX_CONTENT_LENGTH/(1024*1024))|round(1) }} MB in size.
Tip:Data Packages
can be made with a
template or
Creator tool.


Need help choosing colours for your next Fair Isle project? Pick an image and find the nearest matching colours of yarn.
The selected image will not leave your device.


{% extends 'layouts/business_base.html' %}
{% block meta_tags %}
{% endblock %}
{% block title %}
{{appt.org_short_description}}
{% endblock %}
{% block content %}
Elegant and creative solutions
We are team of talanted designers making websites with Bootstrap
This is Hack4Impact's web application template. We'll use this as a foundation for each of our Flask projects. The goal is to reduce the work necessary to get a new project off the ground, by providing boilerplate code (such as account management facilities), as well as uncontroversial and extensible defaults. We have integrated an SCSS-based asset pipeline based around a (fantastic!) framework called Semantic UI. Much of this code is appropriated from the examples in Miguel Grinberg's book, Flask Web Development.
{{ lipsum(6) }}
Sit sint consectetur velit quisquam cupiditate impedit suscipit alias
Sit sint consectetur velit quisquam cupiditate impedit suscipit alias
{{ testimonialsection.section_description }}
{% else %} {% endif %}{{ appt.description}}
Quis quorum aliqua sint quem legam fore sunt eram irure aliqua veniam tempor noster veniam enim culpa labore duis sunt culpa nulla illum cillum fugiat legam esse veniam culpa fore nisi cillum quid.
{{ teamsection.section_description }}
{% else %} {% endif %}{{ appt.job_description}}


Press n or j to go to the next uncovered block, b, p or k for the previous block.
| File | Statements | Branches | Functions | Lines | |||||
|---|---|---|---|---|---|---|---|---|---|
| goit-node |
|
93.1% | 27/29 | 50% | 3/6 | 33.33% | 1/3 | 93.1% | 27/29 |
| goit-node/config |
|
80% | 12/15 | 50% | 2/4 | 100% | 1/1 | 80% | 12/15 |
| goit-node/controllers |
|
75.21% | 91/121 | 100% | 12/12 | 84.62% | 11/13 | 75.21% | 91/121 |
| goit-node/helpers |
|
87.5% | 42/48 | 71.43% | 10/14 | 81.82% | 9/11 | 87.5% | 42/48 |
| goit-node/routes/api/contacts |
|
92% | 23/25 | 66.67% | 4/6 | 100% | 3/3 | 92% | 23/25 |
| goit-node/routes/api/users |
|
88.89% | 32/36 | 50% | 2/4 | 80% | 4/5 | 88.89% | 32/36 |


--- layout: post esbma_id: 1600 title: WPF for Laggards date: 2006-06-05 12:00:00 keywords: wpf teaser: A basic overview of WPF for people who haven't looked at it much yet. ---
Recently I was annoyed to discover that Charles Petzold does not have an imdb record. Since he is not an actor, I guess that makes sense, but a part of my subconscious mind expects that all big-name celebrities will have a record on imdb.com. Besides, imdb lists plenty of other celebrities who are not really actors, including Bruce Springsteen, Dan Marino, and William Shatner. Why not Charles Petzold?
And why was I looking for Petzold on imdb? Well, I often check imdb when I want to find out how old someone is. A week or two ago Chris Sells described Petzold as "one of this generation's best technical writers" (italics mine). My immediate reaction was that Chris was flattering Petzold not once, but twice. I mean really. Wasn't the first edition of Programming Windows published back in the eighties when I was in high school? How could Petzold be considered a part of the same generation as Chris and I?
Anyway, all this got me thinking. Petzold is currently writing a new book about WPF ("Windows Presentation Foundation", formerly code-named "Avalon"), the next-generation Windows API for graphics and user interfaces. But I don't know anything about WPF! If a man of his advancing years is still learning new technologies rapidly, then what's wrong with me? I'm not old enough to be a laggard yet. I like to think of myself as an early adopter.
But the fact is that WPF is in beta 2 now. All the cool early adopter people have been working with this technology for quite a while. It's time for me to get a clue, especially if I want to have any chance of impressing other geeks with my technical knowledge at TechEd in June. :-)
So, just as I used to cram for my exams in college, I've been trying to digest as much WPF knowledge as possible in a very short time. And I thought perhaps if I wrote down my first impressions of this technology it might be helpful for other laggards like myself.
Since around 1995, the primary API for Windows development has been Win32. Sometime in the next year or so, that will change. The new API is called WinFX. WPF is just one part of it.
If you remember the transition from 16-bit Windows programming to Win32, it helps to think of this transition in a similar way. This is a very fundamental shift.
Back when .NET was introduced, Microsoft gave us managed code, a new way of developing for Windows. Now, with WinFX, managed code is no longer just another way of developing for Windows, but rather, it is THE way of developing for Windows. WinFX completes the transition started by .NET, the transition to managed code.
People have been wondering for years why the .NET runtime components are not a required upgrade in the Windows Update service. I don't know why, but if I had to guess, I would say that the WinFX runtime will be a required update.
XAML is a markup language. It is associated with WPF, but strictly speaking, the two are independent.
It looks to me like a major goal of WPF is to blur the line between web development and desktop development. For users, WPF wants web applications to be more like desktop applications. For developers, WPF wants desktop applications to be built more like web applications. It is for this latter reason that XAML was born. XAML is a markup language which can be used for setting up WPF user interfaces.
Right now, XAML doesn't feel like HTML to me, but maybe it will when I get more up to speed.
This one is kind of weird if you think about it. I learned Win32 programming without a framework, so HWND and WndProc are old friends for me. Since then I've used higher level frameworks like MFC, wxWidgets, and Windows Forms. Each of these frameworks tries to hide HWND, keeping it out of sight lest its ugliness cause public embarrassment. But under the layers of abstraction, HWND is always there. In WPF, it's not.
When WPF first came out, people said it is not built on top of Win32. Now I understand what they meant. WPF is not another abstraction layer on top of the core Windows API. It is something else entirely.
So what is WPF built on? It's a very high-level API, so it has to be built on top of something, right? The answer is that WPF is built on DirectX, and if you've never really thought about the fact that DirectX is not built on Win32, now would be a good time to just sit down and think it all through. :-)
There's an early preview available of a tool which allows visual development of WPF user interfaces in Visual Studio. Its code-name is "Cider". Don't bother with it.
I have no doubt that eventually Visual Studio will offer outstanding support for WPF. But right now, it's just too early to even try to use this thing. Rather than get your hopes up, just don't even install it. Face the fact that WPF development today requires you to use your keyboard. You can still use Visual Studio of course, but you'll be typing XAML and C# code rather than having a visual UI designer create it for you.
If that's unappealing to you, then you might want to just wait. Personally, I kind of like the idea of learning WPF without the visual tool. It's good to know how things work under the hood.
For early experimentation and learning of XAML and WPF, try XAML Cruncher, a utility by Charles Petzold. It's a two-pane app:
The right pane gets refreshed every time the left pane changes, so it feels very instantaneous. You can grab chunks of XAML from various places and paste them in.
Petzold's book will probably end up being the definitive work. But the book by Chris Sells and Ian Griffiths is available today, and it's very good.
WPF is usually associated with Windows Vista, the next major release of the Windows operating system. But if you want to do development with WPF now, you don't have to be using Vista. Just install the latest versions (beta 2) of two things:
If you want the easiest possible start, just install the runtime components and play with XAML Cruncher.
I'm a Firefox user. When I started fiddling with WPF, stuff just wasn't working. So I was sad. :-)
WPF is supposed to offer some very cool new forms of "web applications". I haven't figured out the fine points and distinctions yet, but if you think about Java applets and Flash and SVG and ActiveX and Ajax, WPF has some stuff that is trying to solve the same set of problems. (For WPF, the buzzwords seem to be ClickOnce and Express.)
And it's really quite cool. On Petzold's blog is an entry about an all-XAML clock.  Resize the window and the clock resizes cleanly.
It's easy to imagine how this technology could move beyond demos like a clock and be used for real applications running in a browser with truly rich user experience.
But it doesn't work in Firefox. Hopefully someday it will.
Previous jokes aside, anybody using WPF today is a very early adopter. I'm no expert, but I would have to agree with Rod Paddock when he says that WPF is not ready for prime time.
WPF shows us a very interesting future for Windows developers, but the key word here is "future".
In the last few years, Microsoft's habit has been to replace great code names with incredibly mediocre official names. Avalon was a great name. Windows Presentation Foundation is, well, less than memorable. In its abbreviated form, WPF, I suppose it's not so bad.
Note that the WPF acronym was part of a set. Along with WPF they announced WCF (Windows Communication Foundation) and WWF (Windows Workflow Foundation).
But alas, every time I see that set of abbreviations, it makes me wish they had included a new API with a T in the middle, like Windows Telephony Foundation. :-)
Aha! Wikipedia came to the rescue: Charles Petzold is 53, younger than I thought, and definitely not old enough to be my dad. I suppose that means that he and I actually are of the same generation. :-)


Résumé
— I'm the most successful person ever to run for the presidency, by far. Nobody's ever been more successful than me. I'm the most successful person ever to run. Ross Perot isn't successful like me. Romney — I have a Gucci store that's worth more than Romney. Sorry losers and haters, but my IQ is one of the highest — and you all know it!
Experience
Recent
-
2017
Became 45th president of the United States
Back then
-
2016
Won election race with 77 votes more than Clinton, yippe-kee-yay! 🥂
-
2015
Became the most important Republican nominating for presidential election run
Way back then
-
2009
Changed my mind and became Republican again
-
2005
-
- no grades, certificates and other bureaucracy
- program offered courses in real estate, asset management entrepreneurship, and wealth creation
- 98% students gave positive reviews while studying, however some of these ungrateful gringos filed lawsuits against Trump University after the course. I had to pay $25 million to settle that...
-
-
2002
Acquired the former Hotel Delmonico, which was renovated and reopened in 2004 as the Trump Park Avenue. I sure do like my surname! 😊
-
2001
Completed Trump World Tower and joined the Democratic Party
-
1999
Started buying golf courses. They are very cheap, I have 18 of them now in USA and abroad! Also switched to the Reform Party that year
-
1997
-
Began a multi-building development along the Hudson River, which was named Trump Place. Me and the other investors sold our shares for $1.8 billion and that was then the biggest residential sale in the history of New York City
-
-
1996
Acquired the Bank of Manhattan Trust Building, which was a vacant seventy-one story skyscraper on Wall Street. After an extensive renovation, the high-rise was renamed the Trump Building
-
1994
Refurbished the Gulf and Western Building on Columbus Circle, turned it into a 44-story luxury property known as Trump International Hotel and Tower
When I was young
-
1989 ― 1992
Ran a second hand airline called Trump Shuttle. What a waste of money, I had to sell it, now it is American Airlines Shuttle, btw
Personal life
Recent
Back then
-
2005
Married her
Way back then
-
1998
Met my future third wife, Melania Knauss
-
1999
Divorced Marla 🤷
-
1993
Married Marla and had a daughter, we named her Tiffany, because I like Tiffany & Company jewellery as well
When I was young
-
1992
Started affair with Marla Maples, so I had to divorce. God knows I love nice women, I love them all! 😍
-
1984
Birth of Eric Trump
-
1982
Birth of Ivanka Trump
-
1977
My first son is born. I called him Donald, of course!
-
1977
Married Czech model Ivana Zelníčková
Languages
Skills
Character
Likes😃
Dislikes😞
Wants🥺
Education
-
2011Asked friends who are prominent and wealthy alumni of the New York Military Academy to secure my academic records so they could not be seen by anyone, never!
-
1966Transferred to the Wharton School of the University of Pennsylvania and graduated in May 1968 with a B.S. in economics
-
1964Started studying in Fordham University
-
1959Enrolled in the New York Military Academy, a private boarding school, after my parents discovered I made frequent trips into Manhattan without their permission


{% set issues = service_data.issues %}
Open issues:
{{ issues['open-issues'] }}
Closed issues:
{{ issues['closed-issues'] }}
Open PRs:
{{ issues['open-pull-requests'] }}
Closed PRs:
{{ issues['closed-pull-requests'] }}
λ:
{{ service_data.halflife or 'N/A' }}


2 Lab Expectations and Behavior
We at The Child Language Lab @ NYU strives to make working at the lab a safe, enjoyable, educational, and friendly experience for everyone who participates. We are committed to providing a welcoming and harassment-free experience for everyone, regardless of gender, gender identity and expression, age, sexual orientation, disability, physical appearance, body size, race, ethnicity, religion. We do not tolerate harassment of members in any form.
2.1 Lab Hierarchy
Principle Investigator (PI): Creator and leader of the lab, responsible for intellectual leadership and output, securing and maintaining funding, supervising projects, and making major decisions (among other roles). Professor, so is also doing other things related and unrelated to the lab (teaching courses, publishing and presenting, advising other graduate student work, administrative roles, applying for grants, etc.)
PhD Students: Researchers/students working on projects in the lab. Typically, PhD student roles in the lab overlap with those of the PI: they are also responsible for intellectual integrity and output, for the projects they lead (usually part of their degree requirements) and/or are authors on. They are under the supervision of the PI. They are also doing much work related and unrelated to the lab (e.g., taking/TA-ing/teaching courses, applying for jobs, publishing and presenting, mentoring other students, etc.)
Lab Manager: Overseer and manager of lab hardware, systems, information, participant recruiting efforts; communicating between projects; maintains online presence; interfaces with parents and daycares. Pitches in to help PI and Project Leader as needed. Jack/Jill of All Trades.
Project Leader: This role overlaps with other roles, as it refers to who is in charge of the lab work related to a specific project. This person is the point person for that project, and is typically a PhD student (but may be the PI, an undergraduate student, or a current or part lab manager).
Undergraduate RAs, Interns: RAs (usually an NYU student) and Interns (usually not an NYU student) work on various tasks and projects in the lab. Typically they work primarily on a specific project, mentored by a particular PhD Student and/or the PI. RAs/Interns may work for pay (typically when linked to specific grants), course credit, or research experience (typically not possible for NYU students, who should be either paid or receive credit).
2.1.1 When and for how long people work
- RA (Paid): ~15 hrs/week (dependent on funding source)
- RA (Research; unpaid, course credit): ~5-10 hrs/week
- Intern (Unpaid) ~8 hrs/week
- Lab Manager (Part-time): ~6-10 hrs/week
- Lab Manager (Full-time): Up to 35 hrs/week
2.2 General Expectations
Always follow instructions given to you by the Principal Investigator (PI: Ailis Cournane), the Lab Manager, or the appointed project leader (typically PhD students) for sub-projects. If you are unsure of something, please ask for clarification. Our aim is to foster clear and open communication for CLL projects.
Clean-up after yourself. Always try to leave the lab more clean and more organized (or at least as clean and as organized) than when you arrived. Please remember that all spaces are shared, so don’t leave things out – put personal items you would like to keep in the lab in the drawer spaces in Room 208 (labeled accordingly). You are welcome to use the 2nd floor lounge kitchen to store food for the workday, make coffee, etc. If you do, label all food and be considerate of the shared nature of the kitchen space.
Be responsible & professional. For example, If you make a mistake on a task, don’t hide it as that will make the situation worse. Let the PI (or lab manager, project lead, or both) know as soon as possible.
The lab is a team. We work together to get research projects designed, piloted, executed, presented and published. A lab member may be asked to take on some duties that are good for the lab as a whole without direct advantage to themselves. Similarly, one may be asked to put off a task or switch task priorities for the good of the lab. Be a team player.
If you are having a problem with someone in the lab, please talk to them about it rather than talking to anyone else about it. Only if you are dissatisfied with the outcome, talk to the lab PI about it.
Treat all lab equipment with respect and care. Be courteous and ensure to leave the equipment ready for future use (e.g. charge the iPads, Apple Pencil, and Bluetooth keyboards and mice as needed).
Complete Ethics (CITI) training and always follow best ethical practices for working with human participants, noting that children are a special case as they cannot consent for themselves. If you have questions, ask more senior lab members as soon as possible.
2.3 Research/Graduate Student Expectations
Stay up to date on the primary literature in your area of study. While the PI will point you to relevant readings, each researcher should make an active and concerted effort to read articles in scientific journals that specifically apply to their interests and projects.
Keep the PI updated on your progress, successes, and concerns via Slack or in Lab Meetings. One-on-one meetings can be arranged with the PI for these discussions.
PhD Students/Project Leaders are expected to contribute to the lab as a whole, both intellectually and occasionally with requested research from other projects in the lab.
The PI has the responsibility of meeting regularly with you to discuss your research and academic training. One should give the PI advance notice (at least a week) when scheduling a meeting to find a suitable time (unless you have a standing meeting).
The PI has the responsibility of advising you on how to proceed according to prospective career paths, and will offer continual assistance with research projects. The goals are always to get lab projects presented and published (science is meant to be shared!) and to get lab members on to the next stage in their education or career.
2.4 Behavior
Refrain from demeaning, discriminatory, or harassing behaviour and speech.
If you feel that someone has harassed you or otherwise treated you inappropriately, please alert the PI or any other member on the team. If any member or project participant engages in harassing behaviour, the senior staff may take any action we deem appropriate.


[CREATING STORAGE MINER]
Waiting for transaction on chain..
When creating storage miner, DO NOT REFRESH THE PAGE, wait for it to load. This can take more than 5min.
If you don't have an owner/worker address, you can create it by following these instructions.


{include file="../common/header" /} {block name="css"}{/block}
{block name="body"}{/block}
{block name="js"}{/block} {include file="../common/footer" /}


Every window in pyglet has its own OpenGL context. Each context has its own OpenGL state, including the matrix stacks and current flags. However, contexts can optionally share their objects with one or more other contexts. Shareable objects include:
There are two reasons for sharing objects. The first is to allow objects to be stored on the video card only once, even if used by more than one window. For example, you could have one window showing the actual game, with other "debug" windows showing the various objects as they are manipulated. Or, a set of widget textures required for a GUI could be shared between all the windows in an application.
The second reason is to avoid having to recreate the objects when a context needs to be recreated. For example, if the user wishes to turn on multisampling, it is necessary to recreate the context. Rather than destroy the old one and lose all the objects already created, you can
pyglet defines an ObjectSpace: a representation of a collection of objects used by one or more contexts. Each context has a single object space, accessible via its object_space attribute.
By default, all contexts share the same object space as long as at least one context using it is "alive". If all the contexts sharing an object space are lost or destroyed, the object space will be destroyed also. This is why it is necessary to follow the steps outlined above for retaining objects when a context is recreated.
pyglet creates a hidden "shadow" context as soon as pyglet.gl is imported. By default, all windows will share object space with this shadow context, so the above steps are generally not needed. The shadow context also allows objects such as textures to be loaded before a window is created.
When you create a Context, you tell pyglet which other context it will obtain an object space from. By default (when using the Window constructor to create the context) the most recently created context will be used. You can specify another context, or specify no context (to create a new object space) in the Context constructor.
It can be useful to keep track of which object space an object was created in. For example, when you load a font, pyglet caches the textures used and reuses them; but only if the font is being loaded on the same object space. The easiest way to do this is to set your own attributes on the ObjectSpace object.
In the following example, an attribute is set on the object space indicating that game objects have been loaded. This way, if the context is recreated, you can check for this attribute to determine if you need to load them again:
context = pyglet.gl.get_current_context() object_space = context.object_space object_space.my_game_objects_loaded = True
Avoid using attribute names on ObjectSpace that begin with "pyglet", they may conflict with an internal module.


Remargin Period
Definition: Time period one should assume in a worst case scenario before taking delivery of collateral after a call
- Valuation/margin call - time taken to compute current exposure and market value of collateral
- Receiving collateral - delay due to processing a collateral request
- Settlement - collateral may not be received immediately depending on settlement period
- Grace period - period of time before a non-delivering party is deemed to be in default
- Liquidation/close-out and re-hedge - time taken to liquidate collateral and close out and re-hedge positions
Modelling Collateral
- Two sources of risk for a collateralized exposure:
- Imperfect collateralization at a given date due to terms in the collateral agreement which do not permit a call for the full scredit support amount
- Risk that exposure increases in-between margin calls making it impossible to collateralize that portion of the exposure
- Parameters:
- Remargin period
- Threshold
- Minimum transfer amount
- Initial margin
- Rounding
Collateralization Risks
- Operational risk - missed collateral calls, failed deliveries, computer error, human error, fraud
- Default risk - default relating to a security posted as collateral
- FX risk
- Liquidity and liquidation risk


Ford’s next-gen Sync 4 infotainment system previewed
by Shirish GandhiThe new Sync 4 boasts a heavily redesigned UI, cloud connectivity, larger display sizes and wireless Apple CarPlay and Android Auto.
American car major Ford has previewed the next generation of its infotainment system, dubbed the Sync 4, that is touted to greatly enhance the in-car communications and entertainment experience. Building on the strengths of the previous Sync 3 system, the company’s latest offering features a heavily redesigned user-interface (UI), cloud connectivity and machine learning capabilities as well seamless wireless phone connectivity.
Ford has revealed that its upcoming vehicle line-up will be equipped with touchscreen displays, ranging from 8-inches to a whopping 15.5-inches in size, that will run the Sync 4 system featuring different looks and capabilities depending on the vehicle and screen size. The company claims to have designed the system to enhance multi-tasking capabilities without the need for swapping through multiple screens. So, while a 12-inch display will sport a split-screen layout allowing the front seat occupants to use multiple apps simultaneously, the large 15.5-inch display will have recently used and popular features shown at the bottom of the screen as interactive widgets or ‘adaptive dash cards’.
For those people who despise using cables, Ford is offering a completely cordless experience with wireless implementation for both Apple CarPlay as well as Android Auto. And to ensure that plugging your phone into the car becomes a thing of the past, the auto manufacturer will also bundle its vehicles with wireless phone charging capabilities.
Constant on-the-move connectivity is another highlight of the new technology. Ford says that cloud connectivity will be standard on the Sync 4 which will not only result in sat-nav maps being updated with the latest traffic information, but will also make possible voice recognition that can be operated via natural speech commands. Consequently, conversational requests like “find me the best restaurant” will be compatible with the system, so will SMS and email communication via speech recognition. The company adds that while cloud connectivity will be at the forefront, the system will have enough on-board processing power to not suffer from performance issues in areas of low network signals.
Ford has revealed that the Sync 4 system will be available on select Ford vehicles starting from 2020. However, this announcement pertains to the global market and it remains to be seen if this new piece of tech makes it to our shores, where the American auto major has entered into a joint venture (JV) with home-grown carmaker, Mahindra. The slew of products planned for our market under the JV are expected to be built on common platforms and powertrains, however each company is touted to have a unique top hat, cabin design and driving dynamics for its own offerings to ensure sufficient differentiation between their products.
Ford’s current crop of vehicles in India, including the Freestyle crossover, Aspire sedan and EcoSport and Endeavour SUVs come equipped with the previous-gen Sync 3 infotainment system that covers the basics well by offering Apple CarPlay and Android Auto. If the new Sync 4 system is brought to India, it will give the company an even footing vis-à-vis players like Hyundai, Kia and MG which boast of their own smart connectivity solutions already having been launched in our market earlier this year.
Also see:
SCOOP! Ford mulling Mahindra Marazzo-based MPV for India


It is a security setting for access from outside.
Please enter at least 8 characters.The characters that can be used are: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTYVWXYZ0123456789!"#$%&'()*+,-;:<>=?@[\]^_`{|}~
Rebooting is necessary when updating.
Country code (ISO/IEC 3166-1). Used to set regulatory domain.Set as needed to indicate country in which device is operating. This can limit available channels and transmit power.
SSID must be 3 to 32 characters.
Passphrase must be 8 to 63 characters.


ZPB Associates acquires PR specialist Journalista
Agencies have previously worked together on a number of campaigns
ZPB Associates, a healthcare strategy and communications firm, has acquired Journalista to expand its PR offering.
Both agencies have been established for over ten years and have previously worked together to deliver a number of award winning campaigns.
The acquisition will combine Journalista’s offerings, which includes Healthcare UK, Big White Wall and Enterprise Research Centre, alongside ZPB’s clients. This includes Novartis, Amazon Web Services and Push Doctor.
“ZPB and Journalista operate in similar spaces, with shared values, mutually supportive services and a vision for making complex issues clearer for people across health and social care, research and digital,” said Holly Sutton, Journalista CEO and founder.
“Becoming part of ZPB means we can offer a stronger proposition to compete for the opportunities arising in the fusion of health and social care, research and digital,” she added.
The aim of the acquisition is to extend the combined reach of each company into research, digital health and pharma. When combined, the teams have previously worked for NHS England, health regulators, pharma companies, key sector media, hospital trusts and data firms.
The acquisition of Journalista provides ZPB with further expansion as part of an ongoing strategic growth programme, which was launched earlier this year.
“We know that clients prefer independent, highly-specialised consultancies like ZPB and Journalista, so this allows the two businesses to remain independent while having a bigger team with more resource to compete with some of the larger players,” said Zoe Bedford, ZPB Associates founder and CEO.


College Finder
Demo of spatial + attribute search in the
Maps Data API
Search for colleges near:
5 km
10 km
20 km
30 km
50 km
100 km
radius:
Any size
less than 100
100 to 1K
1K to 10K
more than 10K
size:
public
private


- Details
-
Published: 02 May 2014
As of right now, India still has one of the highest numbers for offshore outsourcing of IT services. They’re still expected to grow in the coming years, but does that mean they are the right choice for outsourcing your software development? Contrary to the numbers, India’s rising costs and failing quality has made them a significant liability for most companies. In fact, for some firms, outsourcing software development to India could actually make their product fail.
Infrastructure is Still Lacking
A decade ago, India has a significant infrastructure issue and that still hasn’t changed today. In fact, according to some, the infrastructure might actually be getting worse in the country rather than better.
Costs are on the Rise
Because of economic laws and the supply and demand, India costs are on the rise – and significantly. Indian software development services used to be one of the most cost-effective, but they have been reporting significant payment increases over the past few years. Also, the value of the Indian rupee is on the rise, which means the US dollar’s value is going to go negative. To negate the costs in India, some software developers are outsourcing their outsourced products to areas like Beijing and Buenos Aires. So, if Indian development firms are shopping around, it is a good indicator you should be too.
Limited Touch
You might have completed the project or gotten the contract started, but how much back and forth is there between your US company and your Indian software development firm? Because of the 12 to 14 hour time difference, you won’t ever speak to a live person from your firm unless you’re up at 3:00am. This significant lack of communication and collaboration has led to the downfall of numerous software projects over the past decade – and will likely bring on a few hundred more.
Who You Hire Today Will Be Gone Tomorrow
You’ve heard about the high attrition rates in India, but have you thought about how those affect your company? High attrition means that you are likely to have multiple employee turnovers on your single development project. In fact, Indian companies are reporting 50 to 70 percent attrition per year. That means you could have 50 to 70 percent of your development project’s staff change out before it’s done. Also, most of the attrition involves high level or senior-level developers. And, because there is a significant lack of equal talent in India, it could take weeks or months to find a replacement.
Neubloc does not outsource software development to India. Instead, we operate within the United States and Europe – providing you with around the clock development and without the hassle. To learn more about Neubloc’s unique approach to software development, give us a call or contact us online today.


Creating responsive layouts is easy, but there are a few key things to keep in mind.
Create a style override stylesheet and include it after the jQuery Mobile framework stylesheet. This will hold all your custom styles, tweaks to the default widgets and media queries.
Start by writing the styles you want to see at the narrowest screen width (i.e. "mobile first"). These should be outside a media query. For example, we'd start with each of our grid containers set to 100% width and not floated so they start off stacked at smartphone widths.
Choose the breakpoints based on your content, not a specific device. Since there are devices of every imaginable width, it's smarter to choose breakpoints based on how your content looks in your design system. As you re-size the window to wider widths, identify where your content hits a point where it could adapt to take advantage of a wider width.
Write media queries using ems and min-widths Write a media query block that uses ems instead of pixels to ensure the layout will adapt to font size changes. To calculate the width, simply divide the target breakpoint (320px) with by 16px (the default font size) to get the em-based width (20em).
@media all and (min-width: 36em){
/* Styles that apply above 576px go here */
}
Build additional breakpoints on top of each other at increasingly wider widths This means that the next breakpoint can add additional styles that build on top of the basic styles and those in the first breakpoint.


Project
this is the description
This site has been designed and coded by hand from the ground up. It's animated through the Green Sock Animation Platform.
The CSS is written with a mobile first approach and incorporated fonts from Google Fonts.
Advanced extended doubtful he he blessing together. Introduced far law gay considered frequently entreaties difficulty.
Have a cool project in mind, and think I can help you with it?
Feel free to e-mail me at jackhou147@yahoo.com


See how the IKS Highlander is affecting classroom performance, and how students feel it applies to their educational experience.
See which jobs are most popular for the recent simulations.
Check the rate at which students get the job they want.


Topicstarter
I am using firefox, because I can't install addon for chrome. Now firefox addon stopped working. Please fix it quick.
BrainFooLong
Administrator
Absolutely no information to help you, sry.
JPointman11 wrote:
I am using firefox, because I can't install addon for chrome. Now firefox addon stopped working. Please fix it quick.
This is not an addon issue. Works fine here with Firefox AND Chrome.


What is a survey?
A systematic method for gathering information from a sample of entities for the purposes of constructing quantitative descriptors of the attributes of the larger population of which the entities are members
Questions when identifying a survey data source:
- What is the target population?
- What is the sampling frame
- how do we know who could be included?
- What is the sample design?
- What is the mode of data collection?
- Is the survey ongoing or a one-time collection?
Core Concepts
Sampling units - where information will be collected from Sampling frame - the set of sampling units containing distinct sets of population members
Weights and weighting
Surveys with complex sample designs will often have:
- Unequal probabilities of selection
- Variation in response rates across groups
- Differences in distributions of characteristics compared to the population
Weights are used to compensate for these features
What is a weight?
A weight is used to indicate the relative strength of an observation.
In the simplest case, each observation is counted equally.
For example, if we have five observations, and wish to calculate the mean, we just add up the values and divide by 5.
Dataset with 5 cases
library(htmlTable)
<-c(4,2,1,5,2)
y<-c(1,2,4,1,2)
wt<-data.frame(y=y, weight=wt)
dathtmlTable(dat)
| y | weight | |
|---|---|---|
| 1 | 4 | 1 |
| 2 | 2 | 2 |
| 3 | 1 | 4 |
| 4 | 5 | 1 |
| 5 | 2 | 2 |
Unweighted sample mean
mean(dat$y)
## [1] 2.8
Weighted sample mean
library(questionr)
wtd.mean(x=dat$y, weights=dat$weight)
## [1] 2.1
Difference between unweighted and weighted data
With unweighted data, each case is counted equally.
Unweighted data represent only those in the sample who provide data.
With weighted data, each case is counted relative to its representation in the population.
Weights allow analyses that represent the target population.
Weights compensate for collecting data from a sample rather than the entire population and for using a complex sample design.
Weights adjust for differential selection probabilities and reduce bias associated with non-response by adjusting for differential nonresponse. Weights are used when estimating characteristics of the population.
Sample variance estimation in complex designs
Standard errors are produced for estimates from sample surveys. They are a measure of the variance in the estimates associated with the selected sample being one of many possible samples.
Standard errors are used to test hypotheses and to study group differences.
Using inaccurate standard errors can lead to identification of statistically significant results where none are present and vice versa
Complex survey designs and standard errors
The usual standard error formula assumes a simple random sample.
Software packages designed for simple random samples tend to underestimate the standard errors for complex sample designs.
Standard errors for estimates from a complex sample must account for the within cluster/ across cluster variation.
Special software can make the adjustment, or this adjustment can be approximated using the design effect.
Methods for sample variance estimation
There are basically 3 ways in which software estimates variances: 1) Naive method 2) Taylor series approximation 3) Balanced or Jackknife replication
Data Example
This example will cover the use of R functions for analyzing complex survey data. Most social and health surveys are not simple random samples of the population, but instead consist of respondents from a complex survey design.
These designs often stratify the population based on one or more characteristics, including geography, race, age, etc. In addition the designs can be multi-stage, meaning that initial strata are created, then respondents are sampled from smaller units within those strata.
An example would be if a school district was chosen as a sample strata, and then schools were then chosen as the primary sampling units (PSUs) within the district. From this 2 stage design, we could further sample classrooms within the school (3 stage design) or simply sample students (or whatever our unit of interest is).
Multi-stage sampling
- Non-random sampling
- Population consists of known sub-groups called clusters
- A 2 -stage sample might be households within neighborhoods, or children within schools
- We may choose a random sample of schools/neighborhoods at the first stage, and a random sample of people within each school/neighborhood as the second stage
- We need to be careful because the observations in the second stage are not independent of one another
- Increased probability of selection for children in a selected school
- This type of sampling leads to dependent observations
Here’s a picture of this:
A second feature of survey data we often want to account for is differential respondent weighting. This means that each respondent is given a weight to represent how common that particular respondent is within the population. This reflects the differenital probability of sampling based on respondent characteristics.
As demographers, we are also often interested in making inference for the population, not just the sample, so our results must be generalizable to the population at large. Sample weights are used in the process as well.
When such data are analyzed, we must take into account this nesting structure (sample design) as well as the respondent sample weight in order to make valid estimates of ANY statistical parameter. If we do not account for design, the parameter standard errors will be incorrect, and if we do not account for weighting, the parameters themselves will be incorrect and biased.
In general there are typically three things we need to find in our survey data codebooks: The sample strata identifier, the sample primary sampling unit identifier (often called a cluster identifier) and the respondent survey weight. These will typically have one of these names and should be easily identifiable in the codebook.
Statistical software will have special routines for analyzing these types of data and you must be aware that the diversity of statistical routines that generally exists will be lower for analyzing complex survey data, and some forms of analysis may not be available!
See Thomas Lumley’s Book on this!
Below I illustrate the use of survey characteristics when conducting descriptive analysis of a survey data set and a linear regression model estimated from that data. For this example I am using 2016 CDC Behavioral Risk Factor Surveillance System (BRFSS) SMART metro area survey data. Link
#load brfss
library(car)
## Loading required package: carData
library(stargazer)
##
## Please cite as:
## Hlavac, Marek (2018). stargazer: Well-Formatted Regression and Summary Statistics Tables.
## R package version 5.2.2. https://CRAN.R-project.org/package=stargazer
library(survey)
## Loading required package: grid
## Loading required package: Matrix
## Loading required package: survival
##
## Attaching package: 'survey'
## The following object is masked from 'package:graphics':
##
## dotchart
library(questionr)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following object is masked from 'package:car':
##
## recode
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
load(url("https://github.com/coreysparks/data/blob/master/brfss_2017.Rdata?raw=true"))
Fix variable names
#The names in the data are very ugly, so I make them less ugly
<-names(brfss_17)
namshead(nams, n=10)
## [1] "dispcode" "statere1" "safetime" "hhadult" "genhlth" "physhlth"
## [7] "menthlth" "poorhlth" "hlthpln1" "persdoc2"
#we see some names are lower case, some are upper and some have a little _ in the first position. This is a nightmare.
<-tolower(gsub(pattern = "_",replacement = "",x = nams))
newnamesnames(brfss_17)<-newnames
Recoding of variables
Be sure to always check your codebooks!
#Poor or fair self rated health
$badhealth<-Recode(brfss_17$genhlth, recodes="4:5=1; 1:3=0; else=NA")
brfss_17
#sex
$male<-as.factor(ifelse(brfss_17$sex==1, "Male", "Female"))
brfss_17
#race/ethnicity
$black<-Recode(brfss_17$racegr3, recodes="2=1; 9=NA; else=0")
brfss_17$white<-Recode(brfss_17$racegr3, recodes="1=1; 9=NA; else=0")
brfss_17$other<-Recode(brfss_17$racegr3, recodes="3:4=1; 9=NA; else=0")
brfss_17$hispanic<-Recode(brfss_17$racegr3, recodes="5=1; 9=NA; else=0")
brfss_17
#insurance
$ins<-Recode(brfss_17$hlthpln1, recodes ="7:9=NA; 1=1;2=0")
brfss_17
#income grouping
$inc<-ifelse(brfss_17$incomg==9, NA, brfss_17$incomg)
brfss_17
#education level
$educ<-Recode(brfss_17$educa, recodes="1:2='0Prim'; 3='1somehs'; 4='2hsgrad'; 5='3somecol'; 6='4colgrad';9=NA", as.factor=T)
brfss_17$educ<-relevel(brfss_17$educ, ref='2hsgrad')
brfss_17
#employment
$employ<-Recode(brfss_17$employ1, recodes="1:2='Employed'; 2:6='nilf'; 7='retired'; 8='unable'; else=NA", as.factor=T)
brfss_17$employ<-relevel(brfss_17$employ, ref='Employed')
brfss_17
#marital status
$marst<-Recode(brfss_17$marital, recodes="1='married'; 2='divorced'; 3='widowed'; 4='separated'; 5='nm';6='cohab'; else=NA", as.factor=T)
brfss_17$marst<-relevel(brfss_17$marst, ref='married')
brfss_17
#Age cut into intervals
$agec<-cut(brfss_17$age80, breaks=c(0,24,39,59,79,99))
brfss_17
#BMI, in the brfss_17a the bmi variable has 2 implied decimal places, so we must divide by 100 to get real bmi's
$bmi<-brfss_17$bmi5/100
brfss_17$obese<-ifelse(brfss_17$bmi>=30, 1, 0) brfss_17
Filter cases
<-brfss_17%>%
brfss_17filter(sex!=9, is.na(educ)==F)
Analysis
First, we will do some descriptive analysis, such as means and cross tabulations.
#First we will do some tables
#Raw frequencies
table(brfss_17$badhealth, brfss_17$educ)
##
## 2hsgrad 0Prim 1somehs 3somecol 4colgrad
## 0 42204 2657 5581 50592 87642
## 1 13533 2412 3843 11544 9177
#column percentages
prop.table(table(brfss_17$badhealth, brfss_17$educ), margin=2)
##
## 2hsgrad 0Prim 1somehs 3somecol 4colgrad
## 0 0.75719899 0.52416650 0.59221138 0.81421398 0.90521489
## 1 0.24280101 0.47583350 0.40778862 0.18578602 0.09478511
#basic chi square test of independence
chisq.test(table(brfss_17$badhealth, brfss_17$educ))
##
## Pearson's Chi-squared test
##
## data: table(brfss_17$badhealth, brfss_17$educ)
## X-squared = 12749, df = 4, p-value < 2.2e-16
So basically all of these numbers are incorrect, since they all assume random sampling. Now, we must tell R what the survey design is and what the weight variable is, then we can re-do these so they are correct.
Create a survey design object
Now we identify the survey design. ids = PSU identifers, strata=strata identifiers, weights=sampling weights, data= the data frame where these variables are located. Lastly, I only include respondents with NON-MISSING case weights.
I first try to get only cities in the state of Texas by looking for “TX” in the MSA’s name field in the data.
$tx<-NA
brfss_17$tx[grep(pattern = "TX", brfss_17$mmsaname)]<-1 brfss_17
Now I make the survey design object. You may be required to specify two options here:
survey.lonely.psu
This means that some of the strata only have 1 PSU within them. This does not allow for within strata variance to be calculated. So we often have to tell the computer to do something here. Two valid options are “adjust”, to center the stratum at the population mean rather than the stratum mean, and “average” to replace the variance contribution of the stratum by the average variance contribution across strata. (from ?surveyoptions)Nesting of PSU within strata. By default, PSUs have numeric identifiers that can overlap between strata. By specifying
nest=T
, we tell R to re-lable the PSUs so they are unique across strata. If your survey requires this, it will throw a warning message.
<-brfss_17%>%
brfss_17filter(tx==1, is.na(mmsawt)==F, is.na(badhealth)==F)
#
options(survey.lonely.psu = "adjust")
<-svydesign(ids=~1, strata=~ststr, weights=~mmsawt, data = brfss_17 ) des
###Simple weighted analysis Now , we re-do the analysis from above using only weights:
#counts
<-wtd.table(brfss_17$badhealth, brfss_17$educ, weights = brfss_17$mmsawt)
cat
#proportions
prop.table(wtd.table(brfss_17$badhealth, brfss_17$educ, weights = brfss_17$mmsawt), margin=2)
## 2hsgrad 0Prim 1somehs 3somecol 4colgrad
## 0 0.75785067 0.60034582 0.66897765 0.83478907 0.91149676
## 1 0.24214933 0.39965418 0.33102235 0.16521093 0.08850324
#compare that with the original, unweighted proportions
prop.table(table(brfss_17$badhealth, brfss_17$educ), margin=2)
##
## 2hsgrad 0Prim 1somehs 3somecol 4colgrad
## 0 0.7090336 0.5686813 0.6226013 0.7797297 0.8837339
## 1 0.2909664 0.4313187 0.3773987 0.2202703 0.1162661
There are differences, notably that the prevalence of poor SRH is higher in the sample than the population. This is important!
Let’s say we also want the standard errors of these percentages. This can be found for a proportion by: \(s.e. (p)={\sqrt {p(1-p)} \over {n}}\)
So we need to get n and p, that’s easy:
<-table(is.na(brfss_17$badhealth)==F)
n n
TRUE 8535
<-prop.table(wtd.table(brfss_17$badhealth, brfss_17$educ, weights = brfss_17$mmsawt), margin=2)
pt(p)
0 1
2hsgrad 0.75785067 0.24214933 0Prim 0.60034582 0.39965418 1somehs 0.66897765 0.33102235 3somecol 0.83478907 0.16521093 4colgrad 0.91149676 0.08850324
<-prop.table(wtd.table(brfss_17$badhealth, brfss_17$male, weights = brfss_17$mmsawt), margin=2)
pt(p)
0 1
Female 0.7913522 0.2086478 Male 0.8189935 0.1810065
<-(p*(1-p))/n[2]
se
<-
p
::kable(data.frame(proportion=p, se=sqrt(se))[, c(1,2,3,6)], format = "html", caption = "Frequencies assuming random sampling") knitr
Which shows us the errors in the estimates based on the weighted proportions. That’s nice, but since we basically inflated the n to be the population of the US, these standard errors are too small. This is another example of using survey statistical methods, to get the right standard error for a statistic.
Proper survey design analysis
#Now consider the full sample design + weights
<-svyby(formula = ~badhealth, by=~male, design = des, FUN=svymean)
cat
svychisq(~badhealth+male, design = des)
Pearson's X^2: Rao & Scott adjustment
data: svychisq(~badhealth + male, design = des) F = 2.2685, ndf = 1, ddf = 8486, p-value = 0.1321
::kable(cat,
knitrcaption = "Survey Estimates of Poor SRH by Sex",
align = 'c',
format = "html")
| male | badhealth | se | |
|---|---|---|---|
| Female | Female | 0.2086478 | 0.0129755 |
| Male | Male | 0.1810065 | 0.0128833 |
Which gives the same %’s as the weighted table above, but we also want the correct standard errors for our bad health prevalence.
The svyby()
function will calculate statistics by groups, in this case we want the % in bad health by each level of education. The %’s can be gotten using the svymean()
function, which finds means of variables using survey design:
<-svyby(formula = ~badhealth, by = ~educ, design = des, FUN = svymean, na.rm=T)
sv.table
::kable(sv.table,
knitrcaption = "Survey Estimates of Poor SRH by Education",
align = 'c',
format = "html")
| educ | badhealth | se | |
|---|---|---|---|
| 2hsgrad | 2hsgrad | 0.2421493 | 0.0193807 |
| 0Prim | 0Prim | 0.3996542 | 0.0483989 |
| 1somehs | 1somehs | 0.3310224 | 0.0425548 |
| 3somecol | 3somecol | 0.1652109 | 0.0147720 |
| 4colgrad | 4colgrad | 0.0885032 | 0.0094730 |
#Make a survey design that is random sampling - no survey information
<-svydesign(ids = ~1, weights = ~1, data = brfss_17)
nodes
<-svyby(formula = ~badhealth, by = ~educ, design = nodes, FUN = svymean, na.rm=T)
sv.table
::kable(sv.table,
knitrcaption = "Estimates of Poor SRH by Education - No survey design",
align = 'c',
format = "html")
| educ | badhealth | se | |
|---|---|---|---|
| 2hsgrad | 2hsgrad | 0.2909664 | 0.0104099 |
| 0Prim | 0Prim | 0.4313187 | 0.0259602 |
| 1somehs | 1somehs | 0.3773987 | 0.0223843 |
| 3somecol | 3somecol | 0.2202703 | 0.0087963 |
| 4colgrad | 4colgrad | 0.1162661 | 0.0053591 |
And we see the same point estimates of our prevalences as in the simple weighted table, but the standard errors have now been adjusted for survey design as well, so they are also correct. You also see they are much larger than the ones we computed above, which assumed random sampling.
Another way
There’s this great R package, tableone
that does this stuff very nicely and incorporates survey design too. Here’s an example of using it to generate your bi-variate tests like above:
library(tableone)
#not using survey design
<-CreateTableOne(vars = c("educ", "marst", "male"), strata = "badhealth", test = T, data = brfss_17)
t1#t1<-print(t1, format="p")
print(t1,format="p")
## Stratified by badhealth
## 0 1 p test
## n 6742 1793
## educ (%) <0.001
## 2hsgrad 20.0 30.9
## 0Prim 3.1 8.8
## 1somehs 4.3 9.9
## 3somecol 25.7 27.3
## 4colgrad 46.9 23.2
## marst (%) <0.001
## married 53.4 41.1
## cohab 3.4 2.5
## divorced 11.9 16.7
## nm 16.1 13.8
## separated 2.0 5.1
## widowed 13.2 20.7
## male = Male (%) 43.0 36.9 <0.001
#using survey design
<-svyCreateTableOne(vars = c("educ", "marst", "male"), strata = "badhealth", test = T, data = des)
st1#st1<-print(st1, format="p")
print(st1, format="p")
## Stratified by badhealth
## 0 1 p test
## n 12270182.9 2975288.5
## educ (%) <0.001
## 2hsgrad 23.3 30.8
## 0Prim 6.1 16.7
## 1somehs 6.6 13.4
## 3somecol 32.3 26.4
## 4colgrad 31.6 12.7
## marst (%) <0.001
## married 52.9 46.8
## cohab 5.7 3.3
## divorced 9.5 14.4
## nm 24.9 21.1
## separated 2.1 7.1
## widowed 4.9 7.3
## male = Male (%) 49.7 45.3 0.132
Regression example
Next we apply this logic to a regression case. First we fit the OLS model for our BMI outcome using education and age as predictors:
<-lm(bmi~educ+agec, data=brfss_17) fit1
Next we incorporate case weights
<-lm(bmi~educ+agec, data=brfss_17, weights = mmsawt) fit2
Now we will incorporate design effects as well:
<-svyglm(bmi~educ+agec,des, family=gaussian) fit3
Now I make a table to show the results of the three models:
stargazer(fit1, fit2, fit3, style="demography", type="html",
column.labels = c("OLS", "Weights Only", "Survey Design"),
title = "Regression models for BMI using survey data - BRFSS 2016",
covariate.labels=c("PrimarySchool", "SomeHS", "SomeColl", "CollGrad", "Age 24-39","Age 39-59" ,"Age 59-79", "Age 80+"),
keep.stat="n", model.names=F, align=T, ci=T)
| bmi | |||
| OLS | Weights Only | Survey Design | |
| Model 1 | Model 2 | Model 3 | |
| PrimarySchool | 0.114 | -0.521 | -0.521 |
| (-0.671, 0.899) | (-1.088, 0.046) | (-1.798, 0.756) | |
| SomeHS | -0.006 | -0.699* | -0.699 |
| (-0.687, 0.674) | (-1.266, -0.132) | (-2.080, 0.682) | |
| SomeColl | -0.456* | -1.255*** | -1.255** |
| (-0.860, -0.052) | (-1.619, -0.892) | (-2.094, -0.417) | |
| CollGrad | -1.972*** | -2.463*** | -2.463*** |
| (-2.342, -1.602) | (-2.839, -2.086) | (-3.228, -1.697) | |
| Age 24-39 | 2.943*** | 3.221*** | 3.221*** |
| (2.263, 3.624) | (2.771, 3.672) | (2.345, 4.097) | |
| Age 39-59 | 4.388*** | 4.745*** | 4.745*** |
| (3.742, 5.034) | (4.306, 5.183) | (3.868, 5.621) | |
| Age 59-79 | 3.476*** | 4.005*** | 4.005*** |
| (2.846, 4.107) | (3.529, 4.481) | (3.039, 4.971) | |
| Age 80+ | 0.810* | 0.819 | 0.819 |
| (0.076, 1.543) | (-0.051, 1.688) | (-0.496, 2.133) | |
| Constant | 26.045*** | 26.179*** | 26.179*** |
| (25.423, 26.667) | (25.761, 26.597) | (25.338, 27.019) | |
| N | 7,840 | 7,840 | 7,840 |
| p < .05; p < .01; p < .001 |
Notice, the results for the education levels are much less significant than the were with either of the other two analysis. This is because those models had standard errors for the parameters that were too small. You see all the standard errors are larger and the T statistics are smaller.
Which shows the same \(\beta\)’s between the survey design model and the weighted model but the standard errors are larger in the survey model, so the test statistics are more conservative (smaller t statistics).
While in this simple model, our overall interpretation of the effects do not change (positive effects of education, negative effects of age), it is entirely possible that they could once we include our survey design effects.
It may be informative to plot the results of the models to see how different the coefficients are from one another:
library(ggplot2)
library(dplyr)
<-data.frame(coefs=c(coef(fit1)[-1], coef(fit3)[-1]),
coefsmod=c(rep("Non Survey Model", 8),rep("Survey Model", 8)),
effect=rep(names(coef(fit1)[-1]), 2))
%>%
coefsggplot()+
geom_point(aes( x=effect, y=coefs, group=effect,color=effect, shape=mod),
position=position_jitterdodge(jitter.width = 1),
size=2)+
ylab("Regression Coefficient")+
xlab("Beta")+
geom_abline(intercept = 0, slope=0)+
theme(axis.text.x = element_text(angle = 45, hjust = 1))+
ggtitle(label = "Comparison of Survey and Non-Survey Regression effects")
Which shows us that the betas are similar but have some differences between the two models.
Creating Survey estimates for places
One of the coolest ways to use the BRFSS is to calculate estimates for places, and by demographic characteristics withing places. Again, we use svyby()
to do this, but now we calculate obesity rates by sex within cities.
<-svyby(~obese, ~mmsaname, design=des,FUN = svymean, na.rm=T )
citytab::kable(citytab, type="html", digits=3,caption = "Obesity Estimats for TX MSAs") knitr
| mmsaname | obese | se | |
|---|---|---|---|
| Austin-Round Rock, TX, Metropolitan Statistical Area | Austin-Round Rock, TX, Metropolitan Statistical Area | 0.294 | 0.021 |
| College Station-Bryan, TX, Metropolitan Statistical Area | College Station-Bryan, TX, Metropolitan Statistical Area | 0.308 | 0.052 |
| Corpus Christi, TX, Metropolitan Statistical Area | Corpus Christi, TX, Metropolitan Statistical Area | 0.362 | 0.034 |
| Dallas-Plano-Irving, TX, Metropolitan Division | Dallas-Plano-Irving, TX, Metropolitan Division | 0.286 | 0.025 |
| El Paso, TX, Metropolitan Statistical Area | El Paso, TX, Metropolitan Statistical Area | 0.347 | 0.029 |
| Fort Worth-Arlington, TX, Metropolitan Division | Fort Worth-Arlington, TX, Metropolitan Division | 0.367 | 0.028 |
| Houston-The Woodlands-Sugar Land, TX, Metropolitan Statistical Area | Houston-The Woodlands-Sugar Land, TX, Metropolitan Statistical Area | 0.307 | 0.022 |
| San Antonio-New Braunfels, TX, Metropolitan Statistical Area | San Antonio-New Braunfels, TX, Metropolitan Statistical Area | 0.308 | 0.033 |
| Wichita Falls, TX, Metropolitan Statistical Area | Wichita Falls, TX, Metropolitan Statistical Area | 0.425 | 0.055 |
Using srvyr
There’s a new package called srvyr
that incorporates the survey analysis stuff into the dplyr
universe:
library(srvyr)
<-brfss_17%>%
brfsurvas_survey_design(1,strata=ststr,weights=mmsawt )
%>%
brfsurvgroup_by(mmsaname)%>%
summarise(obprev = survey_mean(obese, na.rm=T))
Replicate Weights
If your dataset comes with replicate weights, you have to specify the survey design slightly differently. Here is an example using the IPUMS CPS data. For this data, you can get information here, but you must consult your specific data source for the appropriate information for your data.
load(url("https://github.com/coreysparks/data/blob/master/cpsmar10tx.Rdata?raw=true"))
names(cpsmar10tx)
## [1] "year" "serial" "hwtsupp" "repwt" "statefip" "metarea"
## [7] "foodstmp" "REPWT1" "REPWT2" "REPWT3" "REPWT4" "REPWT5"
## [13] "REPWT6" "REPWT7" "REPWT8" "REPWT9" "REPWT10" "REPWT11"
## [19] "REPWT12" "REPWT13" "REPWT14" "REPWT15" "REPWT16" "REPWT17"
## [25] "REPWT18" "REPWT19" "REPWT20" "REPWT21" "REPWT22" "REPWT23"
## [31] "REPWT24" "REPWT25" "REPWT26" "REPWT27" "REPWT28" "REPWT29"
## [37] "REPWT30" "REPWT31" "REPWT32" "REPWT33" "REPWT34" "REPWT35"
## [43] "REPWT36" "REPWT37" "REPWT38" "REPWT39" "REPWT40" "REPWT41"
## [49] "REPWT42" "REPWT43" "REPWT44" "REPWT45" "REPWT46" "REPWT47"
## [55] "REPWT48" "REPWT49" "REPWT50" "REPWT51" "REPWT52" "REPWT53"
## [61] "REPWT54" "REPWT55" "REPWT56" "REPWT57" "REPWT58" "REPWT59"
## [67] "REPWT60" "REPWT61" "REPWT62" "REPWT63" "REPWT64" "REPWT65"
## [73] "REPWT66" "REPWT67" "REPWT68" "REPWT69" "REPWT70" "REPWT71"
## [79] "REPWT72" "REPWT73" "REPWT74" "REPWT75" "REPWT76" "REPWT77"
## [85] "REPWT78" "REPWT79" "REPWT80" "REPWT81" "REPWT82" "REPWT83"
## [91] "REPWT84" "REPWT85" "REPWT86" "REPWT87" "REPWT88" "REPWT89"
## [97] "REPWT90" "REPWT91" "REPWT92" "REPWT93" "REPWT94" "REPWT95"
## [103] "REPWT96" "REPWT97" "REPWT98" "REPWT99" "REPWT100" "REPWT101"
## [109] "REPWT102" "REPWT103" "REPWT104" "REPWT105" "REPWT106" "REPWT107"
## [115] "REPWT108" "REPWT109" "REPWT110" "REPWT111" "REPWT112" "REPWT113"
## [121] "REPWT114" "REPWT115" "REPWT116" "REPWT117" "REPWT118" "REPWT119"
## [127] "REPWT120" "REPWT121" "REPWT122" "REPWT123" "REPWT124" "REPWT125"
## [133] "REPWT126" "REPWT127" "REPWT128" "REPWT129" "REPWT130" "REPWT131"
## [139] "REPWT132" "REPWT133" "REPWT134" "REPWT135" "REPWT136" "REPWT137"
## [145] "REPWT138" "REPWT139" "REPWT140" "REPWT141" "REPWT142" "REPWT143"
## [151] "REPWT144" "REPWT145" "REPWT146" "REPWT147" "REPWT148" "REPWT149"
## [157] "REPWT150" "REPWT151" "REPWT152" "REPWT153" "REPWT154" "REPWT155"
## [163] "REPWT156" "REPWT157" "REPWT158" "REPWT159" "REPWT160" "month"
## [169] "pernum" "wtsupp" "relate" "age" "sex" "race"
## [175] "marst" "offpov" "MIGRATE1"
So we see the replicate weights are in columns 8 through 167 in the data
#simple binary outcome
$poverty<-ifelse(cpsmar10tx$offpov==1,1,0)
cpsmar10tx
# Replicate weight design - I got these details from the data source, you should too
<-svrepdesign( data = cpsmar10tx,repweights = cpsmar10tx[, c(8:167)] ,
des2weights = ~wtsupp ,
type="JK1",
scale=.025)
des2
## Call: svrepdesign.default(data = cpsmar10tx, repweights = cpsmar10tx[,
## c(8:167)], weights = ~wtsupp, type = "JK1", scale = 0.025)
## Unstratified cluster jacknife (JK1) with 160 replicates.
#Without design
prop.table(table(cpsmar10tx$poverty))
##
## 0 1
## 0.8374617 0.1625383
#with design
prop.table(svytable(~poverty, design = des2))
## poverty
## 0 1
## 0.8481106 0.1518894
#Again, using the mean
mean(cpsmar10tx$poverty)
## [1] 0.1625383
#Using the design. This would be an official estimate of poverty in TX in 2010:
svymean(~poverty, design=des2)
## mean SE
## poverty 0.15189 0.007


 Follow the instructions below to create a cold storage wallet. If you have done so go to step 1 to deposit your bitcoins into cold storage or go to step 2 to spend from cold storage.'|_}}
{{"To creating a cold storage wallet first download ArcBit's offline wallet tool in the following linked here,"|_}} https://arcbit.io/. {{'Save this webpage to a usb drive. Then plug the usb drive into an offline computer, preferably one that never touched the internet. Then open the webpage and follow the instructions in the webpage to create your secure cold storage wallet.'|_}}
{{'If you have already deposit bitcoins into your cold storage wallet and would like to spend them, go to step 2.'|_}}
{{"1) You can enable advanced mode in ArcBit's wallet and import your xpub key as an watch only account. This method is recommended."|_}}
{{"2) You can use use Arcbit's offline wallet tool to generate your addresses manually. The draw back is that you have to keep track of which addresses to receive bitcoins into."|_}}
{{"After you have bitcoins your account, you can fetch blockchain data (accountData) on that account. Then either download or copy the account data to a file. Then take to file to your offline computer and load ArcBit's offline wallet tool to authorize the transaction with your private keys. Then take the signed authorized transaction data to step 4."|_}}
{{"1) You can enable advanced mode in ArcBit's wallet and import your xpub key as an watch only account. then got the actions tap and click 'Find spendable bitcoins'. This method is recommended."|_}}
{{"2) You can use the tool below. You have to input the account public key and the address IDs of the addresses you received bitcoins into."|_}}
{{'Paste the transaction into the text area and send the transaction.'|_}}
{{'To create a new cold storage, click "New wallet" to create a unique 12 word mnemonic. Then back up the generated mnemonic by paper or memory and keep it to yourself. The mnemonic iself can recover all your bitcoins.'|_}}
{{'You can also input a mnemonic, account private key or account public key and view the addresses and private keys of the inputed wallet or accounts.'|_}}
{{'Invalid Mnemonic'|_}}
{{'Invalid Account Private Key'|_}}
{{'Invalid Account Public Key'|_}}
{{'Step 1) Input your account private key. This key is use to sign and authorize the transaction.'|_}}
{{'Invalid Private Key'|_}}
{{'Step 2) Load the account data file or paste it into the text area below. Then to authorize and sign a transaction from an account'|_}}
{{'Invalid Account Data'|_}}
{{'Step 3) Input the address and amount that you wish to spend'|_}}
{{'Step 4) Click "Sign Transaction" to create the raw transaction. Copy or download this file to a usb device. Then back in your ArcBit wallet, go to step 3 of ArcBits Offline Spend section and follow the instructions there.'|_}}


Provides functionality of a Mutex for multithreading.
More...
#include <hmutex.h>
|
| class | ScopeLock |
| | Utility class for exception-safe Mutex-locking within a scope. More...
|
| |
|
|
void * | handle |
| | Mutex OS handle.
|
| |
|
String | name |
| | Mutex name.
|
| |
|
bool | locked |
| | Used internallly on Win32 so the much faster critical sections can be used instead of mutices and semaphores.
|
| |
Provides functionality of a Mutex for multithreading.
◆ Mutex()
| hltypes::Mutex::Mutex |
( |
const String & |
name = "" | ) |
|
Basic constructor.
- Parameters
-
| [in] | name | The internal name. |
◆ getName()
| String hltypes::Mutex::getName |
( |
| ) |
const |
|
inline |
Returns the mutex name.
- Returns
- The mutex name.
◆ lock()
| void hltypes::Mutex::lock |
( |
| ) |
|
Locks the Mutex.
- Note
- If another thread has lock, the caller thread will wait until the previous thread unlocks it.
◆ unlock()
| void hltypes::Mutex::unlock |
( |
| ) |
|
Unlocks the Mutex.
- Note
- Use this when you're done with thread-safe sections of your code.
The documentation for this class was generated from the following file:


{{#if $eq status 'pending'}}
This post is awaiting admin approval. It will be reviewed shortly and then become live on the site.
{{else}}
{{#if $eq status 'flagged'}}
This post has been flagged for content. Contact an admin if you believe this is in error.
{{else}}
{{#if $eq status 'inactive'}}
This job post has been deactivated.
{{else}}
{{#if $eq status 'filled'}}
This job post has been filled.
{{/if}}
{{/if}}
{{/if}}
{{/if}}


Guide for Contributors
This file describes how to contribute to the GEOPM project. All feedback is appreciated.
Bug Report
Please file an issue on our GitHub site for any bug observed:
https://github.com/geopm/geopm/issues/new/choose
and select the “Bug report” template.
If possible, please reproduce issue with the –enable-debug option passed to configure at build time and then report any error messages emitted by GEOPM at run time. Please provide the version of GEOPM that produced the problem. The GEOPM version can be found by running the command
geopmread --version
Providing code that is small and reproduces the issue is nice to have.
Feature Request
Please submit an issue on GitHub for any feature requests using the “Feature request” template. Feature request issues should be titled as a user story of the form:
“As a <ROLE> I would like <FEATURE>”
in this way the author of the issue identifies the role that will benefit from the feature and then describes the feature iteslf. Common roles include “user of the GEOPM runtime”, “user of the GEOPM service”, “developer of GEOPM”, etc. Please be as specific as possible when identifying the role, e.g. “user of the geopmsession command line tool” is preferred to “user of the GEOPM service”.
When planning to implement a new feature as a contribution to the main repository, please start this collaboration by creating a feature request issue. Please open the feature issue as soon as possible in the process of planning the work.
Change Request
Changes to GEOPM are submitted by opening a pull request on GitHub from a fork of GEOPM. Including a Signed-off-by: line in the commit message is appreciated, but not required. All pull requests to the geopm/geopm repository on GitHub will automatically be submitted to GitHub Actions for unit testing.
Making a pull request is a step in a process. The first step in this process is creating an issue from one the “Bug report”, “Feature request”, or “Story” templates. This step identifies the high level goal for one or more changes to the repository.
Each change to the repository is identified with an issue created using one of the issues templates that begins “Change - “. The “Change” issue should reference the “Bug report,” “Feature request,” or “Story” that the change relates to. This is done with a “Relates to #XXXX” note in the issue description.
Each pull request will close a “Change” issue by filling in the “Fixes #XXXX” notation in the pull request template, it may also close the high level issue, if this is the last required change to fix the bug, complete the feature, or accomplish the story described in the high level issue. Note that the requirements for the pull request should be documented in the “Change” issue, not in the pull request itself.
The link for creating an issue is here:
https://github.com/geopm/geopm/issues/new/choose
The link for creating a pull request is here:
https://github.com/geopm/geopm/pulls
The link to the results of the unit testing can be found under the actions tab on the GEOPM GitHub webpage:
https://github.com/geopm/geopm/actions
We encourage users and developers of the GEOPM software to participate in our code review process through GitHub.
Review process
Our process for requesting a pull request to be reviewed and merged is as follows:
An issue has been created about the problem that the pull request is solving. Note that most PRs that change source code refer to an issue created with one of the “Change - ” templates.
Author creates a branch reflecting the issue number, e.g. “issue-1234”.
Changes are made on that branch and pushed to the author’s fork of the GEOPM repository.
The author submits the pull request based on the issue branch. Please refer to the Git documentation on how to create pull request: https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests. Note that the pull request will be filled with a template. Selecting the “Preview” tab to render the markdown in the template may be helpful when editing the pull request text.
Check that all of the requirements in the issue referenced by the PR have been met.
The submitter may optionally request specific people to be reviewers. Otherwise, any GEOPM maintainer may be an approver for the pull request. The
#code-review
channel on GEOPM’s slack organization may be used to alert maintainers of a review request.During the review process, a reviewer may request changes to the pull request. If possible, these changes should be submitted as new commits without rebasing or squashing to simplify the reader’s ability to view changes.
When the pull request is accepted by the reviewer(s), it will be marked “Approve”. Once the request is approved by all reviewers and all CI checks are passing, the change will be integrated into the GEOPM development branch by a maintainer.
Developers Guide
The guide for developers is maintained here:
https://geopm.github.io/devel.html
Refer to this guide to learn how to make changes to the GEOPM source code.


FluidSynth is an application for playing MIDI files and a library for MIDI applications. It does not have the hooks for playing Karaoke files. This chapter discusses an extension to FluidSynth which adds appropriate hooks, and then uses these to build a variety of Karaoke systems.
Source files in this chapter are here .
fluidsynth
is a command line MIDI player.
It runs under ALSA with a command line
fluidsynth -a alsa -l <soundfont> <files...>
The FluidSynth API consists of
new_fluid_player
new_fluid_synth
new_fluid_audio_driver
which runs in a separate thread
new_fluid_settings
and modified by calls such as fluid_settings_setstr
A typical program to play a sequence of MIDI files using ALSA follows.
It creates the various objects, sets the audio player to use ALSA
and then adds each soundfont and MIDI file to the player.
The call to fluid_player_play
then plays each MIDI file
in turn.
This program is just a repeat of the program seen in the chapter
on
FluidSynth MIDI.
Callbacks are functions registered with an application which are called when certain events occur. In order to build a Karaoke player we need to know
The first of these is fairly straightforward: FluidSynth
has a function fluid_player_load
which will
load a file. We can change the code to add a suitable callback into that
function which will give us access to the loaded MIDI file.
Getting Lyric or Text events out of a sequencer is not so easy, since they are never meant to appear! The MIDI specification allows these event types within a MIDI file, but they are not wire-types so should never be sent from a sequencer to a synthesizer. The Java MIDI API makes them available by an out-of-band call to a Meta event handler. FluidSynth just throws them away.
On the other hand, FluidSynth already has a callback to handle
MIDI events sent from the sequencer to the synthesizer. It is
the function fluid_synth_handle_midi_event
and is set by the call fluid_player_set_playback_callback
.
What we need to do is to firstly alter the
existing FluidSynth code so that Lyric and
Text events are passed through, and then insert a new playback
callback that will intercept those events and do something
with them while passing on all other events to the default
handler. The default handler will ignore any such events
anyway, so it does not need to be changed.
I have added one new function to FluidSynth,
fluid_player_set_onload_callback
and added appropriate code to pass on some Meta
events. Then it is a matter of writing an onload
callback to walk through the MIDI data from the parsed
input file, and writing a suitable MIDI event callback
to handle the intercepted Meta events while passing the rest
through to the default handler.
These changes have been made to give a new source package fluidsynth-1.1.6-karaoke.tar.bz2 . If you just want to work from a patch file, that is fluid.patch . The patch has been submitted to the FluidSynth maintainers.
To build from this package, do the same as you normally would:
tar jxf fluidsynth-1.1.6-karaoke.tar.bz2
cd fluidsynth-1.1.6
./configure
make clean
make
To get ALSA support, you will need to have installed
the libasound2-dev
package, and similarly
for Jack or other packages. You probably won't have many
of them installed, so
don't run make install
or you will overwrite
the normal fluidsynth
package which will
probably have more features.
The previous program modified to just print out
the lyric lines and the lyric events as they occur
is karaoke_player.c
:
Assuming the new fluidsynth package is in an immediate subdirectory, to compile the program you will need to pick up the local includes and libraries
gcc -g -I fluidsynth-1.1.6/include/ -I fluidsynth-1.1.6/src/midi/ -I fluidsynth-1.1.6/src/utils/ -c -o karaoke_player.o karaoke_player.c
gcc karaoke_player.o -Lfluidsynth-1.1.6/src/.libs -l fluidsynth -o karaoke_player
To run the program, you will also need to pick up the local library and the soundfont file:
export LD_LIBRARY_PATH=./fluidsynth-1.1.6/src/.libs/
./karaoke_player /usr/share/soundfonts/FluidR3_GM.sf2 54154.mid
The output for a typical KAR
file is
Load callback, tracks 1
Track 0
Loaded event #
Loaded event 0
Loaded event 0
Loaded event 0
Loaded event 1
Loaded event
...
Callback: Playing lyric event 2 #
Callback: Playing lyric event 2 0
Callback: Playing lyric event 2 0
Callback: Playing lyric event 2 0
Callback: Playing lyric event 2 1
Callback: Playing lyric event 3
While there are many ways in which Karaoke text can be displayed, a common pattern is to display two lines of text, the currently playing line and the next one. The current line is progressively highlighted and on completion is replaced by the next line.
In the Java chapter we did that. But the Java libraries have not been polished and are distinctly slow and heavyweight. They also seem to be low on Oracle's development schedule for Java. So here we look at an alternative GUI and make use of the FluidSynth library. The Gtk library is chosen for reasons outlined in an earlier chapter on Gtk.
The first task is to build up an array of lyric lines as the file is loaded. We are asssuming KAR format files with upfront information as to title, etc, prefixed by '@', and newlines prefixed by '\'.
struct _lyric_t {
gchar *lyric;
long tick;
};
typedef struct _lyric_t lyric_t;
struct _lyric_lines_t {
char *language;
char *title;
char *performer;
GArray *lines; // array of GString *
};
typedef struct _lyric_lines_t lyric_lines_t;
GArray *lyrics;
lyric_lines_t lyric_lines;
void build_lyric_lines() {
int n;
lyric_t *plyric;
GString *line = g_string_new("");
GArray *lines = g_array_sized_new(FALSE, FALSE, sizeof(GString *), 64);
lyric_lines.title = NULL;
for (n = 0; n < lyrics->len; n++) {
plyric = g_array_index(lyrics, lyric_t *, n);
gchar *lyric = plyric->lyric;
int tick = plyric->tick;
if ((strlen(lyric) >= 2) && (lyric[0] == '@') && (lyric[1] == 'L')) {
lyric_lines.language = lyric + 2;
continue;
}
if ((strlen(lyric) >= 2) && (lyric[0] == '@') && (lyric[1] == 'T')) {
if (lyric_lines.title == NULL) {
lyric_lines.title = lyric + 2;
} else {
lyric_lines.performer = lyric + 2;
}
continue;
}
if (lyric[0] == '@') {
// some other stuff like @KMIDI KARAOKE FILE
continue;
}
if ((lyric[0] == '/') || (lyric[0] == '\\')) {
// start of a new line
// add to lines
g_array_append_val(lines, line);
line = g_string_new(lyric + 1);
} else {
line = g_string_append(line, lyric);
}
}
lyric_lines.lines = lines;
printf("Title is %s, performer is %s, language is %s\n",
lyric_lines.title, lyric_lines.performer, lyric_lines.language);
for (n = 0; n < lines->len; n++) {
printf("Line is %s\n", g_array_index(lines, GString *, n)->str);
}
}
This is called from the onload callback
int onload_callback(void *data, fluid_player_t *player) {
long ticks = 0L;
lyric_t *plyric;
printf("Load callback, tracks %d \n", player->ntracks);
int n;
for (n = 0; n < player->ntracks; n++) {
fluid_track_t *track = player->track[n];
printf("Track %d\n", n);
fluid_midi_event_t *event = fluid_track_first_event(track);
while (event != NULL) {
switch (fluid_midi_event_get_type (event)) {
case MIDI_TEXT:
case MIDI_LYRIC:
/* there's no fluid_midi_event_get_sysex()
or fluid_midi_event_get_time() so we
have to look inside the opaque struct
*/
ticks += event->dtime;
printf("Loaded event %s for time %d\n",
event->paramptr,
ticks);
plyric = g_new(lyric_t, 1);
plyric->lyric = g_strdup(event->paramptr);
plyric->tick = ticks;
g_array_append_val(lyrics, plyric);
}
event = fluid_track_next_event(track);
}
}
printf("Saved %d lyric events\n", lyrics->len);
for (n = 0; n < lyrics->len; n++) {
plyric = g_array_index(lyrics, lyric_t *, n);
printf("Saved lyric %s at %d\n", plyric->lyric, plyric->tick);
}
build_lyric_lines();
}
The standard GUI part is to build an interface consisting of two labels, one above the other to hold lines of lyrics. This is just ordinary Gtk.
The final part is to handle lyric or text events from the sequencer. If the event is a '\', then the current text in a label must be replaced with new text, afer a small pause. Otherwise, the text in the label has to be progressively coloured to indicate what is next to be played.
In the earlier chapter on Gtk we discussed using Cairo to draw in pixbufs, and Pango to structure the text. The Gtk Label understands Pango directly, so we just use Pango to format the text and display it in the label. This involves constructing an HTML string with the first part coloured red and the rest in black. This can be set in the label, and there is no need to use Cairo.
The program is gtkkaraoke_player.c
Warning: the following program crashes regularly
when trying to copy a Pango attribute list in the Gtk code
for sizing
a label. Debugging shows that the Pango copy function
is set to NULL somewhere in Gtk, and shouldn't be.
I have no fix as yet and haven't replicated the bug
in a simple enough way to log a bug report.
When run it looks like
The chapter on Gtk showed how to play a background video with images (using Pixbufs), text (using Cairo) and coloured text (using Pango). We can extend that by adding in the dynamic text display for playing Karaoke.
We capture each lyric line in a structure which keeps the whole of the line, the part that has been sung already, the Pango markup for the line and the Pango attributes:
typedef struct _coloured_line_t { gchar *line; gchar *front_of_line; gchar *marked_up_line; PangoAttrList *attrs; } coloured_line_t;
This is updated each time a MIDI Lyric event occurs, in a thread listening to the FluidSynth sequencer.
A separate thread plays the video, and on each frame overlays
the frame image with the current and next lyric.
This is set into a GdkImage
for display
by Gtk.
The program is gtkkaraoke_player_video_pango.c
The application looks like
By extending FluidSynth it an be made into a Karaoke player in various ways. It is quite heavy in CPU usage though. On my laptop, the final version runs at about 100% CPU.


So I'm really excited to start using Visual Studio 2008 and LINQ. A few of the guys here at work are learning it and will hopefully be giving us a little presentation in the next few weeks about how they used it in one of our projects. They have been learning it with the help of the following tutorial, which I hope to read through in the next few days: http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx
By the way, it's a 9-part series of blog posts (if you care to get that into it).


interface CipherSchemeMetadata : KeyEncodingService
Service which provides metadata about cipher suite, such as available signature schemes, digests and security providers.
compositeKeyScheme |
Corda CompositeKey signature type. abstract val compositeKeyScheme: SignatureScheme |
digests |
The list of all available digest algorithms for the cipher suite. abstract val digests: Array<String> |
providers |
The map of initialized security providers where the key is the provider name. abstract val providers: Map<String, Provider> |
schemes |
The list of all available signature schemes for the cipher suite. abstract val schemes: Array<SignatureScheme> |
secureRandom |
Get an instance of SecureRandom abstract val secureRandom: SecureRandom |
findKeyFactory |
Find the corresponding KeyFactory based on the SignatureScheme. abstract fun findKeyFactory(scheme: SignatureScheme): KeyFactory |
findScheme |
Find the corresponding SignatureScheme based on its AlgorithmIdentifier abstract fun findScheme(algorithm: AlgorithmIdentifier): SignatureScheme
Find the corresponding SignatureScheme based on the type of the input PublicKey. abstract fun findScheme(key: PublicKey): SignatureScheme
Find the corresponding SignatureScheme based on the code name. abstract fun findScheme(codeName: String): SignatureScheme |
BANNED_DIGESTS |
val BANNED_DIGESTS: Set<String> |


Hello there!
Username:
Password:
Enter your bio.
Date of birth:
Male
Female
I have a bike
I have a car
Volvo
Saab
Mercedes
Audi
Favorite Colors:
Blue
Red
Green
Black
ฟ้า
Submit as tentative
ชื่อ:
Google
Welcome "User"
Some spiffy hidden text
Username:
You pressed an input button
Time passed.
Time passed.


Cyclone Bulbul: Naval ships ready for emergency rescue, relief efforts
by bdnews24.comThe Bangladesh Navy is prepared to undertake emergency rescue and relief operations with warships, if required, in the event of Cyclone Bulbul causing any havoc.
With the “very severe” storm likely to hit the coastal areas of Khulna Saturday night, five ships at Khulna BNS Titumir have been kept ready for operations in Khulna, Barishal, Patuakhali, Jhalakathi and Barguna, the Navy said.
Five warships were kept as reserve force for emergency rescue, relief and medical operations in Barishal, Jhalakathi, Patuakhali, Barguna and Satkhira districts, three in Chattogram and two in St Martin’s island, the military’s press wing ISPR said in a statement.
Naval contingents and five medical teams were also ready to provide services, life-saving drugs and oral saline in the affected areas.
The Navy was conducting the operations in round-the-clock coordination with the disaster management and relief ministry and local administrations, the ISPR said.
Mongla Port Authority has also kept rescue vessels ready, according to Sheikh Fakhar Uddin, master commander of the port.
To deal with the situation, two sub-control rooms have been opened.
Five vessels — Kamruzzaman, Monsur Ali, Swadhin Bangla, Sonar Bangla and Oprejaya Bangla — are kept ready to take part in relief and rescue operations, according to Coast Guard.
The previous “severe” cyclone was Sidr that lashed Bangladesh on Nov 15, 2017.


Dancing Star Foundation ("DSF") is a nonprofit public benefit corporation based in California. DSF’s mission is focused on international biodiversity conservation, global environmental education, and animal protection. The Foundation is involved in active ecological restoration efforts and intensive environmental field research – much of which is disseminated in a multitude of lectures and symposia, and all manner of publications.
The Foundation works with numerous partners around the world to help raise awareness about the importance of environmental stewardship, ecological ethics and conservation biology. The Foundation focuses on the interdisciplinary humanities and social justice movements as they concern humankind's relationship to the natural world.
The Foundation is also concerned with indigenous peoples, human rights and holistic health; recognizing that healthy individuals make for a healthy planet.
Our Goal
The goal of Dancing Star Foundation is to help sensitize people throughout the world to the critical importance of biodiversity, animal protection and conservation; and to instill a respect for all life, which can be demonstrated by even the most modest gestures of kindness, compassion and love in our everyday lives. DSF was created by the late Sue Stiles in 1993.
Some of our best projects...
Archives
Dancing Star Foundation President Has 2 New One-Hour Conversations with the 12th Secretary of the Smithsonian Institution, Dr. G. Wayne Clough, and with Ms. Ingrid Newkirk, President of PETA, People for the Ethical Treatment of Animals.
Learn More
Dancing Star Foundation has been working for some time with the Ecuadorian Government to Write, Direct and Co-Produce a short 21 minute film, "Yasuní – A Meditation on Life," which...premiered at the Rio+20 Summit in mid-June, 2012; it was screened most recently at the IUCN World Conservation Congress at Jeju, Korea.Dr. Tobias and Ms. Morrison traveled to Yasuní National Park with Ecuadorian film crews and the Ecuadorian Secretary of State for Yasuní – ITT, Dr. Ivonne Baki, to help champion the cause of preserving the millions of acres of critical habitat Yasuní embodies.


{% extends 'base_tabs.html' %} {% load bootstrap3 %} {% block head_title %}Dashboard{% endblock %} {% block panel %}
Please check your inbox to verify that {{ user.email }} is your email. Check your SPAM folder. If you haven't received an email, you can ask to send it again.
Send verification email againTime until applications close: {% include 'include/deadline_countdown.html' %}
We are sorry, your invite expired. If you think this is an error or you still want to come, please message us at {{ h_contact_email|urlize }}. We will decide case-per-case what is the result.
We are sorry that you can't come to {{ h_name }}. We are looking forward to welcome you next edition. If you think this is an error or you still want to come, please message us at {{ h_contact_email|urlize }}. We will decide case-per-case what is the result.
Welcome to {{ h_name }}. Let us know if you need any help!
{% if h_live %}Follow our live page for more information during the event
Go to live page {% endif %}Thank you {{ user.get_full_name }} for confirming your attendance to {{ h_name }}! In order to make registration go smoother, please show us this QR code during the process so we can easily find you.
{% if h_arrive %}{{ h_arrive }}
{% endif %} {% if h_leave %}{{ h_leave }}
{% endif %} {% include 'include/cancel.html' %}Respond to this invitation by clicking on the "Confirm" button below. If you cannot make it, please let us know by clicking "Cancel". We want as many people as possible to experience the hackathon! This invite expires in {% include 'include/deadline_countdown.html' with timeleft=invite_timeleft %}
{% if h_arrive %}{{ h_arrive }}
{% endif %} {% if h_leave %}{{ h_leave }}
{% endif %}When decisions are released, you'll be able to see your results on this page.
If you have any questions or concerns, you can still reach us at {{ h_contact_email|urlize }}
{% if h_team_enabled %} {% endif %}


A Puzzling Problem
问题描述 :
Anna Graham is a puzzle maker who prides herself in the quality and complexity of her work. She makes puzzles of all kinds – crosswords, logic problems, acrostics, and word search puzzles, to name but a few. For each puzzle, she has developed a set of rules which she constrains herself to follow. For word search puzzles, she insists not only that all the words be connected to one another (as in most word search puzzles), but also that removing any word from the word list will not cause one or more words to become disconnected from the rest. (Two words are connected if they contain a common letter in the grid.) The example word search puzzle on the left satisfies this condition, but the one on the right does not (removing the word Pascal from the word list disconnects Java from the other two words).
Your job is to write a program that checks to see if Anna’s word search problems are up to snuff.
Your job is to write a program that checks to see if Anna’s word search problems are up to snuff.
输入:
Input will consist of multiple test cases. The first line of each test case contains 3 integers n m l, where n and m are the number of rows and columns in the puzzle and l is the number of words. Following this are n lines containing m uppercase characters each (the puzzle) followed by l lines containing one word each (the word list, in mixed case). Each word in the word list will appear in the puzzle exactly once. There will be no more than 100 rows and 100 columns in the puzzle and no more than 100 words to search for. There will be no spaces in the input words.
输出:
Input will consist of multiple test cases. The first line of each test case contains 3 integers n m l, where n and m are the number of rows and columns in the puzzle and l is the number of words. Following this are n lines containing m uppercase characters each (the puzzle) followed by l lines containing one word each (the word list, in mixed case). Each word in the word list will appear in the puzzle exactly once. There will be no more than 100 rows and 100 columns in the puzzle and no more than 100 words to search for. There will be no spaces in the input words.
样例输入:
5 6 3 PBROGR PASCAL ASMMIN GIICON TCELST BASIC LISP Pascal 5 6 4 PBROJR PASCAL ASMMVN GIICAN TCELST BASIC Java LISP Pascal 0 0 0
样例输出:
Yes No
#include <stdio.h> #include <string.h> int t; int n, m; char map[10][10]; int judge; int vis[20]; struct Block { char set[10][10]; int num; int n, m; } b[20]; int ju(int ii, int x, int y) { int i, j; for (i = x; i < x + b[ii].n; i ++) for (j = y; j < y + b[ii].m; j ++) if (map[i][j] != '0' && b[ii].set[i -x][j - y] != '0') return 0; return 1; } void dfs(int x, int y, int tt, int num) { int i, j, k; if (tt == t) { if (num == 16) judge = 1; return; } if (y > 4) { if (x < 4) dfs(x + 1, 1, tt, num); return; } for (i = 1; i <= t; i ++) { if (!vis[i] && ju(i, x, y)) { vis[i] = 1; for (j = x; j < x + b[i].n; j ++) for (k = y; k < y + b[i].m; k ++) if (b[i].set[j - x][k - y] != '0') map[j][k] = b[i].set[j - x][k - y] + i - 1; dfs(x, y + 1, tt + 1, num + b[i].num); if (judge) return; vis[i] = 0; for (j = x; j < x + b[i].n; j ++) for (k = y; k < y + b[i].m; k ++) if (b[i].set[j - x][k - y] != '0') map[j][k] = '0'; } } dfs(x, y + 1, tt, num); } int main() { int i, j, k; int bo = 0; while (scanf("%d", &t) != EOF && t) { if (bo == 0) bo = 1; else printf("\n"); judge = 0; memset(b, 0, sizeof(b)); memset(vis, 0, sizeof(vis)); memset(map, '1', sizeof(map)); for (i = 1; i <= 4; i ++) for (j = 1; j <= 4; j ++) map[i][j] = '0'; for (i = 1; i <= t ; i ++) { scanf("%d%d%*c", &n, &m); b[i].n = n; b[i].m = m; for (j = 0; j < n; j ++) { gets(b[i].set[j]); int len = strlen(b[i].set[j]); for (k = 0; k < len; k ++) if (b[i].set[j][k] != '0') b[i].num ++; } } dfs(1, 1, 0, 0); if (judge) { for (i = 1; i <= 4; i ++) { for (j = 1; j <= 4; j ++) printf("%c", map[i][j]); printf("\n"); } } else printf("No solution possible\n"); } return 0; }
解题转自：http://blog.csdn.net/accelerator_/article/details/9884353
(adsbygoogle = window.adsbygoogle || []).push({});
27行 minStack.push(minValue); 去掉就对了
这个问题其实还可以找循环节。参照欧拉定理（也就是费马定理的推广）,a^(phi(m)) mod m = 1
http://zh.wikipedia.org/wiki/%E6%AC%A7%E6%8B%89%E5%AE%9A%E7%90%86_(%E6%95%B0%E8%AE%BA)
所以先算b mod phi(10)，这个部分都是可以约掉的。基本上O(1)的时间就出解了。当然，这也是因为这个问题模数太小的原因。
真心不错，力顶作者
题目需要求解的是最小值，而且没有考虑可能存在环
真心不错，力顶作者
程序只能输出一个子序列
无需用转移方程也可以解决，哈哈
先从简单的做起，归并排序，二叉树相关的遍历等
算法还停留在大学的知识中
顶一个 赞一个
为什么for循环找到的i一定是素数叻，而且约数定理说的是n=p1^a1*p2^a2*p3^a3*…*pk^ak，而你每次取余都用的是原来的m，也就是n
else if也是要比较两次
很好的思路，可以借鉴
给力，赞一个


I started this place as an attempt to write poems and grasp my feelings, but it's gradually expanded and, from this moment forward, different format and content will be included.
"Technology"/"innovation"/"social tech" took a huge toll in my life. As of right now, I need a place to record this process, and I'll be adding more autobiographical elements in the future.
Hence, also more criticism, Philosophy, Economics, Theology.
I have no intentions in doing so.
Perhaps, this will save me in a court of law. Perhaps, this will help autistic teenagers in 2070. Perhaps, it'll be ridiculed by masses of apathetic ironic cows. Perhaps, these words will die with me, lost in Google's crawler.
Regardless, the truth yells, it must get out, desperately, uncertain of the future.
Likes are not alike.


Sidmouth woman kicked police officer 'in nether regions'
Christine Stafford was so drunk she could not even stand up - but it did not stop her lashing out at sergeant Sarah Clark
by Ted Davenport, Howard LloydA woman from Sidmouth has been ordered to pay compensation to a female police officer who she kicked in the groin during a drunken fracas.
Christine Stafford was so drunk after a night out in Exeter that police arrested her and took her to hospital because she was unable to stand up.
She kicked out at Police Sergeant Sarah Clark while she was at the Royal Devon and Exeter Hospital, making contact in what a judge described as her 'nether regions' .
Stafford, aged 59, of Salters Meadow, Sidmouth, admitted assault on an emergency worker and being drunk and disorderly when she appeared at Exeter Crown Court.
She was ordered to pay £100 compensation by Judge Timothy Rose, who ordered her to address an alcohol problems through 10 days of rehabilitation activities under a one year community order.
He told her:"You have stayed out of trouble and have saved up the money to pay compensation, as you were asked to do. When you consider the incident in the round, I understand you got yourself injured in the incident.
"It is right to observe that you were completely drunk at the time. It is an unpleasant situation for anyone to be kicked in what might be called the nether regions, which is always unwelcome."
Mr Nigel Wraith, prosecuting, said the incident happened at 10.54 pm on July 10, 2019, outside the Horse and Groom pub in Fore Street, Heavitree.
She was taken to hospital because she could not stand up. She became agitated, punched a wall, and kicked out at Sgt Clark, making contact in the area of the pubic bone.
Miss Kelly Scrivener, defending, said Stafford has been doing well under a previous supervision order and is addressing issues around alcohol and her mental health. She said she also suffered injury during the incident and her arrest.


{% extends "base.html" %} {% block content %} {% if user.is_authenticated %}
Did you just tried to login while already logged in !!!
Please go back
Your username and password didn't match. Please try again.


|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
hivemind
module.
See:
Description
| Interface Summary | |
|---|---|
| Autowiring | Service that wires properties of object with services defined in the registry. |
| AutowiringStrategy | Wires a single property of an object with a service from the hivemind registry. |
| ClassFab | Used when fabricating a new class. |
| ClassFactory | Service used when dynamically creating new classes. |
| EventLinker | Service used to link two other services together using event notifications. |
| InterfaceFab | A cousin to ClassFab used to create new interfaces. |
| InterfaceSynthesizer | Creates a synthetic interface based on the provided class. |
| MethodFab | Represents a created method on a class; used to add catch handlers. |
| ThreadCleanupListener | Listener interface implemented by classes which need to know when a thread cleanup occurs. |
| ThreadEventNotifier | Service which acts as a dispatch hub for events about the lifecycle of the current thread. |
| ThreadLocale | The hivemind.ThreadLocale service is intrinsic to HiveMind; its a threaded service for storing the locale for the current thread (it uses the threaded service). |
| ThreadLocalStorage | Provides a service which can temporarily store thread-local data. |
| Class Summary | |
|---|---|
| BodyBuilder | Utility class for assembling the body used with Javassist as a method or catch block. |
| ClassFabUtils | Static class containing utility methods. |
| MethodContribution | Contains contributions defined by the hivemind.MethodFilter schema. |
| MethodIterator | Utility used to iterate over the visible methods of a class. |
| MethodSignature | A representation of a Method , identifying the name, return type,
parameter types and exception types. |
Definitions of services provided by the hivemind
module.
|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |