text:
[Herald Interview] National Library of Korea expands space for digital content creators
By Song Seung-hyun
Published : Mar 2, 2020 - 15:50 Updated : Mar 2, 2020 - 15:59
National Library of Korea Chief Executive Suh Hye-ran (Park Hyun-koo/The Korea Herald)
When National Library of Korea Chief Executive Suh Hye-ran, 65, took office in August, one of the first things she did was expand the media center for digital content creators.
"We used to have three booths for creating media content. Now we have more than 10," Suh said during a recent interview with The Korea Herald at the National Library of Korea in Seoul.
"We also created a Maker Space at the National Library for Children and Young Adults," Suh added. Maker Space is a lab where children can learn to create diverse content. "For instance, students can learn to code a software program related to literary content at Maker Space."
Suh said she believes the library should be more than just a place to read: It should also provide space and education for would-be content creators and one-person media outlets.
"Also, we will focus on providing education, especially for teachers, so that they can go back to their classes and teach their students about making digital content and ultimately increase the student's media literacy," she added.
"In November, we will also launch a space where people can experience (augmented reality) and (virtual reality) technologies in the library," Suh said. "We aim to connect the technology with books and content that we have as the public library."
Besides turning the library into a more digitized space, Suh also said it was crucial for the national library to fulfill its traditional role.
"We are the national public library, so we collect all the books that are published. We don't pick and choose. We collect them all. So 80 percent of the space we have is already occupied. Around 2023 the space that we have will be full," Suh said. "Also, we have to make sure that the books are kept safe permanently, so we also need facilities and equipment to maintain them."
Suh said she hoped to use the International Broadcasting Center, which was created for the Olympics in PyeongChang, Gangwon Province, for this purpose. "The government is currently reviewing to see if the space is adequate for use as a storage facility for the library. The results are expected to come out in October at the latest," Suh said.
The chief executive also revealed her vision for a program for people outside Korea with an interest in Korean culture.
"It is still only in my head. I am hoping to create a residency program for those who are interested in Korean culture like K-pop. We would like to bring them to Korea and provide them with our materials regularly to support their research," she said.
Suh is the first library specialist without government experience to lead the country's largest public library. Previously, she was a library director and professor at Silla University in Busan.
Suh said she understands the importance of her role as head of the largest library system in the country, which includes the National Library of Korea; the National Library of Korea, Sejong; the National Library for the Disabled; and the National Library for Children and Young Adults.
"Many people, including myself, have been longing for an outside expert to lead the public library," she said. "So I know that there are expectations of me. I will try to lay the foundation to move the library a step farther."
Suh is also the first woman to be appointed for the job. She added that she had never imagined this sort of responsibility when she first decided to become a librarian.
"My best friend said her relative living in the US was a university librarian and also a professor. The job was rare at the time. When I heard that I thought it sounded very cool," she said. "At the time I had no idea what kind of job I was getting into."
The library, with a budget of 104.7 billion won ($87.46 million) this year, has 331 employees and over 845,000 visitors annually. As of January this year, the library had more than 12.35 million books.
By Song Seung-hyun (ssh@heraldcorp.com)


Wind down for the evening all whilst nourishing your skin with a spa-like soak! This bath bomb made of colloidal oatmeal and chamomile make for a soothing and comforting bath that'll keep every inch of your skin soft and moisturized! Spiced tones of cinnamon meld with bright notes of bergamot, wild raspberry, parma violet, and rose petals. Accents of precious woods, amber, and black musk add warmth to a dreamy scent.


Before the opening of the workshop, Sodexo APAC Diversity & Inclusion Leader Alice ZHANG introduced that we are committed to make women occupation reach40% among Sodexo's senior leaders by 2025 and now it is 37.9%. Although it is very close to our goal but we still have a lot to do. Therefore, we launched "SoTogether China" today. SoTogether was known as the Sodexo Women's International Forum for Talent (SWIFt). We have transitioned to the new name to highlight the fact that women and men together play a role in achieving business success. The new name, logo and positioning applies to members of gender balance organizations at different levels around the world, bringing us together to achieve gender balance among organizations.
" The launch of 'SoTogether China' will provide more opportunities for women in workplace and help them discover and develop themselves. I am proud of our gender-balanced team, derived from our persistence on diversity proved on business value with a balanced team of men and women between 40% - 60%. We all know that it is not a one-day effort, instead, I believe SoTogether China will help on achieving our goal, improve our women employees' capabilities and potentials, help them to Discover, Narrate and Advance themselves." said by Martin BODEN, Sodexo China Country President.
During the three topics discussion sessions, Sodexo also invited industry experts engaged in gender balance, working women and career development, who from Sheng Wen Consultation, the field of brain neuroscience, and Potential Project to share opportunities and challenges for career women, how to leverage person advantages, etc., to promote development.
Sodexo believes that "when women are empowered, we're all empowered". "SoTogether China" was officially launched, which will further contribute to gender balance and promote the development of "diversity and inclusion".


more per day, our safety products help protect those who live independently yet need that extra assistance in case of an accidental or unlawful situation.
Our MX-LOCare™ GPS Watch is that extra tool that will help with special loved one in your life that may have had a sudden fall or any emergency situation. Remember this is not a replacement for your phone as it is a mobile personal emergency response device.
Coming soon, is the MX-LOCare™ GPS Watch will be tied directly to a certified 24x7 UL approved 3rd party central monitoring facility.


text:
Return to list of search results
18 Page 18 of 4,886
Page 18 of 4,886
The Montreal Shtetl : Making Home After the Holocaust
Authors/collaborators
Abramson, Zelda (Author)
Lynch, John (Author)
The common perception is that after Holocaust survivors arrived and settled in their new homes in North America, they continued on a successful journey from rags to riches. The authors point out that while this story is comforting, a closer look at the experience of Holocaust survivors shows it to be untrue. As an example, they point out that the arrival of tens of thousands of Jewish refugees was palpable on the streets of Montreal after the Second World War, and their impact on the existing Jewish community is well-recognized. Drawing on more than sixty interviews with survivors, hundreds of case files from Jewish Immigrant Aid Services, and other archival documents, the authors present a portrait of the daily struggles of Holocaust survivors who settled in Montreal, where they encountered difficulties with work, language, culture, health care, and an existing Jewish community that was not always welcoming to the Holocaust survivors.
Search by title and author on WorldCat
http://quescren.concordia.ca/en/resource/DGZPT2LY
This resource is classified under
Migration/Immigration/Immigrants
Integration/Acculturation
Social Problems

redpajama_set_name: RedPajamaCommonCrawl


How can I change my password or login ID?
The Change Password form can be found on any Online Banking page in Preferences, under the Security section.
May I create nicknames for my accounts?
Yes. Creating customized account names can help streamline your Online Banking experience.
May I change the arrangement of my accounts?
Yes. You will be able to arrange your accounts in the order that works best for you.
Yes. Just click the magnifying glass icon beside any check listed in your account History.
From any Online Banking page, choose Delivery under the Preferences section.
How many of my eStatements are available?
You can view up to the last 24 statements (24 months for monthly cycle, 24 weeks for weekly cycle or 24 days for daily cycles).
Why do I need to authenticate my computer?
Computer authentication happens the second time you log in to Online Banking. It's an added layer of security to help us verify that it is you (not an unauthorized person) trying to access your accounts. If you use the same browser to access Online Banking on your personal computer, you should only need to do this once.
How do I authenticate my computer?
The second time you log in under the new system, you'll go through the Authentication Process. Log in with your username and newly updated password. You will then be directed to request a Secure Access Code. To do this, first choose from a list of contact methods we have on file for you (e.g. your home or mobile phone number). We'll use this information to send you an automated or text message containing a one-time use code. Enter this code in the on-screen field, then click Submit.
Finally, you'll be prompted to activate your browser. If you are at a private computer you use regularly to access Online Banking, select 'Activate this computer for later use'. If you are at a public computer, select 'One Time Access'. Finish by clicking Submit.
Step-by-step instructions with illustrations are available on our website.
Have questions? Call 877.280.1851 for assistance.


My brief video describes what it took for the two teams to make it to this Sunday's Super Bowl–and tells how using those same approaches we can move from our "regular season" to the Career Super Bowl.
Contact me today to learn how my coaching, consulting, and keynote speeches will boost your sales, management, leadership, presentation skills, teamwork–and profits!
First visit my Web site, where you can subscribe to my online newsletter, "Winning Words and Ways," and also review my services.
Hire the Right Coach–Have Your Best Year Ever!
Want to have the best year you have ever experienced, both in business and your personal life?
Of course you do! Then hire the right coach. In this video, hear my listing of the qualifications the right coach will have.
Note that I have benefited from coaching many times myself, knowing that the right coach would improve my speaking, writing, marketing, video production, golf, and acting.
Call me today to determine whether I am the right coach for you. Remember, distance from my home office presents no problem. I will coach you by phone, Skype, or Zoom.
25 Ways to Control Your Stage Fright–and Become a Highly Confident Speaker!


