Old-school Doom and its sequels come to Switch, Xbox One, and PS4

Thinking about what to do this weekend? Think no more. Doom, Doom II, and Doom 3 have all just appeared on the Switch, Xbox One, and PS4, giving you no excuse not to play these classics. All the time. Over and over. Rip and tear!

The announcement was made at QuakeCon 2019, the annual gathering of slayers and gibbers where id Software usually shows off its latest wares. Or in this case, its earliest.

At $5 each, the original Doom and Doom II should provide dozens of hours of old-school fun. I’ve found in revisiting these games that the level design really is spectacular and the gameplay, while of course simple compared to your Dishonors or your Division 2s, is also elegant and carefully calibrated. It’s also amazing how scary these games can still be.

Not that you haven’t had ample opportunity to play them — and the thousands of free maps available for PC players — these last couple decades. But if your console of choice, with your surround sound system and big screen, is how you tend to play games, then perhaps it’s worth a tenner to put these enduring classics on there.

Importantly, these include 4-play split-screen deathmatch and co-op. Probably been a while since you played it that way, right?

As for Doom 3 — well, my most salient memory of the game is playing the leaked Alpha version, which scared the pants off me and almost put me off the actual game. It was a huge graphical advance at the time and due to its deliberate use of lighting still looks pretty cool, though of course highly primitive in other ways.

Is it still any good to play? $10 lets you find out.

The original two games are also officially available on iOS as well, and will, amazingly, run at about a dozen times the resolution they originally did back in the ’90s.


via TechCrunch
Old-school Doom and its sequels come to Switch, Xbox One, and PS4

Zombieland: Double Tap (Trailer)

Zombieland: Double Tap (Trailer)

Link

Director Ruben Fleischer returns to the world of the undead along with Woody Harrelson, Jesse Eisenberg, Abigail Breslin, and Emma Stone as their dysfunctional post-apocalyptic family faces off against new kinds of zombies on a road trip from the East Coast to America’s heartland.

via The Awesomer
Zombieland: Double Tap (Trailer)

The New Trailer For The Harriet Tubman Movie Is Out, and It’s Guntastic


Cynthia Erivo in “Harriet” (2019). (IMDb)

I’ll admit up front that I’m a history nerd, particularly American history, and I get a little excited when Hollywood makes a great movie that helps us learn a little more of our shared story in an entertaining and engrossing way. It looks like director Kasi Lemmons has done exactly that with “Tubman”, the bio-pic of escaped slave and Underground Railroad conductor whose heroic deeds brought dozens of men, women, and children out of bondage.

I counted a gun in the hands of Tubman at least six times in the 2:40 second trailer, which is a pretty good assumption that Lemons isn’t going to gloss over the fact that Tubman’s ability to free slaves depended, at least in part, on her willingness to defend herself from those who were trying to kill her for her efforts.

The firearms that we see in the trailer are wielded both by hero and villain. They’re tools that protect freedom and oppression equally, depending on the motives of those who possess them. In the hands of the black Union Army regiment that we briefly see, they are tools of liberation. In the hands of the U.S. Marshall enforcing the Fugitive Slave Act, or in the hands of the private slave catchers, they are tools of compliance with an unjust law.

Gun control activists may not be happy about this even-handed portrayal. After all, gun control groups have a lot of allies in Hollywood, and they’ve been successful at introducing anti-gun plot lines into Hollywood productions. I’m sure they’d much prefer Harriet Tubman simply use her brain to work her way out of the terrifying moments where she was close to discovery, capture, and death. Why does the hero need a gun?

Well, the answer is she would have likely died without one, and it would be an egregious misrepresentation of history to pretend otherwise, just as egregious as having the slave catchers use sweet words and the promise of a $15 an hour minimum wage to lure slaves back to their masters. The Civil War was force on force on a massive scale, and the trailer for Tubman shows how force was a part of how the conflict played out among individuals, both private citizens and officers of the State, before and during the war. At its heart was a fundamental disagreement over what freedom meant.

Did freedom mean the ability to live as your own person, to work where you chose, to live together in marriage without someone splitting your family apart in order to make some money, to raise your children as your own? Or did freedom mean the ability to own property without fear of government reprisal or private interference, even if that property happened to be a human being? Did freedom mean the ability to maintain your way of life at the expense of your property having to endure their own?

Thankfully our American ancestors chose the first definition, but not without a great deal of blood and treasure spilled, and not without great risk and cost to themselves and our nation. I don’t view our nation’s inability to deal with slavery at the time of the writing of the Constitution as an original sin that can never be forgiven or washed away, but as a near fatal flaw. The Civil War was the tragic culmination of the inability of the Founders to bring the framework of government fully in alignment with its principles that all men are created equal and are endowed by their Creator with certain unalienable rights like the right to live, liberty, and the pursuit of happiness.

