Feed aggregator

Acro Media: One Entry Point - Commerce for Online and Real World Transactions

Drupal Planet -

DrupalCon Nashville 2018 Session

Join Acro Media's technical Drupal Commerce veteran, Josh Miller (all things programming) and Business Developer, Becky Parisotto (all things business) as they walk through the wild world of physical commerce that is powered by and paired with a Drupal web interface. Both Josh and Becky work together with a number of physical commerce clients. Through our client’s requirements, we have gained a better understanding of the iceberg that is building an interface for retail, and allowing for that true omni-channel experience for both customer, and (sometimes more importantly) the business owner.

Josh will review the state of Point of Sale as it integrates with Drupal Commerce 2 on Drupal 8, compare and contrast fulfillment in the new shipping and inventory modules, and talk about a new module that handles requesting products from your suppliers and updates store stock when its received. Additionally, Becky will walk us through what Drupal Commerce is capable of in the way of “powering your business” and truly being the end to end backend brain for finances, accounting, product management, customer management, shipping, fulfillment, stock, inventory and community. Drupal Commerce is a big box of legos, come and learn how we build fully integrated businesses, from the web to the storefront to the back of house, to the warehouse, and more.

This is meant to be a practical review with easy to digest client examples and micro case studies of how we merge an online tool with a physical store. Setting clients in digital stone, all powered by Drupal.

Talk to us

Acro Media is a Drupal Commerce development agency that specializes in enterprise-level ecommerce. We are committed to building strong strategic partnerships and using our ecommerce expertise to help clients create a dynamic web presence that engages audiences, generates revenue, and boosts brand awareness.

[$] Zero-copy TCP receive

LWN Headlines -

In the performance-conscious world of high-speed networking, anything that can be done to avoid copying packet data is welcome. The MSG_ZEROCOPY feature added in 4.14 enables zero-copy transmission of data, but does not address the receive side of the equation. It now appears that the 4.18 kernel will include a zero-copy receive mechanism by Eric Dumazet to close that gap, at least for some relatively specialized applications.

Sooper Drupal Themes: CKEditor 4 security update and your SooperThemes products (Most Drupal 7 sites not at risk)

Drupal Planet -

I got word of concerns about the recent CKEditor 4 vulnerability that is responsible for a moderately critical vulnerability in Drupal 8. Rest assured that most Drupal 7 sites are not in danger. While both the Glazed Builder module and the Glazed installation profiles include their own copy of CKEditor 4, this vulnerability exists in an optional image plugin for CKEditor 4 "image2" that is not included in the default package of CKEditor 4 that our products carry. 

The only Drupal 7 websites that are affected by this vulnerability are sites that use a custom build of CKEditor that explicitly includes the image2 plugin.

Drupal 8 does include this additional plugin, which is why Drupal 8 users should update to 8.5.2 immediately. For Drupal 7 users the commotion has actually sparked some positive deveopment: the Drupal 7 WYSIWYG module has pushed a release that supports the latest CKEditor 4.9.2. This means I can update all SooperThemes products to CKEditor 4.9.2 and this brings us a number of bug fixes and improvements to inline editing. This update will be available tuesday.

The latest CKEditor reportedly also dropped it's reliance on the eval() function which means we can start using better Content Security Policy headers that include the unsafe-eval directive on Drupal 7 sites.

SooperThemes Drupal 8.x-1.0 Release Planned Tuesday

After 13 months of intensive development, testing, and preparation of our product infrastructure we're finally launching our Drupal 8 page builder module and themes tuesday! In the past few weeks I've been learning a ton by talking to customers about what they like and dislike about Sooperthemes and especially the drag and drop builder. If you have any feedback or ideas for future development of SooperThemes.com and our products just leave a comment here or use the contact form!

Update The Wording Of How Our Pricing Works: Pay Once To Use For Life. Optionally Renew Yearly For Support & Updates.

I've also updated the pricing information to reflect the fact that you can pay once to download all our products and use them forever. This is how SooperThemes subscriptions have always worked. This was apparently not clear from the information and marketing communication on the website. You pay once and only renew if you wish to receive continued support and product updates. This subscription based payment concept is really what has made SooperThemes a success over the past 3 years and the increased stability in revenue is what gave me the confidence to continue investing all my energy and money in developing the Glazed Builder module and our next generation themes for both Drupal 7 and 8. I also think it's fair to users of the product that they pay a small yearly contribution to continue getting support and product updates because the products are continuously in flux. Subscribers may stop the subscription at any time and continue using the products without support services.

