text:
5.56 vs. 300 Blackout: Battle for the Best AR Bullet
Joel Nordness Jan 24 2023 9 min read
5.56 NATO Check Price
300 Blackout Check Price
The venerable 5.56 cartridge, used by the famous M-16 and AR-15 rifles, has seen combat in every conflict the United States has been involved in since the 1960s. While an effective cartridge, there are some cases where 5.56 is less than optimal.
To address the 5.56's shortcomings and increase versatility, the Advanced Armament Corporation (AAC) developed a new cartridge, the .300 AAC Blackout. The official SAMMI name is 300 BLK, but most casual shooters refer to it simply as 300 Blackout.
With such a distinguished combat history, why was there a need for a new cartridge? What similarities and differences do 300 Blackout and 5.56 have? Read on to learn everything you need to know about these two cartridges!
Sportsman's Warehouse (Check Price)
Palmetto State Armory (Check Price)
GunMag Warehouse (Check Price)
Brownells (Check Price)
The grizzled veteran in this comparison is the 5.56 NATO round. The exact metric caliber is 5.56x45mm and was developed from the .223 Remington. While sharing the same dimensions, they are not entirely compatible.
Typically, 5.56 has more gunpowder and generates more force than the .223 Remington. With some .223 Remington guns, the area where the rifling begins (the chamber leade) is cut to a sharper angle and could generate excessive force if fired with a 5.56 round, leading to damage. However, .223 rounds can safely be fired in guns chambered in 5.56. While the cartridge loading and chamber leade length differ, the brass cases for 5.56 and .223 Remington are identical.
The 5.56 can trace its origins to 1957, when the U.S. Continental Army Command (CONARC) set forth parameters for a small caliber, high-velocity firearm to replace the M-14, which used a large 7.62x51mm round. A smaller caliber weapon would increase the amount of ammo a soldier could carry, increasing squad firepower and endurance.
The Armalite corporation, who already had the radical new design for the AR-10 in 7.62x51mm, scaled it down and modified it to shoot the new 5.56 round, resulting in the now-famous AR-15 rifle. In 1959, Armalite sold the rights for the two new rifles to Colt, who modified it further, resulting in the M-16.
Entering service in 1964, it first saw combat in Vietnam, but early reliability problems prevented its immediate adoption. After fixes and improvements, the M16A1 was released in 1967, and after proving its increased reliability, it officially replaced the M14 as the standard battle rifle of the US military in 1969. It has served in every major US conflict since.
Colt M16A1 Retro Reissue
LuckyGunner (Check Price)
Certain military groups noted a performance gap between 5.56 and 9mm Parabellum. Because stealth is important for Special Forces, 5.56 was often a poor solution because they are supersonic and hard to suppress.
9mm, being a pistol round, could be suppressed but lacked the performance of a rifle caliber round.
Enter 300 Blackout. AAC developed the round to address that performance gap, and the result was a versatile round that is starting to gain favor with both military and civilian shooters.
The round was designed with the AR-15/M-16 type rifles in mind. Using a smaller case but a larger bullet, 300 Blackout is the same length and diameter as 5.56.
This enables 300 Blackout rounds to use the same magazines as 5.56. Because the only difference is the barrel, 300 Blackout barrels have been designed to fit on standard 5.56 lower receivers and can be swapped out in a matter of minutes.
The new round's versatility is what makes 300 Blackout stand out from the pack. Using a typical 110-grain bullet, 300 Blackout holds the advantage in energy downrange over 5.56. 5.56 holds the advantage at 700 meters and beyond due to its higher velocity and less bullet drop.
It's the subsonic realm where 300 Blackout shines. The larger diameter of the round allows for a bullet in the 220-grain range to be fired, giving it much more energy than subsonic 5.56 rounds. That is also twice the weight of typical 9mm Parabellum bullets.
Differences Between 5.56 and 300 Blackout
5.56 NATO 300 AAC Blackout
Bullet Diameter 0.224 in (5.7mm) 0.308 in (7.8mm)
Neck Diameter 0.253 in (6.4mm) 0.334 in (8.5mm)
Base Diameter 0.377 in (9.6mm) 0.376 in (9.6mm)
Rim Diameter 0.378 in (9.6mm) 0.378 in (9.6mm)
Case Length 1.760 in (44.7mm) 1.368 in (34.7mm)
Overall Length 2.26 in (57.4mm) 2.26 in (57.4mm)
As the table shows, the main differences are the length of the case and the size of the bullet. 300 Blackout has a shorter case but a longer and wider bullet with a much less pronounced bottleneck.
The base diameter and overall length are significant similarities, which are essentially equal. This means that, generally, one can load 300 BLK rounds into a 5.56 magazine since the external dimensions are the same.
L to R: 300 Blackout 125 gr. plastic tip, 300 Blackout 125 gr. match, 300 Blackout 220 gr. subsonic, 5.56mm NATO, 7.62x39mm (AK47 round). Credit: Wikimedia
When fired from an M4 carbine, the NATO standard 5.56 M855 cartridge has a muzzle velocity of 2,900 ft/sec. At a maximum effective range of 500 meters, it has 291 ft-lbs. of energy along with 100 inches of bullet drop.
From the same rifle, a standard 300 BLK round has a slower muzzle velocity of 2,200 ft/sec, but due to the heavier bullet, it has more energy downrange, having the same 291 ft-lbs. at 700 meters, but having the same 100 inches of bullet drop at only 440 meters.
The heavier bullet also gives 300 BLK the advantage at the barrel, with approximately 1,400 ft-lbs. of muzzle energy vs 5.56 at ~1,100 ft-lbs., and the 300 BLK round carries the energy advantage all the way downrange.
Subsonic Performance
Because muzzle energy is a factor of bullet mass and velocity and the speed of sound is fixed, the only variable to play with when it comes to subsonic cartridge performance is mass. Because 300 Blackout has a larger bullet profile, it has a large advantage over 5.56 in the subsonic realm (around 1,100ft/sec.)
A typical subsonic 5.56 round of 112 grains has a muzzle energy of 275 ft-lbs. at 1,050 ft/sec, whereas a 220-grain .300 Blackout round of 220 grains has a muzzle energy of 475 ft-lbs. at 990 ft/sec, almost double the energy. Increased muzzle energy equals increased lethality, an important factor for Special Operations soldiers who want to be quiet and deadly.
Muzzle velocity also depends on barrel length, so a shorter barrel helps keep velocity down. Many 300 Blackout pistols have been released to fill this subsonic niche.
Because 5.56 has been around for 60 years, many more firearms are chambered in that vs. 300 BLK. However, 300 BLK was designed for compatibility with 5.56-chambered firearms from the start. The nearly identical case diameter and length lets users use 300 BLK rounds in 5.56 magazines, and one can convert their firearm to 300 BLK with only an upper/barrel swap.
There is a risk when it comes to magazine compatibility, though. Because one can use the same mags between the two calibers, one has to be careful to keep them from mixing up if you use both rounds.
Chambering a 300 BLK round into a 5.56 barrel leaves the bullet with nowhere to go since it is larger in diameter than the barrel. The pressure builds up catastrophically, leading to damage or serious injury.
There are companies that make special 300 BLK magazines. Although it's not needed, if you do tend to mix the two calibers, it's best to be able to easily differentiate between the two for safety, so it's best to make sure that your 300 BLK magazines are distinct from your 5.56 mags.
Military Adoption
Dutch Maritime Special Operations Force
Believe it or not, it was the Netherlands that first adopted 300 Blackout as a military cartridge in 2016 when they acquired nearly 200 Sig Sauer MCX carbines for the Dutch Maritime Special Operations Force. The UK Ministry of Defense wasn't far behind, issuing a five-year tender contract for 300 Blackout supersonic and subsonic ammunition for their forces.
The US Special Operations Command (USSOCOM) also contracted Sig Sauer to acquire their MCX Rattler, which can be chambered in both 5.56 and 300 Blackout. With a small 5.5-inch barrel, it is compact while still firing a powerful round.
While 300 Blackout has several advantages over 5.56, it is unlikely to supersede 5.56 entirely. There have already been millions of 5.56 rifles manufactured, and there are many millions of rounds of 5.56 sitting in depots around the world. It just wouldn't be cost-effective for the US military to make a complete retrofit.
What 300 Blackout offers, though, is adaptability and versatility. It is easy to convert existing AR pattern rifles to 300 Blackout, and the suppression advantage it offers over 5.56 is large, although suppression is only enjoyed by the Spec Ops soldiers. 300 Blackout fills an important niche but probably won't be commonly seen by the typical grunt.
5.56 Pros & Cons
Better performance at longer ranges
Much more common than 300 BLK
Cheaper ammunition costs
More firearms to choose from
Penetration concerns at long range
Subsonic rounds lack power
Hard to suppress supersonic rounds
300 Blackout Pros & Cons
Can use the same magazines as 5.56
Compatible with AR-15 lower receivers
More energy downrange than 5.56
Mixing magazines and chambering into 5.56 firearm can cause damage/injury
Higher ammunition prices
More bullet drop at extreme ranges
What caliber is 300 Blackout equal to?
300 AAC Blackout is the same as 7.62×35. Its imperial bullet diameter is .308 in.
Does 300 Blackout penetrate more than 5.56?
Performance data shows that 300 Blackout penetrates more out to 700 yards, after which the higher velocity of the 5.56 bullet gains the advantage and penetrates more. For shorter-range engagements, 300 Blackout is superior, while at longer ranges, 5.56 has the advantage.
Which is bigger, a 300 Blackout or a 223?
This question depends on what part of the cartridge you're measuring. The diameter of the case and base are identical, as well as the overall length of each cartridge, including the bullet. However, the 300 Blackout case is shorter, but the bullet has a larger diameter than 5.56.
The 5.56 round has been in service for the past 60 years and has seen combat in every major US conflict since its introduction in 1964. Designed to be small, high velocity, and penetrate a target out to 500 yards, it has met this role admirably but has its shortcomings.
300 AAC Blackout was designed to address the 5.56 shortcomings, namely versatility in the subsonic realm for Special Operations forces. While much newer and less combat-proven, current performance metrics are extremely favorable, and its compatibility with existing 5.56 magazines and AR-type lowers means adoption is easier.
While currently less popular and more expensive than 5.56, I am hopeful 300 BLK will start catching on and bring prices down.
Written by Joel Nordness
Joel grew up in the cornfields of Illinois. After college, he had a brief stint in California, befriending veterans at the Navy base he worked at who introduced him to shooting. Realizing how much fun shooting could be, he carried that passion with him to his new home in Indiana, where he developed a love for rare and unusual handguns and firearm history. He tries his best to keep his gun collection to reasonable levels while doing what he can to introduce new shooters to the joy of the hobby.
Write Your Comment *
Brady Kirkpatrick Jan 25 2023 14 min read
Primary Arms Advanced Micro Dot Red Dot Sight Review [2023]
Let's check out what they are so ballsy about. What's more, they're so confident in the scope body and construction that they slapped a lifetime warranty on the Gen II Advanced Micro Red Dot Sight. You rarely see other manufacturers doing t...
Best Single Action Revolvers In 2023
The hammer is then released by squeezing the trigger, which then fires the bullet. It is called single action because the hammer only does one job. If you haven't been around guns a lot, or if you have, like me, the difference may still es...
Brady Kirkpatrick Jan 31 2023 8 min read
Leupold VX3 Review [2023]
While the Leupold VX3 scopes are durable and reliable, they may not fit the needs of every hunter. The following Leupold VX3 review explains the main features and specs, so you can make a more informed decision. Keep reading to find out whe...
Randy Bauman Jan 25 2023 10 min read
CZ 457 Review: Perfect Understudy for Your Long-Range Rifle
Let's jump in and see why the CZ 457 deserves a special place in your collection. The gun used in this review is from the rental fleet at The Range LLC in Yakima, WA, and has had thousands of rounds through it over the last couple of years....
Best AR 15 Muzzle Brakes In 2023
In addition, there are a host of other things you should know about this critical accessory. The recoil of 5.56mm rounds isn't something you can't manage. But then, certain muzzle brakes can reduce it by 50%. And this could make a world of ...
Best .44 Magnum Revolvers In 2023
So, what else makes it so unique? Let's find out. Through all of that, this revolver has achieved a symbolic status. When you think of a revolver, you picture the .44. If a shooter video game allows you to carry a revolver, it will probably...
Introduction5.56 NATO300 BlackoutDifferences Between 5.56 and 300 Blackout5.56 Pros & Cons300 Blackout Pros & ConsFAQsConclusion


