POPULARITY
Yvonne Westerbeck (Waldhirsch Marketing GmbH) spricht heute mit Mario Jung (OMT GmbH) über das Thema Pagination und bringt Dir ein paar Best Practices und Beispiele mit. Sie sprechen unter anderem darüber wie man Pagination unterschiedlich anwenden kann, welche Unterschiede es gibt, ob sich der Infinite Scroll immer lohnt, oder ob man vielleicht doch bei den klassischen Seitennummern bleiben soll. Zudem wird das Thema Barrierefreiheit, was immer mehr an Bedeutung gewinnt, besprochen und wie Du die Paginierung so gestaltest, dass alle Menschen Deine Seite navigieren können. Wenn Du also mehr über das Thema Pagination wissen möchtest, dann ist die neuste Folge vom OMT-Podcast die Richtige für Dich. Viel Spaß beim Lernen.
In this episode of Search with Candour, Jack Chambers-Ward and Mark Williams-Cook discuss best practices for SEO pagination, a Google patent that targets spam tactics and a theory by Tabby Farrar about gaining links via citations in LLMs.Links
في الحلقة دي بتكلم عن الـ Pagination في الفرونت ايند وايه المشكلة الأساسية الي بيعالجها وليه هو من اول الحاجات الي لازم تضع قواعدها مع الباكيند. بغطي الاشكال المختلفة للـ Pagination والفروقات بين كل Model والتاني وازاي بيفرقوا في تجربة المستخدم في النهاية مع بعض الامثلة العملية لامتي تستعمل اياً منهم.
Jake and Michael discuss all the latest Laravel releases, tutorials, and happenings in the Laravel community.Show linksLaravel 11.28 Adds a Composer Dev Command Laravel 11.30 Released Laravel NightwatchIntroducing Laravel NightwatchLaracon AU with Michael Dyrynda Securing Laravel Applications with Stephen Rees-Carter Nested Describe Blocks Are Now Available in Pest v3.5 Laravel Herd Adds Native MongoDB Support Laravel Roundup - November PHPStan 2.0 is Here Cancel a Specific Batch of Queued Jobs With This Laravel Package Check Env Variables Across All .env Files Pan Analytics Viewer A Zero-dependency SVG Chart Library for PHP Translation Checker Blasp is a Profanity Filter Package for Laravel Integrate Unsplash in Your Laravel Application Sprout Multitenancy Package for Laravel Bluesky notification channel for Laravel Bento Laravel SDK Laravel Solr Lazy JSON Pages is a JSON API Scraper for PHP Build your slide deck in Laravel with Simple Slides Run multiple CLI commands locally at once with Solo for Laravel Nuxt 3 + Laravel Sanctum Authentication: Secure Your SPA and API with Ease Always Render API Exceptions as JSON in Laravel How to Create Tech Videos for YouTube with Josh Cirre Creating a CLI Application With Laravel and Docker A Guide to Pagination in Laravel
Tue, 12 Nov 2024 09:06:55 +0000 https://omt-magazin.podigee.io/9625-neue-episode 018d85b57ff47d8193e1bbb52c664d95 ℹ️ Yvonne Westerbeck beim OMT ℹ️ OMT-Webinare ℹ️ OMT-Konferenz ℹ️ OMT-Agency Day ℹ️ OMT-Tool Konferenz 9625 full no Felix Machka, Yvonne Westerbec
Banjo Music courtesy of Banjo HangOut -- Hello DollyToday's avatar shows drivers ignoring demand mats built into Nashville city streetsAI and Instant Coffee Share a Common Trait Neither of Them Leaves you Wanting More It's incomprehensible to me how users can spend so much money on a product to produce specious content like “generative AI”. Then I remembered the words of Fred Friendly
In this week's episode of The Raw Data Podcast, we're excited to reconnect with Chris Finlan, a pivotal figure at Microsoft in the evolution of SQL Server Reporting Services and now a leading advocate for Power BI. Chris invites us on a journey from his early career breakthroughs to his current pioneering work in data analytics. Joined by host Rob Collie, Chris revisits an extraordinary story: a data model he crafted over a decade ago that still powers significant operations at a major organization. This isn't merely a conversation about the durability of technology—it underscores the lasting impact of thoughtfully designed data solutions that continue to perform year after year. If you're curious about how innovations in technology continue to shape business today, or if you love hearing the personal stories behind the tech, this episode is definitely for you. Tune in for a perfect blend of nostalgia and insightful reflections, delivered in Chris's unique style from his experiences at Microsoft. Be sure to subscribe to The Raw Data Podcast on your favorite platform for more down-to-earth conversations about data, tech, and biz impact, and join us in exploring the fascinating intersection of technology and practical business solutions. Also in this episode: The Persistent Power of Pagination, w/Microsoft's Chris Finlan
Most of us have created our own filtering, sorting and pagination code before in one project after the other. Mathias Polligkeit got tired of doing that too and created the flop library to wrap it all into a portable and reusable solution. We talk with Mathias to learn what it can do and are pleased to learn it's surpassed our own solutions. He also created a flop_phoenix package with heex components to help build filter forms and tables. A fun look into an interesting library! Show Notes online - http://podcast.thinkingelixir.com/166 (http://podcast.thinkingelixir.com/166) Elixir Community News - https://bsky.app/profile/josevalim.bsky.social/post/3k56qd2q2xf2g (https://bsky.app/profile/josevalim.bsky.social/post/3k56qd2q2xf2g?utm_source=thinkingelixir&utm_medium=shownotes) – A tease about noticing something new. - https://hexdocs.pm/elixir/main/GenServer.html (https://hexdocs.pm/elixir/main/GenServer.html?utm_source=thinkingelixir&utm_medium=shownotes) – Elixir docs getting diagram support? 1.16.0-dev - https://github.com/erlang/otp/issues/7292#issuecomment-1688181562 (https://github.com/erlang/otp/issues/7292#issuecomment-1688181562?utm_source=thinkingelixir&utm_medium=shownotes) – Followup on that OTP 26 “overrun stack and heap” bug - https://github.com/phoenixframework/dns_cluster (https://github.com/phoenixframework/dns_cluster?utm_source=thinkingelixir&utm_medium=shownotes) – The dnscluster project was brought under the phoenixframework Github org - https://fly.io/phoenix-files/beam-clustering-made-easy/ (https://fly.io/phoenix-files/beam-clustering-made-easy/?utm_source=thinkingelixir&utm_medium=shownotes) – Blog post about new Phoenix library dnscluster - https://github.com/elixir-tools/next-ls/releases/tag/v0.10.0 (https://github.com/elixir-tools/next-ls/releases/tag/v0.10.0?utm_source=thinkingelixir&utm_medium=shownotes) – Next LS v0.10.0 Released - https://open-vsx.org/extension/elixir-tools/elixir-tools (https://open-vsx.org/extension/elixir-tools/elixir-tools?utm_source=thinkingelixir&utm_medium=shownotes) – Next LS extension is listed on VSCode's open extension repository - https://twitter.com/ashframework/status/1692767604622922152 (https://twitter.com/ashframework/status/1692767604622922152?utm_source=thinkingelixir&utm_medium=shownotes) – The Ash Framework announced the new release of a double-entry accounting project - https://github.com/ash-project/ashdoubleentry (https://github.com/ash-project/ash_double_entry?utm_source=thinkingelixir&utm_medium=shownotes) - https://hexdocs.pm/ashdoubleentry/get-started-with-double-entry.html (https://hexdocs.pm/ash_double_entry/get-started-with-double-entry.html?utm_source=thinkingelixir&utm_medium=shownotes) - https://thestackcanary.com/understanding-the-elixir-machine-learning-ecosystem/ (https://thestackcanary.com/understanding-the-elixir-machine-learning-ecosystem/?utm_source=thinkingelixir&utm_medium=shownotes) – Post that connects many ML libraries to their Python counterparts. - https://twitter.com/akoutmos/status/1693669295585161394 (https://twitter.com/akoutmos/status/1693669295585161394?utm_source=thinkingelixir&utm_medium=shownotes) – Elixir tip on using Elixir as a shell scripting solution - https://twitter.com/akoutmos/status/1693322879230672905 (https://twitter.com/akoutmos/status/1693322879230672905?utm_source=thinkingelixir&utm_medium=shownotes) – Version 0.5.0 of DenoEx was released. - https://github.com/akoutmos/deno_ex (https://github.com/akoutmos/deno_ex?utm_source=thinkingelixir&utm_medium=shownotes) - https://deno.com/ (https://deno.com/?utm_source=thinkingelixir&utm_medium=shownotes) – Deno project is a "secure by default" Rust-based alternate JavaScript runtime - https://twitter.com/PJUllrich/status/1693232219198726620 (https://twitter.com/PJUllrich/status/1693232219198726620?utm_source=thinkingelixir&utm_medium=shownotes) – Tip on how we can use tags to more cleanly customize tests. - https://www.peterullrich.com/exunit-context-tags (https://www.peterullrich.com/exunit-context-tags?utm_source=thinkingelixir&utm_medium=shownotes) - https://dagger.io/ (https://dagger.io/?utm_source=thinkingelixir&utm_medium=shownotes) – Dagger.io is a programmable CI/CD engine that runs your pipelines in containers. - https://hex.pm/packages/dagger (https://hex.pm/packages/dagger?utm_source=thinkingelixir&utm_medium=shownotes) – Dagger.io now supports Elixir Do you have some Elixir news to share? Tell us at @ThinkingElixir (https://twitter.com/ThinkingElixir) or email at show@thinkingelixir.com (mailto:show@thinkingelixir.com) Discussion Resources - https://github.com/woylie/flop (https://github.com/woylie/flop?utm_source=thinkingelixir&utm_medium=shownotes) - https://github.com/woylie/flop_phoenix (https://github.com/woylie/flop_phoenix?utm_source=thinkingelixir&utm_medium=shownotes) - https://scoville.jp/ (https://scoville.jp/?utm_source=thinkingelixir&utm_medium=shownotes) - https://en.wikipedia.org/wiki/Scoville_scale (https://en.wikipedia.org/wiki/Scoville_scale?utm_source=thinkingelixir&utm_medium=shownotes) - https://elixirforum.com/t/flop-filtering-sorting-and-pagination-for-ecto/51750/25 (https://elixirforum.com/t/flop-filtering-sorting-and-pagination-for-ecto/51750/25?utm_source=thinkingelixir&utm_medium=shownotes) - https://hexdocs.pm/flop/Flop.Schema.html (https://hexdocs.pm/flop/Flop.Schema.html?utm_source=thinkingelixir&utm_medium=shownotes) - https://hexdocs.pm/flop/Flop.Filter.html#t:op/0 (https://hexdocs.pm/flop/Flop.Filter.html#t:op/0?utm_source=thinkingelixir&utm_medium=shownotes) - https://relay.dev/graphql/connections.htm (https://relay.dev/graphql/connections.htm?utm_source=thinkingelixir&utm_medium=shownotes) – Specification used in Flop library for cursor pagination - https://hexdocs.pm/flop/Flop.Relay.html (https://hexdocs.pm/flop/Flop.Relay.html?utm_source=thinkingelixir&utm_medium=shownotes) – Format the result sets in an Absinthe structure - https://hexdocs.pm/flop/Flop.html#withnamedbindings/4 (https://hexdocs.pm/flop/Flop.html#with_named_bindings/4?utm_source=thinkingelixir&utm_medium=shownotes) - https://slack.engineering/evolving-api-pagination-at-slack/ (https://slack.engineering/evolving-api-pagination-at-slack/?utm_source=thinkingelixir&utm_medium=shownotes) – Recommended resource on pagination - https://hex.pm/packages/quarto (https://hex.pm/packages/quarto?utm_source=thinkingelixir&utm_medium=shownotes) – Other library that helps with filtering or pagination - https://github.com/drewolson/scrivener (https://github.com/drewolson/scrivener?utm_source=thinkingelixir&utm_medium=shownotes) – Other library that helps with filtering or pagination - https://elixirstream.dev/tips/cfc62b74-3ad9-427e-b9d2-8e8c768f8c57 (https://elixirstream.dev/tips/cfc62b74-3ad9-427e-b9d2-8e8c768f8c57?utm_source=thinkingelixir&utm_medium=shownotes) - https://hexdocs.pm/ectopsqlextras/readme.html#records_rank (https://hexdocs.pm/ecto_psql_extras/readme.html#records_rank?utm_source=thinkingelixir&utm_medium=shownotes) - https://github.com/woylie/flop_phoenix#liveview-streams (https://github.com/woylie/flop_phoenix#liveview-streams?utm_source=thinkingelixir&utm_medium=shownotes) – flop_phoenix with streams Guest Information - https://github.com/woylie/ (https://github.com/woylie/?utm_source=thinkingelixir&utm_medium=shownotes) – on Github - https://www.mathiaspolligkeit.com (https://www.mathiaspolligkeit.com?utm_source=thinkingelixir&utm_medium=shownotes) – Blog Find us online - Message the show - @ThinkingElixir (https://twitter.com/ThinkingElixir) - Message the show on Fediverse - @ThinkingElixir@genserver.social (https://genserver.social/ThinkingElixir) - Email the show - show@thinkingelixir.com (mailto:show@thinkingelixir.com) - Mark Ericksen - @brainlid (https://twitter.com/brainlid) - Mark Ericksen on Fediverse - @brainlid@genserver.social (https://genserver.social/brainlid) - David Bernheisel - @bernheisel (https://twitter.com/bernheisel) - David Bernheisel on Fediverse - @dbern@genserver.social (https://genserver.social/dbern) - Cade Ward - @cadebward (https://twitter.com/cadebward) - Cade Ward on Fediverse - @cadebward@genserver.social (https://genserver.social/cadebward)
In this podcast episode, artist and illustrator Greg Holfeld joins the discussion on the use of graphic novels in education. Topics covered include the challenges for teachers in teaching with graphic novels, the terminology and history of graphic novels, and the features that make them an effective gateway to reading. The interplay between text and image, pagination techniques, and the decision-making process for artists are explored. The podcast also touches on the importance of storytelling and character design, as well as tips for young illustrators. The medium's impact on motivation for reading and writing is examined, along with the potential concerns of students solely relying on graphic novels. The episode concludes with recommendations for publishers and key tips for using graphic novels as both readers and writers in the classroom. Overall, this insightful conversation sheds light on the educational value of graphic novels and their role in engaging students in literacy.Some topics discussed:01:50 Intro to Greg Holfeld, artist/illustrator03:50 Captain Congo series by Greg Holfeld and Ruth Starke - Harper Collins. School Magazine in NSW04:53 Icky Sticky Summer Fly - children's book - Poppa Hip publishers06:13 Challenges for teachers in teaching with graphic novels06:42 Terminology of graphic novels and comics06:57 Will Eisner - the pioneer in graphic novels and the Comic Industry awards07:20 Origin of the term ‘Graphic Novel'07:40 ‘A Contract with God' by Will Eisner - first graphic novel08:30 A chat about the features of graphic novels and as a gateway to reading11:48 Distinguishing feature of comics is the synergy between the text and the image - its up to the individual creator to work out the interplay between the two14:49 ‘Mini cliffhangers' as a technique to engage the reader15:20 Pagination is very important as a technique and the hardest part16:50 Start with story/layout or pictures first? Both are valid18:40 The way characters are drawn - how is this used as a technique20:30 ‘Monkey, Bug, Rabbit and Goose! series by Greg. Illustrators making things easier for themselves. Working out your interest21:45 Decisions artist make either based on what they feel like drawing, or being limited by constraints24:00 Is it the illustrator doing the inferencing?25:43 The Tin Tin book, Castafiore Emerald where the characters just stay home. Perils of Pug - also stay at home book.26:22 Different ways to represent text in comics, different roles of writers and illustrators28:30 Interplay between pictures and text and how it supports comprehension etc. What weight do you give each?30:16 Narration speeds up the story vs it can take longer with images to tell the story31:09 Tips for young illustrators32:22 Do you attempt story or illustrations first? - tips and techniques33:38 The graphic novel medium as motivation for reading and writing34:47 Is it a problem if students are solely reading graphic novels? Do they need expanding onto other texts?36:17 Students creating their own graphic novels.36:45 Techniques used by Charles M Schulz and his Peanuts series - simplicity is powerful37:48 The basic building blocks of stories - set up, action, reaction/pay off. Then you can tell the story in different ways. Pay off creates intrigue - through how you create the pictures42:30 What if students are struggling with drawing? Or with the story?43:30 Classic comics are still popular44:45 Graphic novels being read or written as support for new arrivals students45:20 Sound FX used as a technique47:20 Japanese Manga technique explained - a separate format - developed and mainstreamed before the West did it48:35 Wrapping up - what would be the key tips to use graphic novels as a reader or a writer with students49:00 Sharon - its about accessing and noticing50:15 Greg - Be aware of the wide range - vary in quality and appeal to the young reader. KISS principle applies45:20 Good publishers - Top Shelf for younger readers. First Second for upper primary to teens. No Brow for beautifully produced books. Gestalt for Australian publisher and indigenous material. Brenton McKenna graphic novels.54:20 Thanks and closing remarksAnd much more!Enjoy, and let us know thoughts and feedback in our Facebook Group.Subscribe on Apple Podcasts, Spotify, or your favourite podcast player.JOIN CUE LEARNING'S NEXT LIVE WEBINAR!Find upcoming events here, and online courses can be found here.Other matching PDF resources are here.Got any questions? Feedback? Thoughts? Email the Cue office at: admin@cuelearning.com.auThe Teacher's Tool Kit For Literacy is the free podcast for motivated teachers and school leaders who want the latest tips, tricks and tools to inspire their students and school community in literacy learning. Hear from literacy expert and founder of Cue Learning, Sharon Callen, and special guests.At Cue Learning, our literacy specialists draw on over 30 years of teaching and international consulting experience to deliver world-class learning solutions. We equip, empower and support teachers to become their authentic selves. To find out about upcoming events, and about how Cue can help you and your school, visit the Cue Learning website http://www.cuelearning.com.au/ and sign up to our newsletter https://cuelearning.com.au/contact/And you can get even more amazing teaching resources, right now, at Teachific https://www.teachific.com.au/.To make sure you don't miss any literacy learning tips and insights, please subscribe to our show on your favourite podcast player.MORE INFORMATION AT A GLANCE:Visit cuelearning.com.auSubscribe to the Teacher's Tool Kit For Literacy podcasts or join on Apple Podcasts hereContact the Cue office: admin@cuelearning.com.auJoin our Teacher's Toolkit facebook groupFind connected resources on TeachificSee upcoming online eventsSee our online video courses hereAnd finally, read our insightful blogs hereProduced by Apiro Media https://apiropodcasts.com
In seinem Vortrag “Erfolgreich im E-Commerce SEO: So hebst Du die größten Potenziale” geht Stefan auf die wichtigsten Aspekte und immer wieder aufkommenden Fragestellungen in Bezug auf SEO und Onlineshops ein. Besonders hervorzuheben ist, dass er anhand von zahlreichen Beispielen erklärt, welche Onlineshops bereits Antworten und gute Lösungen für häufigsten Herausforderungen gefunden haben. Dabei zeigt Dir Stefan: Wie Du das Thema Indexierungs- und Crawlersteuerung meisterst Welche Bedeutung die Pagination in Deinem Onlineshop spielt und wie Du sie am Besten aus SEO-Sicht behandeln solltest Ob und wenn ja, wie Content auf Kategorieseiten eine Rolle spielt Warum die facettierte Navigation der Wachstumshebel für fast jeden Onlineshop ist Was Du tun solltest, wenn Deine Produkte ausverkauft sind Folgendes hast Du nach dem Webinar gelernt: Du wirst wissen, welche Konzepte Dir bei der Optimierung Deines Onlineshops die größten Potenziale erschließen können Welche Methoden erfolgreiche Onlineshops anwenden, um Wachstum im SEO zu forcieren Konkrete und explizite Umsetzungsempfehlungen für die häufigsten Fragen im E-Commerce SEO
Episode 155 contains the notable Digital Marketing News and Updates from the week of Apr 3-7, 2023.1. Microsoft Professional Service Ads Available for Select Verticals Worldwide - Microsoft Advertising has launched Professional Service Ads help consumers connect directly to professionals in a variety of industries such as insurance, real estate, doctor & clinics, tax services and home services. This is great news for agents, advisors, or consultants.Microsoft is recommending a budget of $100 – $500 per day with a starting bid of $3 – $5. According to internal data from Microsoft, advertisers experienced more conversions at lower costs with Professional Service Ads than text ads. If you need help with getting started then reach out to us. 2. Google Is Removing 4 Attribution Models - Google is removing four attribution models (first click, linear, time decay, and position-based) in Google Ads and Google Analytics starting May 2023. Existing conversion actions using the removed models will automatically convert to the data-driven attribution (DDA) model, or advertisers can manually change to the 'last click' model. Google Ads liaison Ginny Marvin, shared on Twitter that “use of rules-based attribution models has dropped significantly with the introduction of DDA 3 years ago. Fewer than 3% of conversion actions in Google Ads use them now. DDA has the broadest adoption & is available to all businesses, with no data requirements.” So, what happens to conversion actions that are already using these models? Google confirmed any conversion action using the near-deprecated models will automatically convert to the data-driven attribution model. Advertisers can choose the existing ‘last click' attribution model but will have to make this change for each conversion action manually.While DDA should be used for optimization, viewing data with these other models can provide useful insights.3. YouTube Launches A Trial Of Audience Interests - To help creators make informed decisions about the formats they publish or experiment with, YouTube is launching a trial of a new card (aka dashboard) that displays the type of content your audience is watching on other channels. The card includes data about the type of videos your viewer viewers watched elsewhere, broken down by videos, shorts, and livestreams. Before this, YouTube Analytics didn't give creators metrics on their audience's viewing activity on other channels.I really like this feature because the data will guide you on what type of content you should be leaning towards.4. YouTube Now Allows Eligible Creators To Insert Ads To A LiveStream - YouTube has announced that in the coming weeks, eligible creators will see an Ads automation option in the live control room which allows YouTube to determine when to best insert a mid-roll (aka ads) during a stream. Enabling ads automation is optional and creators can still choose to manually insert mid rolls by clicking the “dollar sign” button in the control room. Creators can skil an upcoming mid roll ad break by clicking the skip ads button in the control room. 5. Google's Recommendation On How To Prevent An Accidental Indexing Of Staging Sites - Staging sites used for testing and development should ideally not be indexed and the latest episode of Google's Search Off The Record podcast discusses the challenges of launching websites and preventing staging sites from being indexed by search engines. Here are some of the things you or your marketing team can do to prevent an accidental indexing of staging sites: Make the staging site password protected Have a robot.txt file and block search engines from crawling staging sites Add a “noindex” tag on each page I prefer option A because it is the easiest. However if you choose to use option B or C then make sure you update the robot.txt or remove the “noindex” tag. Or else your new site will not be crawled.For more insights from Google's Search Relations team, listen to the full podcast here. 6. What Google Feels About Using AI To Write Content - While Google's official stance on using AI to write content is just fine, assuming that content was not written to manipulate the search results. If the content is useful, helpful and quality, it doesn't matter if a machine wrote it or a human. If you are using AI to write spam, then that is against Google's guidelines. But Google also added a new section to the people-first content section on "who, how and why" with your content. When Sumit Gupta asked if he can use ChatGPT to publish content for his website, Muller wrote back “It's like food with only 20% toxic chemicals? Sounds tasty.” When Vakil Keyfari asked if it is ok to for him to use ChatGPT/AI to write English content which will then be translated into Farsi content before publishing to his website. To that, Muller wrote “If you had an important legal case, would you want your lawyer to use chat gpt and Google translate to make the argument before the judge?”While John Mueller of Google doesn't seem too positive about the current state of AI writing great content what he is trying to say is that do not think ChatGPT is the silver bullet. You can use it to research, strengthen/polish a page. Don't just blindly copy-paste what ChatGPT spits out. This was also covered in one of our past episodes.7. Does Google Ignore Iframes? - An inline frame (iframe) is a HTML element that loads another HTML page within the document. It essentially puts another webpage within the parent page. They are commonly used for advertisements, embedded videos, web analytics and interactive content.Historically, there was a time when search engines struggled to crawl and index content within iframes. Search engine robots couldn't access the content inside iframes, and in some cases, they couldn't exit the iframe to continue crawling the rest of the website. Additionally, the content in iframes was often considered to belong to another website, leading to uncertainty about whether it should be indexed.Now to debunk old SEO myth, Google's John Muller wrote that “Google does try to crawl iframed content and include it in the indexed page, if it's allowed. It's not always trivial though, and I don't know how other search engines handle it. If you have something that you absolutely want indexed within the context of a page, I'd work to include it directly rather than relying on iframes. ” Mueller went on to provide further advice for those who use embedded or iframed content on their pages (some of which have already been covered in past episodes of the #TWIMshow): Use the “x-frame-options” header to block iframing entirely if it's not desired. Use “noindex” robots meta tags or “x-robots-tag” if neither the page nor its embedded content should be indexed. Use “indexifembedded” along with “noindex” if the embedded page itself shouldn't be indexed, but its content can be included in a page that's iframing it. If you're concerned whether Google can see the content in iFrames, you can use the “mobile-friendly test” in Search Console. Due to the potential for indexing challenges with iFrames, Google recommends refraining from using them as much as possible. Including important content directly on the page or using other embedding techniques can provide better SEO results and ensure that Google can properly index the content. While iframes may be useful for embedding external content, such as videos and interactive elements, consider the limitations when designing a website.8. Does Pagination Impact Google Crawl Budget? - Pagination is a process which divides content across a series of pages. It is a common and widely used technique for websites to use pagination to divide lists of articles or products into a digestible format.The main issue with pagination in search is that content is divided across multiple pages, rather than loaded on one page. And crawl budget is the number of pages Google will crawl on your site on any given day. This number varies slightly from day to day, but overall, it's relatively stable.Now an online marketer asked Google's John Muller if he should be concerned about pagination and its impact on craw budget? To that question, John Muller replied with “..pagination usually creates separate URLs, so yes, that's something I'd see within the scope of "crawl budget”What this means is that how you design your site impact on how many of your web pages will get crawled.
On this episode of Remote Ruby, if you've never heard of The Cannonball Run, Chris explains what it involves, Andrew is down for it of course, and Jason tells us Vin Diesel recorded a song and Andrew celebrated his birthday! In the Ruby world, we'll find out why the guys are all fans of Pagy, and we'll hear about a fun hack day project that the talented guys from GoRails built called, Beginner Bounties. Basically, if you're a Junior Developer and you need to build your resume and want to stand out, you can use this platform to list small engineering projects for other people and get paid for it. Also, the guys discuss why shipping is such a great skill to have, finding the right job you enjoy, avoiding burnout, the importance of taking breaks, balancing things out, and there's some valuable advice given for all the Junior Developers out there that you don't want to miss. Hit download now to hear more! [00:04:50] At the end of last year, Andrew was working with Turbo and infinite scrolling Pagination, we find out what happened when the author of Pagy reached out to him. Chris and Andres give a huge shout-out to the author for doing top notch maintenance. [00:10:18] If you build Pagination on the frontend with React, Jason explains that Pagy's really good because they have a metadata option you can turn on that has the full set of variables and properties to build pagination on the front end. Jason did it with Inertia.js and there's a great episode to check out with the creator of it. [00:13:39] The new Pagy docs look incredible, we hear about Microsoft .NET, and Chris tells us about using someone's browser called a kiosk browser.[00:18:36] Chris announces at GoRails this week, they decided to have a fun hack day and built a site called Beginner Bounties. Chris had this idea for years, and it's geared towards Junior Developers. Go check it out! [00:22:00] Andrew plays devil's advocate and asks a question using a real example regarding a project, needing to upgrade a gem to take advantage of a new configuration system, and rather than figuring out how to do it, he could pay someone to figure it out faster. Why is this wrong? [00:26:38] We hear a great story about Colin and how he got the experience he needed by helping Andrew, which led to him finally getting a job. Rails developers are the top paid developers right now, but Chris tells us there's not a lot of Junior job openings right now but hopes companies will start hiring more juniors since it will be hard to fight for the senior positions. [00:30:25] There is important advice shared here regarding shipping, and why it's a great skill to have. [00:31:22] Chris tells us about a PR that someone made to the prefixed_ids gem.[00:33:58] Andrew and Chris talk about bounties for Juniors to gain experience in coding. [00:43:23] The valuable points shared here is don't wait for an opportunity to come to you. Start doing something! The people who get stuff done are the ones who will get hired. The worst thing you can do is fail, but you can always try, try again! Also, people hire their friends, and they can help when it comes to finding a job, and when you work with friends you can accomplish more, you can learn more, and have more fun. [00:49:18] Andrew and Chris discuss enjoying what you do for a living, balancing things out, avoiding burnout, and the importance of taking breaks.Panelists:Jason CharnesChris OliverAndrew MasonSponsor:HoneybadgerLinks:Jason Charnes TwitterChris Oliver TwitterAndrew Mason TwitterThe Cannonball RunRemote Ruby Podcast-Episode 66-Joined by Jonathan Reinink, Creator of Inertia.jsPagy.NETBeginner BountiesPrefixed_ids IMAGINARY kiosk-browserRuby Radar TwitterRuby for All Podcast
Below we provide an overview of article creation on your website, managing images, ads, and reverse publishing content to Adobe InDesign. Article Creation Design with blocks Reverse PublishingArticle LinkLet us know your thoughts about this episode by reaching out on Social Media!Facebook: https://www.facebook.com/ourhometownincInstagram: https://www.instagram.com/ourhometownwebpublishing/Twitter: https://twitter.com/ourhometownincLinkedIn: https://www.linkedin.com/company/our-hometown-com/..........Our Hometown Web Publishing is The Last Newspaper CMS & Website You'll Ever Need. We help you generate revenue, engage with readers, and increase efficiency with Our Hometown's Digital & PrePress CMS features to fit your needs & budget.OHT's Web Publishing Platform is:-Powered with WordPress-Hosted on Amazon Web Services-Integrated with Adobe InDesign & Google Drivehttps://our-hometown.comSubscribe to our YouTube channel: https://www.youtube.com/channel/UCKw6KpKUiQkWldrX2-J1Kag?view_as=subscriberOur-Hometown can be reached via email for comments or questions at: ops@Our-Hometown.com
In this week's episode, Jack Chambers-Ward is joined by Goodness Azubuogu, Technical SEO Specialist at Trek Marketing, to discuss pagination in ecommerce including: What is pagination on an ecommerce site? Common mistakes when using pagination on an ecommerce site How do these issues affect the site's SEO? How to effectively implement pagination on an ecommerce site The full show notes and transcript are available at search.withcandour.co.uk
In this episode of Scaling Postgres, we discuss different pagination solutions, how to return modifications, soft deletion alternatives and how to use JSON with PostgreSQL. Subscribe at https://www.scalingpostgres.com to get notified of new episodes. Links for this episode: https://www.cybertec-postgresql.com/en/pagination-problem-total-result-count/ https://sqlfordevs.com/returning-modified-rows https://brandur.org/fragments/deleted-record-insert https://dev.to/ftisiot/how-to-json-in-postgresqlr-1lj7 https://momjian.us/main/writings/pgsql/beyond.pdf http://peter.eisentraut.org/blog/2023/01/11/postgresql-largest-commits https://supabase.com/blog/postgres-foreign-data-wrappers-rust https://medium.com/@walttonm/using-the-window-function-row-number-to-remove-duplicates-in-postgresql-5aef1edfb78c https://pgdash.io/blog/horizontally-scaling-postgresql.html https://www.percona.com/blog/upgrading-postgresql-extensions/ https://www.timescale.com/blog/a-postgresql-developers-perspective-six-interesting-patches-from-novembers-commitfest/ https://pganalyze.com/blog/5mins-postgres-16-pgbench-random-normal https://www.depesz.com/2023/01/11/waiting-for-postgresql-16-invent-random_normal-to-provide-normally-distributed-random-numbers/ https://www.orioledata.com/blog/buffer-management/ https://github.com/orioledb/orioledb https://www.crunchydata.com/blog/solving-advent-of-code-2022-using-postgres-day-11 https://www.crunchydata.com/blog/solving-advent-of-code-2022-using-postgres-day-12 https://www.crunchydata.com/blog/timezone-transformation-using-location-data-and-postgis https://www.migops.com/blog/avoiding-constraint-violations-while-migrating-oracle-to-postgresql-date-data-type/ https://databaserookies.wordpress.com/2023/01/09/substr-functionality-differences-between-oracle-and-postgresql-what-you-need-to-know/ https://databaserookies.wordpress.com/2023/01/08/unleasing-boolean-data-type-casting-in-postgresql/ https://postgres.fm/episodes/copying-a-database https://postgresql.life/post/francesco_tisiot/ https://www.rubberduckdevshow.com/episodes/69-adventures-in-note-taking/
[00:01:21] We hear about Andrew's talk at BridgetownConf.[00:07:31] Since Chris is getting up so early these days, he talks about how productive he feels programming early mornings and late nights, and Andrew shares how addicting it can be to slip into the zone and end up working into the wee hours of the night. [00:08:47] Chris brings up a college memory and having different sleep schedules, and he gives an update from last week's convo about the new updated missing template error page.[00:15:29] Andrew had a problem last week with passing params around. He wonders if Chris has run into weird issues with Turbo and Pagy, and then explains the problem he had hoping someone out there can help him fix it. Any takers?[00:20:18] We find out some issues Chris had with pagination stuff.[00:21:39] Chris brings up 37signals and a new blog where they had a new pagination thing posted.[00:23:48] Andrew mentions Planet Scale blogging about something new for pagination called, FastPage.[00:25:23] There's conversation on having support, working on tickets, and what the new Hatchbox does better now since Chris made some changes. [00:28:50] Chris has been playing with the new Caddy supports HTTP/3 for fun. [00:33:20] Find out about the show Hak5 that still exists, and the guys go down memory lane sharing stories from high school and college.Panelists:Chris OliverAndrew MasonSponsor:HoneybadgerLinks:Jason Charnes TwitterChris Oliver TwitterAndrew Mason TwitterPagy-GitHub37signalsPlanetScalePlanet Scale Blog- Introducing FastPage: Faster offset pagination for Rails appsHak5 ShowsRuby Radar NewsletterRuby Radar TwitterRuby for All Podcast
Jake and Michael discuss all the latest Laravel releases, tutorials, and happenings in the community.This episode is sponsored by Honeybadger - combining error monitoring, uptime monitoring and check-in monitoring into a single, easy to use platform and making you a DevOps hero. Show links Vite is now the default frontend asset bundler for Laravel applications Speeding towards Vite, Shifty workbenches, and documenting your applications with JMac The state of Laravel survey 2022 Laravel A/B testing and feature flag package A package for onboarding users in Laravel apps Fast paginate for Laravel Encrypt and decrypt Eloquent model fields in Laravel apps Add comments to correlate user code with SQL queries in Laravel Eloquent attribute casting Moving your Laravel app from Webpack to Vite Speed up your CI builds with Airdrop
Did you know you can add testing to your Python code while simultaneously documenting it? Using docstrings, you can create examples of how your functions should interact in a Python REPL and test them with the built-in doctest module. This week on the show, Christopher Trudeau is here, bringing another batch of PyCoder's Weekly articles and projects.
SEO tip for Brisbane... And today it's a bit of a technical one, and can't really avoid it being technical, so just take it at face value. Dont miss it check out the video!!! https://g.page/constantech https://constantech.biz/search-marketing/
In this episode of Scaling Postgres, we discuss the current status of zheap, the gaps in sequences, how to efficiently paginate and how to set up patroni with etcd and haproxy. Subscribe at https://www.scalingpostgres.com to get notified of new episodes. Links for this episode: https://www.cybertec-postgresql.com/en/postgresql-zheap-current-status/ https://incident.io/blog/one-two-skip-a-few https://pganalyze.com/blog/pagination-django-postgres https://arctype.com/blog/postgres-patroni/ https://fluca1978.github.io/2021/07/20/PostgreSQLExtensions.html https://www.highgo.ca/2021/07/23/the-amazing-buffer-tag-in-postgresql/ https://www.paulox.net/2021/07/19/maps-with-django-part-2-geodjango-postgis-and-leaflet/ https://blog.crunchydata.com/blog/using-postgis-and-pg_featureserv-with-qgis https://blog.crunchydata.com/blog/waiting-for-postgis-3.2-st_makevalid https://blog.crunchydata.com/blog/waiting-for-postgis-3.2-st_contour-and-st_setz https://postgresql.life/post/rafia_sabih/ https://www.rubberduckdevshow.com/episodes/5-object-oriented-vs-functional-programming/
In this episode of the ecommerce coffee break, I talk about the pros and cons of using Pagination vs Infinite Scroll on your store's category pages.Got A Question You Want Answered On the Podcast?Ask your questions or let me know if there is a topic or guest you'd like to hear from in the comments below or click here to visit my contact page and submit your question there for a chance to be featured on one of my upcoming Q&A episodesSubscribe & Listen Everywhere:Listen On: My Site | iTunes | Spotify | Amazon | Stitcher | DeezerPlease support the podcast by giving an honest Rating/Review for the show on iTunes!Share the podcast with your family, friends, and co-workers.Tag the podcast on Instagram @clauslauter and let me know what you like about it.If you like the content and would like to support the podcast, you can buy me a coffee here._______________
00:00 - DAX PIERSON - "FOR THE ANGELS" NERVE BUMPS (A QUEER DIVINE DISSATISFACTION) (RATSKIN RECORDS) 04:53 - ZVRRA - "FLOW STATE" FLOW STATE 08:56 - [MONRHEA] - "OR MAYBE" STEER_CLEAR 15:06 - SOFIA BERTOMEAU - "PROBABILITY" SPICES 18:30 - DUBHARP - "LYRA'S ASCENT (FEAT. LARAAJI)" SPIRAL HEIGHTS (100% SILK) 22:36 - ANDREW TUTTLE & PADANG FOOD TIGERS - "A GAME OF MARGINAL GAINS" A CASSOWARY APART (BEDROOM SUCK) 26:30 - JUSELL, PRYMEK, SAGE, SHIROISHI - "LAVENDAR" SETSUBUN (節分) (CACHEDMEDIA) 32:26 - THANK YOU THANK YOU - "OUT OF NOWHERE" NEXT TO NOTHING (OOF RECORDS) 34:48 - ADELINE HOTEL - "I HAVE FOUND IT" GOOD TIMING (RUINATION RECORDS) 36:57 - TUCKER THEODORE - "HOLLOW (FEAT. MIDWIFE)" LEWISTON BY THE SEA (ANTIQUATED FUTURE) 40:59 - claire rousay - "DISCRETE (THE MARKET) A SOFTER FOCUS (AMERICAN DREAMS) 47:00 - CHRISTOPHER ROYAL KING & NICO ROSENBERG - "UN VIEJO AMIGO" 51:06 - OORA - "I TOURI OCCHI" 55:54 - SHEA BETTS - "PASSENGERS" 01:00:31 - PAGINATION - "YOUR OTHER LEFT" FOR WHY (CYCLICAL DREAMS) 01:08:02 - PRE POLAR - "CRYSTAL MONUMENTS" 01:11:47 - ZAKÈ & CITY OF DAWN - "AN ETERNAL MOMENT HIDDEN AWAY, VARIATION 1" 01:16:37 - MILAD BAGHERI - "GALOBA III" GALOBA (FLAG DAY) 01:24:34 - ADAM CUTHBERT & DANIEL RHODE - "THE SHOOTING STAR SHE SAW" 01:31:21 - DARKTWAINE - "CHAOTIC GOOD" THE PSYCHODYNAMICS OF SELF REALIZATION 01:35:21 - MIKE NIGRO - "LOOSE TIME" IN COMMUNION (ALIEN GARAGE) 01:40:50 - NUNCA DAMO - "IT ALL HAPPENS QUITE QUICKLY" YEARS IN THE TYPING POOL 01:45:28 - CHLOE YU NONG LIN - "PI SOUND 琶聲" (MONASTRAL) 01:50:50 - ENDLINGS - "CITHER" HUMAN FORM (WHITED SEPULCHRE) 01:56:38 - SIMON PROVENCHER - "CHOIX MULTIPLES" MESURES (MICHEL RECORDS) 01:59:22 - JEN KUTLER - "FAIRNESS" SONIFIED PSYCHOLOGICAL INDICATORS OF EMPATHY (CACOPHONOUS REVIVAL) 02:04:06 - WHITE SUNS - "ANTHEMUSA" THE LOWER WAY (DECOHERENCE RECORDS) 02:09:19 - SUN PICTURE - "TENSION AT THE PARK 1990" SO MANY LITTLE ROOMS (A RED THREAD)
Jen talks about the connections between Pagination and the college, and Shawn discusses the phenomenon of anticipated grieving.
Glossar: Pagination --- Send in a voice message: https://anchor.fm/digital-nachhaltig/message
In this episode, we talk with Matt McGann, who is the founder of Health Horizon. tracking upcoming health technologies as they develop in real time for companies, investors, and innovators as well.He is also the creator of Roam for Teamwork: covering multiplayer knowledge bases, where everything is connected and nothing is duplicated. How to set up Rome as a place where teamwork naturally builds a coherent repository of the organization's knowledge. So if you are interested in setting up a multi-player Roam for your team, this is a great resource for you. You can find this roamforteamwork.com.Starting off with a Ph.D. in Theoretical Physics at the Australian National University and getting into entrepreneurship, Mat is now working on Health Horizon, managing a team of four on a shared Roam Graph. So this episode will be all about processes, methods, product management and more, all on detailed Roam-specific processes. We are going to get technical In this episode.We talked about:Starting a podcast about academia and getting paid $10k for 5 episodesHow Mat stepped away from academic papers and focused on popular scientific breakthroughsThe mission behind Health HorizonMat's multiplayer workflow: queries to sprints, Sales CRM, tasklist management, pseudo-notifications and moreWhy multiplayer Roam is the inverse of singleplayer RoamAnd more. Enjoy!Timestamps2:30 $10,000 for 5 podcast episodes on academia9:20 Why is his website called Unlamed?11:23 [[Science Communication]], and losing interest in science13:52 Academic papers are more about accountability16:32 Making the jump from academia to entrepreneurship18:40 Barrier comparisons between physics and biology/medicine20:33 What happened to these promising medical breakthroughs? Health Horizon's story23:41 Who it's for: Health innovation, Roam Medical, etc.26:08 Discovering Roam by mistake during Christmas30:03 An Inverse graph, implementing Roam into [[Health Horizon]]31:58 Health Horizon workflow: The Attention page33:07 Sidebar shortcuts, tags and deliverables36:23 Splitting notifications into multiple types40:23 How [[Health Horizon]] runs sprints in Roam44:34 Pagination and standardization saves time46:13 Restructuring in Roam has little friction48:17 Using attributes to enforce structure and summarize50:54 Tracking new sales opportunities: an example54:56 Sales are a case by case basis, no templates56:39 Recreating Team Excel in Roam58:06 Mat's requests: notifications and dropdown1:02:50 Transcribing physical books and margins into Roam1:08:32 [[How would you describe Roam to someone who hasn't started using it?]]1:10:52 [[What does Roam mean to you?]]LinksMat McGann's TwitterHealth HorizonRoam for TeamworkUnlamed: The blog of Jamie Freestone and Mathew McGannSupport the show (https://www.buymeacoffee.com/normanchella)
This week's episode is all about how to leave your job the right way. We talk about Rafa's experience leaving Netlify and being intentional about career choices.Sponsors Retool: Build internal tools, fast. Stop wrestling with UI libraries and hacking together data sources to build internal apps. Webflow: Webflow empowers designers to build professional, custom websites in a completely visual canvas. Use code LAYOUT for 10% off on annual plans with a new account. Show notes 9to5Mac: YouTube starts testing native picture-in-picture feature in its iOS app Khaled stands with Rafa Listener Ollie's thoughts on pagination and YouTube Premium Netlify Recommendations Aesop Coriander Seed Body Cleanser Muse - tool for thought HostsKevin Clark (@vernalkick)Rafael Conde (@rafahari)
On this episode, we talk to Ben Croker from PutYourLightsOn about his new plugin for Craft CMS called Sprig.
In this episode of Scaling Postgres, we discuss recursive queries, using lateral joins, paging through a data sets efficiently and working with JSONB arrays. Subscribe at https://www.scalingpostgres.com to get notified of new episodes. Links for this episode: https://www.postgresql.org/about/news/2060/ https://www.cybertec-postgresql.com/en/recursive-queries-postgresql/ https://info.crunchydata.com/blog/iterators-in-postgresql-with-lateral-joins https://momjian.us/main/blogs/pgblog/2020.html#August_12_2020 https://engineering.shopify.com/blogs/engineering/pagination-relative-cursors https://use-the-index-luke.com/sql/partial-results/fetch-next-page https://levelup.gitconnected.com/working-with-a-jsonb-array-of-objects-in-postgresql-d2b7e7f4db87 https://www.2ndquadrant.com/en/blog/running-multiple-pgbouncer-instances-with-systemd/ https://www.highgo.ca/2020/08/08/partitioning-improvements-in-postgresql-13/ https://www.highgo.ca/2020/08/10/postgresql-high-availability-the-considerations-and-candidates/ https://www.highgo.ca/2020/08/11/consensus-based-failover-with-pgpool-ii/ https://info.crunchydata.com/blog/recommendation_engine_in_postgres_with_pandas_and_python https://postgresql.life/post/michael_brewer/
This week, Sarah and Hannah chat to Patrick Stox, product adviser, technical SEO and brand advisor at Ahrefs, who also organises multiple SEO events including Raleigh SEO Meetup, Beer and SEO Meetup and Findability Conference. They discuss beer, clean sheets and the hosts find out that Patrick loves musicals, would happily give up his phone and would rather live in a space ship rather than a submarine. They also find out about his career and how he first started off as a developer, and then his boss asked if he wanted to learn SEO and the rest is history. Patrick was invited on the podcast to talk about pagination after Hannah came across a blog Patrick wrote all about how SEOs are breaking pagination and how to get it right. They discuss everything from how the implementation of rel=prev/next has changed to whether pagination is important and debunking pagination conspiracies to crawl paths and making sure everything is discovered on a website. Of course there is a feature and Patrick technically tries to cheat, but quizmaster Sarah is having none of it. Where to find Patrick Website - https://patrickstox.com/ (https://patrickstox.com/) Twitter - https://twitter.com/patrickstox (https://twitter.com/patrickstox) LinkedIn - https://www.linkedin.com/in/patrickstox (https://www.linkedin.com/in/patrickstox) Ahrefs Contributor - https://ahrefs.com/blog/author/patrick-stox/ (https://ahrefs.com/blog/author/patrick-stox/) Search Engine Land Contributor - https://searchengineland.com/author/patrick-stox (https://searchengineland.com/author/patrick-stox) Marketing Land Contributor - https://marketingland.com/author/patrick-stox (https://marketingland.com/author/patrick-stox) Resources Pagination blog (https://ahrefs.com/blog/rel-prev-next-pagination/)
Paginierung ist für viele ein vermeintlich längst gelöstes Problem, aber Paginierung ist immer ein Kompromiss zwischen Struktur, Usability und Design und birgt viele Fallstricke. Der Vortrag nimmt das Thema Paginierung komplett auseinander und erklärt Dir anschaulich an Beispielen, warum Du dich für oder gegen einzelne Lösungen entscheiden solltest. Was Du nach dem Webinar gelernt hast: Hintergrundwissen zu generellen Aspekten von Paginierung Systematisches testen unterschiedlicher Paginierungen Probleme von Paginierungsansätzen Best Practice Beispiele Zielgruppe: Der Vortrag bereitet ein komplexes Thema einfach verständlich auf und eignet sich daher für alle Zielgruppen. Die Themen Struktur und Usability stehen im Vordergrund. Link zum Webinar: https://www.omt.de/webinare/the-ultimate-pagination-for-seo/ Link zur SEO Themenwelt: https://www.omt.de/suchmaschinenoptimierung/
Sponsored by us! Talk Python courses & pytest book. Topic #0: Quick chat about COVID 19. Brian #1: Documentation as a way to build Community Melissa Mendonça “… educational materials can have a huge impact and effectively bring people into the community.” Quality documentation for OSS is often lacking due to: decentralized development documentation is not as glamorous or as praised as new features or major bug fixes “Even when the community is welcoming, documentation is often seen as a "good first issue", meaning that the docs end up being written by the least experienced contributors in the community.” Possible solution: organize/re-organize docs into: tutorials how-tos reference guide explanations consequences: Improving on the quality and discoverability Clear difference between docs aimed at different users Give users more opportunities to contribute, generating content that can be shared directly on the official documentation Building a documentation team as a first-class team in the project, which helps create an explicit role as documentation creator. This helps people better identify how they can contribute beyond code. Diversifying our contributor base, allowing people from different levels of expertise and different life experiences to contribute. This is also extremely important so that we have a better understanding of our community and can be accessible, unbiased and welcoming to all people. Referenced in article: "What nobody tells you about documentation" Michael #2: The Django Speed Handbook: making a Django app faster By Shibel Mansour Speed of your app is very important: 100ms is an eternity. SEO, user conversions, bounce rates, etc. Use the tried-and-true django-debug-toolbar. Analyze your request/response cycles and see where most of the time is spent. Provides database query execution times and provides a nice SQL EXPLAIN in a separate pane that appears in the browser. ORM/Database: Two ORM functionalities I want to mention first: these are select_related and prefetch_related. Nice 24x perf improvement example in the article. Basically, beware of the N+1 problem. Indexes: Be sure to add them but they slow writes. Pagination: Use it if you have lots of data Async / background tasks. Content size: Shrunk 9x by adding gzip middleware Static files: minify and bundle as you can, cache, serve through nginx, etc. At Python Bytes, Talk Python, etc, we use webassets, cssmin, and jsmin. PageSpeed from Google, talk python’s ranking. ImageOptim (for macOS, others) Lazy-loading images: Lazily loading images means that we only request them when or a little before they enter the client’s (user’s) viewport. With excellent, dependency-free JavaScript libraries like LazyLoad, there really isn’t an excuse to not lazy-load images. Moreover, Google Chrome natively supports the lazy attribute. Remember: Test and measure everything, before and after. Brian #3: dacite: simplifies creation of data classes from dictionaries Konrad Hałas dataclasses are awesome quick and easy fields can have default values be excluded from comparison and/or repr and more data often gets to us in dictionaries Converting from dict to dataclass is trivial for trivial cases: x = MyClass(**data_as_dict) For more complicated conversions, you need dacite dacite.from_dict supports: nested structures optional fields and unions collections type_hooks, which allow you to have custom converters for certain types strict mode. Normally allows extra input data that is just ignored if it doesn’t match up with fields. But you can use strict to not allow that. Raises exceptions when something weird happens, like the wrong type, missing values, etc. Michael #4: How we retired Python 2 and improved developer happiness By Barry Warsaw The Python Clock is at 0:00. In 2018, LinkedIn embarked on a multi-quarter effort to fully transition to a Python 3 code base. In total, the effort entailed the migration of about 550 code repositories. They don't use Python in our product or as a monolithic web service, and instead have hundreds of independent microservices and tools, and dozens of supporting libraries, all owned by independent teams in separate repositories. In the early days, most of internal libraries were ported to be “bilingual,” meaning they could be used in either Python 2 or 3. Given that the migration affected all of LinkedIn engineering across so many disparate teams and thousands of engineers, the effort was overseen by our Horizontal Initiatives (HI) program. Phase 1: In the first quarter of 2019, we performed detailed dependency graphing, identifying a number of repositories that were more foundational, and thus needed to be fully ported first because they blocked the ports of everything that depended on them. Phase 2: In the second quarter of 2019, we identified the remainder of repositories that needed porting Post-migration reflections: Our primary indicator for completing the migration of a multiproduct was that it built successfully and passed its unit and integration tests. For other organizations planning or in the midst of their own migration paths, we offer the following guidelines: Plan early, and engage your organization’s Python experts. Find and leverage champions in your affected teams, and promote the benefits of Python 3. Adopt the bilingual approach to supporting libraries so that consumers of your libraries can port to Python 3 on their own schedules. Invest in tests and code coverage—these will be your best success metrics. Ensure that your data models are explicit and clear, especially in identifying which data are bytes and which are human-readable text. Benefits: No longer have to worry about supporting Python 2 and have seen our support loads decrease. Can now depend on the latest open source libraries and tools, and free from the constrictions of having to write bilingual Python. Opportunistically and enthusiastically adopting type hinting and the mypy type checker, improving the overall quality, craft, and readability of Python code bases. Brian #5: The Troublesome Active Record Pattern Cal Paterson "Object relational mappers" (ORMs) exist to bridge the gap between the programmers' friend (the object), and the database's primitive (the relation). Examples include Django ORM and SQLAlchemy The Active Record pattern of data access is marked by: A whole-object basis Access by key (mostly primary key) Problem: Queries that don’t need all information for objects retrieve it all anyway, and it’s easy to code for loops to select or collect info that are wildly inefficient. how many books are there how many books about software testing written by Oregon authors Problem: transactions. people can forget to use transactions, some ORMs don’t support them, they are not taught in beginner tutorials, etc. SQLAlchemy has sessions Django has atomic() REST APIs can suffer the same problems. Solutions: just use SQL first class queries first class transactions avoid Active Record style access patterns Be careful with REST APIs Alternatives: GraphQL RPC-style APIs Michael #6: Types at the edges in Python By Steve Brazier For a new web service in python there are 3 things to start with: Pydantic mypy Production error tracking of some kind Why: Because what is this about? AttributeError: 'NoneType' object has no attribute 'strip' It should be: none is not an allowed value (type=type_error.none.not_allowed) We then launch this code into production and our assumptions are tested against reality. If we’re lucky our assumptions turn out to be correct. If not we likely encounter some cryptic NoneType errors like the one at the start of this post. Pydantic can help by formalizing our assumptions. mypy carries on helping: Once you see the error at the start of this post (thanks error reporting) you know what is wrong about assumptions. Make the following change to your code: field: typing.Optional[str] BTW: FastAPI integrates with Pydantic out of the box. A mini-kata like exercise here that can be worked through: meadsteve/types-at-the-edges-minikata Extras: Michael: Python Bytes Awesome Package List by Jack Mckew Visual Basic Will Stall Out With .NET 5 COVID 19 data sets New course in dev: Adding a CMS to Your Data-Driven Web App [in Pyramid|Flask] Joke:
In this episode of Scaling Postgres, we discuss efficient pagination, how to rotate passwords, BRIN benefits and Row Level Security. Subscribe at https://www.scalingpostgres.com to get notified of new episodes. Links for this episode: https://engineering.shopify.com/blogs/engineering/pagination-relative-cursors https://www.jannikarndt.de/blog/2018/08/rotating_postgresql_passwords_with_no_downtime/ https://www.alibabacloud.com/blog/create-an-brin-index-at-a-fraction-of-the-normal-size_595138 https://www.cybertec-postgresql.com/en/postgresql-row-level-security-views-and-a-lot-of-magic/ https://scalegrid.io/blog/managing-high-availability-in-postgresql-part-3/ https://www.2ndquadrant.com/en/blog/developing-on-many-versions-of-postgresql-at-once/ http://www.pateldenish.com/2019/08/clone-schema-in-postgres.html https://www.percona.com/blog/2019/08/19/percona-distribution-for-postgresql-11-beta-is-now-available/ http://www.myrkraverk.com/blog/2019/08/porting-a-postgresql-extension-from-unix-to-windows-10/ https://info.crunchydata.com/blog/waiting-for-postgis-3-parallelism-in-postgis
Hey Everyone! Welcome to another episode of the Digital Marketing Dive Podcast. I'm Seth Goldstein from Goldstein Media, with me is the self-proclaimed king of the Internet, Shawn Swaim, of Shawn Swaim Consulting. We have a great episode for you today. Today we're going to talk about a topic that is near and dear to his royal highness' heart... E-Commerce and SEO. What makes E-Commerce and SEO a different beast than regular optimization of a non-commerce site? Three words… Tech- Ni- Cal Crawlability, Canonicalization, Pagination, etc. Optimize Your Meta Titles, Descriptions, and H1's All on different levels - Content/Category/Product Your URLs MUST be human readable. If you have a bunch of “gobbledygook” in the URLs it will hurt you in the rankings. Write unique product titles and descriptions DUplicate content is still duplicate content Keyword rich content is still needed Rant possibility: People say SEO is dead for ecommerce… “It doesn't work”... in reality, laziness is what doesn't work. Canonicalization Shawn… enlighten us. Focus on ranking individual product and category pages for less competitive terms A saturated market for direct match terms Find Long‐Tail and Related Keyword Variations Need SSL (HTTPS) sitewide. You should have this regardless. An XML sitemap is key Difference between Sitemap and Sitemap index? Look at your competition and what they are ranking for. Look at the pages they are ranking for… 20/180 Principle Use Schema.org to mark up your site with schema tags to make the site that much more user and bot friendly Start with Brands, Contact Info, Reviews Great resource, but highlights their tool is Ahref's article on this topic. As you know both Shawn and I are big WordPress CMS fans. We're going to start sharing our favorite plugins and tips for making your WordPress site even better here. Here's our picks this week: Shawn: Classic Editor - Get rid of the that pesky Gutenberg! Seth: MainWP - This is a great plugin that allows you to setup a quick way to update all your customers' sites in one swoop. E-Commerce Related Pick: WP SEO Structured Data Schema Pro Well that was fun. As always please give us a review in the podcast directory of your choice. We're all of the major directories. We also want to hear from you. Email us at digitalmarketingdivepodcast@gmail.com. Leave us questions, comments, critiques, rants, you name it. If you don't want us to read the note on the show, please tell us, because we probably will! Also feel free join our Facebook group to continue the conversation: https://www.facebook.com/groups/digitalmarketingdive/ So that's it. It's been fun! See you on the flip side! Learn more about your ad choices. Visit megaphone.fm/adchoices
Hey Everyone! Welcome to another episode of the Digital Marketing Dive Podcast. I’m Seth Goldstein from Goldstein Media, with me is the self-proclaimed king of the Internet, Shawn Swaim, of Shawn Swaim Consulting. We have a great episode for you today. Today we’re going to talk about a topic that is near and dear to his royal highness’ heart... E-Commerce and SEO. What makes E-Commerce and SEO a different beast than regular optimization of a non-commerce site? Three words… Tech- Ni- Cal Crawlability, Canonicalization, Pagination, etc. Optimize Your Meta Titles, Descriptions, and H1’s All on different levels - Content/Category/Product Your URLs MUST be human readable. If you have a bunch of “gobbledygook” in the URLs it will hurt you in the rankings. Write unique product titles and descriptions DUplicate content is still duplicate content Keyword rich content is still needed Rant possibility: People say SEO is dead for ecommerce… “It doesn’t work”... in reality, laziness is what doesn’t work. Canonicalization Shawn… enlighten us. Focus on ranking individual product and category pages for less competitive terms A saturated market for direct match terms Find Long‐Tail and Related Keyword Variations Need SSL (HTTPS) sitewide. You should have this regardless. An XML sitemap is key Difference between Sitemap and Sitemap index? Look at your competition and what they are ranking for. Look at the pages they are ranking for… 20/180 Principle Use Schema.org to mark up your site with schema tags to make the site that much more user and bot friendly Start with Brands, Contact Info, Reviews Great resource, but highlights their tool is Ahref’s article on this topic. As you know both Shawn and I are big WordPress CMS fans. We’re going to start sharing our favorite plugins and tips for making your WordPress site even better here. Here’s our picks this week: Shawn: Classic Editor - Get rid of the that pesky Gutenberg! Seth: MainWP - This is a great plugin that allows you to setup a quick way to update all your customers’ sites in one swoop. E-Commerce Related Pick: WP SEO Structured Data Schema Pro Well that was fun. As always please give us a review in the podcast directory of your choice. We’re all of the major directories. We also want to hear from you. Email us at digitalmarketingdivepodcast@gmail.com. Leave us questions, comments, critiques, rants, you name it. If you don’t want us to read the note on the show, please tell us, because we probably will! Also feel free join our Facebook group to continue the conversation: https://www.facebook.com/groups/digitalmarketingdive/ So that’s it. It’s been fun! See you on the flip side! --- Support this podcast: https://anchor.fm/digital-marketing-dive/support
Hey Everyone! Welcome to another episode of the Digital Marketing Dive Podcast. I'm Seth Goldstein from Goldstein Media, with me is the self-proclaimed king of the Internet, Shawn Swaim, of Shawn Swaim Consulting. We have a great episode for you today. Today we're going to talk about a topic that is near and dear to his royal highness' heart... E-Commerce and SEO. What makes E-Commerce and SEO a different beast than regular optimization of a non-commerce site? Three words… Tech- Ni- Cal Crawlability, Canonicalization, Pagination, etc. Optimize Your Meta Titles, Descriptions, and H1's All on different levels - Content/Category/Product Your URLs MUST be human readable. If you have a bunch of “gobbledygook” in the URLs it will hurt you in the rankings. Write unique product titles and descriptions DUplicate content is still duplicate content Keyword rich content is still needed Rant possibility: People say SEO is dead for ecommerce… “It doesn't work”... in reality, laziness is what doesn't work. Canonicalization Shawn… enlighten us. Focus on ranking individual product and category pages for less competitive terms A saturated market for direct match terms Find Long‐Tail and Related Keyword Variations Need SSL (HTTPS) sitewide. You should have this regardless. An XML sitemap is key Difference between Sitemap and Sitemap index? Look at your competition and what they are ranking for. Look at the pages they are ranking for… 20/180 Principle Use Schema.org to mark up your site with schema tags to make the site that much more user and bot friendly Start with Brands, Contact Info, Reviews Great resource, but highlights their tool is Ahref's article on this topic. As you know both Shawn and I are big WordPress CMS fans. We're going to start sharing our favorite plugins and tips for making your WordPress site even better here. Here's our picks this week: Shawn: Classic Editor - Get rid of the that pesky Gutenberg! Seth: MainWP - This is a great plugin that allows you to setup a quick way to update all your customers' sites in one swoop. E-Commerce Related Pick: WP SEO Structured Data Schema Pro Well that was fun. As always please give us a review in the podcast directory of your choice. We're all of the major directories. We also want to hear from you. Email us at digitalmarketingdivepodcast@gmail.com. Leave us questions, comments, critiques, rants, you name it. If you don't want us to read the note on the show, please tell us, because we probably will! Also feel free join our Facebook group to continue the conversation: https://www.facebook.com/groups/digitalmarketingdive/ So that's it. It's been fun! See you on the flip side! Learn more about your ad choices. Visit megaphone.fm/adchoices
In this episode, Mark Williams-Cook will be talking about: - Pagination problems There is a significant pagination bug present in the WPEngine system and Google have updated their best practise advise regarding pagination. - Date published abuse Google reaffirm best practise for articles using datePublished and dateModified as some SEOs cite concerns Google may not have a grip on this as publishers are abusing it for rankings - Google My Business fraud reporting In case you missed it, Google My Business as launched a new form which enables you to report competitors or fraudulent listings within Google My Business. You can get the full transcription and links for this episode in our show notes at https://search.withcandour.co.uk
Google speaks to its potential use of click through rate in its organic algorithms, how to properly optimize for paginated content, how it handles your money or your life searches, and more. Ross and John announce the new SEO community group on Facebook - it's new home now that the Google Plus community is close to shutting down. The new community URL is https://www.facebook.com/groups/seo101podcast/
Google speaks to its potential use of click through rate in its organic algorithms, how to properly optimize for paginated content, how it handles your money or your life searches, and more. Ross and John announce the new SEO community group on Facebook - it’s new home now that the Google Plus community is close to shutting down. The new community URL is https://www.facebook.com/groups/seo101podcast/
Google speaks to its potential use of click through rate in its organic algorithms, how to properly optimize for paginated content, how it handles your money or your life searches, and more. Ross and John announce the new SEO community group on Facebook - it’s new home now that the Google Plus community is close to shutting down. The new community URL is https://www.facebook.com/groups/seo101podcast/
The mortgage industry, as we know, is pushed and pulled by interest rates. Calvin Schnure (https://www.etftrends.com/mortgage-industry-preparing-itself-for-more-real-estate-doldrums-in-2019/?utm_source=Pagination&utm_medium=pagination&utm_campaign=pagination) , SVP of the National Association of Real Estate Investment Trusts’ recently stated, “The interest rates are keeping demand in check, but it’s not going to push it down. I don’t see the real downside risks people are worried about,” My guest on today’s show, Bob Wasieko, is the Branch Manager for Geneva Financial. Bob has been in the business for over 22 years and I’m so pleased that he can lend us his expertise and unlimited knowledge of the mortgage industry. During this episode, Bob and I discuss the Dodd-Frank Act, and how it has changed the fundamentals of mortgage lending. Furthermore, Bob explains the similarities and differences between 2008 and today, and how that is impacting the industry. He also provides his insights on where we are in the real estate investment cycle and gives his hypothesis on the trends we will be seeing for the next 5 years. Tip of the Day: Prepare in advance for success. -Bob WasiekoTweet This Timely Information from Another Expert #INVESTTHIS EP 21: (https://www.investthispodcast.com/ep-21-exclusive-tax-advice-from-enrolled-agent-scott-garner/) Exclusive Tax Advice from Enrolled Agent, Scott Garner Start In Wholesaling: Want to start in wholesaling? I got my first deal going using Real Estate World Wide. TRY IT YOURSELF! (https://jr208.isrefer.com/go/fmsnaw/a717/)
Discussing the different Fantasy subgenres. Does your group explicitly agree on what they want?
Lange Listen führen in Browser zu Performance Probleme und überfordern den Nutzer. Neben dem Pagination und Infinite Scrolling erlaubt uns das virtuelle Scrolling beliebig große Datenmengen performant in Webseite zu platzieren. In dieser Folge schauen wir uns das Feature von Angular CDK (ab Version 7) an: Das virtuelle Scrolling. Neben den Einstellungen betrachten wir Vorteile und Nachteile. Als alternative Strategien werden Pagination und Infinite Scrolling aufgeführt.
Wie verliert man sich nicht in seinem Schaffungswahn? Kaum zu glauben, dass darauf Content-Maschine Andre Alpar eine Antwort parat hat, immerhin beantwortet er jeden Montag liebevoll und stets durchrecherchiert die komplexesten Fragen. Diese Woche zum Beispiel: Ich bin selber Gründer und verliere mich ab und zu in meinem Schaffungswahn. Ich checke rundum den Tag News, verfolge neue Entwicklungen und fahre mir Input von diversen Quellen rein. Oft verliere ich dabei den Blick für die Welt um mich herum. Wie balanciert ihr Arbeit, Freizeit und Freude? Gibt es klare Trennungen? Wie strukturiert ihr euren Alltag? Sagt ihr oft “nein” zu Dingen, die der Rest eurer Freunde machen? (01:50) Ich würde auf einer Landing Page gerne lazy load von Content implementieren, um die Seite schneller laden zu können und dem User eine bessere Experience zu bieten anstatt eine Pagination zu verwenden. Was ist deine Empfehlung? Meine Befürchtung ist dass die zusätzlichen Inhalte inkl. Links zu Detailseiten nicht vollumfänglich gecrawlt werden können. Welche modernen UI/UX Ansätze findest du kritisch in Bezug auf SEO? (06:25) Online haben wir kaum die Möglichkeit echte Abschlüsse bzw. Käufe zu generieren (Backend und Regulatorik der Branche machen es da schwer), werben aber natürlich verstärkt für alle Produkte und vorhandenen Apps und Services, welche die Convenience für unsere Kunden erhöhen. Meine Aufgabe ist es also, online aktiv für unsere Dienstleistungen und Produkte zu werben, ich muss es aber trotzdem schaffen, dass der User letztendlich physisch in unserer Filiale auftaucht, um dort den Kauf zu tätigen (weil online nicht möglich). Wie schaffe ich es, den Medienbruch charmant zu überbrücken? Habt ihr Beispiele von anderen Unternehmen, die vor der gleichen Problematik stehen und das erfolgreich meistern? (13:46) Schickt uns wie immer auch gerne eure Fragen via Whatsapp. Wir binden auch eure Audionachrichten gerne in die Folge mit ein! Die Nummer direkt ins Herz von #askOMR lautet: +49 176 30010452 Die Übersicht aller bisher gestellten Fragen findest du hier: bit.ly/2szU7yb Alle Infos, Links und die Shownotes zur aktuellen Folge findest Du im Laufe der Woche hier: goo.gl/Av2V79 In #askOMR beantworten wir Eure Fragen rund um das Thema Digitalmarketing. Stelle im #askOMR Slack-Workspace Deine Fragen an unseren Podcast-Host Andre Alpar. Du kannst hier einfach alles loswerden, was du von Andre & OMR wissen willst. Wir beantworten deine Frage für Dich und alle Hörer im #askOMR Podcast, jeden Montag neu. Join now: www.omr.com/askomr podstars@omr.com
Besoin de mettre en page un document Word (.docx) volumineux ? Dans ce tuto, je te montre comment créer une table des matières automatique, ajouter des n° de pages et compresser tes images. Abonne-toi à ma chaîne YouTube ici : http://jbv.ovh/jeanviet --------- - Mon Twitter : https://twitter.com/jeanviet - Mon Facebook : https://www.facebook.com/jeanviet.info - Mon Instagram : https://www.instagram.com/jeanviet/ --------- Si tu n’a pas Word 2016 ou Office 365, tu peux télécharger une version d’essai gratuite d’1 mois sur le site de Microsoft pour mettre en pratique mon tuto. https://products.office.com/fr-fr/try --------- Regardons toutes les manips ensemble depuis mon Mac, ça marche aussi depuis un PC équipé de Word 2016. 1ère étape, je pagine mes pages 2ème étape, je mets en pages mes titres 3ème étape, je crée mon sommaire automatique 4ème étape, je récupère mes images haute définition à part 5ème étape, je crompresse les images et j’envoie le fichier à mon éditeur --------- Abonne-toi à ma chaîne YouTube ici : http://jbv.ovh/jeanviet --------- Musiques : Locally Sourced Daily Beetle par Kevin MacLeod est distribué sous la licence Creative Commons Attribution (https://creativecommons.org/licenses/by/4.0/) Source : http://incompetech.com/music/royalty-free/index.html?isrc=USUAN1500025 Safety Net
Добрый день уважаемые слушатели. Представляем новый выпуск подкаста RWpod. В этом выпуске: Ruby Ruby 2.6 adds Enumerable#filter as an alias of Enumerable#select и Rails… Still?!?! GraphQL pagination in Rails, 101: Advanced OOP structure, EuRuKo Ruby conference, day 1 и EuRuKo Ruby conference, day 2 JavaScript Babel 7 Released, So What's New in Babel 7?, Babel-upgrade: upgrade to v7 и React Fire: Modernizing React DOM Aijs.rocks - a collection of inspirational AI-driven projects written in JavaScript, Reworm - the simplest way to manage state и Turbo-json-parse - turbocharged JSON.parse for type stable JSON data
Jake and Michael discuss all the latest Laravel releases, tutorials, and happenings in the community.
I'm an SEO and a blogger so I know exactly what you need to know as someone who creates content online. Here are my go-to SEO basics, from things that I have covered in previous episodes such as keyword research and site speed to common blogger issues that you might not even know is an issue like categorisation and pagination. Did you ever wonder how often you should post as a blogger and whether it affects your visibility online? Well wonder no more, because the answer is yes it does affect your SEO. Find out more by listening to the episode. Show notes & SUBSCRIBE to newsletter. Email me: seowithmrsghost@gmail.com Tweet me: @MrsAlinaGhost If you like the show please rate, write a review and tell your friends and colleagues!
Today’s guest, Joost de Valk, is here to talk about how his plugin helps you assess the quality of your content, but also to take a deep dive into WordPress SEO. He’s the creator of the Yoast SEO plugin, which is currently active in over 8.5 million WordPress websites. It’s easy to say that the key to good SEO is quality content. But what exactly counts as quality content? How do you know whether your content is good enough to optimize your site? Listening to today's podcast is a step in the right direction. Find Out More About Joost Here: Joost de Valk on Twitter Joost de Valk on LinkedIn Yoast In This Episode: [01:30] - Joost starts things off by talking about the best ways to maximise Yoast’s potential for SEO. He then talks more about readability and what it means. [04:00] - What are examples of some of the actionable feedback that Joost has been talking about? [07:21] - As algorithms dive into our copy more and more, they have a hard time digesting text that is hard to read. This means that easy-to-read copy will generally rank better. [08:26] - Joost discusses keyword density, which isn’t relevant except in edge cases. He and Stephan then dive into the subject of keyword prominence. [10:44] - Are there red herrings that listeners should look out for, or false information that should be corrected? [14:09] - Stephan suggests a feature that identifies how many clicks away each page (or post) is from an external link source. [16:45] - We move into other types of settings in Yoast that optimize SEO. [20:50] - Joost points out that Yoost tries to go with decisions, not options. [22:19] - We hear more about tags on posts in WordPress, with Joost pointing out that you should never have more tags than posts. He and Stephan then talk about using tags and categories. [27:05] - Stephan clarifies another important point about no-indexing content, and then gives an example of a bad site map. [29:40] - What does Joost think of the spider bites page that Stephan has just been talking about? [31:20] - Joost discusses whether he sees a benefit of creating an HTML sitemap page on a typical website. [34:00] - Stephan’s extreme preference is not to include the dates in the URL. Joost agrees that it’s a bad idea. [36:56] - Does Joost have any particular accessibility features that may not be important for SEO but that he highly recommends? [38:50] - Joost talks about some of the capabilities of his plugin in terms of JSON-LD, Schema, and so on. [41:21] - We hear Joost’s thoughts on whether his video plugin or local plugin are must-haves for website owners. [43:12] - Stephan moves onto talking about RSS optimization, which he explains is important for podcasts. [45:10] - What is Joost’s take on scrapers and pursuing copyright infringement issues? [46:24] - Pagination is stupid and should never be done, Joost says. [47:16] - How can people reach out to Joost to work with him? Links and Resources: Joost de Valk on Twitter Joost de Valk on LinkedIn Yoast css3.info Flesch-Kincaid readability tests Ask Yoast Times Topics NYTimes.com Site Map (spider bites) JSON-LD Schema The Optimized Geek
We discuss a possible ActiveRecord bug Derek encountered and explore the ambiguity of SQL formatting best practices. thoughtbot podcast swag Working around ActiveRecord joining the same table twice Pagination in Crates.io ActiveRecord auto-explain removed in Rails 4.0 pgFormatter: A PostgreSQL SQL syntax beautifier How would you format this SQL query?
Balint Erdi: @baaz | balinterdi.com | Rock and Roll with Ember.js Show Notes: 01:58 - What is JSON API? Advantages 03:22 - Tooling and Libraries 05:49 - Relationship Loading 07:51 - Designing a Data Loading Strategy 11:23 - Pitfalls of Not Designing a Data Loading Strategy 13:53 - Ember Data 16:37 - Pagination & Sorting 23:06 - Writing a Book 25:48 - Implementing Searches with Filters 31:08 - What's next for Balint? Resources: Balint Erdi: Data Loading Patterns with JSON API @ EmberConf 2017 (Talk) Balint Erdi: Data Loading Patterns @ EmberConf 2017 (Slides) jsonapi-resources GraphQL JSON API By Example by Adolfo Builes ember-cli 101 by Adolfo Builes 33 Page Minibook + Coupon Code! Transcript: CHARLES: Hello, everybody and welcome to The Frontside Podcast, Episode 65. My name is Charles Lowell. I'm a developer here at The Frontside. With me, also from The Frontside is Elrick Ryan. Thank you for being with us, Elrick. I know this is your first podcast. ELRICK: This is my first podcast. It's great to be here. CHARLES: All right. Fantastic. Yes, we hired Elrick a little bit ago and it's been fantastic. I'm glad to get you on. With us today is a really awesome guest. His name is Balint Erdi. I actually like to tell a little bit of a story when I have an anecdote and I do have one about you that I think you might like, although you might not even remember it. But it was shortly after EmberConf. Last year you and I got on a pairing session remotely and I don't even remember what we were working on but I was struggling with this way to decorate objects without changing them, without touching them or mutating them in any way and you showed me this technique of actually decorating it by creating a new object with the old object as the prototype. Do you remember that? BALINT: Yes. I totally knew. How could I forget? CHARLES: Yeah. That one hot tip changed my life. It is one of the best techniques that I have discovered in the last five years of working with JavaScript. It really was great and I use it all the time. BALINT: Wow. Amazing. CHARLES: Thank you. I don't know if I ever said, "Thank you," but thank you, thank you, thank you. BALINT: Yeah, no problem. I also learned a lot from this pairing session actually. I didn't know that my small contribution made such an impact. I'm glad to hear that. CHARLES: Yeah, that was fantastic. We need to actually make that happen again. I don't know why we only did that once. BALINT: Yeah, we should. CHARLES: Anyway, we're here to talk about data loading, it's something that is absolutely critical to building good frontend and building UI and yet, it's something that the users never really see. Sometimes, it feels like it's 90% of the problem. BALINT: Exactly, yeah. ELRICK: Yeah, that's so true. CHARLES: We're going to talk about techniques that we use and you use and, in particular JSON API, what it is and what's so great about it. So, what is JSON API for folks who've never heard of it? BALINT: JSON API is a standard way to build APIs. I think the specification has reached 1.0, I would say two years ago or three years ago. I remember it was in June, I'm not sure which year. It basically lays down everything that's usually consider when you build an API: how do fetch relationships, how to paginate data, how to sort, all of these things that I think developers tend to invent again and again. I think probably the biggest advantage of JSON API is that it just declare a standard way to do that. It basically reduces the byte sharing going on at the start of the project. Well, not just at the start, later on too. In my talk at EmberConf, I coined a JSON API the conventional over configuration for APIs. CHARLES: I see. Pagination is something that everybody does. Why need to byte share over the syntax, like the actual data from it? BALINT: All of these things are things that everybody does. It's just that everybody does it differently. There's a lot of discussion going on which the best ways, for example when there's a team, at least every team that I was involved with had several discussions going on about what data formats to send data in and how to paginate and all these, I think details where it's more important to get to an agreement just to agree on something and move on than to get it perfectly, if at all there is a perfect way to do it. CHARLES: I guess my question is if you have the standard way of doing of everything, what kind of tooling can you build, that can you kind of inherit for free? At what level, both from the low level and then up to the top level? When I say top level, I mean what the user is seeing. BALINT: By low level, I guess you mean the actual libraries that implement JSON API in different frameworks, right? CHARLES: Exactly. Are there now a lot of libraries out there so whatever I'm using, if I'm using JSON API, is it available in a lot of different ecosystems now? BALINT: Yes. It definitely is. There is a full page on the JSONAPI.org, on the official JSON API page that just list all of the different libraries that are now implementing all these languages. I have experience with Rails, probably at Ruby too and there are three libraries and I think all of them are pretty good just for implementing JSON API. The one I use is called JSON API resources and it's very telling. Well, it's a rather simple application but I basically didn't have to write a single line of code. I've only had to write very little code in the server to implement a JSON API specific feature. Most of the relationships could be implemented with just declaring JSON API resources and then the name of the resource in the Rails application. For all the other things, I really didn't have to do that much so in every time, it was just adding one or two lines or changing a configuration value, then it was just there. CHARLES: Now, how do you choose then what relationship you want to load and which order? Is that controlled by JSON API? BALINT: It's controlled by the frontend. It is a frontend application that's going to send these requests to the backend so that's where you should consciously think about what relationships you are fetching and how. CHARLES: Right so part of the specification is a way of specifying which relationships you want to load. In my understanding, part of JSON API is an interface along with say, the user, "I want to load all of the posts that this user has made." BALINT: Yes. JSON API indeed has a keyword called 'included', which you can implement on your backend which does this. If you specify 'include' and then the name of the relationship or relationships for several ones, the backend must comply with that request and also send back those related resources. That is called compound document in JSON API parlance. ELRICK: Is that the reverse of what they doing in GraphQL because at GraphQL, I think you have to request the relationships you want on the frontend and then it kicks it off to the backend and it gives you the information back. Is it like JSON API that includes that same thing but in reverse? BALINT: I'm not sure because I'm very familiar with GraphQL but all the things it does is that you are normally fetching a resource and then if you specify 'include' then you are telling the backend, "Please also include these related resources with a primary source." CHARLES: I think it occupies a very similar concept that you want to have control on the frontend about which resources or what data gets fetched in addition. ELRICK: Yeah, it sounds very similar. CHARLES: Well, I'd love actually to do a comparison because I know there's a lot of overlap between GraphQL and this. Maybe we can get into that a little bit later. One of the things that you said back there is having this, gives you kind of fine-grain control over when and how you load your data because that always seems a pretty difficult problem to attack on your frontend because as you're rendering your application, you have to incrementally fetch little pieces of data here and there and make sure that it's already, at the time that you actually need to render something like a component and then it's got the right data at the right time. It seems like it's this constant dance of whack-a-mole and like, "I'm loading too much here. It's taking too long," versus, "I've got too many loads happening. I've got 20 requests to run the single page." How can I back those up into a single thing? How do you go about thinking and designing that data loading strategy, as you're ready to render pages? BALINT: That's a really good question. I think the short answer is how you load data has to be part of the design process. You really have to spend time thinking about how you're doing that based on the needs of the UI. I think the way you need to render the UI will suggest the way to do data loading. Especially in Ember, I think do I really need ways to, for example block the page from rendering too early so anything that you want to render first, you can fetch in this non-blocking way into model hook of Ember. Then anything else, if you're okay with rendering later, you can fetch in other ways like to set up controller hook or from the templates or from controllers or whatever way but not in the model hook. CHARLES: But if you are doing something outside of the model hook -- because this is something I feel like a pattern that comes up a lot -- and regardless of where you're operating, if you're using Ember, if you're using another framework, you have kind of this top level data loading. But then you have your nested components might need more data, how do you go about loading that data. I guess you have to think about that also. Upfront it's like, "I've got this component that might want to request more data," how do I actually design that and think about that of I've got this data that's going to come, who knows, maybe minutes after the initial route is rendered? BALINT: That would be different but I think that you can apply the same principle. You can fetch some data in the model hook in this blocking way and pass it all it down to your component if you don't want to render the component before the page renderers or you can just even fetch it from the component while the component is rendered. CHARLES: You're thinking maybe, in terms of streamlining, the rendering process so that you can begin rendering while your data is loading. Is that the use case? BALINT: Yes. If you, for example fetch the data from your component, then it's just going to fetch the data as needed. You have the whole page load as render and then when the component is render and it fetches the data, then you're going to see other requests go out to the backend. The data comes back and then the component is going to be rerendered with the new data. I think in most cases, that's totally fine but you might have a use case when you don't want to render the page before the component is all over the data that it needs. In that case, what you can do is once again, if the fetched data is needed in the model hook, it will just pass it all down to the component. ELRICK: What are some of the pitfalls that you would run into by not thinking about your data loading strategy beforehand that you can pull out and explain? BALINT: I think the classic one is what was known name in Rails and other framework is 'N + 1 problem' and it's when you fetch many related resources, then you might end up with doing end requests for a number of resources. In the case of Ember, you have for example a blog post as your model and then in your templates you write model.comments, then what's going to happen -- depending on actual library that you use on the backend but I ran into this myself -- is by default, if you are going to make those end requests. Ember solution is really, they just works. I mean, the default solution just works and you might not even run into this because you might not have the scenario. You might just have a few records. But if you have a great number of them, then it's going to be a bad experience. ELRICK: So someone that just dealing with Ember and then they go and make a request and then see all these requests come back, that would be something that they would then have to turn around and asked or fix within the backend to say like, "Only give me a certain set of this." BALINT: Yes, exactly. ELRICK: Or is there something on the Ember side with Ember data that you can say, "Only fetch X amount." BALINT: Right. I think both. I can speak about using Ember data and JSON API resources so what you can do to mitigate this case is to use links or cause relationship links instead of fetching the comments one by one, the backend can actually drive Ember data to fetch all the comments in one request from the link that it sends the frontend. You first ask for the blog post itself and then a JSON API compliant backend will send back the blog post resource but it's going to have a relationship link inside. An Ember data automatically records this so when it needs the comments for the blog post then it's going to fetch down from that provided URL. Actually, I haven't really talk about it in a lot of detail at EmberConf. CHARLES: Yeah, I see. I'm going to go off on a little bit of a tangent because I feel like this is a pattern that's coming up more and more. To give a little bit of context, I feel like the way that our data loading strategies have evolved is we're used to the page loads, then we kind of analyze the URL, we decide what data needs to be loaded to render our components and then we pull that data from the server based on a decision and then we do our render. But it seems increasingly more prevalent than we are having a combination of both pulling the data from the server and having the server push data onto us. One is what are the strategies for dealing with that? Given kind of certainly, at least in the Ember world, routes aren't reactive. Then does JSON API actually help with that at all? BALINT: Yeah, a good question. I don't think that JSON API specifies how [inaudible]. You are thinking about something like web sockets like pushing data from the server sockets. I don't think JSON API covers this summary. CHARLES: Yeah. It definitely seems like beyond the scope but I'm wondering if there are any thoughts about general strategies, about how to handle this model state that sitting at the top of your render tree. In Ember for example, in your route and how do you handle the fact that the route requests data and how do you handle data coming in after the initial render? BALINT: If you use Ember data, then you can push data coming in from a web socket, for example to the store. You probably do some massaging on the data that comes in and then you push it to the store and then depending on how you fetch the data, you might have a live collection. For example, if you do a store, find all notifications and then notification is coming in that is going to get displayed right away on your page because then your template is bound to a live collection. But not all of things in Ember data are live collections. CHARLES: Okay, it's mostly library dependent but if you're using Ember data, then you just push those directly into the store, those live collections. It kind of like a real time query. BALINT: Yeah, exactly. But what I'm saying is that not all Ember data query that you do are live collections. For example, relationships are probably not, depending on what method you use to fetch that data. You might have to do some additional footwork. CHARLES: Okay. Now, getting back into the area in which JSON API really does shine at things that can really shave off a lot of time and consequently money from your work, let's talk about those a little bit. For example, you mentioned pagination. How is JSON API going to help me if I want to have paginated data? What are the scenarios on the client where I would need paginated data? Then maybe we can walk back from here's this user interaction that I need paginated data for and how is JSON API going to help me with that? BALINT: Sure. I guess the typical scenario on the frontend is there is a long list of items and you don't want to overwhelm the user by showing them what it wants. You need to just show them page by page so JSON API recommends to use so it's agnostic about the exact paging strategy that you use. You can use the classic page-based approach or cursor-based one or start of pagination technique. It doesn't really force you to choose the way you want to do that. It also mentions that, I think the way it frames it, you might want to use the page for your parameter. I think that the libraries, at least at JSON API resources for sure, you use that page parameter to send back paginated data. You have a page and a square brackets number and then page size. The request variables are page number and page size. Then the server knows that I just have to send back the second page if the page size is 25 and they just set that [inaudible]. CHARLES: Then if you're using a library on the server side, then you don't have to do any extra work. BALINT: Yeah, exactly, depending on the library I guess. JSON API resources made this one really simple. CHARLES: I see. Then in terms of library support on the client, I assume that there are libraries, like Ember data that automatically will support this so when you're creating these live queries, you can include information about the page. BALINT: Yes. I'm very in to Ember so I'm not sure about the frameworks but I suppose that there are some ways that make this very easy for the developer in many of these frameworks like Angular and React. CHARLES: Right. Something that has just bit me on the butt so many times is when I have paginated sorted data. Imagine you've got some infinite scrolling table or not infinite scrolling but you've got some a bunch of table rows that are maybe 300 of them or 3000 of them so you don't want to load them all at the same time. But at the same time, you've got complex sorting that's happening on each column. You might have seven layers of sort. You want to sort by name, followed by ID, followed by date. One of the biggest problems I've encountered is trying to reconcile and sort on the client versus trying to sort on the server. Are there any facilities to help you deal with that? BALINT: Yes. I think the approach I usually take is if you do it on the server, then do it on the server. Do not mix the two things. In this case for example, if you are sorting and then you change just sort field, I would just send a request to the server to have the items returned according to the new sort criteria. I think that's the simplest approach because as you said, I've probably experienced things can get really messy, if you want to do that on the client. CHARLES: Then you've got the third page but when you do the sort, the contents of the third page could be anything. BALINT: Yeah, that's the other thing. I think if you change the sorting criteria, you'd probably want to go to the first page. I haven't thought through all of the scenarios but I think it's really rare that you want to stay on the fourth page while you change the sorting criteria to be created at descending. You probably want to see the first item the way it was created. CHARLES: Someone should seriously write a book about sorting and pagination and loading these data sets because seriously, I feel there's this tribal knowledge of things that people have learned from screwing it up. There's not a written down way of this is how you build the data loading layer for an infinite dataset so that you can sort, you can paginate and here are the problems that you'll encounter. BALINT: There's actually a book written by Adolfo Builes. CHARLES: He wrote a book on Ember CLI, too, right? BALINT: Exactly, Ember CLI 101. He's the same guy and he wrote JSON API By Example. I have it on my mental to-do-list to buy that book. I'm not sure if it covers these exact scenarios but he must cover several in that book. CHARLES: Well, I'll be sure to reach out from because certainly there are a couple of scenarios that have bit me too. The other one is where you have some collection that's paginated and sorted, then someone adds on the client side a thing to that collection. Say, you want to create a new row in that table, well then what do you do with that new row? chances are it's not going to be anywhere on the screen because who knows what the sort order is and the terms of the total sort, which is only the server knows and who knows what page it's going to be on? You get all these problems that compound and it would be great to have one place where people could reference them or have a little cookbook. BALINT: Sure, absolutely. I think in that scenario, the simplest thing, which I think probably works best like 99% of the cases is again, just to reset the sorting and the pagination. If I create a new record, I really want to see that new record. CHARLES: Yeah, maybe you put the new record up in a box up, at the top in a special new record place. BALINT: Sure you can go fancy and do that. That would be a good solution too. But probably you can just reset the page number and show the first page with the new record. CHARLES: Ah, yeah. I see. BALINT: It's tricky. It's going to get more complicated than this. CHARLES: You might have a problem where you don't want to lose that context to the records that you were looking at. BALINT: That's right. Somebody should write the book in this. I know somebody who wrote a book [inaudible]. CHARLES: It could be you. You haven't written a book in over a year, right? [Laughter] BALINT: It's been two years already. CHARLES: It's been two years. BALINT: Exactly. CHARLES: I'm never going to write a book again. I don't know. Do you think you might? BALINT: I think I might. I actually have this urge. CHARLES: If I recall correctly, you're one of the few people I've talked to who was like, "Yeah, you know, writing a book, it wasn't that bad. It was kind of an amazing experience." And literally, everyone else I talked to have been like, "Urgh!" ELRICK: That's really interesting too because his book keeps up with the releases of Ember so that makes it even harder. That's surprising to hear that like, "Oh, it wasn't that bad." BALINT: Exactly. Well, I kind of put off writing the second book for a while because if I just wrote a book, then I could just be done with it, I would be happy to start writing the second book. But if I have to maintain it for years, I don't have to do that but it's just so much extra work that I'd have to take this into consideration. CHARLES: Yeah. Essentially, what you've done is you've rewritten the book. In terms of absolute content, given how much everything has changed, you probably flipped over the content of the book in the same way that people flip over the atoms in their body. I think there was something like you don't have a single atom in your body three years from now that you have today. It takes about three years and you have all the matters completely and totally exchanged. It's kind of like that. BALINT: Yes, it's kind of like that. Well, I think maybe half of the book is still relatively as it was when I released it because since Ember 2 came out, Ember didn't change that much so in the 1.X series it did change a lot and I think my book originally came out when Ember was 1.10, I would say. There's a lot less work that require now to maintain that it was back then. But it had changed a lot for sure. ELRICK: Yeah, I think I bought the book on its first release. It was 1.10. I guess you automatically get assigned to the GitHub repo so you just see a constant barrage of updates, updates, updates and I'm like, "Wow, Balint is really killing it in updating this book." BALINT: Yeah. CHARLES: It is a good book and everybody should go buy it. The other thing that I want to cover to, as long as we're talking about scenarios that come up again and again, we talked about pagination, we talked about sorting, what about things like search? Is there a uniform mechanism to help you out there? BALINT: You can implement searches by using filters. It's a JSON API concept of using filters. You can pass a parameter called filter to your query and then a square bracket. You have the name of the field that you want to search and then just pass the value, the search term basically and then backend should return the items that matched according to some criteria. That's the simple case. CHARLES: It's a simple case but clearly, it's up to the backend to implement that API. BALINT: Yes. CHARLES: So I'm wondering what libraries are available if I'm doing something in Elixir or I'm doing something in Sinatra or I'm doing something using Express, how seamless is it because I feel like a lot of times you can run into problems where these leaky abstractions about the fact that one thing is a Mongo backend, then one is based on Postgres. Maybe that's a better example than a different server technology but more of sticking with a single server technology -- let's use Ruby -- but one is I'm using a Postgres backend and when I'm using, say MongoDB or some other key value store. In your experience, if you've seen this, how much does the backing store leak into the frontend? Is JSON API a good protection and the ecosystem around it from those leaks? BALINT: Yeah, that's a good question. I was about the say that the backend needs to be the abstraction that's use you from having to know what kind of persistence layer you use. The frontend shouldn't care about -- or any client of that backend -- whether you use MongoDB or Postgres. That's a responsibility of the API. You can still send, in this case for example, a filter query. However, the backend translates this to database queries. That's his job. I think the answer to your question is that JSON API does protect you from having to know the intricate details of the database. CHARLES: You might have some work to do but it's possible. BALINT: Sure. You might have a lot of work to do on the backend but it's possible. But it's not just JSON API that protects you. Any kind of API should protect you from this kind of knowledge. CHARLES: Right, unless you're using GraphQL. BALINT: Could be. I don't know exactly how GraphQL works. CHARLES: Yeah. I think there would be actually nice to read something from somebody who's got a lot of good experience with all of these, like different technologies to make a comparison. I feel kind of in the dark. Unfortunately, the problem with any technology, I feel like most of the comparisons out there, if you're going to compare, most people have a huge implicit bias for one tool and a little bit of experience with the other, maybe dangerous of like, "I don't definitely want to render opinions on my GraphQL and certainly not versus the API that I'm used to because I feel like I can't make a good comparison." BALINT: Yeah, absolutely. That's a good one. CHARLES: But it is something that I'm so intrigued because I feel like there's a lot of overlap there but who knows. BALINT: Yeah. ELRICK: They need that to do API like how they had to do MVC, they need to do API comparison. CHARLES: Yeah. One thing we could do, we could implement JSON API over GraphQL and kind of just move your backend on to the frontend. BALINT: I think you could but you just said that with GraphQL, you have to know the client on the frontend, like feels the database. CHARLES: Right. You could technically have a JSON API on top of your GraphQL backend because I think the thing that kind of freaks me out -- this is a crazy idea that no one should ever do it but I hope someone does -- about GraphQL is being as old as I am, I saw so many projects ruined by the visual basic kind of mantra of just like, "Just query your database right inside your components," and that was literally the rope that hung ten thousand projects and just made people despise visual basic development because there was no shield and then literally every button was coupled to your database. But you could theoretically have the best of both worlds where you're sitting on an abstraction that's also on your client but just moving your query language from your server over to your client or something like that. BALINT: Yes something like that could work, in theory. CHARLES: In theory. Like I said, no one should ever do that unless they really want to. BALINT: Yes. CHARLES: Fantastic. The other thing I want to ask you is kind of what do you have cookin'. You got your book, you wrote but you keep updated, you recently have been evangelizing data loading patterns most recently at Ember Conf. What's next? What's now? Or you're just kind of taking a break? BALINT: I already have published book a mini-book about these data loading scenarios. Actually, I just cover the things I told them out at EmberConf then add some more but I might make this into a full-fledged book, providing I don't have to update it. [Laughter] CHARLES: I'm going to write this book -- BALINT: But just once. CHARLES: -- But just once. BALINT: Yeah, I still have to find a way of doing that. CHARLES: All right. We will look for all of those things. One thing that just occurred to me is just how much of actually building UI and building frontend really is about thinking about the structure and flow of how you load your data and how much the user doesn't see that but how important that is to provide a good experience to that user. That's one of the things that sometimes we, as UI engineers don't like to think about but I think it is absolutely true and crucial and foundational. Thank you so much, Balint for coming by and talking with us about these important topics. We will see everybody next week with that. I will bid everybody to do. Good bye, Elrick. Good bye, Balint. BALINT: Yeah, thank you very much for having me. Goodbye.
In this episode: News and Updates: The InDesign Conference is part of CreativePro Week 2017 All InDesign Conference speakers and sessions are up! InDesign Magazine Feb. 2017, "Special Characters," is all about advanced typography Interview with Justin Seeley, Adobe genius and Star Wars nerd Fascinating fresh features for footnotes, finally Obscure InDesign Feature of the Week: Inline Background Color Links mentioned in this podcast: Check out the sessions and speakers at CreativePro Week 2017 Register now for the InDesign Conference 2017! Check out the InDesign Magazine issue on Special Characters and Typography Find the Greenlight service (cloud-based preflighting) on CircularSoftware.com CircularFLO (at circularflo.com) exports InDesign layouts to fixed-layout EPUB3 or the Amazon KF8 fixed layout format, optionally including Read Aloud narration with no coding Pagination does database publishing as a service! Use Tweak to edit InDesign documents and make print-ready PDFs in the cloud All about Justin Seeley, staff author at PluralSight and co-founder of NerdRadio podcasts Justin's sessions at CreativeProWeek.com Adobe's working on enabling voice control Star Wars First Order logo Trajan Pro title for the movie Rogue One (outlined, no less) Footnotes: What's new in CC 2017
Is agile software development bullshit? This is what we discuss, along with a short tale of the best uber driver ever. Show Notes Follow-up Moved to fireside.fm. So, now you can just go to http://SoftwareDefinedTalk.com. No more multi back-end management crap. Check out the last episode, the show page (http://www.softwaredefinedtalk.com/76) is- God-damned nifty! Review in iTunes France (https://twitter.com/matt_traverse/status/790600017778249728) Osprey “one bag” style backpack (https://twitter.com/scrub/status/790190603023843328). The Best Uber Driver Ever Hands on a Hard Body guy, Ronald McCowan (https://www.youtube.com/watch?v=Po-rVFBC5Ps). The Sweat Hotel (http://thesweathotel.iheart.com/) Coté’s Agile shit Excerpt from a PDF in process (https://www.getrevue.co/profile/cote/issues/you-re-not-really-agile-airports-hitting-yourself-absurd-ai-tams-cote-memo-18-34432). IBM design people. We don’t know what we’re doing; celebrity diet books; agile people are squarely. It’s only cargo culting when the planes stop coming (https://twitter.com/cote/status/794349731627446272). UK GDS rant (https://medium.com/@sheldonline/the-government-it-self-harm-playbook-6537d3920f65#.p8cuon2mj). Three types of projects; then the agile tools and tactics; then approach/culture How do I get developers to care about boring shit? ...or contain the blast radius of their boredom. Magic tactic: features are locked for two weeks, no interruptions The Product Manager's Lament. If you’re implementing pagination, you’re not doing agile The big PDF on all this stuff that Coté is working on (https://docs.google.com/document/d/19T1B-jdhpNr58p7sONWtT5W48xFtV92aV9hMeb29w6I/edit?usp=sharing) - leave some comments! The End-roll Mid-roll Coté: Check out cote.io/promos (https://cote.io/promos/) for more - free books, free cloud time, etc. Coté: Nov 15th, everywhere - I'll be speaking early in the All Day DevOps virtual conference (http://www.alldaydevops.com/). Coté: Nov 16th, Cloud Native Roadshow in Omaha (https://pivotal.io/event/cloud-native-workshop/omaha) - couldn’t make it to Kansas City? Come on over to Omaha for the same! We just did the one in Kansas City this week and it was an excellent turn-out and session list. Coté: Various dates - Pivotal’s Cloud Native Roadshows (https://pivotal.io/event/pivotal-cloud-native-roadshow). Matt: DevOps Days Australia 20% discount code - SDT2016 (https://ti.to/devopsaustralia/2016-sydney/discount/SDT2016). Matt’s at Melbourne Infracoders “Compliance as Code” (http://www.meetup.com/Infrastructure-Coders/events/233990769/). BONUS LINKS! Not covered in episode. OpenStack Anyone? There’s a Summit going on in Barcelona (http://www.v3.co.uk/v3-uk/news/2475081/openstack-revenues-predicted-to-top-usd5bn-by-2020) 35% annual growth sounds good With friends like these… (http://www.computerworlduk.com/cloud-computing/mark-shuttleworth-on-openstack-hpe-layoffs-prove-bs-as-service-theory-3648336/): “Ubuntu founder and product lead at Canonical Mark Shuttleworth says he feels validated by his earlier claims that the expansion of OpenStack projects – known as the ‘big tent’ approach - would collapse and that the community needs to focus on its core services.” Bullshit as a Service: “My rule of thumb is if you're not [creating] virtual networks, compute or disks, and you can't survive on AWS, you are never going to survive on OpenStack. That's the bullshit as a service story.” OTH,
Check out and get your tickets for React Remote Conf! May 11th-13th, 2016. 02:30 - Justin Meyer Introduction Twitter GitHub Bitovi JavaScriptMVC 03:02 - DoneJS and CanJS @DoneJS @CanJS 05:44 - Versus Meteor 07:41 - Versus React Set Algebra 12:06 - Getting Started with DoneJS donejs.com/place-my-order.html 18:04 - Can Done MVVM (Model–View–Viewmodel) Observables Pagination Preventing Loop Issues 25:39 - MVC => MVVM 28:24 - Flux vs MVVM 32:20 - Use Cases 39:19 - App Size StealJS Picks Beautiful Eyes Album by Taylor Swift (AJ) When Amazon Dies (AJ) PROTODOME (AJ) City Libraries (AJ) The Crucible of Doubt: Reflections On the Quest for Faith (AJ) Learn X in Y Minutes (Aimee) Which cat is your JavaScript framework? (Aimee) @johnpapa Tweet (Joe) SumoMe (Chuck) Drip (Chuck) 7 Wonders (Chuck) Shadow Hunters (Chuck) Calamity (The Reckoners) by Brandon Sanderson (Chuck) Staked (The Iron Druid Chronicles) by Kevin Hearne (Chuck) BB-8™ by Sphero (Justin) Hyperion Cantos Series (Justin) UtahJS (Justin)
Check out and get your tickets for React Remote Conf! May 11th-13th, 2016. 02:30 - Justin Meyer Introduction Twitter GitHub Bitovi JavaScriptMVC 03:02 - DoneJS and CanJS @DoneJS @CanJS 05:44 - Versus Meteor 07:41 - Versus React Set Algebra 12:06 - Getting Started with DoneJS donejs.com/place-my-order.html 18:04 - Can Done MVVM (Model–View–Viewmodel) Observables Pagination Preventing Loop Issues 25:39 - MVC => MVVM 28:24 - Flux vs MVVM 32:20 - Use Cases 39:19 - App Size StealJS Picks Beautiful Eyes Album by Taylor Swift (AJ) When Amazon Dies (AJ) PROTODOME (AJ) City Libraries (AJ) The Crucible of Doubt: Reflections On the Quest for Faith (AJ) Learn X in Y Minutes (Aimee) Which cat is your JavaScript framework? (Aimee) @johnpapa Tweet (Joe) SumoMe (Chuck) Drip (Chuck) 7 Wonders (Chuck) Shadow Hunters (Chuck) Calamity (The Reckoners) by Brandon Sanderson (Chuck) Staked (The Iron Druid Chronicles) by Kevin Hearne (Chuck) BB-8™ by Sphero (Justin) Hyperion Cantos Series (Justin) UtahJS (Justin)
Check out and get your tickets for React Remote Conf! May 11th-13th, 2016. 02:30 - Justin Meyer Introduction Twitter GitHub Bitovi JavaScriptMVC 03:02 - DoneJS and CanJS @DoneJS @CanJS 05:44 - Versus Meteor 07:41 - Versus React Set Algebra 12:06 - Getting Started with DoneJS donejs.com/place-my-order.html 18:04 - Can Done MVVM (Model–View–Viewmodel) Observables Pagination Preventing Loop Issues 25:39 - MVC => MVVM 28:24 - Flux vs MVVM 32:20 - Use Cases 39:19 - App Size StealJS Picks Beautiful Eyes Album by Taylor Swift (AJ) When Amazon Dies (AJ) PROTODOME (AJ) City Libraries (AJ) The Crucible of Doubt: Reflections On the Quest for Faith (AJ) Learn X in Y Minutes (Aimee) Which cat is your JavaScript framework? (Aimee) @johnpapa Tweet (Joe) SumoMe (Chuck) Drip (Chuck) 7 Wonders (Chuck) Shadow Hunters (Chuck) Calamity (The Reckoners) by Brandon Sanderson (Chuck) Staked (The Iron Druid Chronicles) by Kevin Hearne (Chuck) BB-8™ by Sphero (Justin) Hyperion Cantos Series (Justin) UtahJS (Justin)
@h13i32maru さんに Podcast に対する想いについて聞きました。 Show Notes CodeLunch.fm rebuild.fmに憧れてCode Lunchという技術系ポッドキャストを録ってみました - maru source DoroidKaigi Inside Story by Speaker | CodeLunch.fm Image of Neural Network | CodeLunch.fm 「ニッポンのジレンマ」元日スペシャルに出たとき、カンペに書かれていたこと | 上杉周作 Rebuild: 114: Rebuildersland (Shu Uesugi) h13i32maru/codelunch “Pagination is available, finally. #rebuildfm” The power-assert Goes To The Next Scene | CodeLunch.fm What is my disk quota? Working with large files Blue Micro Yeti USB 2.0マイク #126: ニッポン放送からよっぴーさん参上! – backspace.fm Dot - Worlds Smallest Bluetooth Headset | Indiegogo 神奈川Ruby会議01 C89 3日目(2015/12/31)東シ58a | TechBooster ESDoc - The Good Documentation For JavaScript - クックパッド開発者ブログ ESDoc Hosting Service
Today's Javascript 4 You looks at pagination for Places search results (in maps). If you have trouble viewing it here in the browser, you can also navigate directly to YouTube. Join the Facebook Group to discuss the tutorials. You can view the archives here. To watch now, click on the image below: If you have trouble viewing that directly, you can click here to download the video directly. If you need the video in a Windows Media format, then download that here. You can also watch it on YouTube: Tags: javascript, maps
At SMX East 2011, during the Pagination and SEO session, Google revealed their solution for one of the biggest issues in SEO , by using rel=next and rel=prev for handling paginated archives and posts. Vanessa explains.
Découvrez comment configurer l'IDE Eclipse pour l'utiliser au mieux avec Django.
If you need pagination in Rails 3 try out Kaminari. It is a clean, flexible solution which uses scopes to flow nicely with Active Record queries. Did I mention it also works with Mongoid?
If you need pagination in Rails 3 try out Kaminari. It is a clean, flexible solution which uses scopes to flow nicely with Active Record queries. Did I mention it also works with Mongoid?
Learn an easy, unobtrusive way to add AJAX functionality to an existing set of pagination links using jQuery.
Learn an easy, unobtrusive way to add AJAX functionality to an existing set of pagination links using jQuery.