text:
FAMILY POLICY INSTITUTEof Washington
Core Behaviors
Our Endorsements
The Hub Bill Tracker
Christian Social Justice
Olympia 101
Church Liaison
Legislative Liaison Network
Smart & Stupid Podcast
Why the Left Abandoned Religious Freedom
September 24, 2013 /0 Comments/in Religious Freedom /by FPIW Admin
In 1990, the Supreme Court's Employment Division v. Smith decision lowered the bar for religious freedom protections. Three years later, Congress responded by passing the Religious Freedom Restoration Act (RFRA) which restored the higher standard of religious freedom protections that existed prior to the Smith case.
The RFRA required the government to have a "compelling government interest" before doing anything that would restrict religious freedom.
This did not mean you could do anything in the name of religion, but it prevented the government from punishing an individual's religious expression simply because they didn't like it. It would not allow someone to beat their children as a matter of religious expression because the government has a compelling interest in the protection of children. But it would allow Native American's to use peyote in their religious ceremonies despite the fact that it is generally illegal. The compelling governmental interest in stopping the ceremonial use of peyote could not be demonstrated.
Significantly, when congress adopted this standard it wasn't even controversial. Everyone believed in religious liberty
The bill was sponsored by Chuck Schumer, still one of the most prominent leftists in Washington DC. It passed the House of Representatives unanimously and passed the Senate 97-3. President Clinton, who signed it into law, called the bill one of his greatest accomplishments as President.
A later Supreme Court decision said that the federal government could not force the states to abide by the standard in RFRA so 18 states have subsequently adopted their own state version.
However, when the Washington State Senate began a debate over RFRA-like language two weeks ago, it was apparent that it will be controversial.
Questions during the hearing indicated that the proposal will face significant, if not insurmountable opposition, in the legislature.
This begs the question, what exactly has changed since 1993 that makes a formerly uncontroversial proposal suddenly so controversial? If RFRA was supported by Ted Kennedy, Joe Biden, and John Kerry, why can't they support it today?
In 1993, the left still cared about individual rights.
They could still remember the 1970's when modern liberalism cut its teeth on the idea that it is better to allow people to be offensive (e.g., burn flags, be profane, create and distribute pornography) than to allow the government be the judge of what kind of speech or behavior was acceptable.
Freedom, they argued, is the right to do and say things other people disagree with.
While a belief in individual rights used to be the hallmark of liberalism, it has since been replaced by a commitment to amorphous concepts like "equality" and ending "discrimination". While they never define those terms in a way they could be held accountable for, what is obvious is that their pursuit of those values leaves no room for people to disagree. After all, how can we have a tolerant world if people are allowed to do things that are intolerant?
The new left wants government to officiate all of our interactions to make sure no one "discriminates".
This explains why, in 1993, Chuck Schumer was the prime sponsor of the RFRA, but in 2013, he is a vocal opponent of efforts that would allow the Catholic Church not to pay for contraception in violation of its beliefs.
It also explains why in 1993, the American Civil Liberties Union (ACLU), co-chaired the lobby committee that helped make RFRA federal law. However, in 2013, they filed a lawsuit against a florist in Washington State because they did not want to provide floral services for a same-sex "wedding". The ACLU now opposes RFRA language in Washington State specifically because it could allow business owners the freedom to make decisions consistent with their religious beliefs.
Going back even further to 1973, abortion advocates argued for an understanding of the right to privacy that would allow a woman to have an abortion. In 2013 they argue for the right to force other people to pay for their abortions and the right to demand professional services from people who are morally opposed to it.
They used to support people's right to buy a car. Now they argue for the right to hijack someone else's car and force the owner to take them where they need to go because they believe the destination is that important.
Of course the loss of individual freedom is only a regrettable and temporary means to an end. Once everyone agrees with them, individual rights won't be quite as dangerous as they are right now.
Still, the fact that they now value a "tolerant" world free of "discrimination" more than individual rights explains why previously uncontroversial concepts like religious freedom are now viewed so skeptically. Their value system has changed.
As a result, during the hearing in the Washington State Senate Law and Justice Committee two weeks ago, two State Senators expressed serious concern that such a bill would allow pharmacists not to sell abortion drugs or a florist not to provide floral services for a same-sex "wedding".
Some legislators now believe it is their job to make sure businesses owners are not free to do things they find intolerant.
In the process, those who support religious freedom protections are being characterized as people simply looking for a license to hate.
The problem with this position is that the same religious freedom protections being asked for today were once supported by less than rabid conservatives like Barbara Boxer, Dianne Feinstein, and Paul Wellstone.
The fact that religious freedom is now a controversial topic is not because prominent, new sects of dangerous, religious extremism have formed. To the contrary, religious freedom is now controversial because the voices in culture that have always said that not every impulse should be indulged are the enemy of their well-intentioned but entirely subjective concept of tolerance.
So in pursuit of a more tolerant world, they ironically seek to arm government with the power to decide which ideas are acceptable and which are not. That puts them in historically uncomfortable company where typically everyone's ox is gored.
We need not follow that path, but we'd be foolish to deny how close we are to it.
In the process of looking for religious freedom protections, we don't need to convince everyone to see the world like we do. What we are really doing is asking liberals to be liberals again.
To share your thoughts on religious freedom with your state legislators click here, or call the Legislative Hotline at 1.800.562.6000.
Tags: ACLU, religious freedom, Religious Freedom Restoration Act (RFRA)
https://www.fpiw.org/wp-content/uploads/2013/09/407f3a7c-aa5e-42a8-bf1d-0c5edcc82d27.jpg 200 200 FPIW Admin https://www.fpiw.org/wp-content/uploads/2017/01/lighthouse_web-180x180.png FPIW Admin2013-09-24 15:31:482014-11-14 15:49:31Why the Left Abandoned Religious Freedom
House Committee Debates Bringing Obamacare Mandates to Washington
President Trump Fulfills His Promise to Protect and Promote Religious Freedom
Several Missouri Senators Try to Kill Religious Freedom -- And Fail
Would the Johnson Amendment Have Stopped the War for Independence and Abolitionist Movement?
Missouri Counseling Student Dismissed for Christian Beliefs
Press Release: FPIW Applauds Supreme Court's Decision to Uphold Religious Freedom
Religious Freedom vs. Anti-Discrimination Laws
ACLU Says Christians Should Be Forced to Perform Abortions
Copyright © 2019 Family Policy Institute of Washington - 16108 Ash Way, Suite 113 Lynnwood, WA 98087 - (425) 608-0242
The Confusion of the Supreme Court It's Not Just Different, It's Better


text:
athletics, bryan lockley, fitness, florida, gym teacher, physical fitness, sports, training
Pushing the Boundaries of Propelling Deep Space Missions
March 31, 2015 Bryan Lockleyathletics, bryan lockley, fitness, florida, gym teacher, NASA, physical fitness, sports, training Leave a comment
Engineers at NASA's Glenn Research Center are advancing the propulsion system that will propel the first ever mission to redirect an asteroid for astronauts to explore in the 2020s. NASA's Asteroid Redirect Mission will test a number of new capabilities, like advanced Solar Electric Propulsion (SEP), needed for future astronaut expeditions into deep space, including to Mars.
The Hall thruster is part of an SEP system that uses 10 times less propellant than equivalent chemical rockets. In a recent test, engineers from Glenn and the Jet Propulsion Laboratory, using a Glenn vacuum chamber to simulate the space environment, successfully tested a new, higher power Hall thruster design, which is more efficient and has longer life. "We proved that this thruster can process three times the power of previous designs and increase efficiency by 50 percent," said Dan Herman, Electric Propulsion Subsystem lead.
Hall thrusters trap electrons in a magnetic field and use them to ionize the onboard propellant. The magnetic field also generates an electric field that accelerates the charged ions creating an exhaust plume of plasma that pushes the spacecraft forward. This method delivers cost-effective, safe and highly efficient in-space propulsion for long duration missions. In addition to propelling an asteroid mission, this new thruster could be used to send large amounts of cargo, habitats and other architectures in support of human missions to Mars.
Michelle M. Murphy (Wyle Information Systems, LLC) via NASA http://ift.tt/1Ex3GzH
Hubble Views a Galaxy on Edge
This NASA/ESA Hubble Space Telescope image shows an edge-on view of the spiral galaxy NGC 5023. Due to its orientation we cannot appreciate its spiral arms, but we can admire the elegant profile of its disk. The galaxy lies over 30 million light-years away from us.
NGC 5023 is part of the M51 group of galaxies. The brightest galaxy in this group is Messier 51, the Whirlpool Galaxy, which has been captured by Hubble many times. NGC 5023 is less fond of the limelight and seems rather unsociable in comparison — it is relatively isolated from the other galaxies in the group.
Astronomers are particularly interested in the vertical structure of disks like these. By analyzing the structure above and below the central plane of the galaxy they can make progress in understanding galaxy evolution. Astronomers are able to analyze the distribution of different types of stars within the galaxy and their properties, in particular how well evolved they are on the Hertzsprung–Russell Diagram — a scatter graph of stars that shows their evolution.
NGC 5023 is one of six edge-on spiral galaxies observed as part of a study using Hubble's Advanced Camera for Surveys. They study this vertical distribution and find a trend which suggests that heating of the disc plays an important role in producing the stars seen away from the plane of the galaxy.
In fact, NGC 5023 is pretty popular when it comes to astronomers, despite its unsociable behavior. The galaxy is also one of 14 disk galaxies that are part of the GHOSTS survey — a survey which uses Hubble data to study galaxy halos, outer disks and star clusters. It is the largest study to date of star populations in the outskirts of disk galaxies.
The incredible sharp sight of Hubble has allowed scientist to count more than 30,000 individual bright stars in this image. This is only a small fraction of the several billion stars that this galaxy contains, but the others are too faint to detect individually even with Hubble.
Credit: ESA/NASA via NASA http://ift.tt/1aaWXyO
athletics, bryan lockley, fitness, florida, gym teacher, NYT, physical fitness, sports, training
Rod Hundley, an Outsize Personality on and Off the Court, Dies at 80 by RICHARD GOLDSTEIN
March 28, 2015 Bryan Lockleyathletics, bryan lockley, fitness, florida, gym teacher, NYT, physical fitness, sports, training Leave a comment
By RICHARD GOLDSTEIN
Hundley, known as Hot Rod, parlayed showmanship on the court with flair at the microphone to become a fan favorite for more than half a century, including many years as a broadcaster for the N.B.A.'s Jazz.
Published: March 28, 2015 at 08:00PM
from NYT Sports http://ift.tt/1EeyogW
A Broadway Composer Takes a Night Off for Drag Queens by JACOB BERNSTEIN
By JACOB BERNSTEIN
Jeanine Tesori took a night away from her new show, "Fun Home," to judge an "American Idol"-style competition for drag queens.
from NYT Style http://ift.tt/1FTske9
Year in Space Begins With Soyuz Launch
Media photograph the Soyuz TMA-16M spacecraft as it launches to the International Space Station with Expedition 43 NASA astronaut Scott Kelly, Russian cosmonauts Mikhail Kornienko and Gennady Padalka of the Russian Federal Space Agency (Roscosmos) onboard at 3:42 p.m. EDT Friday, March 27, 2015 (March 28 Kazakh time) from the Baikonur Cosmodrome in Kazakhstan. As the one-year crew, Kelly and Kornienko will return to Earth on Soyuz TMA-18M in March 2016.
Image Credit: NASA/Bill Ingalls via NASA http://ift.tt/195nHzu
Boarding the Soyuz Spacecraft on Launch Day
Expedition 43 Russian cosmonaut Mikhail Kornienko of the Russian Federal Space Agency (Roscosmos), top, NASA astronaut Scott Kelly, center, and Russian cosmonaut Gennady Padalka of Roscosmos wave farewell as they board the Soyuz TMA-16M spacecraft ahead of their launch to the International Space Station, Friday, March 27, 2015 in Baikonur, Kazakhstan.
Kelly and Kornienko will spend a year in space and return to Earth on Soyuz TMA-18M in March 2016. Most expeditions to the space station last four to six months. By doubling the length of this mission, researchers hope to better understand how the human body reacts and adapts to long-duration spaceflight. This knowledge is critical as NASA looks toward human journeys deeper into the solar system, including to and from Mars, which could last 500 days or longer.
The Soyuz is set to lift off at 3:42 p.m. EDT, Friday, March 27 on a six-hour, four-orbit flight to the station.
Image Credit: NASA/Bill Ingalls via NASA http://ift.tt/1CUFllA
Soyuz Spacecraft Rolled Out For Launch of One Year Crew
The Soyuz TMA-16M spacecraft is seen after having rolled out by train to the launch pad at the Baikonur Cosmodrome, Kazakhstan, Wednesday, March 25, 2015. NASA astronaut Scott Kelly and Russian cosmonauts Mikhail Kornienko and Gennady Padalka of the Russian Federal Space Agency (Roscosmos) are scheduled to launch to the International Space Station in the Soyuz at 3:42 p.m. EDT, Friday, March 27 (March 28, Kazakh time). As the one-year crew, Kelly and Kornienko will return to Earth on the Soyuz TMA-18M in March 2016.
Most expeditions to the space station last four to six months. By doubling the length of this mission, researchers hope to better understand how the human body reacts and adapts to long-duration spaceflight. This knowledge is critical as NASA looks toward human journeys deeper into the solar system, including to and from Mars, which could last 500 days or longer.
More: A Year in Space
Image Credit: NASA/Bill Ingalls via NASA http://ift.tt/1BsTnGN
Expedition 43 Soyuz Rolls Out for Launch
The Soyuz TMA-16M spacecraft is rolled out by train to the launch pad at the Baikonur Cosmodrome, Kazakhstan, Wednesday, March 25, 2015. NASA Astronaut Scott Kelly, and Russian Cosmonauts Mikhail Kornienko, and Gennady Padalka of the Russian Federal Space Agency (Roscosmos) are scheduled to launch to the International Space Station in the Soyuz TMA-16M spacecraft from the Baikonur Cosmodrome in Kazakhstan March 28, Kazakh time (March 27 Eastern time.) As the one-year crew, Kelly and Kornienko will return to Earth on Soyuz TMA-18M in March 2016.
More information on one year crew.
Image Credit NASA/Bill Ingalls via NASA http://ift.tt/1LXiKL2
Baseball Careers Often Start With Winter Grunt Work by THE ASSOCIATED PRESS
Long before any of that major league money starts landing in their bank accounts, most players are in a similar predicament as everyone else in the regular workforce.
from NYT U.S. http://ift.tt/18Whiqn
Jemima Kirke's Workout Thwarts The Usual Fitness Trends by JEANINE CELESTE PANG
By JEANINE CELESTE PANG
The "Girls" actor let T into a personal training session at Brooklyn Strength, where she engages in a mix of Pilates and kettlebell work to get strong — not skinny.
from NYT false http://ift.tt/19NbRLh