text: echo "<resources><string name=\"gitname\">`git describe --tags`</string></resources>" > /home/esweeney/git/augie/Augmatic/src/main/res/values/gitinfo.xml

redpajama_set_name: RedPajamaGithub


Polish (Sierota) and Jewish (eastern Ashkenazic): from Polish sierota 'orphan'.
Where is the Serota family from?
You can see how Serota families moved over time by selecting different census years. The Serota family name was found in the USA, the UK, and Canada between 1891 and 1920. The most Serota families were found in the USA in 1920. In 1891 there was 1 Serota family living in Warwickshire. This was 100% of all the recorded Serota's in the UK. Warwickshire had the highest population of Serota families in 1891.
Use census records and voter lists to see where families with the Serota surname lived. Within census records, you can often find information like name of household members, ages, birthplaces, residences, and occupations.
What did your Serota ancestors do for a living?
Census records can tell you a lot of little known facts about your Serota ancestors, such as occupation. Occupation can tell you about your ancestor's social and economic status.
What Serota family records will you find?
There are 3,000 census records available for the last name Serota. Like a window into their day-to-day life, Serota census records can tell you where and how your ancestors worked, their level of education, veteran status, and more.
There are 642 immigration records available for the last name Serota. Passenger lists are your ticket to knowing when your ancestors arrived in the UK, and how they made the journey - from the ship name to ports of arrival and departure.
There are 1,000 military records available for the last name Serota. For the veterans among your Serota ancestors, military collections provide insights into where and when they served, and even physical descriptions.
You've only scratched the surface of Serota family history.
What is the average Serota lifespan?
Between 1963 and 2004, in the United States, Serota life expectancy was at its lowest point in 1970, and highest in 1998. The average life expectancy for Serota in 1963 was 74, and 80 in 2004.
An unusually short lifespan might indicate that your Serota ancestors lived in harsh conditions. A short lifespan might also indicate health problems that were once prevalent in your family. The SSDI is a searchable database of more than 70 million names. You can find birthdates, death dates, addresses and more.


text:
Stats & Info
Inside the at-bat: Alvarez's game-winner
8yESPN Stats & Information
4yElias Sports Bureau
Anthony Davis fills up stat sheet against Suns
Coming off 2017 and looking ahead, it's a great time to be a Georgia fan
4yJason Starrett, ESPN Stats & Information
Lou Williams has been Stephen Curry-like of late for Clippers
4yMark Simon
Wizards have a fivesome that ranks among the best in the game
4yESPN Stats & Informaton
It's a great time to be the Rockets' defense
Seahawks QB Russell Wilson in MVP-caliber form
Can Rudy Gobert-less Jazz keep pesky Nuggets off the glass?
Another Iron Bowl clash between No. 1 Alabama and No. 6 Auburn
Kirk Cousins thriving even when Redskins are not
Lonzo Ball, De'Aaron Fox meet for first time in NBA as Lakers visit Kings
Can Thunder's struggling D slow a better-than-ever Warriors offense?
Elias Says: November 18, 2017
Thunder still trying to mesh ahead of matchup at Spurs
Rams offense brings back some of the 'greatest' memories
ESPN Stats & Information
Pedro Alvarez entered Sunday hitting .180 against left-handed pitching. That was the fourth-lowest batting average of any hitter who had at least 100 at-bats against lefties in 2013.
But there was more to know about Alvarez that made what happened in his decisive at-bat in the Pittsburgh Pirates' Game 3 win over the St. Louis Cardinals even more unlikely.
Alvarez was facing Cardinals left-hander Kevin Siegrist with the score tied and runners on first and second with one out in the bottom of the eighth inning.
The two had gone head-to-head five times previously. In those five meetings, Siegrist threw 23 pitches, 18 of them that were either on or just off the outer third of the plate.
Alvarez & Siegrist in 2013
Alvarez took 13 swings against Siegrist, fouling off eight, missing two and putting three in play (a fly ball to shallow center, a ground out to shortstop and a grounder to second). The five at-bats all ended in outs, including that grounder to second in Game 2.
Siegrist had the right idea in pitching Alvarez away. A look at pitch-performance data shows that Alvarez was feeble against those pitches for the past couple of months.
On July 22, Alvarez got a base hit on a 93-mph fastball just off the outside corner from Nationals left-hander Ian Krol.
Over the remainder of the regular season and including Game 2, Alvarez saw 147 pitches from left-handers that were on, or just off, the outside edge.
Those pitches resulted in 33 outs, three walks, and most notably no hits.
Alvarez missed on nearly half his swings (27 of 59) against them.
On top of that was something else working against Alvarez.
Siegrist throws his fastball hard enough to clock in the mid- to upper 90s on the radar gun.
Alvarez saw 46 pitches from lefties during the 2013 regular season that registered at least 95 mph. He had little chance against them. He went 0-for-10, reaching base once when one missed for ball four.
Alvarez did not have a hit against a fastball thrown that hard by a lefty since July 16, 2012, when he homered against Rex Brothers of the Colorado Rockies.
When Siegrist got Alvarez out in Game 2, it was on a pitch thrown 97 mph.
After seeing a pair of fastballs to the outer edge at 96 and 97 mph from Siegrist in Sunday's at-bat, Alvarez had a pretty good idea what was coming.
He was able to time his swing on a fastball thrown 95 mph and ground it to the right side. This one got through, plating Josh Harrison with the go-ahead run.
Alvarez (and Marlon Byrd) has now driven in five runs in four games this postseason. That matches the most in Pirates history through a player's first four postseason games (Bob Robertson had five for the 1971 Pirates).
And he moved them one step closer to advancing to the National League Championship Series.

redpajama_set_name: RedPajamaCommonCrawl


Yoga can be practised anytime, anyplace and anywhere, according to host Lisa Schwartz. And it can add immeasurably to the quality of daily life, if you take her up on her advice!
In this eight-part series, Lisa teaches all the fundamentals of Hatha yoga to the beginner. She shows how the stances and exercises can be incorporated into daily life, and how to transform furniture and architectural features into props for stretching.
Hatha yoga is a time-tested system which offers many benefits to its practitioners including increased flexibility, strength cardiovascular fitness (at advanced levels) relaxation and inner peace.
Lisa is an advanced yoga practitioner who has studied and taught for over twenty-five years. She has studied under two of the world's greatest contemporary figures in Yoga: B.K.S. Iyengar in India and Vanda Scaravelli in Europe.
A comprehensive workbook and a unique flash-card system for designing individual practise sessions are part of this learning package too.


As one of the first, Bever began modifying cars for the disabled, wheelchair users and seniors in 1973. Due to the increasing demand for customized products for various car brands and types, Bever Car Products, formerly Bever Werktuigbouw, was established in 1987 to produce these car adaptation products in series and deliver them to third parties. Bever Car Products has since then grown into an independent and innovative company that supplies an extensive range of customized products to customers in most European countries.
their sale to third parties.
The first EGRs (electric gas brake systems).
After a few years of product development, we were so far. The first series of 10 systems could be delivered.
n 27 February 2004, Bever Car Products was certified together with the other Bever ISO 9001 locations.
Bever Car Products launched as one of the first a universal interface for cars with CAN buses.
Of course, SmartControl is also suitable for switching low or high power relays.
SmartSteer the first truly ergonomic steering wheel with secondary functions was born.
With the SmartSteer control button, Bever Car Products has set the tone for the future.
Bever Car Products becomes distributor of Benelux and the Scandinavian countries and also supplier of a number of key components of the Joysteer system.
The introduction of SmartBrake, the new electric brake system.
Maintenance arm and also suitable for hybrid and electric vehicles.
Bever Car Products will be a Motabiliy-accepted supplier.
The new SmartGas is ready to be delivered.
With new technologies, the product is suitable for all vehicles with electronic accelerators currently on the market.
As of January 1, 2019, Rien van den Broek, owner-director of Bever, has transferred his management responsibilities to his successors Jan Jonkheid and Jeroen van den Broek. As new owners they now have the final responsibility for all Bever activities. Jeroen will focus particularly on products and services for the end users (Bever car adaptations). Jan is responsible for the business to business (Bever Car Products).


North Arkansas College is approved by the Arkansas State Approving Agency for veterans and veterans' beneficiaries who are working on a degree or certificate. Considerable financial aid is available to veterans of recent military service, service members and members of reserve units. The dependents of certain other service persons may be entitled to educational assistance payments under various programs.
VA students must be working toward a degree/certificate and following the curriculum as outlined for their degree plan in the catalog, since only specific courses may be applied toward VA certification.
VA will not pay for non-required repeat of classes; if North Arkansas College requires you to repeat the course in order to receive credit towards your degree, then VA will consider that a required repeat and the course will be applied towards the hours required for you to receive benefits.
VA students are responsible for notifying the VA certifying official of any changes in their status (add/drop classes, withdraw from school, change major).
Regular attendance of all classes is a requirement for VA payments. If you stop attending a class, VA will be notified and you may be required to pay back benefits.
VA Education Call Center phone number is 1-888-442-4551.