Acro Media: How Memory Works in PHP and Its Hidden Costs

Drupal Planet -

DrupalCon Nashville 2018 Session

Join Shawn McCabe, Acro Media CTO, as he goes behind the scenes and teaches a bit about how PHP uses memory when it runs your code. PHP's ease of use and low barrier to entry also have some side effects to how memory is used, sometimes using memory differently and in places you didn't expect. If you're doing small pages that load quickly, for a low traffic site, this probably won't even be noticeable unless things go quite wrong. Once you get into heavy pages on high traffic sites, or even worse, long running background processes, then knowing a bit more about the memory you're using can help a lot.

In PHP, variables have a lot of meta-data they need to store, since they can be any size and of any type. They need all this meta data to store information like how much data they hold, what type of data it is and how it is stored. Often this "hidden" meta data cost will use more memory than the actual info you are storing, although recent versions of PHP have improved on this.

The idea isn't to learn every low level detail, just to have a little knowledge of what is happening with memory usage when you're programming so you can be cognizant of the choices you make and a bit more efficient in your usage.

Hopefully this talk will be interesting to even experienced developers, but you only need some programming basics to follow along.

Talk to us

Acro Media is a Drupal Commerce development agency that specializes in enterprise-level ecommerce. We are committed to building strong strategic partnerships and using our ecommerce expertise to help clients create a dynamic web presence that engages audiences, generates revenue, and boosts brand awareness.

4.9% of Websites Use Flash, Down From 28.5% in 2011

Slashdot -

Web makers continue to ditch the infamous Flash for other safer, improved technologies. In 2011, more than 28.5 percent of websites used Flash in their code, a figure technology survey site W3Techs estimates to have dropped to 4.9 percent today. BleepingComputer: The number confirms Flash's decline, and a reason why Adobe has decided to retire the technology at the end of 2020. A decline from 28.5 percent to 4.9 percent doesn't look that bad, but we're talking about all Internet sites, not just a small portion of Top 10,000 or Top 1 Million sites. Taking into account the sheer number of abandoned sites on today's Internet, the decline is quite considerable, and W3Techs' findings confirm similar statistics put out by a Google security engineer in February.

Read more of this story at Slashdot.

Security updates for Thursday

LWN Headlines -

Security updates have been issued by Debian (opencv and wireshark), Fedora (corosync and pcs), Oracle (firefox, kernel, libvncserver, and libvorbis), Slackware (gd), SUSE (kernel), and Ubuntu (apache2).

Finland Is Killing Its Basic Income Experiment

Slashdot -

tomhath shares a report: Since the beginning of last year, 2000 Finns are getting money from the government each month -- and they are not expected to do anything in return. The participants, aged 25-58, are all unemployed, and were selected at random by Kela, Finland's social-security institution. Instead of unemployment benefits, the participants now receive $690 per month, tax free. Should they find a job during the two-year trial, they still get to keep the money. While the project is praised internationally for being at the cutting edge of social welfare, back in Finland, decision makers are quietly pulling the brakes, making a U-turn that is taking the project in a whole new direction. "Right now, the government is making changes that are taking the system further away from a basic income," Kela researcher Miska Simanainen told the Swedish daily Svenska Dagbladet.

Read more of this story at Slashdot.

Commerce Guys: Introducing the Cart API for Drupal Commerce

Drupal Planet -

At the end of February, I began working on an series of API endpoints that would allow for a progressively decoupled cart experience. There are a few reasons why we decided that Drupal Commerce needed an API solely for the cart.

  1. Performance: when a cart block is rendered on the server it has complicated cache metadata. Cart block contents vary per user and change too often to be cached effectively. As such these blocks incur heavy logic and rendering costs.
  2. Flexibility: modern consumers expect interfaces to be more reactive and match common UX patterns. These patterns almost always require client-side implementation using JavaScript that communicates to backend APIs.

In my last blog I brought up why the API-First and JavaScript Modernization initiatives matter to Drupal Commerce. I wanted to target something limited in scope that would provide big wins for Drupal Commerce users as we ventured into the fully and progressively decoupled Drupal realm.