Come vedrete ci sono molti siti tra cui scegliere, non è regole del texas hold'em necessario registrarsi per guadagnare soldi giocando online.Per questi servizi, la piattaforma di numeri vincenti del superenalotto 2017 gioco di che trattasi (e quindi non m che è solo un portale pubblicitario sugli eSport) trattiene una..
Confronta i numeri che hai giocato con i 5 numeri estratti nel concorso di bonus 18app come usarlo riferimento.Nel 1728 Benedetto xiii rinnovò la soppressione, 12 arrivando addirittura a minacciare la scomunica per chiunque vi avesse partecipato, ma tre anni dopo il gioco fu riammesso dal suo successore Clemente XII..
Reservations Lake of the gioco carte solitario online Woods, LOW Tourism February 20, 2018 "Anglers heading for the ice on Lake of the Woods this week should be optimistic.
After evaluation it appeared that a less restrictive regulation could be implemented while maintaining a healthy Walleye fishery.
The problem with that argument is that the Accelerated Walleye Stocking Program never actually accelerated anything.
Unless youre fishing on a lake that has plowed roads, travel by pickup truck is virtually impossible.Although the Toad was best, I was doing okay by experimenting and caught several fish using both a Red/Glow Tungsten Fat Boy and a Blue/Glow ultime estrazioni del lotto ruota di cagliari Tungsten Ice Worm.The protected slot should be just wide enough to protect a renewable resource, but narrow enough to allow ample opportunity for anglers to enjoy harvesting casino online españa tragamonedas some fish as well.Pay particular attention to the front set of rollers to be sure that they allow the boat to get a straight start onto the trailer, when they line up correctly, the entire boat will follow their alignment.A lease only game, never for sale to the casinos.Our fishing world has evolved with more technology and advanced equipment than (we) ever imagined.
Williams Batter Up dotmations Slot Machine: Batter Up baseball slot machine has a 192x64 dot matrix display (DMD) in addition to the three spinning reels.
Read Full Article Walleye Bag Limit Reduction 2008 Obviously, the effort failed in 2008, but that doesnt mean that folks arent still banging the drum.The guides had a big group out yesterday and put them on a good school of nice fish.Available in a 3 coin version.With Rays Marine world headquarters located only 3 minutes from my home, Ill be popping in and out every day of the show.Jeff Sundin Ice Fishing Report February 7, 2018 - "Lake of the Woods, Northwest Angle" Yesterday I teased you with a comment about heading out to the Walleye hole on our snowmobiles.There are no charts, no statistics, just whistle three times as you roll through the train crossing and it's all over.
We do have more than a few lakes that could never be harmed by testing the concept.


text:
'Marvel 101' Explainer Dives Into Infinity Gauntlet & Infinity Stones
blame it on JES7 April 29, 2017
If you're a casual comic book reader who enjoys Marvel's cinematic world building, but are confused with the MCU's maguffins: the Infinity Stones (or gems, as they're known in the comics), then Marvel Entertainment's explainer videos for both the stones and the Infinity Gauntlet will help catch you up to speed.
While the cinematic introduction of Tony Stark/Iron Man in 2008, and it's succeeding films The Incredible Hulk, Thor and Captain America: The First Avenger may have been building toward 2012's The Avengers, make no mistake: the high stakes and drama that Earth's Mightiest Heroes faced over the course of nearly a decade have been shaping the events that will be finally explored in 2018's Avengers: Infinity War.
Although not many details have been revealed for the upcoming, world-changing event, it is known that the real big bad of the MCU's three phases, Thanos, will set out on a quest to track down every Infinity Stone before wielding them all in the Infinity Gauntlet, granting the giant, purple-hued alien absolute power to rule over the entire universe and the ability to manipulate time, space and reality while gaining mastery over the mind and soul.
So far, five of the six stones have appeared throughout eight films: the Tesseract (space stone) in Captain America: The First Avenger, Thor and The Avengers, the Aether (reality stone) in Thor: The Dark World, the Orb (power stone) in Guardians of the Galaxy, the Eye of Agamotto (time stone) in Doctor Strange and the Chitauri scepter (mind stone) in both Captain America: The Winter Soldier and Avengers: Age of Ultron, leaving only the soul stone left.
Educate yourself on the capabilities of each stone in the explainer video above, and what may happen when The Mad Titan finally collects all six stones into the gauntlet below—and watch the latest trailers for Guardians of the Galaxy vol. 2, Spider-Man: Homecoming and Thor: Ragnarok out this year.
'Marvel 101' Explainer Dives Into Infinity Gauntlet & Infinity Stones was last modified: March 31st, 2018 by JES7
Tags:marvel, movies, thanos, the avengers
Stream Roga Raph's 'Nostalgiks' LP
Saturday Night Sexy: Lovely Nicocoa


Through its exciting new apprenticeship programme, DPN aims to provide Cornish companies with new talent and skills that will help their business to develop their online activities, whilst offering young people a fantastic career opportunity.
If you are an employer and are interested in taking on a new recruit, or training an existing staff member, to help develop your online marketing and sales, call us now on 01736 333700 and ask to speak to one of our training advisors to register your interest and find out more details about the scheme.
16-19 year old or young people not in employment, education or training (NEET) who are willing to find a vocation and start a career in a fast growing, rewarding sector.
Employed staff who would add value to their employer's business by improving their digital skills.
If you belong to one of these categories please get in touch with us as we may be able to get you on one of our apprenticeship programmes, FREE of charge, and what's more, earning a wage!
We are currently recruiting for a Digital Marketing assistant, Further details available here.


text:
Q: Creating an list of dictionaries that hold a variable sized array I'm trying to create the following data structure (that's not optimal, I know, but is necessary given my input data):
A list of 100 dictionaries with the same two keys, "x" and "y", where each key holds a variable length numpy array. "y" holds a vector and "x" holds an array of images, so an example shape for x could be 10 x 3 x 10 x 50, or, 10 RGB images of size 10 by 50. An example shape for the corresponding y would be 10, because the initial lengths of the x and y need to be the same. If I have only 8 images, then the length of y is also 8, etc.
I want to preinitialize this structure so I can fill it in with changed data values, and do it so that I can set the size of the variable length "x" and "y" arrays for each dictionary based on a separate piece of input data. I know that I can set the dictionary with something like this:
imageArray = np.zeros(10,3,10,50)

vectorNumbers = np.zeros(10)

output = [{'x':imageArray,'y':vectorNumbers}]

So that should create a single dictionary, but if I have something like an array with the lengths of the dictionary values "x" and "y", how can I use something like this:
 output = [{'x':imageArray,'y':vectorNumbers} for k in range(listLength)]

But ensure that the imageArray length would be [variable,3,10,50] and the vectorNumbers length would be [variable], where variable is the number stored in another list that I can access thanks to the k counter above.

A: I assume the input list of lengths is a list of pairs, or something similar.
input_lengths = [(12,17), (8,50), (2,7)]
pre_filled_list = [{'x' : [None]*x, 'y' : [None]*y} for x,y in input_lengths]
print(pre_filled_list)

Pre_filled list is a list of dictionaries, each with two keys; each value is a list of None of the desired length.

A: What about:
import numpy as np

dims = [(42,43), (46,9), (47,49), (60,14)]
output = [{'x':np.zeros((x,3,10,50)), 'y':np.zeros((y,))} for (x,y) in dims]

print(len(output))              # 4, matches len(dims)

print(type(output[0]['x']))     # <type 'numpy.ndarray'>
print(type(output[0]['y']))     # <type 'numpy.ndarray'>

print(output[0]['x'].shape)     # (42, 3, 10, 50)
                                #  42 is from the first element of the first tuple in dims
print(output[0]['y'].shape)     # (43,)
                                #  43 is from the second element of the first tuple in dims

print(output[1]['x'].shape)     # (46, 3, 10, 50)
print(output[1]['y'].shape)     # (9,)

The arrays are in the dictionaries, which are in the list.  All zeros of the dimensions (I think) you want.
If you want something closer to what you had, with range(listLength), these four lines produce the same output as above:
xd = [42, 46, 47, 60]
yd = [43,  9, 49, 14]
listLength = 4

output=[{'x':np.zeros((xd[k],3,10,50)),'y':np.zeros((yd[k],))} for k in range(listLength)]

redpajama_set_name: RedPajamaStackExchange


text:
24 ur Spaja je vsakoletna vzdržljivostna avtomobilistična dirka, ki s presledki poteka od leta 1924 v belgijskem mestu Spa in je bila v letih 1953 in 1981 del Svetovnega prvenstva športnih dirkalnikov.

14 km dirkališče

7 km dirkališče

Glej tudi
 1000 km Spaja

Zunanje povezave

Avtomobilistične dirke
Svetovno prvenstvo športnih dirkalnikov
Športne prireditve v Belgiji
Športne prireditve, ustanovljene leta 1924

redpajama_set_name: RedPajamaWikipedia


Our Franchise Distribution team work with worldwide product brands covering Power Switching, Interconnection, Mechanical Switching, Opto Electronics and Cooling Components.
Our product management team support engineers looking to "design in" our components into new product applications or commercial staff looking for alternatives parts to cost reduce in existing designs or solve market driven component supply issues.
Both Original Equipment manufacturers and Contract Electronics manufacturers can save valuable resources by outsourcing their electronic component purchasing requirements to a third party component kitting company such as Diamond Electronics Ltd.
Kitting can be an effective solution to manage a company's entire component requirements or it can be used strategically to manage difficult projects which tie up unreasonable amounts of resources.
Whatever stage of development your electronic design project has reached our Project Management team can support you to turn even your basic concepts into a production product.
If you need specialist design support or a reliable production partner our network of worldwide partners will be able to provide a solution to the most challenging of requirements.