What do Italy's problems mean for investors?
Italians are threatening their neighbors with exit from the euro area. Investing in European assets should be approached with caution.
In March 2018, parliamentary elections were held in Italy. Traditional political parties were defeated. The largest number of votes received the League of the North, the movement of euro-skeptics and opponents of the EU immigration policy, and the populist party Five Stars Movement, which promises to increase budget spending. After lengthy negotiations, the political leaders of the League (Matteo Salvini) and Five Stars (Luigi Di Maio) agreed to form a government in which they themselves held the posts of vice-premiers, giving the highest leading post of prime minister to a neutral figure - law professor Giuseppe Conte.
The new government has begun to implement campaign promises: approved introduction of a minimum guaranteed income and lower retirement age. These measures were included in the draft budget for 2019, but problems began when the budget was negotiated with the European Union. The previous government agreed on a plan to gradually reduce the budget deficit, in 2019 it should have been 0.8%. The presented draft budget of Italy suggests a deficit of 2.4%. The inconsistency of the country's budget at the European level will be an unprecedented event that threatens Italy with a set of sanctions and could lead to the country's withdrawal from the euro zone.
The increase in the budget deficit to 2.4% is really critical, because the level of Italy's public debt is one of the largest in the world. After 2008, debt/GDP grew by 5% per year and in 2013 reached 129%. To solve the debt problem, the European Central Bank lowered its key interest rate to zero in 2014, launched a buy-back mechanism on its balance sheet of government and corporate bonds. Countries with high levels of debt are demanded to bring the budget to a deficit-free level in order to gradually begin to pay. However, Italy, despite the measures taken to save, including the unpopular increase in the retirement age, did not manage to reduce the debt. It only stabilized at around 130% of GDP.
How to resolve the conflict between Italy and the EU? Despite belligerent rhetoric, the parties understand that the main thing is not to delay the conflict. The profitability of Italian government bonds since the elections has already increased by 1.5–2% per annum. If investors are not quickly reassured, the increase in yields on the secondary market will turn into an increase in interest expenses of the budget. Then both sides will lose out: the Italian leaders will find that the funds meant for fulfilling their election promises were spent on debt servicing.
The European Commission officials, who initially took a tough stance (the European Commission rejected the draft budget of Italy, demanding that it be finalized) alsoneed to think about finding a compromise. If they play for time, the unacceptable draft budget will turn out to be a fait accompli due to the rising cost of servicing the debt, and then the further increase in the deficit will have to be negotiated once again. In addition, the ECB's balance sheet now contains hundreds of billions of euro of Italian government bonds and loans to Italian banks. So, unlike the previous peak of the European debt crisis, Italy's debt is now a much greater problem of the creditor, not the debtor.
The ECB plans to stop buying bonds on its balance sheet from 2019. This means that Italy, in any case, will have to look for buyers in the market for an increasing amount of its debt securities. At the moment it is difficult to predict what additional premium will have to offer market investors and whether it will be possible to convince them to increase their investments in Italy.
Finally, the active penetration of political marginals into the institutions of power in European countries is a signal that radical changes are not far off. EU authorities need to attend to a final solution to the debt problem. This can be done only by changing the direction of monetary policy by 180 degrees: to allow inflation to accelerate, save zero value of money, extend the asset purchase program and thus divert real rates even further into the negative zone.
Despite the fact that while the ECB promises to follow the course of the US Federal Reserve (first stop quantitative easing and then move on to a rate increase), investors are less likely to believe that this is possible.


Expect top performance with rugged steel shelving that features super-strong roll-formed steel framing with positive interlocking beam-and-post connections for quick assembly. Top and bottom shelf levels also include double-rivet support for added rigidity. This unit includes shelf supports and 5/8" particleboard decking. Levels adjust at 1-1/2" increments and permit 4-way access. 14-gauge steel uprights measure 2-1/4" x 1-1/2". Durable gray baked enamel.


This type of question used to cause me far more stress and identity defensiveness than it does now. Being the youngest born, there can be the attraction towards defending yourself for your piece of the pie. Smart enough, loud enough, opinion above the rest, etc. It can be a trap easily ensnaring you in times of hurt or weakness. But it also stands out in times of security and strength. If you are a young leader I am sure you can relate.
caught me off-guard because I have not entertained it in quite some time. In the past it has been a trigger because of what I have already said about youthfulness. I have felt like a 'younger leader' in all of my past settings. The problem has never been the question of actual age, but of other things held important that then come into question. There is usually a tone, a facial expression, and of course, a look at others in the circle to see if they can get an 'amen'. Most often it is said as a lighthearted barb, but without fail, it derails the person in question.
What does it call into question?
If you are an individual that consistently uses that question above, you know what it does.
When I catch myself in the wrong on this one, and it has happened, I try to find a way to bring the respect back up to par. When it does not happen, I feel I have wronged the person far more than just in that conversation. I left a mark on the memories of everyone that was part of the conversation. It may not be a life long disruption for them, but it can stay with everyone longer than it needs to. Unfortunately, you will find this far more prevalent in Christian ministry circles. There are plenty of testimonies from young leaders on this phenomena. This always baffles me, considering how many church leaders continually ask the question of how to retain and develop young leaders.
Insecurity – Especially if it comes from higher level organizational leadership.
Ineptitude – Generally from someone who feels they do not understand something.
Inhumility – A person who desires to remind the crowd of their stature.
OK, that last one is not a word, but it worked with the 'in-' sequence. A person may not intend to show weakness in this way, but by going to the least common denominator they lowered the bar on the conversation. Fear of not belonging, looking stupid, or just 'humblebragging', has not made us all equals. It makes one lesser for your sake, and that does not look good on any playground.
"So Eric, how did this make you feel?" Well, at first I had to take a step back. But then I leaned into their insecurity, realizing that the person asking is either feeling less and needs building up; or feels like more, and is not my problem. 20 years ago it would have sat in my mind for a week. Now I just feel sorry for leaders that are younger than I am and have to deal with those individuals on a regular basis. Earning their stripes, becoming the same, unless they gain wisdom through those moments.
So are you an old dog learning new tricks? I sure hope so. Teachability is a lifelong trait, and if you are a worthy leader others will take note. If you need to puff yourself up, remember there will be someone around the corner who is older and smarter than you.
If you are young and reading this? Remember that no matter how many wrinkles are in front of you, we all end up back at the playground at some point. You may just have stumbled upon someone feeling like it is their turn on the swing.
Maturity does not have a number.


text:
Q: PHP cannot select database even though connected Just installed MAMP and am learning about php and connecting to my databases. I seem to be able to connect to mysql but can't connect or see any databases in phpMyAdmin.
Here's my php code:
<?php

$user = 'root';
$password = 'root';
$db = 'test';
$host = 'localhost';

$link = mysqli_connect($host, $user, $password);

//newly editied
if ($link->connect_error) {
    die('Connect Error (' . $mysqli->connect_errno . ') '
        . $mysqli->connect_error);
}

$db_selected = mysqli_select_db($db, $link);

if (!$db_selected) {
   echo "did not connect";
}
?>

When I run it, I'll get the words "good", so I know I'm connecting, followed by "did not connect", so it's not connecting to my database.
I've also tried adding this code and nothing gets echoed at all even though I have several databases created.
$res = mysqli_query("SHOW DATABASES");

while ($row = mysqli_fetch_assoc($res)) {
    echo $row['Database'] . "\n";
}

Any help is appreciated!

A: You are wrong when checking the connection status.
You use:
if ($link) {
    echo "good";
}

And should use:
if ($link->connect_error) {
    die('Connect Error (' . $mysqli->connect_errno . ') '
            . $mysqli->connect_error);
}

As per the PHP documentation, mysqli_connect() will always return an object, so it will never be false.
You also inverted parameters $db and $link on DB selection, and used an improper function in consideration of your previous code. It should be
$mysqli->select_db($db)

And not:
$db_selected = mysqli_select_db($db, $link);

which in correct order is in fact:
$db_selected = mysqli_select_db($link, $db);

Read the mysqli_select_db() PHP documentation for more details on proper use.

redpajama_set_name: RedPajamaStackExchange


text:
Page:Popular Science Monthly Volume 19.djvu/221
This page has been validated.
COMPOUND POLITICAL HEADS.
while the Frisians, who, after centuries of resistance to the Franks, were obliged to yield and render small tributary services, retained their internal autonomy. They formed "a confederation of rude but self-governed maritime provinces," each of these seven provinces being divided into districts severally governed by elective heads with their councils, and the whole being under a general elective head and a general council.
Of illustrations which modern times have furnished, must be named those which again show us the effects of a mountainous region. The most notable is, of course, that of Switzerland. Surrounded by forests, "among marshes and rocks and glaciers, tribes of scattered shepherds had, from the early times of the Roman conquest, found a land of refuge from the successive invaders of the rest of Helvetia." In the labyrinths of the Alps, accessible to those only who knew the ways to them, their cattle fed unseen; and against straggling bands of marauders who might discover their retreats they had great facilities for defense. These districts—which eventually became the cantons of Schwytz, Uri, and Unterwalden, originally having but one common center of meeting, but eventually, as population increased, getting three, and forming separate political organizations—long preserved complete independence. With the spread of feudal subordination throughout Europe, they became nominally subject to the Emperor; but, refusing obedience to the superiors set over them, they entered into a solemn alliance, renewed from time to time, to resist outer enemies. Details of their history need not detain us. The fact of moment is, that in these three cantons, which physically favored in so great a degree the maintenance of independence by individuals and by groups, the people, while framing for themselves free governments, united on equal terms for joint defense. And it was these typical "Swiss," as they were the first to be called, whose union formed the nucleus of the larger unions which, through varied fortunes, eventually grew up. Severally independent as were the cantons composing these larger unions, there at first existed feuds among them, which were suspended during the needs for joint defense. Only gradually did the leagues pass from temporary and unsettled forms to a permanent and settled form. Two facts of significance should be added. One is that, at a later date, a like process of resistance, federation, and emancipation from feudal tyranny, among separate communities occupying small mountain-valleys, took place in the Grisons and in the Valais—regions which, though mountainous, were more accessible than those of the Oberland and its vicinity. The other is that the more level cantons neither so early nor so completely gained their independence; and, further, that their internal constitutions were less free in form. A marked contrast existed between the aristocratic republics of Berne, Lucerne, Fribourg, and Soleure and the pure democracies of the forest cantons and the Grisons; in the last of which
Retrieved from "https://en.wikisource.org/w/index.php?title=Page:Popular_Science_Monthly_Volume_19.djvu/221&oldid=7118087"