As a result, we now have the Commerce Cart API module. Our first implementation will be the Commerce Cart Flyout module, which uses the RESTful endpoints provided by the Cart API module to create the dynamic cart interface shown in the sample animation below.

This moves us decidedly down the path of providing Drupal Commerce users with progressively decoupled components that improve the customer experience. In a following blog post, I’ll going to write about what it was like to build this module. (Hint: we didn’t “just do it” and release it into the Drupal.org namespace.)

I am planning on experimenting with more areas that we can perform progressive decoupling and look forward to connecting with folks about the topic at Decoupled Drupal Days in August. You should meet me there to join in the conversation!

'Increasingly, People in Silicon Valley Are Losing Touch With Reality'

Slashdot -

Longtime commentator MG Siegler writes: You can see it in the tweets. You can hear it at tech conferences. Hell, you can hear it at most cafes in San Francisco on any given day. People -- really smart people -- saying some of the most vacuous things. Words that if they were able to take a step outside of their own heads and hear, they'd be embarrassed by. Or, at least, these are stances, thoughts, and ideas that these people should be embarrassed by. But they're clearly not because they keep saying them. This isn't only about Facebook -- far from it. That's just the most high profile and timely example of a company suffering from some of this. And in that case, it's really more in their responses to the Cambridge Analytica situation, rather than the situation itself (which is another matter, though undoubtedly related). They don't know the right things to say because they don't know what to say, period. Because they've slipped out of touch. But again, I feel like this is increasingly everywhere I look around tech. It's an industry filled with some of the most brilliant people in the world, which makes it all the more disappointing. I won't name names but also because I don't have to. I'd wager everyone reading this will have clear and obvious examples of what I'm talking about in their own circles -- even if only in their own virtual circles. This is everywhere. I don't know the cause of this. Perhaps we can blame part of it on Trump, even if only indirectly (a man who has gotten ahead in life by saying asinine things). If I had to guess, I'd say the root is an increasing sense of entitlement as the tech industry has grown in stature to become the most important from a fiscal perspective and arguably from a cultural perspective as well.

Read more of this story at Slashdot.

Specbee: Drupal CMS : Redefining the Future of Digital Healthcare

Drupal Planet -

I recently stumbled upon an article which stated some facts on technology and its impact on one of the biggest sectors in the world - Healthcare. I was taken by surprise to know that a survey which engaged patients of all varieties, stated that two thirds of them had not been in a discussion with the doctors about their own treatment, more than 35% did not have a clear picture about the goals of their treatment, and 20% received a conflicting information from different professionals.

Facebook To Put 1.5 Billion Users Out of Reach of New EU Privacy Law

Slashdot -

An anonymous reader quotes a report from Facebook: If a new European law restricting what companies can do with people's online data went into effect tomorrow, almost 1.9 billion Facebook users around the world would be protected by it. The online social network is making changes that ensure the number will be much smaller. Facebook members outside the United States and Canada, whether they know it or not, are currently governed by terms of service agreed with the company's international headquarters in Ireland. Next month, Facebook is planning to make that the case for only European users, meaning 1.5 billion members in Africa, Asia, Australia and Latin America will not fall under the European Union's General Data Protection Regulation (GDPR), which takes effect on May 25. That removes a huge potential liability for Facebook, as the new EU law allows for fines of up to 4 percent of global annual revenue for infractions, which in Facebook's case could mean billions of dollars.

Read more of this story at Slashdot.

CodeSOD: A Problematic Place

The Daily WTF -

In programming, sometimes the ordering of your data matters. And sometimes the ordering doesn’t matter and it can be completely random. And sometimes… well, El Dorko found a case where it apparently matters that it doesn’t matter:

DirectoryInfo di = new DirectoryInfo(directory); FileInfo[] files = di.GetFiles(); DirectoryInfo[] subdirs = di.GetDirectories(); // shuffle subdirs to avoid problematic places Random rnd = new Random(); for( int i = subdirs.Length - 1; i > 0; i-- ) { int n = rnd.Next( i + 1 ); DirectoryInfo tmp = subdirs[i]; subdirs[i] = subdirs[n]; subdirs[n] = tmp; } foreach (DirectoryInfo dir in subdirs) { // process files in directory }