text:
//===-- PTXAsmPrinter.cpp - PTX LLVM assembly writer ----------------------===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// This file contains a printer that converts from our internal representation
// of machine-dependent LLVM code to PTX assembly language.
//
//===----------------------------------------------------------------------===//

#define DEBUG_TYPE "ptx-asm-printer"

#include "PTXAsmPrinter.h"
#include "PTX.h"
#include "PTXMachineFunctionInfo.h"
#include "PTXParamManager.h"
#include "PTXRegisterInfo.h"
#include "PTXTargetMachine.h"
#include "llvm/Argument.h"
#include "llvm/DerivedTypes.h"
#include "llvm/Function.h"
#include "llvm/Module.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/Twine.h"
#include "llvm/Analysis/DebugInfo.h"
#include "llvm/CodeGen/AsmPrinter.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCInst.h"
#include "llvm/MC/MCStreamer.h"
#include "llvm/MC/MCSymbol.h"
#include "llvm/Target/Mangler.h"
#include "llvm/Target/TargetLoweringObjectFile.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/TargetRegistry.h"
#include "llvm/Support/raw_ostream.h"

using namespace llvm;

static const char PARAM_PREFIX[] = "__param_";
static const char RETURN_PREFIX[] = "__ret_";

static const char *getRegisterTypeName(unsigned RegType) {
  switch (RegType) {
  default:
    llvm_unreachable("Unknown register type");
  case PTXRegisterType::Pred:
    return ".pred";
  case PTXRegisterType::B16:
    return ".b16";
  case PTXRegisterType::B32:
    return ".b32";
  case PTXRegisterType::B64:
    return ".b64";
  case PTXRegisterType::F32:
    return ".f32";
  case PTXRegisterType::F64:
    return ".f64";
  }
}

static const char *getStateSpaceName(unsigned addressSpace) {
  switch (addressSpace) {
  default: llvm_unreachable("Unknown state space");
  case PTXStateSpace::Global:    return "global";
  case PTXStateSpace::Constant:  return "const";
  case PTXStateSpace::Local:     return "local";
  case PTXStateSpace::Parameter: return "param";
  case PTXStateSpace::Shared:    return "shared";
  }
}

static const char *getTypeName(Type* type) {
  while (true) {
    switch (type->getTypeID()) {
      default: llvm_unreachable("Unknown type");
      case Type::FloatTyID: return ".f32";
      case Type::DoubleTyID: return ".f64";
      case Type::IntegerTyID:
        switch (type->getPrimitiveSizeInBits()) {
          default: llvm_unreachable("Unknown integer bit-width");
          case 16: return ".u16";
          case 32: return ".u32";
          case 64: return ".u64";
        }
      case Type::ArrayTyID:
      case Type::PointerTyID:
        type = dyn_cast<SequentialType>(type)->getElementType();
        break;
    }
  }
  return NULL;
}

bool PTXAsmPrinter::doFinalization(Module &M) {
  // XXX Temproarily remove global variables so that doFinalization() will not
  // emit them again (global variables are emitted at beginning).

  Module::GlobalListType &global_list = M.getGlobalList();
  int i, n = global_list.size();
  GlobalVariable **gv_array = new GlobalVariable* [n];

  // first, back-up GlobalVariable in gv_array
  i = 0;
  for (Module::global_iterator I = global_list.begin(), E = global_list.end();
       I != E; ++I)
    gv_array[i++] = &*I;

  // second, empty global_list
  while (!global_list.empty())
    global_list.remove(global_list.begin());

  // call doFinalization
  bool ret = AsmPrinter::doFinalization(M);

  // now we restore global variables
  for (i = 0; i < n; i ++)
    global_list.insert(global_list.end(), gv_array[i]);

  delete[] gv_array;
  return ret;
}

void PTXAsmPrinter::EmitStartOfAsmFile(Module &M)
{
  const PTXSubtarget& ST = TM.getSubtarget<PTXSubtarget>();

  // Emit the PTX .version and .target attributes
  OutStreamer.EmitRawText(Twine("\t.version ") + ST.getPTXVersionString());
  OutStreamer.EmitRawText(Twine("\t.target ") + ST.getTargetString() +
                                (ST.supportsDouble() ? ""
                                                     : ", map_f64_to_f32"));
  // .address_size directive is optional, but it must immediately follow
  // the .target directive if present within a module
  if (ST.supportsPTX23()) {
    const char *addrSize = ST.is64Bit() ? "64" : "32";
    OutStreamer.EmitRawText(Twine("\t.address_size ") + addrSize);
  }

  OutStreamer.AddBlankLine();

  // Define any .file directives
  DebugInfoFinder DbgFinder;
  DbgFinder.processModule(M);

  for (DebugInfoFinder::iterator I = DbgFinder.compile_unit_begin(),
       E = DbgFinder.compile_unit_end(); I != E; ++I) {
    DICompileUnit DIUnit(*I);
    StringRef FN = DIUnit.getFilename();
    StringRef Dir = DIUnit.getDirectory();
    GetOrCreateSourceID(FN, Dir);
  }

  OutStreamer.AddBlankLine();

  // declare external functions
  for (Module::const_iterator i = M.begin(), e = M.end();
       i != e; ++i)
    EmitFunctionDeclaration(i);

  // declare global variables
  for (Module::const_global_iterator i = M.global_begin(), e = M.global_end();
       i != e; ++i)
    EmitVariableDeclaration(i);
}

void PTXAsmPrinter::EmitFunctionBodyStart() {
  OutStreamer.EmitRawText(Twine("{"));

  const PTXMachineFunctionInfo *MFI = MF->getInfo<PTXMachineFunctionInfo>();
  const PTXParamManager &PM = MFI->getParamManager();

  // Print register definitions
  SmallString<128> regDefs;
  raw_svector_ostream os(regDefs);
  unsigned numRegs;

  // pred
  numRegs = MFI->countRegisters(PTXRegisterType::Pred, PTXRegisterSpace::Reg);
  if(numRegs > 0)
    os << "\t.reg .pred %p<" << numRegs << ">;\n";

  // i16
  numRegs = MFI->countRegisters(PTXRegisterType::B16, PTXRegisterSpace::Reg);
  if(numRegs > 0)
    os << "\t.reg .b16 %rh<" << numRegs << ">;\n";

  // i32
  numRegs = MFI->countRegisters(PTXRegisterType::B32, PTXRegisterSpace::Reg);
  if(numRegs > 0)
    os << "\t.reg .b32 %r<" << numRegs << ">;\n";

  // i64
  numRegs = MFI->countRegisters(PTXRegisterType::B64, PTXRegisterSpace::Reg);
  if(numRegs > 0)
    os << "\t.reg .b64 %rd<" << numRegs << ">;\n";

  // f32
  numRegs = MFI->countRegisters(PTXRegisterType::F32, PTXRegisterSpace::Reg);
  if(numRegs > 0)
    os << "\t.reg .f32 %f<" << numRegs << ">;\n";

  // f64
  numRegs = MFI->countRegisters(PTXRegisterType::F64, PTXRegisterSpace::Reg);
  if(numRegs > 0)
    os << "\t.reg .f64 %fd<" << numRegs << ">;\n";

  // Local params
  for (PTXParamManager::param_iterator i = PM.local_begin(), e = PM.local_end();
       i != e; ++i)
    os << "\t.param .b" << PM.getParamSize(*i) << ' ' << PM.getParamName(*i)
       << ";\n";

  OutStreamer.EmitRawText(os.str());

  const MachineFrameInfo* FrameInfo = MF->getFrameInfo();
  DEBUG(dbgs() << "Have " << FrameInfo->getNumObjects()
               << " frame object(s)\n");
  for (unsigned i = 0, e = FrameInfo->getNumObjects(); i != e; ++i) {
    DEBUG(dbgs() << "Size of object: " << FrameInfo->getObjectSize(i) << "\n");
    if (FrameInfo->getObjectSize(i) > 0) {
      OutStreamer.EmitRawText("\t.local .align " +
                              Twine(FrameInfo->getObjectAlignment(i)) +
                              " .b8 __local" +
                              Twine(i) +
                              "[" +
                              Twine(FrameInfo->getObjectSize(i)) +
                              "];");
    }
  }

  //unsigned Index = 1;
  // Print parameter passing params
  //for (PTXMachineFunctionInfo::param_iterator
  //     i = MFI->paramBegin(), e = MFI->paramEnd(); i != e; ++i) {
  //  std::string def = "\t.param .b";
  //  def += utostr(*i);
  //  def += " __ret_";
  //  def += utostr(Index);
  //  Index++;
  //  def += ";";
  //  OutStreamer.EmitRawText(Twine(def));
  //}
}

void PTXAsmPrinter::EmitFunctionBodyEnd() {
  OutStreamer.EmitRawText(Twine("}"));
}

void PTXAsmPrinter::EmitInstruction(const MachineInstr *MI) {
  MCInst TmpInst;
  LowerPTXMachineInstrToMCInst(MI, TmpInst, *this);
  OutStreamer.EmitInstruction(TmpInst);
}

void PTXAsmPrinter::EmitVariableDeclaration(const GlobalVariable *gv) {
  // Check to see if this is a special global used by LLVM, if so, emit it.
  if (EmitSpecialLLVMGlobal(gv))
    return;

  MCSymbol *gvsym = Mang->getSymbol(gv);

  assert(gvsym->isUndefined() && "Cannot define a symbol twice!");

  SmallString<128> decl;
  raw_svector_ostream os(decl);

  // check if it is defined in some other translation unit
  if (gv->isDeclaration())
    os << ".extern ";

  // state space: e.g., .global
  os << '.' << getStateSpaceName(gv->getType()->getAddressSpace()) << ' ';

  // alignment (optional)
  unsigned alignment = gv->getAlignment();
  if (alignment != 0)
    os << ".align " << gv->getAlignment() << ' ';

  if (PointerType::classof(gv->getType())) {
    PointerType* pointerTy = dyn_cast<PointerType>(gv->getType());
    Type* elementTy = pointerTy->getElementType();

    if (elementTy->isArrayTy()) {
      assert(elementTy->isArrayTy() && "Only pointers to arrays are supported");

      ArrayType* arrayTy = dyn_cast<ArrayType>(elementTy);
      elementTy = arrayTy->getElementType();

      unsigned numElements = arrayTy->getNumElements();

      while (elementTy->isArrayTy()) {
        arrayTy = dyn_cast<ArrayType>(elementTy);
        elementTy = arrayTy->getElementType();

        numElements *= arrayTy->getNumElements();
      }

      // FIXME: isPrimitiveType() == false for i16?
      assert(elementTy->isSingleValueType() &&
             "Non-primitive types are not handled");

      // Find the size of the element in bits
      unsigned elementSize = elementTy->getPrimitiveSizeInBits();

      os << ".b" << elementSize << ' ' << gvsym->getName()
         << '[' << numElements << ']';
    } else {
      os << ".b8" << gvsym->getName() << "[]";
    }

    // handle string constants (assume ConstantArray means string)
    if (gv->hasInitializer()) {
      const Constant *C = gv->getInitializer();
      if (const ConstantArray *CA = dyn_cast<ConstantArray>(C)) {
        os << " = {";

        for (unsigned i = 0, e = C->getNumOperands(); i != e; ++i) {
          if (i > 0)
            os << ',';

          os << "0x";
          os.write_hex(cast<ConstantInt>(CA->getOperand(i))->getZExtValue());
        }

        os << '}';
      }
    }
  } else {
    // Note: this is currently the fall-through case and most likely generates
    //       incorrect code.
    os << getTypeName(gv->getType()) << ' ' << gvsym->getName();

    if (isa<ArrayType>(gv->getType()) || isa<PointerType>(gv->getType()))
      os << "[]";
  }

  os << ';';

  OutStreamer.EmitRawText(os.str());
  OutStreamer.AddBlankLine();
}