I am based in Cairo, Egypt, and I wear a lot of hats. I'm privileged to work with Lingua making GV available in dozens of languages. Know more about me in this interview, and about my role in GV. Check out my blog, and follow me on Twitter!
Volunteer Translators And Editors Needed for Global Voices Czech Lingua!
Global Voices is looking for Czech volunteer translators!
Volunteer Translators And Editors Needed for Global Voices Chinese Lingua!
Global Voices is looking for Chinese speaking volunteer translators!


text:
Krzyżtopór è un castello situato nel paese di Ujazd, nel comune di Iwaniska, nella Polonia meridionale (voivodato della Santacroce), 15 km a sud ovest di Opatów. Fu fatto costruire da un nobile della szlachta, voivoda di Sandomierz, Krzysztof Ossoliński (1587-1645). Il castello fu parzialmente distrutto durante il cosiddetto diluvio, l'invasione svedese del 1655, e successivamente danneggiato irrimediabilmente durante la guerra della Confederazione di Bar dai russi nel 1770. Le rovine sono comunque visitabili, a pagamento.

Costruzione e storia

Non è noto quando iniziò la costruzione di questo imponente edificio. Il padre di Krzysztof Ossoliński, Jan Zbigniew Ossoliński, gli diede il villaggio di Ujazd nel 1619; comunque il primo documento che prova la costruzione del castello risale al 1627 quando era ancora incompleto. Fu terminato probabilmente nel 1644, dopo aver speso l'enorme somma di 30 milioni di złoty. Sfortunatamente Ossoliński non poté godere a lungo del castello, dato che morì improvvisamente l'anno successivo a Cracovia.

Il castello fu ereditato dal figlio, Krzysztof Baldwin Ossoliński, che morì nel 1649 nella Battaglia di Zboriv. Dopo la sua morte il complesso fu acquistato dalla famiglia Denhoff e poi dalla famiglia Kalinowski.

Nel 1655, durante l'invasione svedese della Polonia, il castello fu catturato dagli svedesi che lo occuparono fino al 1657, saccheggiando l'intero complesso. I danni alla struttura furono così estesi che dopo il ritiro degli svedesi non fu più restaurato perché ritenuto troppo costoso. Alcune famiglie nobili (i Morsztyn, i Wiśniowiecki e i Pac) vissero nell'ala occidentale, quella meglio preservata, ma il resto della costruzione rimase inagibile.

Nel 1770, durante la Confederazione di Bar, Krzyżtopór, difeso dai confederati, fu sequestrato dai russi che completarono la rovina dell'edificio. Secondo quanto riferito, l'ultimo abitante del complesso, Stanisław Sołtyk, visse qui nel periodo 1782-1787, dopo di che Krzyżtopór rimase deserto.

Durante la Seconda guerra mondiale il complesso fu nuovamente saccheggiato. Una ristrutturazione parziale ha avuto luogo nel 1971, e nel 1980 il ministero degli interni ha deciso di ricostruirlo per essere utilizzato come luogo di riposo e ricreazione per gli ufficiali. Quest'opera è stata interrotta nel 1981, quando la legge marziale fu imposta in Polonia.

Progetto

Nonostante le approfondite ricerche, non abbiamo molti documenti sul progetto dell'edificio: la data di inizio della costruzione è ignota. Krzysztof Ossoliński era "appassionato" di magia nera; mentre le simmetrie della costruzione sono evidenti dalle macerie, altri significati nascosti nel progetto dell'edificio sono perduti.

Il nome esatto stesso dell'edificio è sconosciuto: Krzysztof Ossoliński lo chiamò ufficialmente Krzysztofory, derivato dal latino Christophoros. Successivamente, il nome divenne Krzyżtopór, insieme di due parole polacche: - krzyż ("croce", un simbolo della fede cattolica degli Ossoliński) e topór ("ascia", simbolo presente nello stemma della famiglia). Entrambi i simboli possono essere visti nel portale del castello. Inoltre vi è una data, "1631", ma non è chiaro a quale evento della storia del castello si riferisca.

Il castello, costruito dall'italo-svizzero Wawrzyniec Senes (Lorenzo Muretto, probabilmente nato a Sent, Svizzera), è un tipico esempio del cosiddetto palazzo in fortezza. La dimensione totale del complesso è di 1,3 ettari; la lunghezza del perimetro è 700 metri; l'area totale delle stanze è di circa 70 000 metri quadrati. Il progetto di base è preso da quello del Palazzo Farnese di Caprarola. Secondo quanto riportato dalle fonti, la struttura venne progettata in modo da rappresentare architettonicamente un calendario: infatti vi erano quattro torri a rappresentare le stagioni, dodici sale equivalenti ai mesi, cinquantadue camere, ovvero una per ogni settimana e 365 finestre, tante quanto sono i giorni. In realtà le camere erano 366, ma una veniva usata solamente negli anni bisestili. Per motivi difensivi il castello era stato edificato su una collina rocciosa rendendo impossibile ai nemici scavare un tunnel sotto di esso.

A Krzyżtopór vi erano comodità rare per il XVII secolo, come il sistema di ventilazione e di riscaldamento e un sistema di tubi che portava acqua corrente nelle stanze. Presumibilmente, nel soffitto di una delle sale da pranzo vi era un acquario con pesci esotici. Inoltre un sistema di montavivande portava i cibi dalle dispense ai piani superiori.

Vi erano anche stalle per 370 cavalli, ognuna con il proprio specchio e mangiatoia in marmo.

Il castello oggi
Il castello, lontano dalle strade principali e senza connessione alla rete ferroviaria è visitato oggi da relativamente pochi turisti, che possono comunque farsi un'idea dell'enormità del complesso, anche se in rovina.
Varie volte si è pensato a una ricostruzione dell'edificio ma la mancanza di fondi ha sempre impedito di completare il progetto.

Il castello compare nel libro di James Michener Poland (1981).

Note

Voci correlate
 Barocco in Polonia

Altri progetti

Collegamenti esterni

Voivodato della Santacroce
Architetture barocche della Polonia

redpajama_set_name: RedPajamaWikipedia


30 Preset Styles or Custom!
Magnum Opus brings a break through in Joomla template color styles! This template comes with an amazing 30 preset styles or you can create your own in seconds! And no that is not an exaggeration, you can really create a color style of your choice in seconds.
The S5 Tab Show is a great way to organize your site's content with a clean and professional display!
With the ability to use up to 20 tabs you will never run out of tabs again and each page can have its own unique tabs!
Here's how it works - The S5 Tab Show uses 20 modules positions: s5_tab1, s5_tab2, s5_tab3, etc. Simply publish your module to anyone of these module positions (you may publish to the same position more than once for multiple modules in one tab). In the module manager assign what page you want that module to show on. If the module is set to show on a certain page it's tab will also show on that page.
An example of this can be seen on this demo. The modules on the homepage are assigned to positions: s5_tab1 - 5 and are assigned to the homepage only. The modules on the S5 Tab Show Tutorial page are assigned to positions: s5_tab6 - 9 and are assigned to that page only; making two unique sets of tabs on two different pages.
The S5 No-MooMenu is one of the most advanced menu systems for Joomla! Unlike other similar menu systems that use mootools and cause script conflictions with your modules and components the S5 No-MooMenu is completely powered by S5 Effects so your modules and components won't cause any conflictions using this menu system. Just mouse over the top menu and you will notice the menu smoothly expand and fade in.
Customizing Magnum Opus to fit your needs couldn't be easier! We've loaded this demo with tutorials to make setup a breeze! Be sure to visit each of the tutorial pages on the main menu to help you along the way and make Magnum Opus your greatest work yet!
Back by popular demand we have included the S5 Ultimate Drop Down into the Magnum Opus template!
S5 Effects - No script conflictions!
Magnum Opus brings you more options and flexibility than you ever thought possible before! Create your own color scheme in seconds, 42 modules styles, 23 module positions, and custom widths are just barely scratching the surface!
Magnum Opus is offered in both Joomla 1.0x and Joomla 1.5 native versions! In fact all Shape 5 templates come with both installs available!
Join Shape 5 Today and see what the whole Joomla community is talking about!
Customizing Magnum Opus to fit your needs couldn't be easier! Be sure to visit each of the tutorial pages on the main menu to help you along the way and make Magnum Opus your greatest work yet!
Shape 5 has a great reputation for good customer service in the Joomla Community! Just read what our members are saying ... click here!
S5 Effects Means - No Script Conflictions!
Tired of script conflictions? So are we and that is why we launch our templates with S5 Effects. Magnum Opus and all the items you see on this demo are 100% fully powered by S5 Effects and will not cause any script conflictions with any module or component you are using!
Magnum Opus - Your Greatest Work Yet!


text:
Q: Vapor 3, Fluent 3 and Many-to-Many relations not working as expected Just started with Vapor 3 along with a MySQL database and I am having hard time figuring out the Relations part.
I have created 2 models so far: Movie and Actor.
A Movie can have many Actors and an Actor can have many Movies.
Movie Model:
import Vapor
import FluentMySQL

final class Movie: Codable {

    var id: Int?
    var name: String
    var synopsis: String
    var dateReleased: Date
    var totalGrossed: Float

    init(id: Int? = nil, name: String, synopsis: String, dateReleased: Date, totalGrossed: Float) {
        self.id = id
        self.name = name
        self.synopsis = synopsis
        self.dateReleased = dateReleased
        self.totalGrossed = totalGrossed
    }

}

extension Movie {
    var actors: Siblings<Movie, Actor, MovieActor> {
        return siblings()
    }
}

extension Movie: Content {}
extension Movie: Parameter {}
extension Movie: MySQLModel {}

extension Movie: MySQLMigration {
    static func prepare(on conn: MySQLConnection) -> Future<Void> {
        return MySQLDatabase.create(self, on: conn) { builder in
            builder.field(for: \.id, isIdentifier: true)
            builder.field(for: \.name)
            builder.field(for: \.synopsis)
            builder.field(for: \.dateReleased, type: .date)
            builder.field(for: \.totalGrossed, type: .float)
        }
    }
}

Actor Model:
import Vapor
import FluentMySQL