This code does some processing on a list of directories. Apparently while coding this, the author found themself in a “problematic place”. We all have our ways of avoiding problematic places, but this programmer decided the best way was to introduce some randomness into the equation. By randomizing the order of the list, they seem to have completely mitigated… well, it’s not entirely clear what they’ve mitigated. And while their choice of shuffling algorithm is commendable, maybe next time they could leave us a comment elaborating on the problematic place they found themself in.

hljs.initHighlightingOnLoad(); [Advertisement] ProGet can centralize your organization's software applications and components to provide uniform access to developers and servers. Check it out!

Jeff Bezos Reveals That Amazon Has Over 100 Million Prime Subscribers

Slashdot -

Amazon CEO Jeff Bezos revealed today that the company has over 100 million Prime members, "marking the first time in the 13-year history of Amazon offering its Prime membership that the company has ever revealed its number of subscribers," reports The Verge. From the report: According to Bezos, Amazon Prime also saw its best year ever in 2017, with the company shipping over five billion products with Prime and signing up more new members than in any previous year. Also revealed today, Whole Foods Market will discontinue its rewards program on May 2 and fold it into Amazon Prime. "Stay tuned for additional announcements for Amazon Prime members," reads the Whole Foods FAQ page focused on digital coupons, rewards and online accounts. "Any account benefits, including membership and/or unused rewards, will not roll into any future programs."

Read more of this story at Slashdot.

Agiledrop.com Blog: AGILEDROP: Drupal events in 2nd quarter of the year

Drupal Planet -

We've made a list of Drupal camps and summits that you can attend in the second quarter of the year. Drupal events are bringing together Drupal developers, site builder, themers, end users and those interested in learning more about Drupal. We are attending Drupal events because of sessions and collaborative discussions.   Drupaldelphia 2018 United States, Philadelphia, PA Hussian College of Art 27-28. April 2017 This year, Drupaldelphia is a part of Philly Tech Week 2018 presented by Comcast, and it will be hosted at Hussian College of Art. There are 39 accepted sessions.https://… READ MORE

orkjerns blogg: How to find the route name in Drupal 8?

Drupal Planet -

How to find the route name in Drupal 8? admin Thu, 04/19/2018 - 08:21

In many cases, a route name is something you might need to get something done in Drupal 8. For example to generate a link, or maybe create a local task in your module.

Some examples:

The path can be found in a routing.yml file

Some times you can just search for the path in your codebase, and then find the corresponding route name. Let's say that I wanted to link to the page mysite.com/admin/config/regional/translate. If I just search the codebase for this path, it would be revealed in the file locale.routing.yml:

locale.translate_page: path: '/admin/config/regional/translate' defaults: _controller: '\Drupal\locale\Controller\LocaleController::translatePage' _title: 'User interface translation' requirements: _permission: 'translate interface'

To link to this page using the API for generating links, I would then do something like this:

$link = Link::fromTextAndUrl(t('Translate interface'), Url::fromRoute('locale.translate_page'));

So to conclude, the route name for that particular page is the key in the routing file, in this case locale.translate_page.

The path can not be found in a routing.yml file

Now, this is what I really wanted to write about in this blog post. Getting the route name directly from a routing file is simple enough, but where do you look if the path can not be found in a routing file?

Find route name with PHPStorm

My first trick is to utilize the IDE I use, PHPStorm.

Start by setting a breakpoint in index.php on the line that looks like this:

$response->send();

Next step, refresh your browser on the page you want to know the route name for, and hopefully trigger your breakpoint. Then you click on the icon for "evaluate expression". On my work computer this has the shortcut key alt-f8, but you can also find it in the debugger toolbar, or via the menu (Run -> Evaluate expression).

Then evaluate the following code:

\Drupal::routeMatch()->getRouteName()

That should give you the name of the route. As illustrated below in a gif:

Find route name with any development enviroment.

Now, I realize that not everyone uses PHPStorm, so here is one solution that should work without having xdebug and an IDE set up:

Following the same tactic as above, let's open up index.php again. Now, just change the following code:

$response = $kernel->handle($request); +print_r(\Drupal::routeMatch()->getRouteName()); $response->send();

The difference here is adding the line with print_r.