void PTXAsmPrinter::EmitFunctionEntryLabel() {
  // The function label could have already been emitted if two symbols end up
  // conflicting due to asm renaming.  Detect this and emit an error.
  if (!CurrentFnSym->isUndefined())
    report_fatal_error("'" + Twine(CurrentFnSym->getName()) +
                       "' label emitted multiple times to assembly file");

  const PTXMachineFunctionInfo *MFI = MF->getInfo<PTXMachineFunctionInfo>();
  const PTXParamManager &PM = MFI->getParamManager();
  const bool isKernel = MFI->isKernel();
  const PTXSubtarget& ST = TM.getSubtarget<PTXSubtarget>();

  SmallString<128> decl;
  raw_svector_ostream os(decl);
  os << (isKernel ? ".entry" : ".func");

  if (!isKernel) {
    os << " (";
    if (ST.useParamSpaceForDeviceArgs()) {
      for (PTXParamManager::param_iterator i = PM.ret_begin(), e = PM.ret_end(),
           b = i; i != e; ++i) {
        if (i != b)
          os << ", ";

        os << ".param .b" << PM.getParamSize(*i) << ' ' << PM.getParamName(*i);
      }
    } else {
      for (PTXMachineFunctionInfo::reg_iterator
           i = MFI->retreg_begin(), e = MFI->retreg_end(), b = i;
           i != e; ++i) {
        if (i != b)
          os << ", ";

        os << ".reg " << getRegisterTypeName(MFI->getRegisterType(*i)) << ' '
           << MFI->getRegisterName(*i);
      }
    }
    os << ')';
  }

  // Print function name
  os << ' ' << CurrentFnSym->getName() << " (";

  const Function *F = MF->getFunction();

  // Print parameters
  if (isKernel || ST.useParamSpaceForDeviceArgs()) {
    /*for (PTXParamManager::param_iterator i = PM.arg_begin(), e = PM.arg_end(),
         b = i; i != e; ++i) {
      if (i != b)
        os << ", ";

      os << ".param .b" << PM.getParamSize(*i) << ' ' << PM.getParamName(*i);
    }*/
    int Counter = 1;
    for (Function::const_arg_iterator i = F->arg_begin(), e = F->arg_end(),
         b = i; i != e; ++i) {
      if (i != b)
        os << ", ";
      const Type *ArgType = (*i).getType();
      os << ".param .b";
      if (ArgType->isPointerTy()) {
        if (ST.is64Bit())
          os << "64";
        else
          os << "32";
      } else {
        os << ArgType->getPrimitiveSizeInBits();
      }
      if (ArgType->isPointerTy() && ST.emitPtrAttribute()) {
        const PointerType *PtrType = dyn_cast<const PointerType>(ArgType);
        os << " .ptr";
        switch (PtrType->getAddressSpace()) {
        default:
          llvm_unreachable("Unknown address space in argument");
        case PTXStateSpace::Global:
          os << " .global";
          break;
        case PTXStateSpace::Shared:
          os << " .shared";
          break;
        }
      }
      os << " __param_" << Counter++;
    }
  } else {
    for (PTXMachineFunctionInfo::reg_iterator
         i = MFI->argreg_begin(), e = MFI->argreg_end(), b = i;
         i != e; ++i) {
      if (i != b)
        os << ", ";

      os << ".reg " << getRegisterTypeName(MFI->getRegisterType(*i)) << ' '
         << MFI->getRegisterName(*i);
    }
  }
  os << ')';

  OutStreamer.EmitRawText(os.str());
}

void PTXAsmPrinter::EmitFunctionDeclaration(const Function* func)
{
  const PTXSubtarget& ST = TM.getSubtarget<PTXSubtarget>();

  std::string decl = "";

  // hard-coded emission of extern vprintf function

  if (func->getName() == "printf" || func->getName() == "puts") {
    decl += ".extern .func (.param .b32 __param_1) vprintf (.param .b";
    if (ST.is64Bit())
      decl += "64";
    else
      decl += "32";
    decl += " __param_2, .param .b";
    if (ST.is64Bit())
      decl += "64";
    else
      decl += "32";
    decl += " __param_3)\n";
  }

  OutStreamer.EmitRawText(Twine(decl));
}

unsigned PTXAsmPrinter::GetOrCreateSourceID(StringRef FileName,
                                            StringRef DirName) {
  // If FE did not provide a file name, then assume stdin.
  if (FileName.empty())
    return GetOrCreateSourceID("<stdin>", StringRef());

  // MCStream expects full path name as filename.
  if (!DirName.empty() && !sys::path::is_absolute(FileName)) {
    SmallString<128> FullPathName = DirName;
    sys::path::append(FullPathName, FileName);
    // Here FullPathName will be copied into StringMap by GetOrCreateSourceID.
    return GetOrCreateSourceID(StringRef(FullPathName), StringRef());
  }

  StringMapEntry<unsigned> &Entry = SourceIdMap.GetOrCreateValue(FileName);
  if (Entry.getValue())
    return Entry.getValue();

  unsigned SrcId = SourceIdMap.size();
  Entry.setValue(SrcId);

  // Print out a .file directive to specify files for .loc directives.
  OutStreamer.EmitDwarfFileDirective(SrcId, "", Entry.getKey());

  return SrcId;
}

MCOperand PTXAsmPrinter::GetSymbolRef(const MachineOperand &MO,
                                      const MCSymbol *Symbol) {
  const MCExpr *Expr;
  Expr = MCSymbolRefExpr::Create(Symbol, MCSymbolRefExpr::VK_None, OutContext);
  return MCOperand::CreateExpr(Expr);
}

MCOperand PTXAsmPrinter::lowerOperand(const MachineOperand &MO) {
  MCOperand MCOp;
  const PTXMachineFunctionInfo *MFI = MF->getInfo<PTXMachineFunctionInfo>();
  unsigned EncodedReg;
  switch (MO.getType()) {
  default:
    llvm_unreachable("Unknown operand type");
  case MachineOperand::MO_Register:
    if (MO.getReg() > 0) {
      // Encode the register
      EncodedReg = MFI->getEncodedRegister(MO.getReg());
    } else {
      EncodedReg = 0;
    }
    MCOp = MCOperand::CreateReg(EncodedReg);
    break;
  case MachineOperand::MO_Immediate:
    MCOp = MCOperand::CreateImm(MO.getImm());
    break;
  case MachineOperand::MO_MachineBasicBlock:
    MCOp = MCOperand::CreateExpr(MCSymbolRefExpr::Create(
                                 MO.getMBB()->getSymbol(), OutContext));
    break;
  case MachineOperand::MO_GlobalAddress:
    MCOp = GetSymbolRef(MO, Mang->getSymbol(MO.getGlobal()));
    break;
  case MachineOperand::MO_ExternalSymbol:
    MCOp = GetSymbolRef(MO, GetExternalSymbolSymbol(MO.getSymbolName()));
    break;
  case MachineOperand::MO_FPImmediate:
    APFloat Val = MO.getFPImm()->getValueAPF();
    bool ignored;
    Val.convert(APFloat::IEEEdouble, APFloat::rmTowardZero, &ignored);
    MCOp = MCOperand::CreateFPImm(Val.convertToDouble());
    break;
  }

  return MCOp;
}

// Force static initialization.
extern "C" void LLVMInitializePTXAsmPrinter() {
  RegisterAsmPrinter<PTXAsmPrinter> X(ThePTX32Target);
  RegisterAsmPrinter<PTXAsmPrinter> Y(ThePTX64Target);
}

redpajama_set_name: RedPajamaGithub


Ever since the City of Detroit started shutting off water to low-income residents last summer in what United Nations investigators denounced as a human rights violation, city officials have maintained that they are simply responding to Detroiters' failure to pay their bills.
Now it's looking like that's not the case.
The independent investigative outlet Motor City Muckraker recently revealed that the city had shut off water to residents with up-to-date bills, including a Detroit Free Press editor. When called on it, the Detroit Water and Sewerage Department (DWSD) told Muckraker that a clerical error resulted in 11 such shutoffs.
But that story didn't hold up, either. In a follow-up Facebook post, Motor City Muckraker charged that DWSD and Mayor Duggan "lied to us" about the mistaken shutoffs and apologized for passing on misinformation, saying that "the numbers are much higher than the administration wanted the public to believe," and promising another story.
The truth is that Detroit's officials don't know exactly whose water they're shutting off – and the economic elites pulling the strings don't care. It's worth remembering that at the height of the recession, the major banks engaged in millions of wrongful foreclosures, committing fraud and breaching their own contracts in their frenzy to seize people's homes. This period witnessed the most "wealth destruction of people of color … in American history," according to the AFL-CIO's special counsel. Not coincidentally, it has also seen record corporate profits.
Unpaid bills aren't the problem – they're the pretext. For Gov. Snyder and his corporate allies in the business community, Detroit's neighborhoods are more profitable with the current residents gone. Policies like the water shutoffs and mass tax foreclosures will effectively make life unlivable in certain areas of the city, driving out long-time residents and clearing the way for more "development" and its attendant influx of young white professionals. It's urban colonization, pure and simple.
And it's not just a Detroit problem. Twenty-five thousand households in Baltimore will have their water cut off this week in a similar attack on low-income people, according to Think Progress. But until progressive activists grapple with the financial considerations underlining these battles over water rights, they will remain on the defensive.