final class Actor: Codable {

    var id: Int?
    var firstName: String
    var lastName: String
    var fullName: String {
        return firstName + " " + lastName
    }
    var dateOfBirth: Date
    var story: String

    init(id: Int? = nil, firstName: String, lastName: String, dateOfBirth: Date, story: String) {
        self.id = id
        self.firstName = firstName
        self.lastName = lastName
        self.dateOfBirth = dateOfBirth
        self.story = story
    }

}

extension Actor {
    var actors: Siblings<Actor, Movie, MovieActor> {
        return siblings()
    }
}

extension Actor: Content {}
extension Actor: Parameter {}
extension Actor: MySQLModel {}

extension Actor: MySQLMigration {
    static func prepare(on conn: MySQLConnection) -> Future<Void> {
        return MySQLDatabase.create(self, on: conn) { builder in
            builder.field(for: \.id, isIdentifier: true)
            builder.field(for: \.firstName)
            builder.field(for: \.lastName)
            builder.field(for: \.dateOfBirth, type: .date)
            builder.field(for: \.story, type: .text)
        }
    }
}

And I have also created a MovieActor model as a MySQLPivot for the relationship:
import Vapor
import FluentMySQL

final class MovieActor: MySQLPivot {

    typealias Left = Movie
    typealias Right = Actor

    static var leftIDKey: LeftIDKey = \.movieID
    static var rightIDKey: RightIDKey = \.actorID

    var id: Int?

    var movieID: Int
    var actorID: Int

    init(movieID: Int, actorID: Int) {
        self.movieID = movieID
        self.actorID = actorID
    }

}

extension MovieActor: MySQLMigration {}

And have added them to the migration section in the configure.swift file:
var migrations = MigrationConfig()
migrations.add(model: Movie.self, database: .mysql)
migrations.add(model: Actor.self, database: .mysql)
migrations.add(model: MovieActor.self, database: .mysql)
services.register(migrations)

All the tables in the database are being created just fine, but I am not receiving the relationship when calling the get all movies service. I am just receiving the Movie's properties:
final class MoviesController {

    func all(request: Request) throws -> Future<[Movie]> {

        return Movie.query(on: request).all()
    }

}

[
    {
        "id": 1,
        "dateReleased": "2017-11-20T00:00:00Z",
        "totalGrossed": 0,
        "name": "Star Wars: The Last Jedi",
        "synopsis": "Someone with a lightsaber kills another person with a lightsaber"
    },
    {
        "id": 3,
        "dateReleased": "1970-07-20T00:00:00Z",
        "totalGrossed": 0,
        "name": "Star Wars: A New Hope",
        "synopsis": "Someone new has been discovered by the force and he will kill the dark side with his awesome lightsaber and talking skills."
    },
    {
        "id": 4,
        "dateReleased": "2005-12-20T00:00:00Z",
        "totalGrossed": 100000000,
        "name": "Star Wars: Revenge of the Sith",
        "synopsis": "Anakin Skywalker being sliced by Obi-Wan Kenobi in an epic dual of fates"
    }
]

Your help would be appreciated! Thank you very much :)

A: So I believe you're expecting the relationship to be reflected in what is returned when you query for a Movie model. So for example you expect something like this to be returned for a Movie:
{
    "id": 1,
    "dateReleased": "2017-11-20T00:00:00Z",
    "totalGrossed": 0,
    "name": "Star Wars: The Last Jedi",
    "synopsis": "Someone with a lightsaber kills another person with a lightsaber",
    "actors": [
        "id": 1,
        "firstName": "Leonardo",
        "lastName": "DiCaprio",
        "dateOfBirth": "1974-11-11T00:00:00Z",
        "story": "Couldn't get an Oscar until wrestling a bear for the big screen."
    ]
}

However, connecting the Movie and Actor models as siblings simply just gives you the convenience of being able to query the actors from a movie as if the actors were a property of the Movie model:
movie.actors.query(on: request).all()

That line above returns: Future<[Actor]>
This works vice versa for accessing the movies from an Actor object:
actor.movies.query(on: request).all()

That line above returns: Future<[Movie]>
If you wanted it to return both the movie and its actors in the same response like how I assumed you wanted it to work above, I believe the best way to do this would be creating a Content response struct like this:
struct MovieResponse: Content {

    let movie: Movie
    let actors: [Actor]
}

Your "all" function would now look like this:
func all(_ request: Request) throws -> Future<[MovieResponse]> {

    return Movie.query(on: request).all().flatMap { movies in

        let movieResponseFutures = try movies.map { movie in
            try movie.actors.query(on: request).all().map { actors in
                return MovieResponse(movie: movie, actors: actors)
            }
        }

        return movieResponseFutures.flatten(on: request)
    }
}

This function queries all of the movies and then iterates through each movie and then uses the "actors" sibling relation to query for that movie's actors. This actors query returns a Future<[Actor]> for each movie it queries the actors for. Map what is returned from the that relation so that you can access the actors as [Actor] instead of Future<[Actor]>, and then return that combined with the movie as a MovieResponse.
What this movieResponseFutures actually consists of is an array of MovieResponse futures:
[Future<[MovieResponse]>]
To turn that array of futures into a single future that consists of an array you use flatten(on:). This waits waits for each of those individual futures to finish and then returns them all as a single future.
If you really wanted the Actor's array inside of the Movie object json, then you could structure the MovieResponse struct like this:
struct MovieResponse: Content {

    let id: Int?
    let name: String
    let synopsis: String
    let dateReleased: Date
    let totalGrossed: Float
    let actors: [Actor]

    init(movie: Movie, actors: [Actor]) {
        self.id = movie.id
        self.name = movie.name
        self.synopsis = movie.synopsis
        self.dateReleased = movie.dateReleased
        self.totalGrossed = movie.totalGrossed
        self.actors = actors
    }
}

A: So the underlying issue here is that computed properties aren't provided in a Codable response. What you need to do is define a new type MoviesWithActors and populate that and return that. Or provide a second endpoint, something like /movies/1/actors/ that gets all the actors for a particular movie. That fits better with REST but it depends on your use case, as you may not want the extra requests etc


You can learn the essence of Japanese manners via tea ceremony, and enjoy kabuki theatre.
The extremely highly-esteemed and formal way-of-tea originated with Enshū Kobori, a tea-ceremony expert and man of letters at the start of the seventeenth century. The essence of the Enshu-style tea ceremony is known as "kirei-sabi", combining the simplicity of wabi-sabi with the value of "kirei" or beauty : a form of beauty appreciable by everyone, which stems from balance and harmony. Experience the heart of Japanese culture with this introduction into the Japanese tea ceremony.
The tour continues to take you on a journey to another cultural experience of kabuki. Kabuki theatre goes back about 400 years in history, and there is a single-act-ticket available for beginners of kabuki, to make the experience more approachable. Satiate yourself in the art, beauty, and tradition of kabuki, with its delicate acting, dancing and music. The loyalty, righteousness and humanity that you will find in the storyline may give you a feel the core of Japanese culture, which to this day lies deeply in the mind and hospitality of Japanese people.
In case the Kabuki play is not performed on the tour day, a visit to the Hamarikyu Garden will be conducted alternatively. Taking stroll through the Hama-rikyu Garden, the waterfront of Edo, you can enjoy the beautiful seasonal landscape including the three-hundred- year pine tree, otsutaibashi-bridge over the tidal pond and the teahouse.
Tea ceremony is held on Tatami floor.
Time schedule is subject to change.
Participant for this tour to be 13 years old or over.
1. 100% cancellation fee will be charged at the time of settlement.
2. The pick up and drop off place is limitted inside of the 23 wards of Tokyo. As for other area like hotels around Narita airport, Yokohama area, etc, Additional fee will be occurred .


text:
2021 September Defibrillators installed across three neighbourhood sites in city
Defibrillators installed across three neighbourhood sites in city
Holocaust Memorial Day to be marked on Saturday
Ottawa Road improvement scheme completed
Next phases of work to get underway in West End
Published on Wednesday, September 29, 2021
NEW life-saving defibrillators have been installed at three community sites across Beaumont Leys following work by ward councillors with support from a local heart charity.
The devices, which can be used by members of the public to help treat someone who is suffering a cardiac arrest, have been paid for using unspent funds from the Beaumont Leys community grant, which is designed for projects helping local people.
Ward councillors had teamed up with the Joe Humphries Memorial Trust (JHMT) – one of the key goals of the charity is to ensure public facilities across the city and county are equipped with defibrillators, known as AEDs, in places where they can be easily accessed in an emergency.
The new devices have now been installed outside the LOROS Hospice, off Groby Road, and at Home Farm Neighbourhood Centre in Strasbourg Drive.
An AED in a cabinet has also been installed in the residential area of Lady Hay Road.
In each case, the equipment will be in a location which is accessible 24/7.
The latest three AEDs in Beaumont Leys are in addition to 33 devices which have been installed in all of Leicester's parks over the last few years.
The Joe Humphries Memorial Trust was set up following the death in 2012 of 14-year-old Joe Humphries, who died while jogging with his friend.
His death was a result of Sudden Arrhythmic Death Syndrome (SADS), a lethal group of undiagnosed heart conditions that claim the lives of more than 12 teenagers and young adults, aged 12-35, every week in the UK.
SADS conditions occur because the electrical system of the heart is not working properly, so that the heart beats with an abnormal rhythm.
Since then, the JHMT has worked closely with schools, sports clubs and community groups across the city and county to raise awareness of SADS and to ensure more people have key CPR skills and know how to use a defibrillator, and that publicly-accessible defibrillators are available within communities.
Cllr Hemant Rae Bhatia, one of three Beaumont Leys ward councillors, worked alongside the JHMT to find suitable locations and funding for three AEDs.
The trust is also planning to deliver CPR and AED familiarisation training sessions in the Beaumont Leys community.
Cllr Bhatia said: "With no events taking place due to lockdown restrictions we had to find alternative ways to support our communities. We decided to invest our ward community fund into something tangible and long lasting that would provide health benefits or could even be a lifesaver.
"Thankfully we were in contact with city council officers who were already well-versed with installing defibrillators. These devices are lifesavers in the event of a cardiac arrest. We decided to fund three of them in different locations across the ward, thus ensuring wider coverage.
"Home Farm Neighbourhood Centre, LOROS at Heathley Park and Lady Hay Road in Bradgate Heights now have fully functional and fully automatic, state of the art AEDs which are publicly accessible.
"Even if we save one life through this, then it will be well worth it. There will be more coming to other parts of the ward too.
"On behalf of my fellow councillors, Vi Dempster and Paul Westley, I would like to thank our community stakeholders, city council staff and the Joe Humphries Memorial Trust for their great support in making this happen. It would not have been possible without them."
JHMT's Charles Poole added: "In the event of someone suffering a cardiac arrest, CPR and rapid access to a defibrillator can increase the patient's chances of survival significantly.
"Accessed via the ambulance service when calling 999, these AEDs are designed to be used by anyone. The JHMT training in CPR and familiarising people with how to use AEDs will also help give added confidence."
October 4 to 10 is SADS Awareness Week across the city and county, an annual campaign where the JHMT undertakes awareness-raising work, including training for community sports clubs and groups.
The work highlights the shocking statistic that 12 young people aged under 35 in Britain die each week from undiagnosed heart conditions like SADS.
To find out more go to www.jhmt.org.uk
Picture caption: Jo Kavanagh (LOROS), Cllr Paul Westley and Cllr Hemant Rae Bhatia at the installation of a defibrillator outside the LOROS hospice in Leicester.
Groups invited to apply for anti-poverty community grants
Free Christmas crafts and festive fun at Leicester libraries