Sadly, though, we’re still engaged in a political battle over the definition of freedom. Think about all of the gun control laws that Harriet Tubman violated in the trailer above. Did Tubman have a license for that pistol she was carrying? How’d she get that gun anyway? Clearly she didn’t go through a background check, because she would have shown up on the National Instant Check System (And Fugitive Slave Recovery Tool). Wasn’t that rifle she was using the same or similar high-powered weapon of war used by the Union troops? Some people clearly thought Tubman was crazy for going into the South to free slaves. Shouldn’t they have tried to use a red-flag firearms law to take her guns away? If today’s Democrats had their way (actually, if yesterday’s pro-slavery Democrats had their way too), Harriet Tubman would be looking at decades behind bars in a federal prison.

We can still find heroes in the most tragic of circumstance, and Harriet Tubman is unquestionably one of them. On a scale of “I’ll rent this from Redbox” to “I’ll drive an hour to Richmond to see this in a movie theater with great sound and stadium seating”, I’ll be hopping behind the wheel when Tubman hits the theaters on November 1st of this year.

 

 

 

The post The New Trailer For The Harriet Tubman Movie Is Out, and It’s Guntastic appeared first on Bearing Arms.

via Bearing Arms
The New Trailer For The Harriet Tubman Movie Is Out, and It’s Guntastic

Laravel Two-Step Registration: Optional Fields for Country and Bio

Nowadays, we have a lot of Laravel tutorial about some syntax or package, but I think there’s not enough written with real-life mini-projects, close to real demands of the clients. So will try to write more of these, and this is one of them: imagine a project where you need to have two-step registration process, with some optional fields in the second step. Let’s build it in Laravel.

By default, Laravel registration form has four fields:

Let’s say we have a task to add two more fields: country (dropdown) and Biography (textarea). After successful default registration, user would be redirected to that second step with those two fields, and ability to fill them in, or skip that second step.

Here’s our plan of actions:

  1. Add new fields to User model and migration;
  2. For “country” field we would create a seed for all world’s countries;
  3. Create a GET URL /register-step2 and route/controller/view with form for those two new fields;
  4. Update that form values and redirect to /home;
  5. Add a link to Skip the second step;
  6. Finally, tie it all together to redirect successful registration to that /register-step2.

In reality, I will merge it all into four steps, let’s go.


Step 1. New fields: migrations, seeds and model

We need to add two new fields to the database users table: country_id and biography. But before that, we need to create a new table countries to have a foreign key to.

So we launch:

php artisan make:migration create_countries_table

And for this we have a “quick hack” – there’s a seeder inside of our QuickAdminPanel generator, that will give us this:

class CreateCountriesTable extends Migration { public function up() { Schema::create('countries', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('short_code'); $table->timestamps(); $table->softDeletes(); }); } }

Also, we have the seed generated with all world’s countries:

class CountriesTableSeeder extends Seeder { public function run() { $countries = [ [ 'id' => 1, 'name' => 'Afghanistan', 'short_code' => 'af', ], [ 'id' => 2, 'name' => 'Albania', 'short_code' => 'al', ], [ 'id' => 3, 'name' => 'Algeria', 'short_code' => 'dz', ], // ... Other countries [ 'id' => 239, 'name' => 'Zambia', 'short_code' => 'zm', ], [ 'id' => 240, 'name' => 'Zimbabwe', 'short_code' => 'zw', ], ]; Country::insert($countries); } }

And we add this seeder file into main database/seeds/DatabaseSeeder.php:

class DatabaseSeeder extends Seeder { public function run() { $this->call(CountriesTableSeeder::class); } }

Now we can create a foreign key in users table:

php artisan make:migration add_fields_to_users_table

And here’s the migration code:

public function up() { Schema::table('users', function (Blueprint $table) { $table->unsignedInteger('country_id')->nullable(); $table->foreign('country_id')->references('id')->on('countries'); $table->text('biography')->nullable(); }); } 

Finally, we can launch this magic command on our (still empty) database:

php artisan migrate --seed

Registration Step 2: Route/Controller/View

So, we’re building this page now:

Let’s start with routes/web.php:

Route::get('register-step2', 'Auth\RegisterStep2Controller@showForm');

Now, let’s the create the Controller we want, it will be in app/Http/Controllers/Auth/RegisterStep2Controller.php:

namespace App\Http\Controllers\Auth; use App\Country; use App\Http\Controllers\Controller; class RegisterStep2Controller extends Controller { public function __construct() { $this->middleware('auth'); } public function showForm() { $countries = Country::all(); return view('auth.register_step2', compact('countries')); } }

As you can see, we add middleware auth inside of Controller’s constructor, so only authenticated users will be able to access that step 2 – immediately after registration.

Also, if you remember, one of the fields will be Countries list, so we need to pass it from Controller.

Now, let’s create a Blade file – for this, we will just copy-paste register.blade.php and change the input fields. Here’s the result resources/views/auth/register_step2.blade.php:

@extends('layouts.app') @section('content') <div class="container"> <div class="row justify-content-center"> <div class="col-md-8"> <div class="card"> <div class="card-header"></div> <div class="card-body"> <form method="POST" action=""> @csrf <div class="form-group row"> <label for="name" class="col-md-4 col-form-label text-md-right"></label> <div class="col-md-6"> <select name="country_id" class="form-control @error('country_id') is-invalid @enderror"> <option value="">--  --</option> @foreach ($countries as $country) <option value=""></option> @endforeach </select> @error('country_id') <span class="invalid-feedback" role="alert"> <strong></strong> </span> @enderror </div> </div> <div class="form-group row"> <label for="name" class="col-md-4 col-form-label text-md-right"></label> <div class="col-md-6"> <textarea class="form-control @error('biography') is-invalid @enderror" name="biography"></textarea> @error('biography') <span class="invalid-feedback" role="alert"> <strong></strong> </span> @enderror </div> </div> <div class="form-group row mb-0"> <div class="col-md-6 offset-md-4"> <button type="submit" class="btn btn-primary">  </button> <br /><br /> <a href="">Skip for now</a> </div> </div> </form> </div> </div> </div> </div> </div> @endsection 

As you can see, we’re adding “Skip for now” link to /home route. Also, we’re referencing the POST action to the route name register.step2 that doesn’t exist yet. This is our next step.


Step 3. Update the Fields

This is pretty simple, we just add a new method to our new Controller, and point to it in Routes. Remember, in the Blade file above, we already referenced it:

<form method="POST" action="">

So, we need to add a new line in routes/web.php:

Route::post('register-step2', 'Auth\RegisterStep2Controller@postForm') ->name('register.step2');

Our postForm() method will be as simple as that:

use Illuminate\Http\Request; class RegisterStep2Controller extends Controller { // ... other methods public function postForm(Request $request) { auth()->user()->update($request->only(['biography', 'country_id'])); return redirect()->route('home'); } }

To make this work, we also need to make those two new fields fillable, in app/User.php – just add them into already existing array:

class User extends Authenticatable { use Notifiable; /** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ 'name', 'email', 'password', 'country_id', 'biography' ];

And, after we login/register, go to /register-step2 URL, fill in the form – we get success in the database:


Step 4. Redirect Registration to Step 2

Final step is probably the most simple one. By default, successful Laravel registration redirects user to /home URL, it is set in app/Http/Controllers/Auth/RegisterController.php:

class RegisterController extends Controller { /** * Where to redirect users after registration. * * @var string */ protected $redirectTo = '/home'; // ... } 

So, all we need to do is change the value to this:

protected $redirectTo = '/register-step2'; 

And, that’s it, our tutorial is done!

Here’s a link to Github repository for full project:
https://github.com/LaravelDaily/Laravel-Registration-Step2

via Laravel Daily
Laravel Two-Step Registration: Optional Fields for Country and Bio

Zorg Industries ZF-2

Zorg Industries ZF-2

Link

On a recent episode of his series Savage Builds, Adam Savage decided to see if he could replicate the functionality of the awesome 6-in-1 weapon known as the Zorg Industries ZF-1 from The Fifth Element. Here, he shows off the finished build. You’ll need to tune in to see it in action though.

via The Awesomer
Zorg Industries ZF-2

Slack’s Desktop App Now Launches 33% Faster, Uses 50% Less Memory

Slack today announced it’s deploying an under-the-hood upgrade for its desktop app to boost performance for companies and teams using the app for workplace collaboration. From a report: The latest version of Slack for desktop and internet browsers is due out in the coming weeks and promises a 33% faster launch time, 10 times faster launch of VoIP calls, and roughly 50% less memory usage. The news comes a month after Slack became a public company, listed as WORK on the New York Stock Exchange. Slack product architect and lead of desktop client rewrite Johnny Rodgers said the upgrade takes advantage of changes to Slack’s underlying technology, like modern JavaScript tools and techniques and the React UI framework.



Share on Google+

Read more of this story at Slashdot.

via Slashdot
Slack’s Desktop App Now Launches 33% Faster, Uses 50% Less Memory

Netflix’s ‘The Witcher’ teaser trailer revealed at Comic-Con

Late last year we learned that The Witcher’s TV adaptation found its Geralt in the form of Superman star Henry Cavill, and now at Comic-Con fans have their first glimpse of the live-action series coming to Netflix. The teaser trailer was unveiled at a panel discussion, where Variety reports Cavill said he campaigned "passionately" for the role and that he’s a big gamer who also did all of his own stunts.

There’s no release date on the trailer itself, but at least we have an idea of the monsters Geralt will be facing — both human and otherwise.

Source: Netflix

via Engadget
Netflix’s ‘The Witcher’ teaser trailer revealed at Comic-Con

Allen Institute spinout Lexion lands $4.2M to help companies manage legal contracts with AI

Lexion founders Emad Elwany, Gaurav Oberoi and James Baird. (Lexion Photo).

Where there are lawyers, there are paper contracts — lots of them. A Seattle startup has come up with a way for in-house legal teams to get a handle on all those contracts with the help of artificial intelligence.

Lexion today announced a $4.2 million seed round led by Madrona Venture Group, with participation from Wilson Sonsini, Goodrich and Rosati, a legal advisor to technology and life sciences companies.

The investment from a major law firm is unusual, but speaks to the conviction that legal experts have in Lexion.

The company originated inside the Allen Institute for Artificial Intelligence (AI2). Its premise mirrors a lot of machine learning startups: find an inefficient manual process and use tools such as natural language processing to fix it.

For Lexion, that problem starts in the legal departments of mid-market companies.

“Most in-house counsel today at companies manage all their contracts using file folders, spreadsheets and email,” said Lexion co-founder Gaurav Oberoi, a Seattle startup vet who joined AI2 in February 2018.

Manual processes lead to a classic needle-in-a-haystack problem where high-paid lawyers waste time searching through contracts whenever somebody has a question about one of them.

Lexion created a natural language processing system that reads contracts, organizes them, and lets users search them with a simple interface. Users can also set up notifications for important reminders, such as expiration dates.

While Lexion’s initial focus on internal legal teams is niche, Oberoi sees a larger opportunity in broader contract management for companies at a lower cost, especially among mid-sized firms.

“Natural language processing over the last 2-to-3 years has really come to maturity,” he said. “And it’s come to the point where it’s ready for commercialization.”

Oberoi was the brains behind BillMonk, a bill-splitting app that predated Splitwise. He also created Precision Polling, an automated survey startup that was later purchased by SurveyMonkey, and then went on to build SurveyMonkey Audience.

After that streak of success, the young entrepreneur took some time off. He wanted to do another early-stage company and was interested in artificial intelligence. He joined the Allen Institute for Artificial Intelligence (AI2) as an entrepreneur-in-residence and got cracking.

Among the seeds of ideas that were left on the cutting room floor: satellites, ultrasound imaging, and even exploring deepfakes, which landed him in an episode of Buzzfeed’s Netflix documentary series Follow This.

In the end, it was Lexion co-founder Emad Elwany who discovered the contract problem. His wife knew the problem all too well from her work in the procurement division of a large company.

Oberoi and Elwany joined with James Baird to launch Lexion. Elwany previously worked as an engineer at Microsoft on artificial intelligence and Baird is an engineer who came from web development firm Pancake Labs.

There are plenty of companies that help clients manage contracts, including Bellevue, Wash.-based Icertis, which became a billion-dollar company this week. But most have focused on products for large enterprise companies.

“In talking to dozens of portfolio and other middle-market and growth companies, we heard this pain point and market opportunity reiterated over and over again,” Tim Porter, managing director at Madrona, wrote in a blog post. “[Oberoi] is a tremendous founder and well-known in the tech community both for his successes in and his enthusiasm for the Seattle startup scene.”

The Lexion investment is in line with Madrona’s ongoing interest in companies that build machine learning applications, such as Lattice Data, which was acquired by Apple in 2017. Madrona also invested in AI2 spinout Xnor, which raised $12 million last year.

AI2 expanded its incubator in 2017. Another spinout, Kitt.ai, was acquired by Chinese search giant Baidu later that year.

via GeekWire
Allen Institute spinout Lexion lands $4.2M to help companies manage legal contracts with AI

Lexion raises $4.2M to bring AI to contract management

Contract management isn’t exactly an exciting subject, but it’s a real pain point for many companies. It also lends itself to automation, thanks to recent advances in machine learning and natural language processing. It’s no surprise then, that we see renewed interest in this space and that investors are putting more money into it. Earlier this week, Icertis raised a $115 million Series E round, for example, at a valuation of more than $1 billion. Icertis has been in this business for ten years, though. On the other end of the spectrum, contract management startup Lexion today announced that it has raised a $4.2 million seed round led by Madrona Venture Group and law firm Wilson Sonsini Goodrich & Rosati, which was also one of the first users of the product.

Lexion was incubated at the Allen Institute for Artificial Intelligence (AI2), one of the late Microsoft co-founders’ four scientific research institutes. The company’s co-founder and CEO, Gaurav Oberoi, is a bit of a serial entrepreneur, whose first startup, BillMonk, was first featured on TechCrunch back in 2006. His second go-around was Precision Polling, which SurveyMonkey then acquired shortly after it launched. Oberoi founded the company together with former Microsoft research software development engineering lead Emad Elwany, and engineering veteran James Baird.

4 understanding autorenewal clause

“Gaurav, Emad, and James are just the kind of entrepreneurs we love to back: smart, customer obsessed and attacking a big market with cutting edge technology,” said Madrona Venture Group managing director Tim Porter. “AI2 is turning out some of the best applied machine learning solutions, and contract management is a perfect example – it’s a huge issue for companies at every size and the demand for visibility into contracts is only increasing as companies face growing regulatory and compliance pressures.”

Contract management is becoming a bit of a crowded space, though, something Oberoi acknowledge. But he argues that Lexion is tackling a different market from many of its competitors.

5 extraction in action animation

“We think there’s growing demand and a big opportunity in the mid-market,” he said. “I think similar to how back in the 2000s, Siebel or other companies offered very expensive CRM software and now you have Salesforce — and now Salesforce is the expensive version — and you have this long tail of products in the mid-market. I think the same is happening to contracts. […] We’re working with companies that are as small as post-seed or post-Series A to a publicly-traded company.”

Given that it handles plenty of highly confidential information, it’s no surprise that Lexion says that it takes security very seriously. “I think, something that all young startups that are selling into business or enterprise in 2019 need to address upfront,” Oberoi said. “We realized, even before we raised funding and got very serious about growing this business, that security has to be part of our DNA and culture from the get-go.” He also noted that every new feature and product iteration at Lexion goes through a security review.

Like most startups at this stage, Lexion plans to invest the new funding into building out its product — and especially its AI engine — and go-to-market and sales strategy.


via TechCrunch
Lexion raises $4.2M to bring AI to contract management

Univ. of Washington names longtime professor François Baneyx to lead CoMotion innovation center

François Baneyx. (University of Washington Photo)

The University of Washington named longtime professor François Baneyx to lead its CoMotion innovation center.

Baneyx is currently the Charles W.H. Matthaei Professor of Chemical Engineering; director of the Center for the Science of Synthesis Across Scales; and an adjunct professor of bioengineering. He has held several leadership positions across campus since arriving in 1992, including:

  • Site director of the National Nanotechnology Infrastructure Network (2004-2012)
  • Director of the Center for Nanotechnology (2005-2013)
  • Chair of the Department of Chemical Engineering (2014-2019)

In 2015, Baneyx co-founded Proteios, a UW life sciences spinout. He’s also an elected fellow of the American Association for the Advancement of Science and a member of the Washington State Academy of Sciences.

Baneyx replaces Vikram Jandhyala, the former CoMotion leader who died in February.

“I am honored to succeed Vikram at the helm of CoMotion and I look forward to helping our incredibly talented faculty and students innovate for the greater good,” Baneyx said in a statement.

CoMotion helps startups through education and access to experts and funding sources. Originally started as the Center for Commercialization (C4C) at the UW’s main Seattle campus, CoMotion evolved a few years ago from a department that mainly helped commercialize ideas born at the university to what it now describes as a “collaborative innovation hub dedicated to expanding the economic and societal impact of the UW community.”

The UW has ranked among the top 10 on Reuters’ list of the world’s most innovative universities for the past several years and cracked the top 10 of the Milken Institute national tech transfer rankings. CoMotion also helped open a makerspace on campus; created an Amazon Catalyst program; and launched the Mobility Innovation Center with Challenge Seattle.

“François is a respected researcher, teacher and innovator with connections throughout academia and industry, as well as firsthand experience with startups,” UW Provost Mark Richards said in a statement. “I am confident that with his interdisciplinary, collaborative approach to his work and leadership, François will build upon CoMotion’s success and further propel the University’s culture of innovation.”

via GeekWire
Univ. of Washington names longtime professor François Baneyx to lead CoMotion innovation center