This card is really creepy. The LWB says these are both corpses.
(its already a corpse she cant kill it) so she could have the new baby.
sinks in the background. The baby at first looks like he wants him mommy to pick him up. His mouth is open like hes saying "mommy mommy."
So its a creepy way of saying that there are cycles. The spring brings new growth and winter things go dormant and then a new cycle starts over and over. Its hard to see what season it is because the landscape is so bleak.
The factorys are there still poluting what is left of the world.
Yeah, I think this is one of the neatest Death cards around! A pregnant death, and her child. It looks like the kid wants to go back in, but the other is soon on it's way. Like when My father died and my daughter was born, I felt pushed up the ladder of life, I took a new spot. I could do nothing about it, I had a new position in life due to death and birth. I think that is the ultimate CHANGE in life. Outstanding!
I can agree with these observations. Creepy- yeah, I accept that, in the way death is unavoidably disturbing. Neat- absolutely. An instantly unforgettable image. Ranks up there, for me, with the Harris Thoth Death card. I like that it observes the convention of the unnamed card. It's just something I like when the odd deck does that.
Reminds me a little bit of the tall, shrieking, horse-skulled creatures in Time Bandits. Horse skulls (or so I take it to be) are very evocative, aren't they? This one has long carnivore canines, however. And the baby has a fearsome array of sharp teeth.
Disturbing means to 'agitate', 'trouble', 'disquiet', 'unsettle', 'perplex'. This image does all of those things, certainly.
Something very ruthless in the way it treads down on it's own offspring.
A card that will raise the hairs on the back of the necks of novice clients.
Just as a FYI - I've changed the title to XIII since this card isn't actually labelled 'Death' in this deck.
This is one of the first cards I look at when I get a new deck. If I'm ordering online I like to see a scan of it first. I saw this card online first & was suitably ill-at-ease. When the deck arrived I was knocked for six by card number 13. That is the most disturbing card I have ever seen. And one that speaks volumes to me. I won't be forgetting it in a hurry.
I love this card and completely agree. I know what this card is when I see it. This card will always be Trump XIII when I talk about it with clients or in posts!
Thanks for renaming the thread. I hope no ones feelings were hurt but I think this is again part of the decks charm.
My first thought that came to me was of the show Equuis because of the horse type skulls on these guys. It's one of the cards that made me stop and stare. If we look at the world around them with the factory we can see that those are the things we need to change. In a dark tone one can say that the mother is stepping on her one child, the one almost begging to get a back in the womb, the one that didn't turn out right, to be re-baptized in the waters and give birth to the new child of change.
With death comes rebirth. A child wants to re-enter the womb, but is held back by the child already occupying it, pushed away by circumstances that cannot be altered or controlled. The existing cycles into the non-existent and is quickly replaced. It's a jarring image, and an equally jarring concept I think, but something about the image seems oddly natural to me. When I look at the image, I realize that this isn't such a rare occurrence in the animal world, that the young are often cast out when a new "child" is born, and that it's simply a part of this cycle that we call life.
This card speaks to me and seems to say that no matter how painful or uncomfortable Death is, it's something that cannot be escaped.
I know the lwb says the child wants to re-enter the womb but that isn't how I see it.
He looks excited to me. Like he knows he's to have a new baby brother or sister very soon and he can't wait to have someone to play with. It looks like the mother is raising her leg so he can get a peek! Isn't that a disturbing thought! Like the baby's crowning and he wants to help get it out.
It is very strange to see a pregnant Death.


text:
Gathering, Destineer announce new Close Combat games
Macworld MAR 31, 2004 4:00 pm PST
Take-Two Interactive label Gathering and Destineer, parent company of MacSoft, have announced plans to publish two new installments of the popular Close Combat series. This marks the return of the Close Combat franchise to the Macintosh as well as the first original game developed by Destineer. Both games are being simultaneously developed for Mac and Windows.
Close Combat: First to Fight will be the first game out of the gate when it bows late in 2004. It's a team-based first person shooter created under the direction of the U.S. Marines. Another game is also in development: Close Combat: Red Phoenix. It's a real-time strategy game that is loosely based on Larry Bond's novel Red Phoenix, and it's expected to be released in early 2005.
Atomic Games' Close Combat series began in the mid-90s. They were originally strategy games set in the World War II era that were available for both Macs and PCs. The original game spawned a sequel, Close Combat: A Bridge Too Far, but successive installments of the franchise were not available for the Mac.
Destineer is the game development and publishing company founded by ex-Bungie executive Peter Tamte in 2001. Destineer first published Macintosh game conversions under its Bold label, and last year acquired MacSoft — the company Tamte founded prior to working at Bungie — from Atari. Destineer's plans for original title development have been public knowledge since the company was founded, but the group's specific plans for development have remained a mystery until now.
Destineer is heading up the development of First to Fight, based on original 3D engine technology they've developed in-house. Their game engine technology is also being used by Atomic, which is developing Red Phoenix. MacSoft has the Mac publishing rights to both games, and the company promises that the Mac and PC versions will ship on the same day.


text:
UEFA postpones Champions League talks as clubs, leagues row
by: ROB HARRIS, Associated Press
Posted: Aug 15, 2019 / 04:31 AM EDT / Updated: Aug 15, 2019 / 01:50 PM EDT
UEFA President Aleksander Ceferin and Ali Turganbekov, from Kazakhstan, right, hand the trophy to Liverpool's team captain Jordan Henderson after Liverpool won the UEFA Super Cup soccer match between Liverpool and Chelsea, in Besiktas Park, in Istanbul, Thursday, Aug. 15, 2019. Liverpool won 5-4 in a penalty shootout after the game ended tied 2-2. (AP Photo/Thanassis Stavrakis)
Changes to the Champions League are unlikely to be decided this year after UEFA on Thursday called off joint talks with the heads of European clubs and leagues who have spent months arguing over a potential radical overhaul of the formats of European competitions.
European Club Association chairman Andrea Agnelli, who has been criticized for championing a largely closed Champions League, and European Leagues president Lars-Christer Olsson were due to jointly meet UEFA President Aleksander Ceferin on Sept. 11.
"I have decided to postpone the meeting," Ceferin wrote to Agnelli and Olsson in a letter obtained by The Associated Press. "I will send a new invitation as soon as I think that we are ready for a meaningful discussion."
The letter was sent a day before the ECA executive board, led by the Juventus chairman Agnelli, meets in private in Liverpool to discuss their vision for an overhaul of continent-wide club competitions from 2024. The third competition — provisionally called Europa League Two — is already due to launch in 2021.
"We are currently in the process of gathering feedback from our national associations," Ceferin wrote, "and I feel — more generally — that a new discussion now would be premature as we are analyzing feedback and proposals coming from different parties."
The European Leagues group has fiercely opposed Agnelli's core idea of restricting access to the Champions League and Europa League, as have dozens of teams from across the continent who are members of the ECA.
A proposal presented earlier this year by UEFA would guarantee 24 of 32 Champions League group teams return the following season, introducing significant promotion and relegation with the Europa League. Leagues fear end-of-season intrigue will be reduced in their competitions, with finishing positions currently determining qualification for Europe.
"As you know very well, UEFA deliberately kicked off the review process for the 2024/27 competition cycle much ahead of our regular schedule and we are therefore in no hurry," Ceferin told Agnelli and Olsson. "We do not, in any case, expect to make a decision this year."
The ECA has been calling for eight-team groups in the Champions League instead of the current four. That would guarantee clubs more revenue from UEFA for playing 14 games before the knockout rounds instead of the current six.
This would benefit the illustrious clubs who want to play each other more often in Europe, appearing to be dissatisfied with a lack of competition at home. Juventus has won eight straight Italian titles, Bayern Munich has won the last seven in Germany, and Paris Saint-Germain has won six of seven in France.
The English Premier League is the leading force resisting dramatic changes to the Champions League and claims to have backing from all of its teams. That includes Manchester United, whose executive vice chairman Ed Woodward is an ECA executive board member.
Atletico Madrid led the attack from Spain — which Barcelona and Real Madrid didn't sign up to — by accusing the ECA of launching a "frontal attack" on the stability of the European game by advocating a model that harms domestic leagues.
The concept would see eight Champions League teams relegated each season into the following year's Europa League, with half having to go through a playoff round to reach the second-tier's group stage.
The four Europa League semifinalists would be promoted into the next season's Champions League group stage.
Only four qualifying places would be left for national champions competing in preliminary rounds. It would leave the Dutch league runner-up — as Ajax was before reaching last season's Champions League semifinals — with no way to qualify. Even as Dutch champion, Ajax is having to go through qualifying rounds to make this season's group stage next month.
Promotion and relegation are also envisaged between the Europa League and a third-tier competition that has yet to launch.
The third competition would kick off in the 2021-22 season with a 32-team format in eight groups of four. But it could be enlarged to 64 teams from 2024, with four groups of 16 teams, possibly arranged by region, according to the UEFA documents seen by the AP in May.
More AP soccer: https://apnews.com/apf-Soccer and https://twitter.com/AP_Sports
Rob Harris is at www.twitter.com/RobHarris and www.facebook.com/RobHarrisReports


text:
import validUrl from 'valid-url';

const areCommandArgsValid = (command, args) => {
  const validCommands = [
    'nick', 'think', 'oops',
    'fadelast', 'highlight', 'countdown',
  ];

  if (validCommands.indexOf(command) === -1) {
    return new Error('invalid command');
  }

  // special commands
  if (command === 'countdown' && (isNaN(args[0]) || !validUrl.isWebUri(args[1]))) {
    // if first arg is not a number or second arg is not a URL
    return new Error('invalid countdown command or url');
  }

  return null;
};

const parseMessage = (message) => {
  const split = message.split(' ');
  if (split[0].substr(0, 1) === '/') {
    // command
    const command = split[0].substr(1);
    split.shift();
    const args = split;

    const error = areCommandArgsValid(command, args);
    return {
      type: error || command,
      args,
    };
  }

  // no command
  return {
    type: 'plain',
    id: new Date().getUTCMilliseconds(),
    content: message,
    author: 'me',
  };
};

export default parseMessage;


The article evaluates various wines from Weibel Family Vineyards & Winery including 2009 Chardonnay (All Aboard), 2009 Cabernet Sauvignon (Locomotive 1512), and 2009 Merlot (Engine Engine).
The article presents information about the CJ Pask Reserve Declaration wine. The wine, a Pask's flagship blend of cabernet sauvignon, malbec and merlot is dense and powerful. Complex flavours include an array of black fruits, mixed spice, new leather, licorice and generous classy oak.
The article provides a comparison of wines including Big House Red from Monterey County, California in the U.S., Cono Sur Cabernet Sauvignon-Merlot from Maipo, Chile, and Concha y Toro Frontera Sauvignon Blanc from Central Valley, Chile.
The article evaluates several wines under the Ultra Premium category from Bodega Concha y Toro including the Amelia Chardonnay, the Carmín de Peumo Carménére, and the Terrunyo Cabernet Sauvignon.
The article evaluates several wines including Jack Estate Sauvignon Blanc 2012 from Jack Estate, Pepper Tree Wrattonbully Chardonnay 2011 from Pepper Tree, and Millbrook Merlot 2010 from Millbrook.


text:
Mariandí (Mariandynus,) fou el mític fill de Fineu, o de Titi o de Frixos, o simplement de Zeus, i la seva mare era Idea.

Va ser l'heroi ancestral i epònim del poble dels mariandins a Bitínia, poble que ocupava el veïnatge de la ciutat d'Heraclea del Pont.

Era d'origen eòlic, i va regnar també sobre una part de la Paflagònia, des d'on es va annexionar el país dels bebrics.

Referències

Herois de la mitologia grega