text:
WSU Viticulture & Enology
Industry Grant
2021 Wineries
Auction Lots
Locate Wines
Auction of Washington Wines raises over $1.74 million during first-ever virtual event series
SEATTLE – Aug. 17, 2020 — The Auction of Washington Wines (AWW) pivoted online for its 33rd series of charitable wine events from Aug. 11–15, 2020. Through online auctions and a live streamed virtual gala presented by Seattle Bank, the organization raised over $1.74 million. Proceeds from the August events benefit Seattle Children's, Washington State University Viticulture & Enology Program research, as well as AWW. Top auction lots of the virtual live gala were the "PPP – Post-pandemic Pool Party hosted by Macklemore," a trip to London to see the premiere of the next Bond movie and the chance to explore Napa, "The Other Wine Country" with AWW 2020-2021 Honorary Chair, Karen MacNeil. The total raised for these items was $117,500.
"We are so grateful for the incredible show of support for the Washington wine industry, which is such a key part of the overall Washington state economy," said AWW board president Beth McCaw.
USA, Washington, Seattle. 2020 Virtual Gala, produced by the Auction of Washington Wines.
Auction of Washington Wines takes Events Online, Aug. 11-15
Participants can bid on exclusive wines and experiences including Honorary Chair Karen MacNeil's Washington-Napa experience, a pair of Honorary Vintner Mark McNeilly's Mark Ryan Winery engraved 9-liter bottles and a 22-year vertical of Leonetti Cellar Sangiovese
The Auction of Washington Wines' (AWW) annual August weekend of events will move online Aug. 11–15, 2020 for the first time in its 33-year history. The nationally lauded organization will feature a series of online and virtual auctions with more than 100 exciting auction lots. Presented by Seattle Bank, proceeds will benefit Seattle Children's and Washington State University Viticulture & Enology Research. Registration for all events is now open.
Auction of Washington Wines Moving to Virtual-Only Events in 2020
This year's Winemaker Picnic and Barrel Auction, Private Barrel Auction, the Gala Live Auction and other signature events will become a virtual celebration in support of the Washington wine industry and Seattle Children's
SEATTLE — April 30, 2020 — Auction of Washington Wines (AWW), a nonprofit elevating awareness of Washington wines through a series of annual events, announced its decision to move its 2020 events to a virtual-only format in response to the current public health crisis. AWW's 33rd annual wine weekend of events in August will shift to a virtual auction for participants to enjoy in the comfort of their homes on Saturday, Aug. 15, 2020. Additional details about the annual summertime celebration will be announced soon. AWW leaders made the decision with consideration for the safety and wellbeing of all patrons, donors, sponsors, winemakers and staff. The organization is working to explore new ways of reaching broader audiences and building more support for Washington's wine industry, which is being significantly economically impacted by the pandemic.
"We must find new ways to come together and are thrilled for the opportunity to re-imagine what this year's programming will look like in a virtual environment," said Jamie Peha, AWW's Executive Director. "We know our supporters will continue to celebrate our region's wines while helping us raise the necessary funds for our partners at Seattle Children's, Washington State University Viticulture and Enology research and the Auction of Washington Wines organization. We look forward to toasting to Washington wine with our supporters in our new virtual environment in the coming days and months."
Auction of Washington Wines Awards $15,000 to Support Adult Education in the Yakima Valley
Grant recipient La Casa Hogar offers education for Latina farmworkers, wine grape growers, pickers, wine producers and their families
Feb. 11, 2020 — Auction of Washington Wines (AWW) today announced it will award its 2019 Industry Grant of $15,000 to La Casa Hogar, a community organization which connects and educates Latina families in Yakima Valley, Wash. The grant will support La Casa Hogar's Adult Education Programs for farmworkers, including wine grape pickers, growers and wine producers, as well as their families.
La Casa Hogar primarily serves people in Yakima county, but also touches Kittitas, Grant and Chelan counties. Its Adult Education program includes six levels of English classes, civic engagement, leadership development, pre-GED, health and nutrition and Spanish and English language exchange. Annually, over 700 individuals are served across adult education, early learning and citizenship programs. By investing in education, La Casa Hogar promotes educational equity, access and leadership among Latina communities of Yakima Valley.
Auction of Washington Wines Hits Another Record, Raising over $4.5 Million During 32nd Annual Event
Washington's premier charitable wine event benefits Seattle Children's and Washington State University's Viticulture and Enology Program
WOODINVILLE, Wash. (Aug. 19, 2019) – Auction of Washington Wines (AWW) celebrated its 32nd annual weekend of charitable wine events August 15 – 17, 2019, raising over $4.5 million and hitting a new milestone for the second year in a row. The highest bid of the evening was $225,000 for a 1928 vintage Ford Roadster Hot Rod, receiving a $200,000 match from the Ellison Foundation, for a total of $425,000, the highest amount ever received for an auction lot in AWW's history. The lot was purchased by John Goodman, a local real estate developer.
Auction of Washington Wines Toasts Washington Wine with Annual Weekend of Events, August 15-17, 2019
Events Include a Winemaker Picnic, Exclusive Winemaker Dinners and a Formal Gala, All to Raise Funds for Seattle Children's and Washington State University's Viticulture and Enology Research
Photo credit Richard Duval Images for Auction of Washington Wines
SEATTLE July 3, 2019
The Auction of Washington Wines announces its annual weekend of events, from August 15th-17th, celebrating the bounty of Washington wines – from Chardonnay to Cabernet Sauvignon. All events benefit Seattle Children's and Washington State University's Viticulture and Enology Research. The festivities begin with the Winemaker Picnic & Barrel Auction on Thursday, August 15. Raise a glass with Washington winemakers and sip on the state's most exciting and desirable wines – more than 100 wines will be poured at this outdoor event held on the grounds of Chateau Ste. Michelle Winery. Then, on Friday, August 16, the Winemaker Dinners will give wine lovers the opportunity to dine at some of the Puget Sound's most exclusive estates. Each dinner pairs award-winning local chefs with Washington winemakers. The weekend's grand finale, The Gala, will feature an exciting live auction, ranked among 2018's top three highest-earning charity wine auctions in the nation by Wine Spectator Magazine.
All events are 21+.
Auction of Washington Wines Anticipates Its Largest Private Barrel Auction to Date
WOODINVILLE, WASH. (PRWEB) MAY 21, 2019
The Auction of Washington Wines (AWW) announces its largest Private Barrel Auction to date will be held at Novelty Hill-Januik in Woodinville, Washington on Thursday, August 15, 2019. Now in its fifth year, the 2019 Private Barrel Auction will feature a record 47 lots.
The Private Barrel Auction offers top-caliber wine buyers intimate access to extraordinary, unique futures in five case lots from more than 40 premier Washington winemakers. Last year, the Private Barrel Auction brought in a record-breaking $251,500, an 83% increase over the previous year. All proceeds benefit Washington State University's Viticulture and Enology research programs.
Auction of Washington Wines' 2019 Wine and Music Festival in Eastern Washington to Feature 60+ Washington Wines, Live Music
Event in the Heart of Washington Wine Country to benefit Seattle Children's and Washington State University Wine Science Research
SEATTLE (PRWEB) MAY 14, 2019
On Saturday, June 1, 2019, Auction of Washington Wines' Wine and Music Festival will showcase over 60 outstanding Washington wines along with live music from Dakota Brown Band and Jack Rothwell. More than 20 of Washington's award-winning wineries will be in attendance. Guests will nosh on food from Porter's Real Barbecue and Fat Olives Restaurant & Catering. Proceeds benefit Seattle Children's and Viticulture and Enology Research at Washington State University.
As a part of the weekend, the Auction of Washington Wines' 2019 Honorary Grower, Scott Williams of Kiona Vineyards, will host a Vineyard Dinner in Benton City on Friday, May 31, 2019. Guests will enjoy Kiona Vineyards' award-winning wines paired with dishes from Fat Olives Restaurant & Catering.
Auction of Washington Wines Appoints Jamie Peha Executive Director
Wine industry veteran steps in to lead nonprofit event.
SEATTLE (PRWEB) MARCH 22, 2019
The Auction of Washington Wines (AWW) named industry veteran Jamie Peha its interim Executive Director, effective immediately.
Peha has already played a key role as part of the AWW team. As Director of the event's Private Barrel Auction, she grew the program from eight wine lots in 2015 netting $48,000 to 31 lots and a record-breaking $251,000 in 2018. Peha's career highlights include building Taste Washington into a nationally recognized event, growing the Seattle Wine and Food Experience into a two-day financially viable event and serving as interim director for both Woodinville Wine Country and the Walla Walla Valley Wine Alliance.
Auction of Washington Wines Announces 2019 Honorary Vintner and Honorary Grower
Nonprofit names Chris Gorman as Honorary Vintner and Scott Williams as Honorary Grower During Taste Washington Wine Month
SEATTLE (March 12, 2019) The Auction of Washington Wines (AWW), Washington state's only nonprofit wine event that has been around for 32 years, today recognized Chris Gorman of Gorman Winery as its 2019 Honorary Vintner and Scott Williams of Kiona Vineyards as its 2019 Honorary Grower. The individuals were selected because they exemplify leadership in the industry and have made significant contributions to the Washington wine community. These honorary positions are peer-nominated and reserved for leaders who deeply invest in and positively impact the Washington state wine community.
AUCTION OF WASHINGTON WINES
aww@aoww.org
The Auction of Washington Wines is committed to supporting the growth and awareness of the Washington state wine industry through a series of celebrated events.
Photos courtesy of Duval Images & Curbow Photo
© 2008-2020 Auction of Washington Wines