Now visit the page you want to know the route name for. This will print the name of the route as the very first output of your Drupal site. Since you probably do not want this for your live Drupal site, this is best done on a development copy.

Other options

You can also use the module webprofiler which is a part of the devel module. This may or may not invlove more steps than necessary, depending on your project. But to be fair, that is also an option.

To finish off, here is an animated gif in the category "route". Let me know your tips and tricks in the comments!

Scientists Create Robots That Can Assemble IKEA Furniture For You

Slashdot -

sciencehabit shares a report from Science Magazine: Although artificial intelligence systems may be able to beat humans at board games, we still have the upper hand when it comes to complicated manual tasks. But now, scientists have created robots that can do something even most humans struggle with: assemble an IKEA chair. Putting together a chair requires a combination of complex movements that, in turn, depends on such skills as vision, limb coordination, and the ability to control force. Until now, that was too much to ask of even a sophisticated robot. But researchers have finally broken the dexterity barrier by combining commercially available hardware, including 3D cameras and force sensors, to build two chair-building bots. To construct their IKEA masterpiece, the robots first took pictures to identify each part of the chair. An algorithm planned the motions the robots needed to manipulate the objects without causing any collisions; two robotic arms then performed those actions in concert. Feedback from force sensors also helped: When the robot needed to insert a pin into a hole, for example, it would slide the pin over the surface until it felt a change in force. The robots were able to put together the chair in a little over 20 minutes, which includes the 11 minutes and 21 seconds of planning time and 8 minutes and 55 seconds of actual assembly. The findings have been reported today in Science Robotics.

Read more of this story at Slashdot.

Autonomous Boats Will Be On the Market Sooner Than Self-Driving Cars

Slashdot -

An anonymous reader quotes a report from Motherboard: In the autonomous revolution that is underway, nearly every transportation machine will eventually be self-driving. For cars, it's likely going to take decades before we see them operating freely, outside of test conditions. Some unmanned watercraft, on the other hand, may be at sea commercially before 2020. That's partly because automating all ships could generate a ridiculous amount of revenue. According to the United Nations, 90 percent of the world's trade is carried by sea and 10.3 billion tons of products were shipped in 2016. According to NOAA's National Ocean Service, ships transported $1.5 trillion worth of cargo through U.S. ports in 2016. The world's 325 or so deep-sea shipping companies have a combined revenue of $10 billion. Startups and major firms like Rolls Royce are now looking to automate the seas and help maritime companies ease navigation, save fuel, improve safety, increase tonnage, and make more money. As it turns out, autonomous systems for boats aren't supremely different than those of cars, beyond a few key factors -- for instance, water is always moving while roads are not, and ships need at least a couple miles to redirect. Buffalo Automation, a startup in upstate New York that began at the University at Buffalo, just raised $900,000 to help commercialize its AutoMate system -- essentially a collection of sensors and cameras to help boats operate semi-autonomously. CEO Thiru Vikram said the company is working with three pilot partners, and intends to target cargo ships and recreational vessels first. Autonomous ships are an area of particular interest for the International Maritime Organization (IMO), which sets the standards for international waters. It launched a regulatory scoping exercise last year to analyze the impact of autonomous boats. By the time it wraps in 2020, market demand may make it so that we already have semi-autonomous and unmanned vessels at sea.

Read more of this story at Slashdot.

MIT Discovers Way To Mass-Produce Graphene In Large Sheets

Slashdot -

New submitter Paige.Bennett writes: Up till now, graphene has been produced in small batches in labs. But MIT just found a way to mass-produce graphene in large sheets using a process that rolls out five centimeters of graphene each minute. The longest span so far was nearly four hours, which produced about 10 meters of graphene. According to MIT, here's how their conveyor belt system works: "The first spool unfurls a long strip of copper foil, less than one centimeter wide. When it enters the furnace, the foil is fed through first one tube and then another, in a 'split-zone' design. While the foil rolls through the first tube, it heats up to a certain ideal temperature, at which point it is ready to roll through the second tube, where the scientists pump in a specified ratio of methane and hydrogen gas, which are deposited onto the heated foil to produce graphene." The work has been published in the journal Materials and Interfaces.

Read more of this story at Slashdot.

Pages

Subscribe to Heydon Consulting aggregator