text:
Wealth Management Solutions LLC Has $780,000 Stock Position in AbbVie Inc. (NYSE:ABBV)
Posted by Trevor Kearing on Jan 25th, 2023
Wealth Management Solutions LLC reduced its holdings in shares of AbbVie Inc. (NYSE:ABBV – Get Rating) by 3.6% in the third quarter, Holdings Channel reports. The institutional investor owned 5,814 shares of the company's stock after selling 220 shares during the period. AbbVie makes up 0.5% of Wealth Management Solutions LLC's investment portfolio, making the stock its 26th largest holding. Wealth Management Solutions LLC's holdings in AbbVie were worth $780,000 at the end of the most recent reporting period.
A number of other hedge funds have also recently made changes to their positions in the business. Chevy Chase Trust Holdings LLC boosted its holdings in AbbVie by 1.1% during the third quarter. Chevy Chase Trust Holdings LLC now owns 1,123,551 shares of the company's stock worth $150,793,000 after purchasing an additional 12,408 shares during the last quarter. TRUE Private Wealth Advisors boosted its stake in AbbVie by 9.8% in the third quarter. TRUE Private Wealth Advisors now owns 32,775 shares of the company's stock valued at $4,398,000 after acquiring an additional 2,936 shares during the last quarter. Briaud Financial Planning Inc boosted its stake in AbbVie by 11.3% in the third quarter. Briaud Financial Planning Inc now owns 1,819 shares of the company's stock valued at $268,000 after acquiring an additional 185 shares during the last quarter. Total Clarity Wealth Management Inc. boosted its stake in AbbVie by 1.2% in the third quarter. Total Clarity Wealth Management Inc. now owns 6,608 shares of the company's stock valued at $887,000 after acquiring an additional 78 shares during the last quarter. Finally, XML Financial LLC boosted its stake in AbbVie by 513.5% in the third quarter. XML Financial LLC now owns 50,476 shares of the company's stock valued at $6,774,000 after acquiring an additional 42,248 shares during the last quarter. 67.71% of the stock is currently owned by institutional investors and hedge funds.
Get AbbVie alerts:
AbbVie Stock Performance
Shares of ABBV stock opened at $147.88 on Wednesday. AbbVie Inc. has a one year low of $132.83 and a one year high of $175.91. The company's 50-day moving average is $159.47 and its 200 day moving average is $149.22. The company has a market capitalization of $261.52 billion, a price-to-earnings ratio of 19.72, a price-to-earnings-growth ratio of 3.18 and a beta of 0.69. The company has a debt-to-equity ratio of 3.77, a quick ratio of 0.83 and a current ratio of 0.93.
AbbVie (NYSE:ABBV – Get Rating) last posted its quarterly earnings data on Friday, October 28th. The company reported $3.66 earnings per share (EPS) for the quarter, topping analysts' consensus estimates of $3.56 by $0.10. AbbVie had a net margin of 23.19% and a return on equity of 155.88%. The company had revenue of $14.81 billion for the quarter, compared to the consensus estimate of $14.95 billion. During the same quarter last year, the firm posted $3.33 earnings per share. The firm's revenue was up 3.3% compared to the same quarter last year. Sell-side analysts expect that AbbVie Inc. will post 13.89 EPS for the current fiscal year.
AbbVie Increases Dividend
The business also recently disclosed a quarterly dividend, which will be paid on Wednesday, February 15th. Stockholders of record on Friday, January 13th will be given a dividend of $1.48 per share. The ex-dividend date of this dividend is Thursday, January 12th. This represents a $5.92 annualized dividend and a dividend yield of 4.00%. This is a boost from AbbVie's previous quarterly dividend of $1.41. AbbVie's dividend payout ratio (DPR) is presently 79.04%.
A number of research analysts have weighed in on the stock. Atlantic Securities dropped their target price on shares of AbbVie from $162.00 to $157.00 and set a "neutral" rating on the stock in a research note on Monday, October 31st. StockNews.com assumed coverage on shares of AbbVie in a research note on Wednesday, October 12th. They issued a "strong-buy" rating on the stock. Piper Sandler boosted their target price on shares of AbbVie from $155.00 to $157.00 and gave the company an "overweight" rating in a research note on Tuesday, January 17th. Credit Suisse Group began coverage on shares of AbbVie in a research report on Thursday, November 17th. They issued an "outperform" rating and a $170.00 price target on the stock. Finally, Barclays lowered their price target on shares of AbbVie from $160.00 to $155.00 and set an "equal weight" rating on the stock in a research report on Monday, October 31st. One analyst has rated the stock with a sell rating, seven have given a hold rating, six have given a buy rating and one has issued a strong buy rating to the stock. Based on data from MarketBeat.com, the stock has an average rating of "Hold" and a consensus price target of $160.56.
In other news, EVP Timothy J. Richmond sold 42,370 shares of AbbVie stock in a transaction that occurred on Monday, December 12th. The shares were sold at an average price of $163.44, for a total transaction of $6,924,952.80. Following the sale, the executive vice president now owns 13,837 shares in the company, valued at $2,261,519.28. The transaction was disclosed in a document filed with the SEC, which is available at this link. Company insiders own 0.08% of the company's stock.
AbbVie Profile
AbbVie, Inc is a research-based biopharmaceutical company, which engages in the development and sale of pharmaceutical products. It focuses on treating conditions such as chronic autoimmune diseases in rheumatology, gastroenterology, and dermatology, oncology, including blood cancers, virology, hepatitis C virus (HCV) and human immunodeficiency virus (HIV), neurological disorders, such as Parkinson's, metabolic, comprising thyroid disease and complications associated with cystic fibrosis, pain associated with endometriosis, and other serious health conditions.
Get a free copy of the StockNews.com research report on AbbVie (ABBV)
Want to see what other hedge funds are holding ABBV? Visit HoldingsChannel.com to get the latest 13F filings and insider trades for AbbVie Inc. (NYSE:ABBV – Get Rating).
Receive News & Ratings for AbbVie Daily - Enter your email address below to receive a concise daily summary of the latest news and analysts' ratings for AbbVie and related companies with MarketBeat.com's FREE daily email newsletter.
Governance OHM (GOHM) Price Up 1.6% This Week
Automatic Data Processing, Inc. (NASDAQ:ADP) is ProShare Advisors LLC's 10th Largest Position
Bluzelle 1-Day Trading Volume Tops $35.63 Million
Monero Price Hits $162.85 on Top Exchanges
GateToken Hits Market Capitalization of $468.94 Million
Ankr Trading Up 14.6% Over Last Week
USDX [Kava] Price Reaches $0.88 on Exchanges
TFI International PT Raised to $138.00
Daily Ratings & News for AbbVie
Complete the form below to receive the latest headlines and analysts' recommendations for AbbVie with our free daily email newsletter:
Bluzelle 1-Day Trading Volume Tops $35.63 Million (BLZ)
Monero (XMR) Price Hits $162.85 on Top Exchanges
GateToken Hits Market Capitalization of $468.94 Million (GT)
Ankr (ANKR) Trading Up 14.6% Over Last Week
USDX [Kava] (USDX) Price Reaches $0.88 on Exchanges
TFI International (NYSE:TFII) PT Raised to $138.00
Advanced Energy Industries (NASDAQ:AEIS) PT Raised to $100.00
HUNT Price Up 3.7% Over Last Week (HUNT)
Casper Price Up 9.7% Over Last 7 Days (CSPR)
BNB (BNB) Trading 2.7% Lower Over Last Week
Traxx (TRAXX) One Day Trading Volume Reaches $186,105.22
XIDO FINANCE Self Reported Market Capitalization Achieves $86.91 Million (XIDO)
ThetaDrop (TDROP) Trading 0.8% Higher Over Last 7 Days
EthereumFair (ETF) 24 Hour Volume Hits $1.01 Million
CI Financial (CIXXF) & Its Peers Head to Head Analysis
Head to Head Comparison: Burlington Stores (NYSE:BURL) vs. SM Investments (OTCMKTS:SVTMF)
NuVista Energy Ltd. (TSE:NVA) Receives Consensus Recommendation of "Moderate Buy" from Brokerages
3i Group (LON:III) Reaches New 1-Year High at $1,655.50
Century Therapeutics (NASDAQ:IPSC) Rating Reiterated by HC Wainwright
HC Wainwright Reiterates Buy Rating for Viking Therapeutics (NASDAQ:VKTX)