For being the stage of realizing dreams of our employees! To build a happier, much more united and much more expert staff! To reach a mutual gain of our prospects, suppliers, the society and ourselves for Shimadzu Portable X Ray Machine , shimadzu portable x ray machine , Mini Portable X Ray Machine , we are looking forward to the mutual cooperation with all friends at home and abroad and we will create a bright future of business.
We try for excellence, service the customers", hopes to be the most effective cooperation workforce and dominator company for staff, suppliers and shoppers, realizes price share and ongoing marketing for Shimadzu Portable X Ray Machine , shimadzu portable x ray machine , Mini Portable X Ray Machine , we've been fully determined to control the whole supply chain so as to deliver quality merchandise at competitive price in a timely manner. We are keeping up with the advanced techniques growing through creating more values for our clients and society.


Description: Rustic charm is captured beautifully with this mighty majestic Elk walking near the woodland lake while the sun rises in the background of this natural wildlife inspired sconce. Soft ambient light projects through stunning Silver Mica complemented with a frame and hardware hand finished in Antique Copper. Handcrafted by Meyda artisans in the USA, in our manufacturing facility at the foothills of the Adirondack Mountains.


text:
package org.apache.polygene.index.rdf.assembly;

import org.apache.polygene.bootstrap.Assemblers;

@SuppressWarnings( "WeakerAccess" )
public abstract class AbstractRdfIndexingAssembler<AssemblerType>
    extends Assemblers.VisibilityIdentityConfig<AssemblerType>
{
    public AbstractRdfIndexingAssembler()
    {
        identifiedBy( "rdf-indexing" );
    }
}


