The Parkland kids were probably feeling a little desperate. Their 15 minutes of fame was coming to an end, so they had to do something. They decided a bus tour was just the thing. Not only would it make a few national headlines at the start, but it would create local headlines all over the country.
Oh, and they could try and keep up the pressure on our right to keep and bear arms.
To their credit, they’re not just hitting friendly areas like New York, Massachusetts, or California. They’re also going to places like Texas. I’ll give them credit for that.
But they’re still wasting their time.
Students who survived the school shooting in Parkland, Florida, joined young activists from Texas in a series of panel discussions on gun control last week.
Their vision for gun violence prevention is in stark contrast with state lawmakers’ plans.
The Parkland students are on a national summer road tour with other young activists. Their goal is to keep the gun control conversation going, and get people who care about that issue to show up at the polls.
Cameron Kasky was a junior at Marjory Stoneman Douglas High School when a former classmate entered his school and killed 17 people in February.
He said the “Never Again” movement he and his classmates created is not calling for a “national collection of guns,” just some restrictions to gun access.
“This is us taking a problem that has not been fixed and saying, surprisingly enough, if you look at history, not addressing a problem will not fix that problem,” Kasky said.
Much of the town hall in San Antonio focused on bringing change to a red state known for its pro-gun-rights politicians. Panelists talked about common arguments, and starting a dialogue about gun rights.
Here’s the problem with that. Where are they trying to start that dialogue? They’re starting it with people who already agree with them. Their bus tour involves setting up in places where the audience is mostly going to be made up of people who already support them.
Even then, there’s no real dialogue being opened. Of course, they don’t really want a dialogue. They aren’t interested in listening to the other side. Every time I’ve tried to engage people like that, I’m accused of wanting to see more people slaughtered in mass shootings which, as I’ve noted before, really pisses me off. However, it tells me that they don’t want a dialogue. They don’t want a discussion. They want to lecture.
Which is why few pro-gun activists will attend.
In other words, this entire bus tour is about preaching to the choir. They’re reaching out to supporters. They’re not actually reaching anyone who doesn’t already agree with them and hang on their every word like a pathetic little sycophant.
Which is what this is really about. They’re not going to accomplish anything, but they get to feel like they are because they see all their little foot soldiers who won’t accomplish anything either, but they can at least feel like they have.
Defense Distributed, the 3D-printing gun activist group, has secured a settlement with the Department of State that will enable it to legally distribute its CAD files of firearms on its DEFCAD website, putting an end to a years-long lawsuit.
The group says it will resume publication on August 1, 2018, more than four years after its files were first removed.
“It’s just now black letter law that you can traffick in this information,” Cody Wilson, the group’s founder, told Ars, noting that substantially not much will change given that the files have been available on torrent sites for years.
“Basically the spin is different now,” he said. “There isn’t the need for the subterranean Dark Web. It can be done in the clearnet and in the light of day and reputable places.”
The settlement, which was signed in April but only took effect in late June, says that the DEFCAD files in question are “approved for public release (unlimited distribution) in any form and are exempt from the export licensing requirements of the [International Traffic in Arms Regulations].”
The State Department has also agreed to pay Defense Distributed’s legal fees, which total nearly $40,000.
The federal civil suit has its origins over five years ago when Cody Wilson and his group, Defense Distributed, published designs for the “Liberator,” the world’s first 3D-printed handgun.
Within months, Defense Distributed received a letter from the United States Department of State’s Office of Defense Trade Controls Compliance stating that 10 files, including the designs of the Liberator, were in violation of the ITAR. This is despite the fact that these files had already been downloaded hundreds of thousands of times and continue to circulate online.
Defense Distributed removed the files for fear of criminal and civil liability. The group then re-submitted a “commodity jurisdiction request” to the Department of State, which the company hoped would clear the way for the publication of the files. After waiting for two years, Defense Distributed, along with the Second Amendment Foundation, sued the Department of State and argued that the government’s action constituted “prior restraint”—preventing publication before it occurs. In the United States, the Supreme Court has generally rejected the concept of prior restraint.
“That putting something on the Internet is an export to the entire world is ridiculous,” he said.
Wilson told Ars that these days he’s making money selling Ghost Gunners—milling devices designed to turn 80-percent lower receivers into functional and untraceable weapons—and has 18 employees in his Austin, Texas, office.
“Payroll, man!” he joked, adding that he still goes into his job “like anybody else.”
“The margins there are enough to support an entirely annexed software company.”
Wilson hoped that, after August 1, there would be a new community of CAD nerds that could help create his ultimate vision of previously unimagined firearms.
“If you build a critical mass of enough of a stock of these files and enough of a community, that is what you’ll end up seeing,” he said.
Meanwhile, lawmakers are continuing to try to battle Wilson and his ilk in different ways.
On June 12, New Jersey Attorney General Gurbir S. Grewal sent a letter to ghost gun manufacturers, ordering them to “stop selling and advertising unregistered and unserialized assault weapons to New Jersey residents.”
July 4th, American Independence day when we think about the resolve of American patriots, give thanks for their foresight and courage. We review what they went through and the tools that made victories possible.
And both of those things, Washington and guns were lacking in Poland on July 4th 1946. Poland has been in the news a lot as of late. For those that don’t know it, July 4th was the anniversary of the 72nd anniversary of the Kielce pogrom. No, no, the Kielce pogrom occurred after WWII had ended. Kielce
Kielce was occupied on 4 September 1939 by the German army. Approximately 24,000 Jews lived in the town, a third of all its inhabitants.
…..
On 31 March 1941 the Kielce Ghetto was established. Jews from the surrounding villages were forced to move into the ghetto.
The ghetto liquidation took place from 20 – 24 August 1942
…..
In March 1943, during a selection in the Kielce camp, the SS killed all Jewish doctors and their families, and in May 1943 a group of children. After the May selection the Germans established several work camps.
…
After the war around 150 Jews left their hidings and returned to Kielce. They found a place in their former parish hall, waiting for a possibility to emigrate to Palestine.
…..
In June 1946 they were accused of having committed a ritual murder on a missing Polish boy. On 1 July 1946 a furious crowd gathered round the building and on 4 July 1946 they killed 42 Jews. (At least, most likely more. ~S)
…
Until today historians discuss who provoked this anti-Jewish riot. Many inhabitants participated in the pogrom and around 100 people were arrested by the communist police; among them people who did not participate in the crime but being known as anti-communists.
Still today some people suspect that the pogrom was provoked by communists for eliminating opponents of the new regime in Poland.
Because Communism is a G-dless “religion” for one thing. Because they were coming back to reclaim their property for another.
If only they had some warning that their “neighbors” were going to “suddenly turn on them” they certainly would have been better prepared to defend themselves after all they had just been through. If only law enforcement had know ahead of time, they could have been prepared to defend the Jews like the brave British Constables (pppffffttt) did in 1929 Hevron massacrei. From the Jewish Virtual Library
The Jews had no adequate means for self-defense since the police had confiscated the few pistols among them just one day previously. In this pogrom, the largest attack on Jews following the Nazi era, 60–70 Jews were murdered, including children and pregnant women, and around 100 were injured
And this is all just in Kielce! I recently read a book called Defy The Darkness by Joe Rosenblum. Joe lived in Poland prior to WWII, he went through several concentration camps and survived as well as saving others. And he will very well tell you what it was like living in Poland before, during and after nazi occupation. He will also tell you what it was like living in more than one concentration camp, and how he managed to survive. He also survived surgery by the infamous Dr. Mengele, who actually did operate on Joe, despite him being a Jew, to save his life. As to the German people not knowing what was going on? Pffftt, he told what it was like being on one of those death camp marches when they were being marched through German towns. It’s also interesting that Mengele didn’t believe any of the bad stuff said about the Jews. He thought they were brilliant people who had done nothing wrong to the Germans.
But why were so many Polish Jews sitting ducks? Well, at one time Poland had the greatest tolerance and acceptance of Jews. History of the Jews in Poland
The history of the Jews in Poland dates back over 1,000 years. For centuries, Poland was home to the largest and most significant Jewish community in the world. Poland was a principal center of Jewish culture, thanks to a long period of statutory religious tolerance and social autonomy. This ended with the Partitions of Poland which began in 1772, in particular, with the discrimination and persecution of Jews in the Russian Empire.
Another reason is some refused to see reality, they refused to accept it, even as they were on their way to the death camps. This is another article well worth reading, it’s not long either.
On one occasion, my grandfather told me, his unit of partisan fighters blew up a railroad bridge and waited in ambush. When the train eventually approached and was forced to stop in order to avoid plummeting into the canyon depths, the partisans charged aboard and killed all of the Nazi troops who were manning the cars. Afterwards, the partisans opened a passenger car from which they had heard the sound of people talking excitedly and crying. Inside was a group of Jews dressed in their finest clothes and grasping suitcases filled with their possessions as if they were on their way to a long vacation. The Jews on board were shocked and apprehensive about the strange-looking people from the woods who had attacked their train and killed all of the Nazi soldiers, initially refusing to believe that their liberators were Jewish themselves.
Yes, no doubt the Polish people had the highest regard for the Jews living among themselves.
No doubt, but in the radio show Phantom Nation the host points out,
Many Poles lost their lives trying to help the Jews. Yad Vashem has honored almost 7 thousand Christians, but out of a country of 35 million in 1939, that’s not that many people . Of the 3 million Polish Jews that lost their lives, 200 thousand were murdered by at least as many Polish Christians, not nazis. The Polish nation has a history of violence against the Jews. Bibi can’t see the serious anti-Jews acts, he thinks with a nice statement they will love us. For Poles, WWII was about the nazi aggression to Poles, they have not room for what the Poles did to the Jews. The host points out Bibi’s exceedingly weak response to Poland’s new laws.
It’s really a good program, you can listen to the whole show.
Joe Rosenblum also looked very Aryan, that’s how he managed to work on a farm, survive and help support his family.
And today?
Poland’s official anti-Semitism, basically, you’re forbidden to suggest Poland had anything to do with the slaughter of Jews. Do so and you get a fine and jail time.
Historian Prof. Jan Grabowski, author of the book Hunt for the Jews, sparked public outcry in Poland when he determined that more than 200,000 Jews in Poland were murdered directly or indirectly by locals and that most citizens of the occupied state stood idly by, even when they understood what was taking place…..
Nowhere in the program is there mention of Polish assistance, complicity, or even acquiescence in the atrocities committed against the Jews in Kielce. Indeed, from the program it is difficult to guess who, if anybody, murdered Jews in Kielce, as it appears the entire Polish population was busy assisting them.
So basically, academia decided rather than look at what really happened, they would just celebrate the minority event of some of the righteous helping Jews and ignore how many Jews were killed by their fellow Poles. As you can tell, academia planned the event. Let’s ignore the tragedy of what happened to the Jews and just talk about the few that may have tried to help.
It would be easier to accept that Poland is no longer this way if they weren’t trying to force people to stop discussing and learning history, because those who ignore it, or cover it up? Are doomed to repeat it.
iThe third speaker was Uri Arnon of Bar-Ilan University who spoke about the British perspective. Arnon displayed many documents from both British and Israeli archives to prove that the British mandatory authorities were complicit in allowing the massacre to happen. One document alluded to British police officers changing their stories to match a pre-concocted alibi as to how they failed to protect the Jewish community. Arnon also detailed the mistreatment of the survivors following the massacre who were forcibly deported to Jerusalem and denied access to return. From Conference & Memorial for 1929 Hebron Massacre This whole article is well worth reading.
Most enterprise software is delivered as a service these days because paying an expert to manage a complex application just makes too much sense. But that service has to work, and based on the experiences of two prominent CIOs speaking at our recent GeekWire Cloud Tech Summit, some prominent SaaS companies still have a ways to go.
“We’ve learned to ‘trust but verify’ going forward, even with some of the large SaaS providers,” said Charu Jain, CIO at Alaska Airlines, on a panel discussion during the event that also featured Janice Newell, CIO of Providence St. Joseph Health and 451 Research analyst Nancy Gohring. Uptime guarantees and the service-level agreements that enforce them are table stakes for a lot of large SaaS deals, but despite their promises, not all vendors follow through on crucial services like disaster recovery.
Newell shared a painful tale of an unnamed SaaS provider (she ducked my request to name and shame during the Q&A session) that was providing cloud-based speech recognition services to Providence St. Joseph’s thousands of doctors. Doctors have been using voice recorders to take notes for decades, freeing their hands to examine patients or monitor equipment, and when that service went down, “it was not a pleasant day,” Newell said, in quite the understatement.
Turns out that SaaS provider had been hit with the WannaCry ransomware, which disrupted tech operations around the globe last year before it was contained. Getting hit with such an attack is bad enough, but in this case, it was even worse: “we found out that one of our SaaS providers, whom we thought had all of this great disaster-recovery capability, business-continuity capability, we found out they in fact did not have this capability,” she said.
The service remained down for an astonishing 30 days, during which Providence St. Joseph moved its speech-recognition users back onto its own hardware.
Alaska hasn’t run into anything quite that bad, but it has seen enough to require that SaaS vendors clearly demonstrate their disaster-recovery capabilities and plans for redundant services should something go wrong, Jain said. “Some of our larger SaaS providers are on their own journey” figuring out how to deliver distributed services with scale and reliability, she said.
Laravel Relationship Events is a package by Viacheslav Ostrovskiy that adds extra model relationship events. This package comes with the following traits that are used to register listeners on a model’s boot() method:
HasOneEvents
HasBelongsToEvents
HasManyEvents
HasBelongsToManyEvents
HasMorphOneEvents
HasMorphToEvents
HasMorphManyEvents
HasMorphToManyEvents
HasMorphedByManyEvents
And from the above traits, here’s an example of a few events on a Country model that has many Users using the HasManyEvents trait:
namespace App\Models;
use App\User;
use Chelout\RelationshipEvents\Concerns\HasManyEvents;
use Illuminate\Database\Eloquent\Model;
class Country extends Model
{
use HasManyEvents;
protected $fillable = [
'name',
];
public function users()
{
return $this->hasMany(User::class);
}
public static function boot()
{
parent::boot();
static::hasManySaving(function ($parent, $related) {
Log::info("Saving user's country {$parent->name}.");
});
static::hasManySaved(function ($parent, $related) {
Log::info("User's country is now set to {$parent->name}.");
});
}
}
And the inverse of the relationship with this package might look like the following:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Chelout\RelationshipEvents\Concerns\HasBelongsToEvents;
class User extends Model
{
use HasBelongsToEvents;
/**
* Get the country associated with the user.
*/
public function country()
{
return $this->belongsTo(Country::class);
}
protected static function boot()
{
parent::boot();
static::belongsToAssociating(function ($relation, $related, $parent) {
Log::info("Associating country {$parent->name} with user.");
});
static::belongsToAssociated(function ($relation, $related, $parent) {
Log::info("User has been assosiated with country {$parent->name}.");
});
}
}
Using an overloaded associate() method, you can fire two events belongsToAssociating and belongsToAssociated:
$country = App\Models\Country::first();
$user = factory(User::class)->create([
'name' => 'John Smith',
]);
// Assosiate user with country
// This will fire belongsToAssociating and belongsToAssociated events
$user->country()->associate($country);
MySQL stored procedures, functions and triggers are tempting constructs for application developers. However, as I discovered, there can be an impact on database performance when using MySQL stored routines. Not being entirely sure of what I was seeing during a customer visit, I set out to create some simple tests to measure the impact of triggers on database performance. The outcome might surprise you.
Why stored routines are not optimal performance wise: short version
Recently, I worked with a customer to profile the performance of triggers and stored routines. What I’ve learned about stored routines: “dead” code (the code in a branch which will never run) can still significantly slow down the response time of a function/procedure/trigger. We will need to be careful to clean up what we do not need.
Profiling MySQL stored functions
Let’s compare these four simple stored functions (in MySQL 5.7):
This function calls another function, levenshtein_limit_n (calculates levenshtein distance). But wait: this code will never run – the condition IF 1=2 will never be true. So that is the same as function 1.
Here there are four conditions and none of these conditions will be true: there are 4 calls of “dead” code. The result of the function call for function 3 will be the same as function 2 and function 1.
This is the same as function 3 but the function we are running does not exist. Well, it does not matter as the select does_not_exit will never run.
So all the functions will always return 0. We expect that the performance of these functions will be the same or very similar. Surprisingly it is not the case! To measure the performance I used the “benchmark” function to run the same function 1M times. Here are the results:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
+—————————–+
|benchmark(1000000,func1())|
+—————————–+
|0|
+—————————–+
1rowinset(1.75sec)
+—————————–+
|benchmark(1000000,func2())|
+—————————–+
|0|
+—————————–+
1rowinset(2.45sec)
+—————————–+
|benchmark(1000000,func3())|
+—————————–+
|0|
+—————————–+
1rowinset(3.85sec)
+———————————-+
|benchmark(1000000,func3_nope())|
+———————————-+
|0|
+———————————-+
1rowinset(3.85sec)
As we can see func3 (with four dead code calls which will never be executed, otherwise identical to func1) runs almost 3x slower compared to func1(); func3_nope() is identical in terms of response time to func3().
Visualizing all system calls from functions
To figure out what is happening inside the function calls I used performance_schema / sys schema to create a trace with ps_trace_thread() procedure
At that point I switched to the original connection (thread_id=49) and run:
mysql>select func1();
+————–+
|func1()|
+————–+
|0|
+————–+
1row inset(0.00sec)
The sys.ps_trace_thread collected the data (for 10 seconds, during which I ran the select func1() ), then it finished its collection and created the dot file:
I repeated these steps for all the functions above and then created charts of the commands.
Here are the results:
Func1()
Func2()
Func3()
As we can see there is a sp/jump_if_not call for every “if” check followed by an opening tables statement (which is quite interesting). So parsing the “IF” condition made a difference.
Flow Analysis Optimizations
After code is generated, the low level sp_instr instructions are optimized. The optimization focuses on two areas:
Dead code removal,
Jump shortcut resolution.
These two optimizations are performed together, as they both are a problem involving flow analysis in the graph that represents the generated code.
The code that implements these optimizations is sp_head::optimize().
However, this does not explain why it executes “opening tables”. I have filed a bug.
When slow functions actually make a difference
Well, if we do not plan to run one million of those stored functions we will never even notice the difference. However, where it will make a difference is … inside a trigger. Let’s say that we have a trigger on a table: every time we update that table it executes a trigger to update another field. Here is an example: let’s say we have a table called “form” and we simply need to update its creation date:
mysql>update form set form_created_date=NOW()where form_id>5000;
Query OK,65536rows affected(0.31sec)
Rows matched:65536Changed:65536Warnings:0
That is good and fast. Now we create a trigger which will call our dummy func1():
Potentially, even if the code will never run, MySQL will still need to parse the stored routine—or trigger—code for every execution, which can potentially lead to a memory leak, as described in this bug.
Conclusion
Stored routines and trigger events are parsed when they are executed. Even “dead” code that will never run can significantly affect the performance of bulk operations (e.g. when running this inside the trigger). That also means that disabling a trigger by setting a “flag” (e.g. if@trigger_disable=0then... ) can still affect performance of bulk operations.
Alexander joined Percona in 2013. Alexander worked with MySQL since 2000 as DBA and Application Developer. Before joining Percona he was doing MySQL consulting as a principal consultant for over 7 years (started with MySQL AB in 2006, then Sun Microsystems and then Oracle). He helped many customers design large, scalable and highly available MySQL systems and optimize MySQL performance. Alexander also helped customers design Big Data stores with Apache Hadoop and related technologies.
Now relocated to farm country, I recently needed to gas up a lawn tractor. I went to Lowes to purchase a gas can. I grabbed the standard $20 one, which looks like this:
But next to it I spotted another gas can, listed for an absurd $50, that looked like this:
I couldn’t understand why this one cost more than double, and set the other can down to take a closer look. A sticker on the side demonstrated how to use it, and it did indeed appear innovatively designed. Since Lowes has a pretty liberal return policy, I left the $20 can on the shelf and purchased the $50 one to try it out.
After a trip to the gas station I returned to the farm and learned that the SureCan, as it’s called, works amazingly well. Here’s what it looks like in action:
Using it was incredibly easy, and I won’t be taking it back. Hoisting and aiming the thing was simple, and the trigger works perfectly, allowing you to dispense with precision.
I looked into it and the SureCan was invented by general contractor and cabinetmaker Brad Ouderkirk, who "spent a lot of his time filling gas powered machines and constantly spilling all over his expensive equipment." Ouderkirk spent four years designing the SureCan, building his own prototypes out of wood and plastic. Here’s a closer look at the design, development of and need for the SureCan:
One of our favorite types of stories is when someone looks at an established, tried-and-true object that everyone takes for granted, then figures out how to improve it. Congratulations to Ouderkirk for not only designing it, but successfully bringing it to market.
Night after night, a father has terrible dreams. Dreams of death. Invasion. Destruction. Then, those dreams start to become reality and he’ll stop at nothing to save his family. That’s the plot of Extinction, a new Netflix sci-fi film that just got its first trailer.
The film is set to start streaming on July 27. The father is played by Ant-Man and the Wasp’s Michael Peña and he’s joined by Luke Cage himself, Mike Colter, and Lizzy Caplan (who, oddly enough, played a SHIELD agent one time) in the alien invasion film. Here’s the trailer.
The trailer is certainly intriguing and we’d pay real money to see Peña fight aliens as the lead in a sci-fi movie. But now, we don’t have to. At least, not directly. It’s coming right to our homes in two short weeks.
On Thursday, July 12th, 2018, pay your age (or your child’s age) for any furry friend at Build-a-Bear! The deal is pretty simple – all you have to do is become a Bonus Club Member –…