text:
Test a deployment on our modern App Hosting. For a limited time, your first $20 is on us.
Application Hosting ( new )
Database Hosting ( new )
Single Site Plans
Get $20 off your first month
Talk to sales Call +1 (888) 610-2915 and find the hosting plan that's right for you.
Request a live demo Get a personalized demo of our powerful dashboard and hosting features.
Ask questions Tell us about your website or project. We'll get back to you in one business day.
Get help from our support team Talk with our experts by launching a chat in the MyKinsta dashboard.
Grow your skills
Dive into Kinsta's learning materials Go to All Resources
Learn new skills from our free courses
Join Kinsta Academy
Find all tutorials and articles Go to Blog
Get tailored newsletters for developers, WordPress users, and entrepreneurs
Browse through FAQs and guides Go to Knowledge Base
What Is FTP, and How Can I Use It to Transfer Files?
Read latest article
What's File Integrity Monitoring? (And Why You Need to Know More About It)
Robert Abela, July 12, 2022
A default and up-to-date WordPress installation with a strong password is quite secure. However, to survive on the internet that is not enough.
That's where File Integrity Monitoring (FIM) comes into play. A File Integrity Monitoring tool or plugin monitors your site's files and alerts you for any changes like file uploads, edits, removals, and so on.
File integrity monitoring helps you stay ahead of security breaches and identify errors that could leave your website exposed to hack attacks.
In this post, we'll provide you with a thorough introduction to file integrity monitoring and explain how it can improve your site's security. We'll also share a few different tools and plugins you can use to implement this security solution on your WordPress site.
An Introduction to File Integrity Monitoring
When it comes to protecting and maintaining infrastructures such as websites and servers, File Integrity Monitoring is key. This solution validates the integrity of a given environment, namely, it checks to see whether the contents of your site's files have changed unexpectedly.
You can use File Integrity Monitoring to detect file changes in operating systems, web servers, and web applications such as WordPress. It can even prove useful for monitoring file-based software solutions such as databases and configuration files.
Need to give a shoutout here. Kinsta is amazing, I use it for my personal website. The support is rapid and outstanding, and their servers are the fastest for WordPress.
Phillip Stemann
Organizations that use a file integrity monitoring solution are more likely to detect security breaches early on, giving them a better chance of staying online and deterring any major damage. For this reason, File Integrity Monitoring is primarily considered to be a security solution.
However, this solution can achieve other goals as well. In some cases, it can monitor software and operating systems configuration changes in:
Open ports configuration on a server.
Webserver and network services configuration.
Running or stopped services (daemons) on a server.
Even planned file changes can sometimes cause problems to your WordPress site. By keeping track of all your modifications with File Integrity Monitoring, you can easily pin down possible causes for errors that are related to changes in your files.
This makes troubleshooting faster, so you can get your site back up and running right away.
How File Integrity Monitoring Works
File Integrity Monitoring works by taking "fingerprints" of your site's files and then comparing them one another. If the fingerprints differ, it means the files have changed.
To create a fingerprint, the File Integrity Monitor (also known as a File Integrity Scanner) scans a single file and creates a "checksum' — a unique string of data associated with that file — by running a cryptographic hash function on the file.
Site file fingerprints
File Integrity Monitoring can become useful to check other file properties as well, such as permissions and the modification date. These checks are crucial as even a simple change in a file's permissions could leave the system open to attacks.
Why File Integrity Monitoring Is Important
One of the aspects that make File Integrity Monitoring a must-have security solution is its twofold strength both a reactive and proactive security solution.
File Integrity Monitoring as Proactive Security
An example of proactive security is identifying mistakes done by your developers while working on your website that might leave your site exposed. Wrong file permissions, left-over files containing sensitive information, such as a backup of a database or a source code file, are good examples of security threats that File Integrity Monitoring can proactively identify.
File Integrity Monitoring as Reactive Security
File Integrity Monitoring solution can also point out what's been changed on your site after a hack attack or in which files the malware was injected.
In addition to that, it can even check for changes in your website's setup by monitoring crucial WordPress site files, such as the wp-config.php and .htaccess files.
Thanks to this key information, you could revert your site to its previous (clean) state and clean up any types of malware or "bad code" left in the shortest time possible.
Compliance requirement
For some, File Integrity Monitoring may also be required by law. The Payment Card Industry Data Security Standard (PCI DSS) requires compliant sites to:
"Deploy a change detection mechanism (for example, file integrity monitoring tools) to alert personnel to unauthorized modification."
Managing your website visitors' sensitive information is a serious responsibility. If you store any type of customer data on your website, especially cardholder data, having File Integrity Monitoring enabled helps you ensure such data has not been tampered by anyone and keep you on the right side of the law.
Why You Need File Integrity Monitoring for Your WordPress Site
WordPress is a web application and it is made up of two types of files: non-executable and executable files.
The former are mostly logs and media files. Logs are typically generated by plugins and themes, while media files are those you upload to your website, such as images, videos, PDFs, and so on. They are non-executable because the web server does not execute them but just serves them.
Most of the non-executable files are stored in the /wp-content/uploads/ directory in WordPress. Changes to non-executable files do not have an impact on the security, performance, or functionality of your website. In fact, most File Integrity Monitoring solutions exclude these files from their scans by default.
On the other hand, executable files include the PHP, JavaScript, and other files that contain your site's source code like WordPress core, plugins, themes, and any custom web application you might have. Changes in executable files can occur, but only when you:
Update WordPress core
Install a new theme or plugin.
Update your theme or an existing plugin.
Uninstall (delete) a plugin or theme.
Customize the code of your WordPress installation, a theme, or a plugin (which is generally not recommended).
Any other changes to your WordPress site's executable files could be a sign of an intrusion, malware injection, or a developer mistake. Running a File Integrity Monitoring plugin on your WordPress site can help you easily spot these issues before they become a real threat to the security or functionality of your website.
As a quick recap: File Integrity Monitoring can help you identify test files that should have been removed, most malware injections (suggested: our in-depth guide to SQL injections) – including backdoors, redirects, and Trojans and any other harming file changes.
When used in combination with an activity log, File Integrity Monitoring gives you a complete view of what's happening on your site at all times. You can carry out post-hack forensics to determine which files were targeted and by whom, and also enhance security around them to prevent future attacks.
Two Different Types of File Integrity Monitoring Methods
The basis of file integrity monitoring is always the same: comparing the fingerprints of a single file taken at different points in time. There are several ways this can be accomplished.
Deploy your application to Kinsta - Start with a $20 Credit now.
Run your Node.js, Python, Go, PHP, Ruby, Java, and Scala apps, (or almost anything else if you use your own custom Dockerfiles), in three, easy steps!
Deploy now and get $20 off
1. Comparing Files to a Central Repository
A commonly-used method is comparing a fingerprint to a central repository through the use of a WordPress plugin (more on plugins below). In this case, the plugin compares the fingerprint of your site's index.php file to the fingerprint of the latest index.php file released by WordPress.
The advantage of using this method is that you can easily confirm if your files are identical to the original ones. Since you're comparing data to a central repository, though, there are a few shortcomings:
The solution cannot identify changes in distributed configuration files such as .htaccess and wp-config.php.
You'll be flagged with false positives if you customize your website's code.
The plugin can only compare files of known applications (WordPress core) and sometimes of popular plugins.
These solutions cannot detect changes in custom applications or plugins because there's nothing to compare them to.
The security of your website depends on how quickly the vendor updates the original fingerprints or on the availability of the central repository.
Comparing files
2. Comparing Files to Self-Generated Data
Because of the limitations the central repository-based method has, comparing two sets of self-generated data is the preferred method and what best practices suggest. This type of solution detects file changes by comparing fingerprints with their own previous scans.
This means the plugin generates the first fingerprints upon installation. Then, when it scans the files again, it'll compare the new fingerprints with those from the original scan. And whenever there a file change is recorded, you can configure the plugin to either accept that change automatically or send you an alert.
This method is preferred over the previous one because of the following advantages:
It can detect changes in custom code.
The system adapts to your website (you can validate changes and update the fingerprints, thus supporting continuous customizations).
It reports significantly fewer false positives.
For these reasons, when looking for a file integrity monitoring tool or plugin, you'd want to pick one that is based on self-generated data.
3 Types of File Integrity Monitoring Tools You Can Use to Protect Your Site
There are several different File Integrity Monitoring solutions available. We've broken them down into three basic categories below. Let's start from the top!
1. Server-Level Software Solutions
These solutions are installed on the webserver's operating system and check all the files on the webserver. This means you can only use them if you have your own web server or VPS.
There are several options available on the market, such as:
Struggling with downtime and WordPress issues? Kinsta is the hosting solution designed with performance and security in mind! Check out our plans
Qualys
As server-level solutions, these are not specifically targeting WordPress-powered sites. So they might generate a lot of false positives. On top of that, they are quite expensive and require advanced knowledge to set up and manage.
2. WordPress Plugins
If you want a file integrity monitor solution that's more specific to WordPress, there are various plugins available for this task.
Website File Changes Monitor
Website File Changes Monitor is a dedicated file integrity monitoring plugin for WordPress. It is available for free and when it detects file changes it alerts you via email.
File changes view with menu
This plugin uses self-generated data for file comparisons and you can launch on-demand scans. It is a fully configurable file integrity monitoring solution for WordPress and you can exclude files and directories, configure the schedule of the scans, and much more.
What really sets this plugin apart from all the others is that it is the only WordPress plugin that is fully aware of WordPress core, plugins and themes changes.
WordPress File Monitor
WordPress File Monitor is also a dedicated file integrity monitoring plugin that uses self-generated data for comparisons. However, it is not aware of WordPress core, plugins, and theme changes and you might get many false-positive alerts about file changes.
False-positive alerts
False-positive alerts can have a very negative impact on the website because non-security savvy users cannot verify whether alerts are generated from something critical or just a safe file change.
Other Plugin Options
The above are the only file integrity monitoring plugins for WordPress. Other plugins with file integrity monitoring capabilities are part of all-in-one security solutions such as Sucuri Security, iThemes security, and Wordfence.
Both these plugins use the method that compares files to a central repository and is not aware of site structure changes, i.e they only identify changes in WordPress core and some popular plugins.
3. Open Source File Integrity Monitoring Tools
If plugins aren't your thing, you might want to consider one of the many open source tools available for monitoring your files. For instance, Tripwire provides an open source version of its platform that offers free security features, including file monitoring. With that said, this version isn't as effective as its paid counterpart.
Another open source platform to consider is OSSEC:
The OSSEC platform
This a popular free security solution and it's capable of carrying out file monitoring tasks. However, like many of the other tools we've mentioned, it works at the server level. While it can be used with WordPress, it can only work if you have a dedicated server or VPS.
Also, if you opt for OSSEC, you'll need to do some advanced configuring but it still may not be the most accurate solution for your site.
The most interesting aspect of open source security platforms is that, if you know your stuff around code, you can adapt these tools to include extended functionality and fit your preferences and needs.
Concerned about the security of your site? Learn what File Integrity Monitoring is and take it to the next level! 💪🔐Click to Tweet
WordPress security is a serious thing. Taking preventative measures to protect your website, content, business and users' data is key. File integrity monitoring is only one part of the game. It's also important to have a WordPress backup system in place for recovering your files, in the event an attack does occur.
In this post, we've demonstrated how file integrity monitoring can address both of these needs, and shared three types of File Integrity Monitoring solutions you can use on your WordPress site:
Server-level software solutions such as Tripwire (which are effective, but can be very expensive).
Free WordPress plugins like Website File Changes Monitor.
Open-source tools such as OSSEC.
Do you have any questions about file integrity monitoring? Let us know in the comments section below!
Get all your applications, databases and WordPress sites online and under one roof. Our feature-packed, high-performance cloud platform includes:
Easy setup and management in the MyKinsta dashboard
The best Google Cloud Platform hardware and network, powered by Kubernetes for maximum scalability
An enterprise-level Cloudflare integration for speed and security
Global audience reach with up to 35 data centers and 275+ PoPs worldwide
Test it yourself with $20 off your first month of Application Hosting or Database Hosting. Explore our plans or talk to sales to find your best fit.
Hand-picked related articles
How to Fix "Your Connection is Not Private" Error (18 Tips)
The "your connection is not private" error occurs on sites running HTTPS. If the site's certificate isn't valid, the browser intervenes with this m…
Chrome Errors
Firefox Errors
Website Errors
The Best WordPress Security Plugins To Lock Out Malicious Threats
Keeping your WordPress site secure can be challenging. Check out these WordPress security plugins to easily lock out the bad guys.
An Overview of TLS 1.3 – Faster and More Secure
TLS 1.3 is a new encryption protocol update that is both faster (reducing HTTPS overhead) and more secure than TLS 1.2. Click here to learn more.
Comment policy: We love comments and appreciate the time that readers spend to share ideas and give feedback. However, all comments are manually moderated and those deemed to be spam or solely promotional will be deleted.
By submitting this form: You agree to the processing of the submitted personal data in accordance with Kinsta's Privacy Policy, including the transfer of data to the United States.
You also agree to receive information from Kinsta related to our services, events, and promotions. You may unsubscribe at any time by following the instructions in the communications received.
Get premium content from an award-winning WordPress hosting platform
Log in to MyKinsta. Or, create an account for $20 off your first month of Application Hosting and Database Hosting.
Switch language DeutschEnglishEspañolFrançaisItalianoNederlandsPortuguêsSvenska
Agency Hosting
Single Site Hosting
Documentation & Help
Compare Kinsta
More Comparisons
Kinsta on LinkedIn
Kinsta on Facebook
Kinsta on Twitter
Kinsta on Instagram
Kinsta on YouTube
Kinsta on DEV
Kinsta on GitHub
© 2023 Kinsta Inc. All rights reserved. Kinsta® and WordPress® are registered trademarks. Legal information.


Description: Brigade colors of the 158th Field Artillery Brigade of the 95th Infantry Division are shown on this flag. The red swallowtail pennant with white appliqued number "158" is a machine sewn applique. The flag is made of wool. Ohio battle flags were on display at the Ohio Statehouse until the 1960s, when the state formed a committee to oversee efforts to restore the fragile flags. Some of the battle flags were on display on the Plaza Level of the Ohio Historical Society from 1970 until 1989. For conservation reasons, the flags have been in storage since 1989 (call number State Archives Series 4605 AV, formerly P 1 and T 15). View on Ohio Memory.