text:
Lovely Bicycle Ride Revisiting Uji Countryside Photographed Five Years Ago: following »»
«« previous: Strava Segment Tutorial: Removing Suckage and Promoting Quality
Returning to Kyoto, to Hot Summer Cycling and Destroying my iPhone
by Jeffrey Friedl Mon, August 22nd, 2016 3:46pm JST (3 years, 5 months ago)
Nikon D4 + Nikkor 24-70mm f/2.8 @ 24mm — 1/125 sec, f/11, ISO 100 — map & image data — nearby photos
Ascending Through Layers
with an isolated cloudburst in the background
I'm back in Kyoto, after spending the better part of a month with my folks in Ohio. Mom continues to recover from her February stroke. I snapped a few photos out the window as we crossed The States on the Cleveland → San Francisco flight.
Splash of Sun
An hour later crusing along well above the clouds, I noticed another plane keeping pace with us in the far distance (just a tiny speck, dead center in this next photo).
Traveling Companion
the tiny speck in the center of the frame is another plane
Not quite the closeup view from eight years ago. 🙂
Still There
an hour and a half later.... or maybe it's a different plane
Bleak
new Bishop, California
Nikon D4 + Nikkor 24-70mm f/2.8 @ 60mm — 1/320 sec, f/8, ISO 100 — map & image data — nearby photos
Contorted Canals
one wonders about all the factors that contribute to such a herky-jerky path
Spacious Property
not many homes in this part of Tracy, California
I arrived back home in Kyoto last Wednesday evening, and slept well the first night. Jetlag has been much less of a problem lately. It used to crush me for weeks after returning. Looking back at my blog, it turns out that I have two blog posts entitled "The Mystery of Jetlag", one 10 years ago and another four years ago. Lately it's been so much better... maybe my current higher level of fitness helps? Still a mystery.
The next morning, I thought I should do some exercise to truly wake myself up, so I went on a bike ride. It took a while to get everything set up, so I didn't get started until 9am. Kyoto is hot and humid in the summer, and it was 28°C (82F) by the time I left.
iPhone 6+ — 1/2000 sec, f/2.2, ISO 32 — map & image data — nearby photos
Hot in Ohara
crappy iPhone camera doesn't do the scene justice
The ride went well at first and despite not trying all that hard, I got PRs on the first climb, so I guess my fitness level hadn't dropped too much in the month away. I went into the mountains of Shiga Prefecture to a big climb (5km @ 8.4%) on an isolated, little-used road I've been wanting to try...
Heading In
temperature now 35°C (95F)
While on this climb I was suddenly overcome with deep fatigue. I think it was jetlag and not heat or The Bonk (lack of calories). I literally lay down in the middle of the road and closed my eyes for a while.
iPhone 6+ — 1/40 sec, f/2.2, ISO 32 — map & image data — nearby photos
Fellow Traveler
Rejuvenated after a 20-minute rest, I finished the climb at a leisurely pace, eventually just missing the worst time recorded for the segment. 🙂
The little guy in the previous photo was just the start of the most "nature" I'd seen on a ride... I was continually joined by some critter or another.... snakes, crickets, deer, small lizards (salamanders?), butterflies, toads. Typing it out like this, the list doesn't seem that impressive so perhaps I'm forgetting the bulk of it, but I had a sense of amazement during the ride about how much wildlife I encountered.
Nice Views
that break down to a blotchy mess with the heat, humidity, and tiny iPhone camera sensor
The long steep descent down the other side was fun, and made me happy that I had not tried to climb it, for I felt it must be much harder than the side I'd actually done. Part way down, I came across this Buddha statue:
iPhone 6+ — 1/125 sec, f/2.2, ISO 32 — map & image data — nearby photos
I realized then that this was the difficult "Buddha road" I'd heard about
Exiting the Forest
into the rice fields (near these fields from nine years ago)
As I descended into a village on the exposed road, the temperature climbed from the 27° it had been in the forest, up to 39° on the exposed open road. (From 81F to 102F.) It was hot.
I somehow had the idea that I should go ahead and retrace my steps back up the mountain, doing the climb that I was so fearful about on the way down. So, after buying 1.5L of water at a vending machine, I did exactly that, heading up and then repeating the descent right back down to the same vending machine (where I stocked up on another 1.5L).
The second descent was faster than the first because I didn't stop for photos, but otherwise it was pretty mild, so I was surprised to find that I got the KOM on the descent. Anyway, I felt satisfied that I'd not shied away from the tough climb after the first thought of dreading it.
Later while coasting downhill after a milder climb, the TiGRA Sport bicycle iPhone mount that I spoke so highly of last year failed at a mild bump, and my iPhone 6+ hit the pavement at 44kph...
map & image data — nearby photos
Death of my iPhone
Courtesy of a TiGRA Sport mount that failed
Nikon D4 + Sigma 105mm F2.8 EX DG OS HSM Macro — 1/500 sec, f/9, ISO 1600 — map & image data — nearby photos
Predictable Result
Nikon D4 + Sigma 105mm F2.8 EX DG OS HSM Macro — 1/500 sec, f/4.8, ISO 5000 — map & image data — nearby photos
The Culprit
two teeth failed and another is in the process... seems like a simple case of plastic fatigue )-:
The action shot above is a screen capture from the video from the bike rear camera. The road was mildly bumpy, but nothing enough to make me think it was one particular jolt that the TiGRA mount failed on. Rather, I'm guessing it was just accumulated fatigue that just happened to cross the line at that time.
I found the smashed phone right away, but despite searching for 15 minutes along both sides of the road, I couldn't find the case. One side of the road dropped off steeply and was overgrown with tall weeds, so I figured it must have slid somewhere in there. Until I saw the video (after returning home), I had assumed the case separated from the phone on impact with the road, but the video shows the light plastic case sailing away on its own. It probably went way off into the high grass.
(Armed with new info from the video, I returned two days later to search again, but 15 minutes struggling in the overgrown embankment yielded only cuts and bug bites..)
Sigh. I'll have to ask TiGRA Sport about this.
Dejected, I continued home. There wasn't much tree cover for quite a while, and though the 35° (95F) temperature wasn't so bad, the direct sun was brutal and I was quickly drained. The final climb that stood between me and a cool shower at home should have taken 15 minutes, but I was wiped out, so stopped for long periods when I could find shade. In the end it took an hour. This wasn't jetlag... just heat and lack of fitness.
I was happy to find that the phone still actually worked, so I could download the photos and make a backup. The tracklogs weren't complete though, so I was happy that the new Garmin Edge 820 cycling computer I was using for the first time (having just acquired it in The States) had recorded the ride fully. Longtime readers of my blog know that Garmin has earned a passionate hatred over the years, so I was expecting the worst with my first real cycling computer, but everything seemed to work out fine. For now.
The next day I swapped my broken phone (and ¥42,000... about $400) for a new phone.
The day after that I set out on a ride more or less in reverse of the first. I left earlier in the day, before it got too hot, so I felt really good on the initial climbs.
I returned to the tragic scene of my iPhone death and dug through the overgrowth for 15 minutes, but still couldn't find the case.
I intended to go to the same big mountain I'd done twice the other day, but this time via an alternate approach that seemed appealing on the map. I'd used a mapping site to route me there, following on the non-map on my Garmin 820. (I've not yet put Japanese maps on it.)
Heading Toward The Mountains
I had to pass through a little village to get there, and was surprised when the route brought me up a back alley with a ridiculous 20+% slope, followed by a flat section, then another milder (but still ridiculously steep) slope:
Cycliq Fly12 — map & image data — nearby photos
This is The Mild Portion
Later on a whim, I made a Strava segment for this little stretch of road, "Brutal Kamioogi Shortcut", and found that I wasn't the only person to have taken it.
Overall, the little stretch averages 18.9% for 200m.
Something felt oddly familiar about it, but I didn't pay much attention to it until I got home and looked at the map. Strava uses OpenStreetMap data, and the data in this area was pathetic, so I updated it:
As I do with many roads where I ride, I used detailed survey data from the Japanese government to guide the updates. They tend to be very precise, which is how I like my maps and my Strava segments.
While working on that update, I realized that I'd actually been on that exact steep route before, as a passenger in a car, during the winter (with snow!), on the way to "Filming a TV Segment about Mochi and Shiga". Small world.
The main road continued up toward the mountains, but without tree cover it was hot, so I stopped by a roadside culvert to cool down by dipping a towel into the cool water, and squeezing it over my head...
frame grab from the bike's front-facing camera
A little later, just as the road enters the forest, there was a little waterfall and pond.
iPhone 6+ — 1/15 sec, f/2.2, ISO 100 — map & image data — nearby photos
Oasis in the Heat
I stopped to put my whole body under the tiny waterfall of very cold water. It was freezing and wonderful; it felt like this.
The road pitched up steeply from here, though now mostly under tree cover. After a long while, it turned to mild gravel, then disappointingly, increasingly rough gravel.
Mild Gravel
I had hoped it would be all paved, but it was gravely enough that I don't think I'd like to do it again on a road bike. I views I was rewarded with, though, were lovely.
near Kaji Pass (梶峠)
Even though I stopped often for photos or to cool down, I still got the #4 spot overall on that 4.5km 9% climb. (Shhhh, don't tell anyone that there were only five registered attempts 😉 )
After descending a bit it connected to that "Buddha Road" climb I'd been proud of attempting two days prior. It connected after the worst of the climb, so the remaining 2.5km at "only" 7.4% felt almost flat. I was feeling much better this day, so my time was ⅔ that of the earlier attempt.
So, I'm happy to be back home and that my fitness level didn't drop too much. Kyoto is hot hot hot, though, and I've a lot of work and tidying to catch up on, so I'll probably not get out too much in the next weeks, but we'll see. Maybe some early morning rides, and heat-of-the-day getting-stuff-done in the comfort of home's air conditioning.
July 13th, 2006 The Mystery of Jet Lag
September 23rd, 2007 Another View of the Rice Terraces
September 10th, 2008 View from the Window Seat
January 8th, 2013 The Mysteries of Jetlag
February 21st, 2015 Filming a TV Segment about Mochi and Shiga
May 30th, 2015 Happy Birthday To Me: Reviews of Some Toys I've Recently Gotten
July 14th, 2016 Monday's Norikura Big Loop Ride
September 17th, 2016 More Exploring Uji by Bicycle, and Exploring my Cycling Psychology
October 26th, 2016 Pleasant Social Ride to Onyu Pass
November 8th, 2016 Update on my Bike-Mount Failure: K-EDGE Comes Through
April 24th, 2017 Wild Cherry Blossoms and Fun Fast Descents
You can submit a comment below | Posted under: Cycling, General, Japan, Pretty Photos | Comments via RSS | Trackback
For some reason, I find "Bleak" a particularly fascinating photo. And an interesting not – the negative image of that photo – with just minimal tweaking – looks like a really good photograph of rugged ice-covered mountains at dusk with the sun coming from the opposite direction.
— comment by Marcina on August 25th, 2016 at 6:44am JST (3 years, 5 months ago) — comment permalink


text:
package ir.bama.controllers

import java.nio.file.Paths
import java.time.LocalDateTime
import java.util.UUID
import javax.inject.{Inject, Singleton}

import akka.stream.Materializer
import ir.bama.models.SellerType.SellerType
import ir.bama.models._
import ir.bama.services.SellerService
import ir.bama.utils.{PasswordLike, RangeLike}
import play.api.Configuration
import play.api.data.Forms._
import play.api.data._
import play.api.libs.Files
import play.api.libs.json._
import play.api.mvc._

import scala.concurrent.ExecutionContext

/**
  * @author ahmad
  */
@Singleton
class SellerController @Inject()(sellerService: SellerService, authController: AuthController, configs: Configuration)
                                (implicit mat: Materializer, ec: ExecutionContext) extends Controller {

  private lazy val filesDir = Paths.get(configs.getString("app.dir.files").get)
  private lazy val maxPhotoSize = configs.getBytes("controllers.seller.maxPhotoSize").get

  val privateSellerForm: Form[Boolean] = Form(single(
    "publicProfile" -> default(boolean, false)
  ))

  case class DealerData(manager: String, licenceNumber: String)

  val dealerForm: Form[DealerData] = Form(mapping(
    "manager" -> nonEmptyText(2, 120),
    "licenceNumber" -> nonEmptyText(10, 10)
  )(DealerData.apply)(DealerData.unapply))

  case class UserData(username: String, password: String) {
    def toUser: User = User(None, username, password.bcrypt)
  }

  case class SellerData(userData: UserData, name: String, cityId: Long, address: String, phoneNumbers: Seq[String]) {

    def toPrivateSeller(publicProfile: Boolean): PrivateSeller = PrivateSeller(
      None, Some(userData.toUser), name, LocalDateTime.now(), Some(City.id(cityId)), address, None,
      Some(phoneNumbers.distinct), publicProfile)

    def toDealer(dealerData: DealerData): Dealer = Dealer(
      None, Some(userData.toUser), name, LocalDateTime.now(), Some(City.id(cityId)), address, None,
      Some(phoneNumbers.distinct), dealerData.manager, dealerData.licenceNumber)

  }

  val sellerForm: Form[SellerData] = Form(
    mapping(
      "user" -> mapping(
        "username" -> nonEmptyText(3, 120),
        "password" -> nonEmptyText(8, 120)
      )(UserData.apply)(UserData.unapply),
      "name" -> nonEmptyText(2, 120),
      "city" -> single("id" -> longNumber),
      "address" -> nonEmptyText(maxLength = 1000),
      "phoneNumbers" -> seq(Mappings.phoneNumber)
        .verifying("phoneNumbers cannot be empty", _.nonEmpty)
    )(SellerData.apply)(SellerData.unapply))

  implicit val sellerTypeFormatter: RichFormatter[SellerType] = Formats.enumFormat(SellerType)

  def register: Action[JsValue] = Action.async(parse.json) { implicit request =>
    sellerTypeFormatter.bind("type", (request.body \ "type").asOpt[String]) match {
      case Right(sellerType) => sellerType match {
        case SellerType.PRIVATE => (sellerForm, privateSellerForm).map {
          case (sellerData, publicProfile) => sellerService.persist(sellerData.toPrivateSeller(publicProfile)).asyncResult
        }
        case SellerType.DEALER => (sellerForm, dealerForm).map {
          case (sellerData, dealerData) => sellerService.persist(sellerData.toDealer(dealerData)).asyncResult
        }
      }
      case Left(errors) => errors.asJsonError(Results.BadRequest).future
    }
  }

  def uploadPhoto: Action[Either[MaxSizeExceeded, MultipartFormData[Files.TemporaryFile]]] =
    authController.authenticated.async(parse.maxLength(maxPhotoSize, parse.multipartFormData)) { request =>
      request.body match {
        case Left(_) =>
          Err("Max size exceeded.", "maxSize" -> JsNumber(maxPhotoSize)).asJsonError(Results.EntityTooLarge).future
        case Right(data) => data.file("photo").map { photo =>
          photo.contentType.filter(_.startsWith("image/")).map { c =>
            if (c.endsWith("png")) ".png" else ".jpg"
          }.map { extension =>
            val name = UUID.randomUUID().toString + extension
            val file = photo.ref.moveTo(filesDir.resolve(name).toFile)
            sellerService.updatePhoto(request.login.userId, name).savedOrElse {
              // shouldn't happen
              file.delete()
              Results.InternalServerError
            }
          }.getOrElse {
            Err("Image file expected.", "parameter" -> JsString("photo")).asJsonError.future
          }
        }.getOrElse {
          Err("Missing required parameter.", "parameter" -> JsString("photo")).asJsonError.future
        }
      }
    }

  def deletePhoto: Action[AnyContent] = authController.authenticated.async { request =>
    sellerService.deletePhoto(request.login.userId).map {
      case Some((sellerId, maybePhoto)) =>
        maybePhoto.foreach { photo =>
          java.nio.file.Files.delete(filesDir.resolve(photo))
        }
        sellerId.saved
      case _ => InternalServerError /* shouldn't happen */
    }
  }

  def load(id: Long): Action[AnyContent] = Action.async {
    sellerService.load(id).asJson
  }

  def loadByUser: Action[AnyContent] = authController.authenticated.async { request =>
    sellerService.loadByUserId(request.login.userId).asJson
  }

  def list(offset: Int, length: Int): Action[AnyContent] = Action.async {
    sellerService.list(offset ~ length).asJson
  }

  def listByType(sellerType: String, offset: Int, length: Int): Action[AnyContent] = Action.async {
    (sellerType match {
      case "private" => Some(SellerType.PRIVATE)
      case "dealer" => Some(SellerType.DEALER)
      case _ => None
    }) match {
      case Some(t) => sellerService.listByType(t, offset ~ length).asJson
      case _ => Err("Invalid seller type.").asJsonError.future
    }
  }

  def listByLocation(location: String, locationId: Long, offset: Int, length: Int): Action[AnyContent] = Action.async {
    (location match {
      case "province" => Some {
        sellerService.listByProvinceId(locationId, offset ~ length)
      }
      case "city" => Some {
        sellerService.listByCityId(locationId, offset ~ length)
      }
      case _ => None
    }) match {
      case Some(future) => future.asJson
      case _ => Err("Invalid location.").asJsonError.future
    }
  }

  def listByTypeAndLocation(sellerType: String, location: String, locationId: Long, offset: Int, length: Int): Action[AnyContent] = Action.async {
    (sellerType match {
      case "private" => Some(SellerType.PRIVATE)
      case "dealer" => Some(SellerType.DEALER)
      case _ => None
    }) match {
      case Some(t) =>
        (location match {
          case "province" => Some {
            sellerService.listByTypeAndProvinceId(t, locationId, offset ~ length)
          }
          case "city" => Some {
            sellerService.listByTypeAndCityId(t, locationId, offset ~ length)
          }
          case _ => None
        }) match {
          case Some(future) => future.asJson
          case _ => Err("Invalid location.").asJsonError.future
        }
      case _ => Err("Invalid seller type.").asJsonError.future
    }
  }

}


In several mammalian species, including mice, round spermatids have been used to produce normal offspring by means of microinsemination techniques. In this study, we examined whether mouse round spermatids retrieved from immature testes undergoing the first wave of spermatogenesis had acquired fertilizing ability comparable to cells from mature adults. Microinsemination with round spermatids was performed by direct injection into preactivated oocytes, as previously reported. About 60-85% of the successfully injected oocytes developed to the morula/blastocyst stage after 72 h in culture, irrespective of the age of the males (17-25 days old). After embryo transfer, normal pups were obtained from all age groups, including the day-17 group, the stage at which the first round spermatids appeared. A high correlation (r=0.90) was found between the birth rate and male age (P<0.01, Spearman rank correlation), indicating that the efficiency of producing offspring was dependent on the age of the donor males. Imprinted genes (H19, Igf2, Meg3, and Igf2r) were expressed from the correct parental alleles (maternal, paternal, maternal, and maternal, respectively) in all (n=12) day-9.5 fetuses derived from day-20 spermatids. These results clearly indicate that at least some first-wave spermatogenic cells have a normal haploid genome with the correct paternal imprint and are capable of supporting full-term embryo development, as do mature spermatozoa from adults. The use of male germ cells from immature animals may save time in the production of inbred/congenic strains and rescue male-factor infertility of early onset.