POPULARITY
So last time we recorded we still have a running windows operating system and we haven't seen the Crowdstrike meltdown happen yet. We also hear of JRuby achieving independence, Quarkus moving into CommonHaus and Intel letting go people (are they...
So last time we recorded we still have a running windows operating system and we haven't seen the Crowdstrike meltdown happen yet. We also hear of JRuby achieving independence, Quarkus moving into CommonHaus and Intel letting go people (are they losing the AI battle?). An interesting episode, drop in for a listen! https://www.javaoffheap.com/datadog We thank DataDogHQ for sponsoring this podcast episode DO follow us on twitter @offheap https://www.twitter.com/offheap News: Jakarta EE 11 release pushed out JDK 23 in ramp down phase 2 https://openjdk.org/projects/jdk/23/#Schedule JDK 24 in Early Access https://openjdk.org/projects/jdk/24/ Crowdstrike https://www.forbes.com/sites/kateoflahertyuk/2024/08/07/crowdstrike-reveals-what-happened-why-and-whats-changed/ Google Search Monopoly https://www.cnn.com/2024/08/05/business/google-loses-antitrust-lawsuit-doj/index.html Intel Layoffs https://techcrunch.com/2024/08/01/intel-to-lay-off-15000-employees/ Microsoft trust with OSS - https://dusted.codes/can-we-trust-microsoft-with-open-source Quarkus moving to Commonhause - https://quarkus.io/blog/quarkus-moving-to-commonhaus/ JRuby Independence Day https://blog.jruby.org/2024/07/independence-day https://news.ycombinator.com/item?id=40868321 IntelliJ 2024.2 Conferences: JChampions Conference 2024 Videos Available SpringOne Virtual Conference - August 26-28, 2024 Dev2Next Lone Tree, Colorado Sept 30 — Oct 3, 2024 https://www.dev2next.com/ Jconf.dev, Dallas, TX Sep 24, 26 (https://2024.jconf.dev/) Community Over Code NA Denver October 7-10 https://communityovercode.org/ Codemash - Jan14-17 https://codemash.org/ JakartaOne LiveStream December 3
In this episode, we speak with Matt Biilmann, CEO of Netlify. We discuss what it was like deploying code before Netlify, whether there is about to be a fragmentation in the JavaScript ecosystem as React gets more opinionated, where state and data fit into the Jamstack model, and how you might reach developers with a new project today. You'll hear about the evolution of Netlify's model, the Gatsby acquisition, and how Netlify has succeeded at staying on top of the fast-changing landscape.Hosted by David Mytton (Console) and Jean Yang (Akita Software).Things mentioned:ReactShopifyJavaGatsbyNext.jsWordPressSolidJSPlanetScaleNeonRuby on RailsAstroMastodonNostrMacBook ABOUT MATT BIILMANNMatt Biilmann is the CEO and Co-Founder of Netlify, a cloud platform that helps people build, deploy, and operate websites, web applications, and web stores swiftly and with ease. He has a long history of building DevTools, content management systems, and web infrastructure. Matt has been an active participant in open source and contributed to many well-known projects, including Ruby on Rails, JRuby, and Mongoid. Since launching its private beta back in March 2015, Netlify is now used by 3.5 million developers and is one of the fastest-growing web development platforms in the world.Highlights:Matt Biilmann: I really believed that we would move away from that model and move to a model where we would decouple the actual web experience layer into its own layer that web teams can build and deploy independently, and hopefully much faster. But I also saw at the time that there wasn't any tooling or infrastructure or workflows around that. So early on, when we started Netlify, there wasn't even a name for this web building. We had to come up with the term “Jamstack” to describe this idea of building the web experience layer on its own and typically seeing the backend split into all these different APIs and services, like all the headless CMSs that's really become mainstream now.— [0:03:58 - 0:04:39] Matt Biilmann: Right now, what we're seeing happening around generative AI is probably going to change a lot of how we interface with computers over time, right? It's already almost at the edge where you can imagine stitching a few tools together, and you would be having this kind of conversation with a program, rather than with a human. I think as that starts to happen, that will start to massively redefine how we consume content and commerce and so on. It will probably change a lot of what it means to build a website.— [0:17:09 - 0:17:41] Let us know what you think on Twitter:https://twitter.com/consoledotdevhttps://twitter.com/davidmyttonOr by email: hello@console.devAbout ConsoleConsole is the place developers go to find the best tools. Our weekly newsletter picks out the most interesting tools and new releases. We keep track of everything - dev tools, devops, cloud, and APIs - so you don't have to. Sign up for free at: https://console.dev
[00:01:52] Jason and Andrew catch up on what they've been working on. Apparently, they've both been working on making Dynamic Open Graph Images. Andrew used Vercel and Jason took a different route.[00:05:11] Kevin details the recent news about rewriting Ruby Parser.[00:07:50] If you're new to Ruby or not familiar with Parser, Kevin explains what a Parser is how it's used in Ruby. [00:09:54] We find out how SyntaxTree works with what Kevin's doing now on Ruby Parser.[00:13:00] If you haven't heard of mruby, PicoRuby, Natalie, Rutie, Artichoke, and Sorbet, Kevin explains them.[00:13:42] With each of the implementations, Jason wonders if they have to bring CRuby with it or if they're having to write their own Parsers each time, and Kevin explains there's different projects that have taken different approaches and what JRuby did.[00:15:38] Kevin tells us the three goals he's got going forward with a new Ruby Parser he's working on. [00:19:28] Jason wonders if the JRuby team or other people that have been implementing their own flavors of Ruby, hinted that they would use this new Parser.[00:22:42] Kevin explains what SyntaxTree does right now and the most valuable thing it provides. [00:25:51] With the new Parser, we find out if Kevin has to make any changes to SyntaxTree to support reading the results.[00:29:33] We learn if Meta programming make this type of work difficult and Kevin explains how his tooling will make it much easier to deal with syntax errors. [00:34:00] Jason opens up and tells us he's never felt like a real programmer, and Kevin brings it all out in the open telling Jason that he is a real programmer and explains how everyone is just in a different domain.[00:36:40] Kevin announces he's working with Prettier Ruby, Prettier 3 is almost ready, and he explains why there's not a lot of reasons to use Prettier Ruby anymore.[00:42:51] Kevin announces that Stripe, GitHub, and Shopify are putting a lot of money into Ruby, and he explains how huge his team is at Shopify working on so many parts of the Ruby ecosystem and working on what the future of Rails could look like. Also, someone on his team created a reimagined version of unicorn, called pitchfork.[00:48:58] Kevin explains thinking about programming as a skill and not a job.[00:49:39] Find out where you can follow Kevin on the web. Panelists:Jason CharnesAndrew MasonGuest:Kevin NewtonSponsor:HoneybadgerLinks:Jason Charnes TwitterChris Oliver TwitterAndrew Mason TwitterKevin Newton TwitterKevin Newton GitHubKevin Newton WebsiteSyntaxTree GitHubVercelYacc: Yet Another Compiler-CompilermrubyPicoRubyNatalie RutieArtichokeSorbetJRubyTruffleRubySyntaxTree-node.rbpitchforkRuby For All PodcastRuby Radar NewsletterRuby Radar Twitter
Ivo Anjo joins the Rogues to discuss Ractors in Ruby and how they can be used. They're not actors as they appear in other languages. They communicate via message passing. Ivo clarifies several things about Ractors and what their powerful features and the understanding of what they do and how they work. Panel John EppersonValentino Stoll Guest Ivo Anjo Sponsors Top End DevsRaygun | Click here to get started on your free 14-day trialCoaching | Top End Devs Links Ruby Ractor Experiments: Safe async communication - ivo's awfully random tech blog Unsafe Concurrent Ruby PatternsJRuby in production applications 1subscribe to my newsletter!Ivo Anjo.meTwitter: Ivo Anjo ( @KnuX ) Picks Ivo- Ruby Hacking Guide Ivo- Lone Echo II: Journey In Zero Gravity With Rift S | OculusJohn- bullet | RubyGems.org | your community gem hostJohn- RubyConf 2021Valentino- Creating a UDP server with Ruby Ractors Special Guest: Ivo Anjo.
Ivo Anjo joins the Rogues to discuss Ractors in Ruby and how they can be used. They're not actors as they appear in other languages. They communicate via message passing. Ivo clarifies several things about Ractors and what their powerful features and the understanding of what they do and how they work. Panel John EppersonValentino Stoll Guest Ivo Anjo Sponsors Top End DevsRaygun | Click here to get started on your free 14-day trialCoaching | Top End Devs Links Ruby Ractor Experiments: Safe async communication - ivo's awfully random tech blog Unsafe Concurrent Ruby PatternsJRuby in production applications 1subscribe to my newsletter!Ivo Anjo.meTwitter: Ivo Anjo ( @KnuX ) Picks Ivo- Ruby Hacking Guide Ivo- Lone Echo II: Journey In Zero Gravity With Rift S | OculusJohn- bullet | RubyGems.org | your community gem hostJohn- RubyConf 2021Valentino- Creating a UDP server with Ruby Ractors Special Guest: Ivo Anjo.
Former GCP Podcast host Mark Mandel is our guest this week. He’s talking Google Cloud Game Servers, Agones, and more with Mark Mirchandani and guest host Stephanie Wong. Mark explains how dedicated game servers work and why gaming has embraced the idea of dedicated servers. Online multiplayer gaming with its need for fast, consistent state sharing among players benefits from dedicated servers and offers cheating mitigation and reduced latency, as well as development flexibility. He tells us a little about the history of the open source project, Agones, and how it has helped Kubernetes run memory-state games efficiently on these dedicated servers. Google Cloud Game Servers work with layers of products to create a seamless multiplayer environment. Mark details this process and how Kubernetes, GKE, and Agones work together with these servers to accomplish this goal at scale. This situation is ideal for developers looking for the customizability and flexibility of a self-controlled system rather than a fully managed lift and shift model. Mark talks about the features of GCGS, including the versioning configuration system that allows you to create multiple configurations, and roll outs that give you control over distribution. We also learn a little about game building best practices and how Mark and his team advise and educate other game developers. Mark Mandel Mark Mandel is a Developer Advocate for the Google Cloud Platform. Hailing from Australia, Mark built his career developing backend web applications which included several widely adopted open source projects, and running an international conference in Melbourne for several years. Since then he has focused on becoming a polyglot developer, building systems in Go, JRuby and Clojure on a variety of infrastructures. In his spare time he plays with his dog, trains martial arts, and reads too much fantasy literature. Cool things of the week Google Cloud Docs Samples docs Limiting public IPs on Google Cloud blog Interview Google Cloud Game Servers site Agones site Agones Prerequisite Knowledge docs Kubernetes site GKE site Online Game Technology, Drawn Badly videos GCP Podcast Episode 142: Agones with Mark Mandel and Cyril Tovena podcast GCP Podcast Episode 202: Supersolid with Kami May podcast Multiplay site Accelbyte site Improbable site Find the right Google Cloud partner site Game Developers Conference site Agones on Slack site Agones on Twitter site Mark Mandel on Twitch site Mark Mandel on YouTube site What’s something cool you’re working on? Stephanie is working on Season of Scale season 5 and a data center animated series that will launch in a few weeks! Sound Effects Attribution “TrumpetBrassFanfare.wav” by ohforheavensake of Freesound.org “8-bit Video Game Sounds.wav” by ProjectsU012 of Freesound.org “music elevator.wav” by Jay_You of Freesound.org
Antonio, Guillaume et Emmanuel discutent de registries et de registries et de registries. Et sinon TypeScript 4, Kotlin 1.4, Spring One, comment gérer des équipes, lire du code, des APIs. Bref pleins de choses intéressantes :) Enregistré le 10 septembre 2020 Téléchargement de l’épisode LesCastCodeurs-Episode–238.mp3 News Langages jdk/jdk repository transition to Git, GitHub and Skara is done Ca rale contre G1 en default dans Java 11 throughput degradés RubyKon Benchmark 2020: CRuby vs JRuby vs TruffleRuby Rubykon is Go AI written in Ruby using Monte Carlo Tree Search Ce n’est pas un benchmark representatif de la plupart des applis (car très peu d’IO) mais beaucoup de CPU Utilise beaucoup de tableaux, peu de collection, pas de string… TruffleRuby still has the best “warm” performance Les blocs de texte de java 15 qui sort ce mois ci Simplifier l’écriture des chaines de caractères sur plusieurs lignes JEP 378: Text Blocks Délimiteur trois guillemet ( """ ) Typescript 4 est sorti Partial semantic mode : Temps de démarrage plus rapides du projet par analyse partielle (vs toutes les dépendances) (dans l’IDE?) Variadic tuple type (tuple de taille définie et de types définis et hétérogènes) Dont rest élément où l’on veut. Tuple labels comme des named parementers Class property inference from constructor Catch as unknown au lieu de any (downcastong) En fait le compilateur fournit les outils à l’IDE Kotlin 1.4 Amélioration de la qualité. Stabilité et performances dans l’IDE Corrige notamment des lenteurs ou blocages dans l’IDE Debugger de Coroutines Nouveau compilateur pour centraliser le code entre les différentes plateformes Sam pour les interfaces kotlin (Single Abstract Method) Kotlin 1.4.0 comes with a variety of different language features and improvements. They include: SAM conversions for Kotlin interfaces Mixing named and positional arguments Trailing comma Callable reference improvements break and continue inside when included in loops Explicit API mode for library authors kotlin.serialisation en 1.0 RC Librairies Camel 3.5 Lambda builder Spring Boot 2.3.3 junit 5 route template (parameterized routes) faster refleciton free startup new components Infrastructure Docker limite le nombre d’image par 6 heures The second policy update is regarding limits on the number of image pulls. A pull is defined as up to two GET requests to the registry URL path ‘/v2//manifests/’. Again, starting November 1, 2020: Anonymous users will have an upper limit of 100 image pulls in a six hour period Accounts authenticated with a DockerID will have an upper limit of 200 image pulls in a six hour period Pro and Team subscriptions do not have limits la question c’est image == layer donc 100 peut arriver vite pendant un lab Github son propre container registry suite de GitHub packages prix en beta gratuite pour l’instant GitLab réduit les minutes de runners pour les comptes gratuits “We are updating the CI/CD minutes limit in the Free tier to 400 minutes per group per month.” le marketing du gratuit / freemium en perte de vitesse pour les developpeurs? Packages et registries en gratuit dans GitLab apres les registries de containers, ils ajoutent: Maven, npm, PyPi, NuGet, Composer, Conan et Go Cloud Google cloud function supporte Java 11 depuis mi août Environnement d’exécution Java 11 Azure spring cloud en GA Hosting, monitoring d’app spring boot “Automatically wire your apps with the Spring service runtime. Once deployed you can easily monitor application performance, fix errors, and rapidly improve applications” mais ca reste un peu marketing et pas détaillé Web Kotlin Multiplateforme mobile en alpha Kotlin Multiplatform Mobile (KMM) est un SDK cross plateforme (iOS et Android) Intégration complète dans Android Studio pour le dev Refonte des compilos pour avoir une base commune entre le Kotlin / Kotlin JS et Kotlin Native partager la business logic et laisser la UI et anvigation en natif iOS ou Android. Outillage Comment fonctionne Time-based One Time Passwords un secret partage un compteur basé sur (t-t0)/tx sha1 le tout tronqué pour avoir 6 chiffres GitPod (un concurrent à Eclipse Che à priori) devient open source Méthodologies Si tu deprecies, je te fais caca dessus lecture interessante entre la balance entre la dépréciation, retirer le support vs garder les choses pour toujours Google et son monorepo et son clean code amène a des dépréciations plus élevées que l’industrie “Backwards compatibility keeps systems alive and relevant for decades” emacs, android, java deprecition mais garder à vie vs android qui a un code de merde et pleins de if mais qui est backward compatible les developpeurs s’en vont quand la compatibilité casse [emmanuel] mais des projets cassent des choses tout le temps sans que le utilisateurs ne soient mecontents - par exemple Spring Boot petites depreciations, tooling, documentation pas de big bang qui fracture ta plateforme et les utilisteurs ne migrent qu’au dernier moment exacerbé dans le monde des services Principes pour un meilleur design Améliorations incrémentales: peut pas faire parfait directement Reutiliser l’existant: il y a des raisons aux solutions existantes? Vous atteignez la limite du design précédent? Les cinq pourquoi pour trouver la cause et possiblement trouver une autre solution meilleure (et peut etre plus simple) KISS : la perfection est quand il n’y a plus rien a enlever, pas ratjouer (Antoine de St Exupéry) Parfait est l’ennemie du bon (e.g principe du 80% 20% - en temps) Reculer le moment de la complexité pas un article révolutionaire mais un bon rappel. Prenez un café et lisez le douvement et réflechissez à chaque section Reading Code is a Skill On n’écrit pas du code illisible par pur plaisir, en général le code / les pratiques / le métier / l’équipe a beaucoup évolué dans le temps Le code lisible c’est subjectif, et il ne sert à rien de blamer les précédents auteurs Donc plutôt que de se plaindre -> apprendre à lire du code Scaler l’equipe d’engineering avec la propriété distribuée equipe fonctionne quand elle a une mission comprise et auquel elle croit, quand elle gagne (alignée avec les besoins de l’entreprise, mesure le succes, reconnu pour ce succès), quand les individus progressent entre 5 et 10 est la limite a la quelle une equipe part en chaos sans organisation centralisation: probleme planning, stand up etc decentralisation sans plan: conflits, ralenti, desaligne => chaos embaucher les type A (NDLR risque mono culture) ; embauche que si surcahrgé et montre resultats top (donc une equipe qui montre qu’elle fonctionne deja). sinon risque equipe disfonctionelle qui grossi (modifié) La delegation vient avec la gouvernance pour appliquer les règles globales de l’équipe (code qualite, dette technique etc) il encourage d’investir dans la core ip de l’appli vs rajouter des fonctionalités. Toujours sur quelle est la valeur The person doing the work owns the execution, even though they may not own the direction. Rather than top down execution driven by meetings, we rely on bottom up execution based on top down direction and review. Engineering Manager vs TEch Lead - As the team scales through, it’s important that someone is responsible for organizing the team, process, and ensuring people are happy, productive, and growing, and someone else is responsible for the technical direction and systems of responsibility like code reviews, deploys, and so on. Scrum, agile poker etc est trop centralisé dans une approche avec un ratio senoir / junior coherant what I consider to be a more modern and decentralized approach, Engineering Managers work with engineers, who take ownership of chunks of work, decompose them into tasks, estimate, and get the team and manager to review async or in a planning meeting. Everything is tied to the team KPIs, which are tied to the company KPIs, but we don’t need any fancy formats like user stories, etc. Engineers are even more empowered to think about customers, product, and business value in this model — they are looking at how they can impact team KPIs, and empowered to push managers for the work they think is most impactful on the KPIs. The tech lead owns the technical queue — tech debt, testing issues, infrastructure, etc. The Approval Matrix with Round Robin Pattern - utile sur les choses trop concentrées ou sur les sujets que personne ne veut training process pour onboarder round robin pour forcer le changment et eviter les code review overloards et autres bug fixers Pour taches de plus de 1 semaine, design document d’une page revue (sign off component lead) sanity checking, important issues and standards. Not micro management Sécurité Docker desktop ajoute la commande scan analyser les problèmes de secu via Snyk scan des images locales en CLI s’appuie sur Snyk avec une partie gratuite via compte docker , sinon prix snyk continuously find and fix vulnerabilities in open source libraries and containers marche pas pour les images alpine Et SonarQube (sonarcloud pour l’instant) ajoute de l’analyse de sécurité via le rachat de RIPS-TECH fait il y a quelques temps Déjà présent dans SonarCloud 2 Sera inclue dans SonarQube 8.5 Sonar rachète de RIPS en mai 2020 GitHub qui se lance dans le code scann GitHub, all your base are belong to us Oui d’où mon tweet sur le SPOF. Sachant que plus ils en font, moins c’est stable. ils mettes les true positive “sûr” dans l’analyse de la PR Loi, société et organisation Apple également dans le viseur de Facebook pour sa taxe de 30% l’app store ne permet pas de dire que les prix incus la marge d’apple de 30% debat sur des cas specifiques: genre argent pour des gens qui organisent des evenements (ou pire une charité) mais c’est l’argument “penser aux petits enfants”. Facebook, j’imagine a des plans de se faire de l’argent sur certaines de ces ventes. La CNIL publie son livre blanc sur les assistants vocaux 84 pages, articles, interviews.. Super pour aider “les personnes en situation de dépendance, qu’elles soient âgées ou handicapées” Mais pose des questions “du point de vue de la protection des données” “fortement ancrée dans notre intimité” "de nombreuses informations sur l’émetteur d’un message oral. Âge, genre, condition physique, accent, origine géographique et socio-culturelle, éducation, état de santé ou émotionnel, mais également identité" “captent nos habitudes de vie pour enrichir un profil” “Ce livre blanc propose quelques pistes de réflexion sur l’usage des données par les assistants vocaux” Quels usages: DEMANDE DE LA MÉTÉO / RECHERCHER UNE INFORMATION / ÉCOUTER DE LA MUSIQUE Mythes et réalités des assistants vocaux (vrai/faux) : écoutent en permanence / utilisent nos données pour mieux nous profiler / interface très prisée des enfants Une cour d’appel américaine déclare la surveillance de masse de la population dénoncée par Edward Snowden illégale L’affaire Snowden a déjà 7 ans La cour de justice américaine déclare illégale les écoutes effecutée par la NSA La collecte de millions de coup de fil “may have been unconstitutional” Tweet de Snowden I never imagined that I would live to see our courts condemn the NSA’s activities Outils de l’épisode Roulettes sous ma chaise Conférences Codeurs En Seine 2020 - Edition en ligne - CFP jusqu’au 15 septembre En novembre, les mardis à 19h et les jeudis à 21h 45 minutes de conférences + environ 15 minutes de questions En ligne sur Twitch + rediffusion Youtube La prochaine édition du Fosdem se fera en ligne 6 e 7 février 2021 CFP bientot annoncé Volcamp Annulé Reporté au jeudi 14 et vendredi 15 octobre 2021 Big Data reste programmé 14 et 15 septembre 2020 Physiquement Porte de Versailles à Paris Ou depuis votre ordinateur ou smartphone Nous contacter Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs Faire un crowdcast ou une crowdquestion Contactez-nous via twitter https://twitter.com/lescastcodeurs sur le groupe Google https://groups.google.com/group/lescastcodeurs ou sur le site web https://lescastcodeurs.com/
Antonio, Guillaume et Emmanuel discutent de registries et de registries et de registries. Et sinon TypeScript 4, Kotlin 1.4, Spring One, comment gérer des équipes, lire du code, des APIs. Bref pleins de choses intéressantes :) Enregistré le 10 septembre 2020 Téléchargement de l'épisode [LesCastCodeurs-Episode-238.mp3](https://traffic.libsyn.com/lescastcodeurs/LesCastCodeurs-Episode-238.mp3) ## News ### Langages [jdk/jdk repository transition to Git, GitHub and Skara is done](https://mail.openjdk.java.net/pipermail/jdk-dev/2020-September/004694.html) [Ca rale contre G1 en default dans Java 11](https://twitter.com/headius/status/1297992914832769024) * throughput degradés * [RubyKon Benchmark 2020: CRuby vs JRuby vs TruffleRuby](https://pragtob.wordpress.com/2020/08/24/the-great-rubykon-benchmark-2020-cruby-vs-jruby-vs-truffleruby) * [Rubykon is Go AI written in Ruby using Monte Carlo Tree Search](https://github.com/PragTob/rubykon) * Ce n'est pas un benchmark representatif de la plupart des applis (car très peu d'IO) mais beaucoup de CPU * Utilise beaucoup de tableaux, peu de collection, pas de string... * TruffleRuby still has the best “warm” performance [Les blocs de texte de java 15 qui sort ce mois ci](https://www.lilian-benoit.fr/2020/09/Text_Blocks.html) * Simplifier l’écriture des chaines de caractères sur plusieurs lignes * [JEP 378: Text Blocks](https://openjdk.java.net/jeps/378) * Délimiteur trois guillemet ( """ ) [Typescript 4 est sorti](https://www.theserverside.com/news/252488030/Microsoft-makes-TypeScript-4-generally-available) * Partial semantic mode : Temps de démarrage plus rapides du projet par analyse partielle (vs toutes les dépendances) (dans l’IDE?) * Variadic tuple type (tuple de taille définie et de types définis et hétérogènes) * Dont rest élément où l’on veut. * Tuple labels comme des named parementers * Class property inference from constructor * Catch as unknown au lieu de any (downcastong) * En fait le compilateur fournit les outils à l’IDE [Kotlin 1.4](https://blog.jetbrains.com/fr/kotlin/2020/08/kotlin-1-4-est-disponible-et-met-l-accent-sur-la-qualite-et-la-performance) * Amélioration de la qualité. Stabilité et performances dans l’IDE * Corrige notamment des lenteurs ou blocages dans l’IDE * [Debugger de Coroutines](https://kotlinlang.org/docs/reference/whatsnew14.html#coroutine-debugger) * Nouveau compilateur pour centraliser le code entre les différentes plateformes * Sam pour les interfaces kotlin (Single Abstract Method) * Kotlin 1.4.0 comes with a variety of different language features and improvements. They include: * SAM conversions for Kotlin interfaces * Mixing named and positional arguments * Trailing comma * Callable reference improvements * break and continue inside when included in loops * Explicit API mode for library authors * kotlin.serialisation en 1.0 RC ### Librairies [Camel 3.5](https://camel.apache.org/blog/2020/09/Camel35-Whatsnew) * Lambda builder * Spring Boot 2.3.3 * junit 5 * route template (parameterized routes) * faster refleciton free startup * new components ### Infrastructure [Docker limite le nombre d’image par 6 heures](https://www.reddit.com/r/opensource/comments/iken0d/changes_to_dockers_policies_crosspost_from_rdocker/) * The second policy update is regarding limits on the number of image pulls. A pull is defined as up to two GET requests to the registry URL path ‘/v2/*/manifests/*’. Again, starting November 1, 2020: * Anonymous users will have an upper limit of 100 image pulls in a six hour period * Accounts authenticated with a DockerID will have an upper limit of 200 image pulls in a six hour period * Pro and Team subscriptions do not have limits * la question c’est image == layer donc 100 peut arriver vite pendant un lab [Github son propre container registry](https://github.blog/2020-09-01-introducing-github-container-registry) * suite de GitHub packages [prix](https://github.com/features/packages#pricing) * en beta gratuite pour l'instant [GitLab réduit les minutes de runners pour les comptes gratuits](https://gitlab.com/gitlab-org/gitaly/-/issues/3109) * "We are updating the CI/CD minutes limit in the Free tier to 400 minutes per group per month." * le marketing du gratuit / freemium en perte de vitesse pour les developpeurs? [Packages et registries en gratuit dans GitLab](https://twitter.com/k33g_org/status/1301410929926643712?s=21) * apres les registries de containers, ils ajoutent: Maven, npm, PyPi, NuGet, Composer, Conan et Go ### Cloud [Google cloud function supporte Java 11 depuis mi août](https://cloud.google.com/functions/docs/release-notes#August_14_2020) * [Environnement d'exécution Java 11](https://cloud.google.com/functions/docs/concepts/java-runtime) [Azure spring cloud en GA](https://azure.microsoft.com/en-gb/blog/azure-spring-cloud-a-fully-managed-service-for-spring-boot-apps-is-now-generally-available) * Hosting, monitoring d’app spring boot * "Automatically wire your apps with the Spring service runtime. Once deployed you can easily monitor application performance, fix errors, and rapidly improve applications" * mais ca reste un peu marketing et pas détaillé ### Web [Kotlin Multiplateforme mobile en alpha](https://blog.jetbrains.com/kotlin/2020/08/kotlin-multiplatform-mobile-goes-alpha) * Kotlin Multiplatform Mobile (KMM) est un SDK cross plateforme (iOS et Android) * Intégration complète dans Android Studio pour le dev * Refonte des compilos pour avoir une base commune entre le Kotlin / Kotlin JS et Kotlin Native * partager la business logic et laisser la UI et anvigation en natif iOS ou Android. ### Outillage [Comment fonctionne Time-based One Time Passwords](https://blog.digitalbunker.dev/2020/08/27/how-do-time-based-one-time-password-totp-services-work) * un secret partage * un compteur basé sur (t-t0)/tx * sha1 le tout * tronqué pour avoir 6 chiffres [GitPod (un concurrent à Eclipse Che à priori) devient open source](https://www.gitpod.io) ### Méthodologies [Si tu deprecies, je te fais caca dessus](https://medium.com/@steve.yegge/dear-google-cloud-your-deprecation-policy-is-killing-you-ee7525dc05dc) * lecture interessante entre la balance entre la dépréciation, retirer le support vs garder les choses pour toujours * Google et son monorepo et son clean code amène a des dépréciations plus élevées que l'industrie * "Backwards compatibility keeps systems alive and relevant for decades" * emacs, android, java * deprecition mais garder à vie * vs android qui a un code de merde et pleins de if mais qui est backward compatible * les developpeurs s'en vont quand la compatibilité casse * [emmanuel] mais des projets cassent des choses tout le temps sans que le utilisateurs ne soient mecontents - par exemple Spring Boot * petites depreciations, tooling, documentation * pas de big bang qui fracture ta plateforme et les utilisteurs ne migrent qu'au dernier moment * exacerbé dans le monde des services [Principes pour un meilleur design](https://reflexio.debec.eu/principles-for-better-design) * Améliorations incrémentales: peut pas faire parfait directement * Reutiliser l’existant: il y a des raisons aux solutions existantes? Vous atteignez la limite du design précédent? * Les cinq pourquoi pour trouver la cause et possiblement trouver une autre solution meilleure (et peut etre plus simple) * KISS : la perfection est quand il n’y a plus rien a enlever, pas ratjouer (Antoine de St Exupéry) * Parfait est l’ennemie du bon * (e.g principe du 80% 20% - en temps) * Reculer le moment de la complexité * pas un article révolutionaire mais un bon rappel. Prenez un café et lisez le douvement et réflechissez à chaque section [Reading Code is a Skill](https://trishagee.com/2020/09/07/reading-code-is-a-skill) * On n’écrit pas du code illisible par pur plaisir, en général le code / les pratiques / le métier / l’équipe a beaucoup évolué dans le temps * Le code lisible c’est subjectif, et il ne sert à rien de blamer les précédents auteurs * Donc plutôt que de se plaindre -> apprendre à lire du code [Scaler l’equipe d’engineering avec la propriété distribuée](https://bradfordcross.com/scaling-engineering-teams-with-distributed-ownership) * equipe fonctionne quand elle a une mission comprise et auquel elle croit, quand elle gagne (alignée avec les besoins de l’entreprise, mesure le succes, reconnu pour ce succès), quand les individus progressent * entre 5 et 10 est la limite a la quelle une equipe part en chaos sans organisation * centralisation: probleme planning, stand up etc * decentralisation sans plan: conflits, ralenti, desaligne => chaos * embaucher les type A (NDLR risque mono culture) ; embauche que si surcahrgé et montre resultats top (donc une equipe qui montre qu’elle fonctionne deja). sinon risque equipe disfonctionelle qui grossi (modifié) * La delegation vient avec la gouvernance pour appliquer les règles globales de l’équipe (code qualite, dette technique etc) * il encourage d’investir dans la core ip de l’appli vs rajouter des fonctionalités. Toujours sur quelle est la valeur * The person doing the work owns the execution, even though they may not own the direction. Rather than top down execution driven by meetings, we rely on bottom up execution based on top down direction and review. * Engineering Manager vs TEch Lead - As the team scales through, it’s important that someone is responsible for organizing the team, process, and ensuring people are happy, productive, and growing, and someone else is responsible for the technical direction and systems of responsibility like code reviews, deploys, and so on. * Scrum, agile poker etc est trop centralisé dans une approche avec un ratio senoir / junior coherant what I consider to be a more modern and decentralized approach, Engineering Managers work with engineers, who take ownership of chunks of work, decompose them into tasks, estimate, and get the team and manager to review async or in a planning meeting. Everything is tied to the team KPIs, which are tied to the company KPIs, but we don’t need any fancy formats like user stories, etc. Engineers are even more empowered to think about customers, product, and business value in this model — they are looking at how they can impact team KPIs, and empowered to push managers for the work they think is most impactful on the KPIs. The tech lead owns the technical queue — tech debt, testing issues, infrastructure, etc. * The Approval Matrix with Round Robin Pattern - utile sur les choses trop concentrées ou sur les sujets que personne ne veut training process pour onboarder * round robin pour forcer le changment et eviter les code review overloards et autres bug fixers * Pour taches de plus de 1 semaine, design document d’une page revue (sign off component lead) sanity checking, important issues and standards. Not micro management ### Sécurité [Docker desktop ajoute la commande scan analyser les problèmes de secu via Snyk](https://docs.docker.com/engine/scan) * scan des images locales * en CLI * s'appuie sur Snyk avec une partie gratuite via compte docker , sinon [prix](https://snyk.io/plans/) * [snyk](https://snyk.io) continuously find and fix vulnerabilities in open source libraries and containers * marche pas pour les images alpine [Et SonarQube (sonarcloud pour l’instant) ajoute de l’analyse de sécurité via le rachat de RIPS-TECH fait il y a quelques temps](https://community.sonarsource.com/t/java-a-new-security-engine-taking-the-best-of-sonarsource-and-rips-technologies/30428) * Déjà présent dans SonarCloud 2 * Sera inclue dans SonarQube 8.5 * [Sonar rachète de RIPS en mai 2020](https://blog.ripstech.com/2020/rips-acquired-by-sonarsource/) [GitHub qui se lance dans le code scann](https://github.blog/2020-08-27-secure-at-every-step-putting-devsecops-into-practice-with-code-scanning) * GitHub, all your base are belong to us * Oui d’où mon tweet sur le SPOF. Sachant que plus ils en font, moins c’est stable. * ils mettes les true positive "sûr" dans l'analyse de la PR ### Loi, société et organisation [Apple également dans le viseur de Facebook pour sa taxe de 30%](https://www.lemonde.fr/pixels/article/2020/08/28/apple-bloque-une-mise-a-jour-de-facebook-visant-a-informer-les-utilisateurs-de-la-taxe-apple_6050218_4408996.html) * l'app store ne permet pas de dire que les prix incus la marge d'apple de 30% * debat sur des cas specifiques: genre argent pour des gens qui organisent des evenements (ou pire une charité) * mais c'est l'argument "penser aux petits enfants". Facebook, j'imagine a des plans de se faire de l'argent sur certaines de ces ventes. [La CNIL publie son livre blanc sur les assistants vocaux](https://www.cnil.fr/fr/votre-ecoute-la-cnil-publie-son-livre-blanc-sur-les-assistants-vocaux) * 84 pages, articles, interviews.. * Super pour aider "les personnes en situation de dépendance, qu’elles soient âgées ou handicapées" * Mais pose des questions "du point de vue de la protection des données" * "fortement ancrée dans notre intimité" "de nombreuses informations sur l’émetteur d’un message oral. Âge, genre, condition physique, accent, origine géographique et socio-culturelle, éducation, état de santé * ou émotionnel, mais également identité" * "captent nos habitudes de vie pour enrichir un profil" * "Ce livre blanc propose quelques pistes de réflexion sur l’usage des données par les assistants vocaux" * Quels usages: DEMANDE DE LA MÉTÉO / RECHERCHER UNE INFORMATION / ÉCOUTER DE LA MUSIQUE * Mythes et réalités des assistants vocaux (vrai/faux) : écoutent en permanence / utilisent nos données pour mieux nous profiler / interface très prisée des enfants [Une cour d’appel américaine déclare la surveillance de masse de la population dénoncée par Edward Snowden illégale](https://www.reuters.com/article/us-usa-nsa-spying-idUSKBN25T3CK) * L'affaire Snowden a déjà 7 ans * La cour de justice américaine déclare illégale les écoutes effecutée par la NSA * La collecte de millions de coup de fil "may have been unconstitutional" * Tweet de Snowden [I never imagined that I would live to see our courts condemn the NSA's activities](https://twitter.com/snowden/status/1301251393832050688) ## Outils de l'épisode Roulettes sous ma chaise ## Conférences [Codeurs En Seine 2020 - Edition en ligne](https://twitter.com/codeursenseine/status/1301064575786405888?s=21) - [CFP](http://cfp.codeursenseine.com) jusqu'au 15 septembre * En novembre, les mardis à 19h et les jeudis à 21h * 45 minutes de conférences + environ 15 minutes de questions * En ligne sur Twitch + rediffusion Youtube [La prochaine édition du Fosdem se fera en ligne](https://fosdem.org/2021/news/2020-09-01-dates-fosdem-2021) * 6 e 7 février 2021 * CFP bientot annoncé [Volcamp Annulé](https://www.volcamp.io) * Reporté au jeudi 14 et vendredi 15 octobre 2021 [Big Data reste programmé](https://www.bigdataparis.com/2020) * 14 et 15 septembre 2020 * Physiquement Porte de Versailles à Paris * Ou depuis votre ordinateur ou smartphone ## Nous contacter Soutenez Les Cast Codeurs sur Patreon [Faire un crowdcast ou une crowdquestion](https://lescastcodeurs.com/crowdcasting/) Contactez-nous via twitter sur le groupe Google ou sur le site web
Добрый день уважаемые слушатели. Представляем новый выпуск подкаста RWpod. В этом выпуске: Ruby Ruby Creator Yukihiro Matsumoto on the Challenges of Updating a Programming Language The great Rubykon Benchmark 2020: CRuby vs JRuby vs TruffleRuby Comments Feed Upgrading GitHub to Ruby 2.7 Multipart file upload to Active Storage using GraphQL-ruby and Apollo Linting Ruby Racecar - a simple framework for Kafka consumers in Ruby Rainbow - a ruby gem for colorizing printed text on ANSI terminals Google Cloud Functions On Ruby Web D3 6.0 - The Data-Driven Document Library Electron 10.0.0 5 Projects You Can Build To Become a Better Web Developer Introducing Danfo.js, a Pandas-like Library in JavaScript Ztext.js - Easy to implement, 3D typography for the web ePaper.js - Node.js library for easily creating an ePaper display on a Raspberry Pi using HTML and Javascript Handwritten.js - convert typed text to realistic handwriting Carbonium - one kilobyte library for easy manipulation of the DOM
Charles and Tom, co-leads of the JRuby project, explain what JRuby is, how it works and who it’s for. Our guests also patiently answer Jason’s numerous and excruciatingly fine-grained questions. Charles and Jason also discuss their respective endeavors for spicy food during their international travels.
Duncan Macgregor speaks with Wes Reisz about the work being done on the experimental Graal Compiler. He talks about the use cases and where the new JIT compiler excels really well (compared to C2). In addition, Duncan talks about the relationship of Graal to Truffle. The two then discuss a language Duncan works on at OracleLabs (TruffleRuby) that is being implemented on the stack. Finally, the podcast wraps with a discussion of Project Loom and its relationship to TruffleRuby and Graal. Why listen to this podcast: - Graal is a replacement for the JVM’s C2 JIT compiler. It was tracked with JEP 295 (Ahead-of-Time Compilation) and included in Java 9. As of Java 10, Graal is experimental for the Linux x64 platform. - Graal is written in Java and excels at implementing code that takes a functional approach to solving problems (such as Scala). It can also offer improvements / optimizations for other languages (including other non-traditional JVM languages such as C and Ruby). - Truffle is a language implementation framework used my Graal. The idea is rather than having to write a compiler for your language, you can write an interpreter. This gives you the ability to write specializations at a higher level of abstraction that yields performance and better understanding. - Truffle’s architecture and design allows things like allowing unrelated languages to do interop, garbage collection, and types. - TruffleRuby and JRuby started off with a lot of shared code. They’ve branched and JRuby today focuses on integration with other Java classes. It compiles to bytecode and then relies on the C2 JIT to run on the JVM. TruffleRuby doesn’t try to compile to Java classes and only uses the Truffle framework to compile the things it needs. TruffleRuby is able to use most of native Ruby. - Project Loom is a project that aims to add one shot delimited continuations to the JVM. It leverages fibers (a much lighter concurrency primitive than threads) and can literally run millions of them.
Recorded live on Tuesday October 23, 2018 at Oracle Code One in San Francisco, this very special program brings together Doug Cutting (Chief Architect, Cloudera), Charles Nutter (Co-Lead, JRuby), Graeme Rocher (Project Lead, Grails Open Source Project), and Guido van Rossum (Creator, Python Language) to share their insight and expertise on the trends and technologies that have had the greatest impact on IT and software development over the past year, and will continue to shape the future. View the complete show notes.
Guest: Dillon Kearns: @dillontkearns | GitHub | Incremental Elm In this episode, Dillon Kearns joins the show to talk about techniques for experimentation with Elm, making those experiments safe, the concept of mob programming, why you would want to experiment with Elm in the first place, and how you too can begin to experiment with Elm. Resources: Grant Maki's talk on experimenting in your team "Types Without Borders" by Dillon Kearns @ Elm Conf 2018 Dillon's Elm GraphQL library How Elm Code Tends Towards Simplicity by Dillon Kearns The CSS as ByteCode Talk by Richard Feldman This show was produced by Mandy Moore, aka @therubyrep of DevReps, LLC. Transcript: CHARLES: Hello, everybody and welcome to The Frontside Podcast, Episode 114. My name is Charles Lowell. I'm a developer here at the Frontside. With me today as co-host on the show is David. Hello, David. DAVID: Hey, guys. CHARLES: David is also a developer here at Frontside and we are going to be talking about something that we've been talking, I guess a lot about recently and we're talking about Elm. I think we first started talking about this several years ago and then it kind of simmer down a little bit but recently, it's been top of tongue. With us to talk about Elm today is Dillon Kearns. Welcome Dillon. DILLON: Thank you so much for having me. CHARLES: I understand that you are a full time Elm consultant. You have a background as a Lean and Agile coach but have recently transitioned to doing Elm consulting full time. Now, what exactly does that mean in 2018 to be an Elm consultant. DILLON: Actually a lot of my motivation for getting into Elm consulting in the first place is I kind of realize that Elm to me is just an extension of the things that I was passionate about with Agile and software craftsmanship. I'm trying to help teams have a better experience with their code, make it more maintainable, make it easier to change, make it easier to drive things based on customer feedback and I really believe that Elm helps people do that. I used a lot of the background and experiences that I've had with Agile and Lean coaching and a lot of those same skills, in order to help organizations adopt Elm. One thing I've seen a lot of teams struggling with is trying out a lot of different frameworks. I've encountered teams that have spent months, very painfully trying out different frontend frameworks and having trouble coming to consensus about that. One of the things that I think really helps address that is having an experimental and iterative approach, that you can really use the scientific method to focus on learning, rather than getting it right the first time. I think that there's really a need to help teams through that process of introducing a new frontend framework like Elm, so that that's why I've gone into full time Elm consulting. CHARLES: That's an interesting process. It sounds like you really need to be constantly sending out spikes, doing research on whether it's Elm or some other technology to help you kind of bridge the chasm to the next generation. How do you actually do that as an organization? My guess, this kind of a question independent of Elm but maybe we can talk about how you see that play out in the context of Elm. DILLON: Right and actually, for any listeners interested in that question, I would really highly recommend Grant Maki's ElmConf talk from this year. He spoke about exactly that topic and it was at ElmConf that it's relevant whether your team is considering Elm or looking at other frameworks. I think that the key is you need to get good at experimenting in a way that's low risk and in a way that you can be constantly learning and seeing how these different technologies fit in your codebase and fit for your team. There's a quote that I really like from Woody Zuill. Have you guys heard of mob programming before? CHARLES: I heard of mob programming from a paper by Richard Garfield a long, long time ago, almost 20... I don't know if it's the same concept. DILLON: Yes. It gained a lot of momentum these days. Mob programming is essentially pair programming but with more people involved. I've really enjoyed that process actually. I think it's actually a great way to experiment with different technologies because you get all of the minds together and it's a very good way to kind of transfer knowledge and explore things together but Woody Zuill talks about mob programming and he likes to ask the question, "Why did we begin doing mob programming for the team at Hunter Industries that originally started mob programming?" People would give answers like, "Because it cuts out code review from the process because you have lots of eyeballs on it in real time," or, "Because it reduces bugs," or, "Because it gives you better quality code. It gives all the best ideas into the product in real time," and all those things are valid points that are really good benefits of mob programming. But he says those things may be true but actually, they're not why we tried mob programming. The reason we tried mob programming was because the team wanted to try it. That's a really important point. The team needs to be experimenting with things that they're passionate about and they need to be exploring things on their own terms. But with that said, another lesson from that story of kind of his team at Hunter Industries discovering mob programming is that the team didn't discover mob programming in a vacuum. Really, the team discovered mob programming because the team became really excellent at experimenting and evaluating those experiments and then, they like to talk about this phrase that Kent Beck coined, 'turn up the good.' When something is working well, we often focus on the negative things and trying to eliminate those things but what happens if we take the things that are working well and 'turn that dial up to 11.' CHARLES: Yeah, I love that. I remember in the kind of the original layout of extreme programming, talking about how I really just wanted to turn up all the things that were working for 11 or to 11, so testing, refactoring, incremental releases and things like that. DILLON: Exactly. CHARLES: I actually had one question that's maybe a little bit of a diversion. This is actually the first time I've heard of mob programming. It's definitely not the same sort of mob programming I learned about in Richard Garfield's paper. I think it was more referring to massively distributed open source in the form which is really kind of commonplace now that happens on GitHub. I think it's maybe, an obsolete definition of mob programming but how many people would be in a mob like two, three, four, five, six, seven, 10? DILLON: That's a great question. Really, the answer is of course, it depends. That's a consultant's favorite answer but it really does. My rule of thumb is I find it usually three people is a very nice size for a mob. I find that mobs tend towards around three or four people but that being said, it's important to note that mob programming is all about this idea that what is the true cost of programming. I think that often we look at programming as the act of writing code, initially and that's a very limited way of looking at coding. Because of course, 90% of our effort is spent maintaining code, making decisions around code, reproducing bugs, fixing bugs, communicating with customers about bugs -- bugs are extremely expensive -- the farther out they get, until eventually they get to the point of a customer discovering them, bugs are in extremely expensive part of software. If we can minimize bugs, that's very valuable. When you look at programming on this bigger scale and look at the bigger picture of programming, then you realize that you may be able to get one person to write the code faster but then, that person needs to code review it. That person needs to go and ask somebody question down the line when they don't have context because they weren't involved in the decision making. For example, maybe there's a UX person who doesn't have context on certain choices that were made, so there's a lot of churn, so you can kind of eliminate that churn by getting all the relevant people involved right away and that's the idea. In my experience with mob programming, it works really well to keep kind of a core of around three people. Sometimes, somebody goes up to have a conversation with somebody, take a break or answer somebody's question, maybe somebody from another team has a question that type of thing and so, the team can keep coding as a pair or whatever. But ultimately, the idea is that you get faster because you're building up this shared context and you're not spending as much time down the line answering questions, doing code reviews and things like that. CHARLES: Right. I see. DAVID: That kind of matches with my experience. Mob programming on previous teams, the way we had it set up is there was a regular mob programming chat session that the whole team was invited to but it was optional. You can just show up if you wanted to and really, that sort of made it so that there was a set of people who regularly attend -- three to five people in a session -- and they were the core group, essentially. DILLON: Right. That's another great point. Invitation is a powerful technique. If you're kind of mandating the people try an experiment or work in a certain way, ultimately it's much more powerful to let the team experiment on their own and follow their passion and they'll discover great things. It's about experimenting, rather than choosing specific experiments. While we're on this topic of kind of the real cost of coding, I think this is a good point to talk about this quality in Elm because, I think that this is one of the things that really motivates me to use Elm myself and introduce it to others is that, I think that Elm really get something about programming where there's a sort of superficial ease of certain techniques that Elm kind of goes beyond and says, "Actually, let's optimize for a different set of things that we think make code more maintainable and more delightful to work with in the long run." CHARLES: I wanted to also transition between, we were on a little diversions on mob programming but do you use mob programming as explicit technique for introducing Elm when a team is considering adopting it? DILLON: That's a fantastic question. I absolutely do. Of course, I honor the ways of working in a particular organization or team. I think that's important to do but I do strongly encourage using mobbing as a technique for knowledge sharing and when I'm on-site with a client, I find it extremely powerful as a technique for knowledge sharing and also, let's say you do an experiment, somebody is off in a corner and they're trying out Vue.js or they're trying out Elm or they're trying a particular coding technique. Then they come back to their team and they say, "Hey everybody, I tried this great thing," and now they have to spend this time convincing everybody and saying like, "Wait a minute. You didn't try this, you didn't try it that way. It wouldn't actually work in our context because of this." I think that it's very powerful to have everybody kind of involved in that process so that you can evaluate it together as a team. CHARLES: Because the thing is like, when you experience win or you experience fail, it's a very visceral feeling and that's the thing that sells you or turns you away. You can argue until you're blue in the face but words have a very limited capacity to convince, especially when compared with like physical and emotional feeling. It sounds like you can get everybody to have that shared experience, whether for the good or for the bad, you're going to arrive at a decision, orders of magnitude more quickly. They have to rely in conviction of that decision spread around the team. DILLON: Exactly. I think that hits the nail on the head and you say that we have this sort of skepticism of arguments from theoretical conversations, rather than 'show me the money,' but it's actually, try solving a real problem in this and that's exactly as it should be. I think that's one of the big antidote from this problem that I've seen in a lot of environments, where there's this analysis paralysis, especially with the state of the JavaScript ecosystem these days. I think that one of the keys to improving that situation is to get good at trying things, rather than theorizing about things. We have a tendency to want to theorize and when we do that, then we say, "Can it solve this problem? Can it solve this problem? Can it solve that problem?" You can talk about that until the cows come home but it doesn't get you anywhere and it doesn't really convince anybody of anything. The key is to find very small experiments and what I really recommend and what I'm dead focused on when I'm initially working with a client is getting something into production. Now, that doesn't mean that you need to have a road map for turning your entire application into Elm. In fact that's the whole point, is that you're not trying to do that. The point is you're trying to get as realistic of an experience as possible for what problems might occur if we do this? Will the team enjoy working with this language? Will it work well with our built pipeline? Will there be any unforeseen issues? You don't know until you actually try it, so you've got to try it and you've got to try it in tiny, tiny steps and low risk experiments. CHARLES: Right but you've got to try it for real. You don't want to try it with a TodoMVC. DILLON: Exactly. It needs to be meaningful, to really have a good understanding of what it's going to be like. CHARLES: I would say that I tend to agree but I've definitely encountered the counterargument and I also think this counterargument makes sense or perhaps where the pushback lies is if I'm constantly experimenting, then what I'm doing is I'm internally fragmenting my ecosystem and there is power in similarity. Any time you introduce something different, any time you introduce one fragment, you're introducing complexity -- a mental complexity -- like maybe I have to maintain my Elm app and I also have to have my Legacy... Or not Legacy, I've got my other JavaScript tool kit that does it in one way. Maybe I've got a couple of more because I've run these other experiments. I'm not saying that there is one way but there is power in uniformity. There is power in diversity. Where do you find the balance? DILLON: Those are all excellent points. To me, I think really the key is it's about the scientific method, you could say. The thing with the scientific method is that we often forget the last part. We get really good at hypothesizing about things. Sometimes people leave it at that, which we kind of just discussed. Sometimes, people go past the hypothesizing stage and they actually run the experiment and that's great. But then, the majority of people, if they get to that point, will forget to do the last step which is to evaluate the results. I think the key here is you need to be experimenting and this is what it means for it to be a low risk experiment. It means that you're not setting yourself off in a direction where you can't turn back. You want to set it up in such a way that you can turn away from it with minimal cost. One of the things that is really helpful for that is if you build a tiny, independent, little widget in your application, try building that in Elm. Some people will do that with a little sort of login badge in the corner of their application. One of the teams where I've introduced Elm at a Fortune 10 company, actually where we introduced Elm, we started out with just a tiny little table in one page and if we wanted to back that out, it would have been trivially easy but we decided that we wanted to go in further and invest more. CHARLES: That makes a lot of sense. Effectively, you need to have a Plan B. Don't sync all of the available time that you have to invest in an experiment. Make sure that you have a Plan B and if you need to do this widget or this table in Angular or React or Ember or whatever, you are thinking about that -- how would that work. DILLON: Exactly and the thing with experiments is the purpose of an experiment is not to build something. It's to learn. I really like this kind of ethos of lean startup, which I think is really getting much more into the mainstream in the software industry, which is a wonderful thing. The idea of lean startup, the kind of core concept is this idea of validated learning. Basically, in an environment where there's uncertainty, which is pretty much most of the things you're doing in software, the main goal is you're not shipping a product like you would be if you're trying to manufacture cars as quickly as possible. The main thing that you're producing is what they call 'validated learning' and so, you want to minimize the amount of time it takes to validate or invalidate your assumptions about something and then, you want to make it as cheap as possible to move on from that. CHARLES: I like that. So if you're going to organize your development process around this principle or maybe not organize it but integrate it into development process, how do you know that you're conducting a healthy number of experiments, versus I may be conducting too many experiments? Is there a metric that you can look at? We need to have this many experiments running at all times or this is just too many or something else. DILLON: That's a really interesting question. I think I would tend to think about that more again, as looking at the way the experiments are run, rather than 'are there too many experiments?' That's just not a problem that I've seen there being too many experiments. The pain that we tend to really see in environments where experiments are hurting teams is the way the experiments are being done. It's hard to backtrack from those experiments and as you were saying before, you kind of put yourself down this path where you can't walk it back and you create this sort of rift in the way the code is being written, which makes it more difficult to work in that codebase. The thing with experiments is they can have really big payoff. Now, you want to make sure that you're not just going in and picking up every shiny object that you see. One thing that can keep you honest with that is if you're kind of coming up with a hypothesis before you start. If you're saying, "This is the value to our business and to our team if we attempt this thing and this is what will prove that it seems to have that value and this is what will tell us, 'Actually, it doesn't have that value and we should drop it and cut our losses.'" CHARLES: That's a great heuristic. As you're saying and imagining how that might have saved my bacon in the past because I've definitely made the mistake of playing with too many shiny objects and picking things because I didn't fully evaluate what I thought the value. I was explicit with myself about what is the value that is going to bring to this project or this business. I have a theory about it but I am not thinking what is my hypothesis and how am I going to validate or invalidate? I'm thinking, I've got a short term pain that I'm experiencing and I'm grasping for this thing, which I think will solve it and I'm not properly evaluating how it's going to affect me long term. DILLON: Right and that could be a great team practice to play around with is often, teams will kind of come up with action items out of retrospectives. One thing that I think can be really beneficial for teams is to kind of flip that notion of doing action items which again, it's really just doing the middle part of the experiment where you're conducting the test but you cut out the hypothesis part and the evaluation part. Try to bring that into your team's retrospective and try to have explicit hypotheses in the retrospectives and then, in the next retrospective, evaluate the results. CHARLES: All right. I will definitely keep that in mind but this feels like a fresh take on kind of how you manage software development that I haven't encountered too much, being more scientific about it. It sounds like science-oriented development. DILLON: Right. DAVID: I like that. DILLON: There are a lot of buzzwords these days in software development, in general and it's really becoming a problem, I think in the Agile community but really, what it boils down to is these basic elements and basing decisions on feedback is one of those fundamental unit. You can call the scientific method, you can call it lean startup and validated learning, you can call it agile, you can call it whatever you want but ultimately, you need to be basing things on feedback. I think of it almost like our nerves. There's actually a disorder that some people have, which can be fatal, which is that their nerves don't tell them when they're feeling pain. I think this is a great analogy for software because that can happen to companies too. They don't feel the pain of certain decisions not landing well. Because they're not getting feedback from users, they're not getting feedback from metrics and recording, they're not getting feedback from doing that final evaluation step of their experiments, so when you fall on the ground, a small cut could be extremely harmful because you don't know the damage it's doing to you. CHARLES: I think that is a good analogy. One of the things that I'm curious about is we've been discussing a lot of techniques for experimentation and how you can integrate that into your process and how you can make your experiments safe, so let's talk a little bit about -- first of all, two things -- why would I want to experiment with Elm in the first place? Because ultimately, that's why we're here and why we're having this conversation. What's compelling about it that would make me want to experiment? And then how can I begin to experiment with Elm? DILLON: I actually just published a blog post yesterday. It's called 'How Elm Code Tends Towards Simplicity.' To your question of why would a team consider Elm, I kind of talk a little bit in this blog post about a case study at a Fortune 10 company where I introduced Elm to a few of the teams there. One of the teams there, we had actually seen an Angular project that they had worked on and often, in an enterprise environment, you have projects moving from one team to another. I actually had my hands on this Angular project. It kind of moved over to another team and we were experiencing some major pain trying to make changes in this codebase. Even making the simplest change, we were finding that there were a lot of bugs that would be introduced because there's some global variable. There's some implicit state. Sometimes, it was even reaching in and tweaking the DOM and really, the topic of conversation at our team lunches was how afraid we were to touch this codebase. Fast forward a few months and this team was asking my advice on picking a new frontend framework and I introduced them to Elm. They took a run with it and it was pretty remarkable to see this same team that had really struggled with AngularJS and they didn't really have a strong sense of what were the best practices. They weren't getting any guidance from the framework itself and the tooling around it and they actually loved the experience of working with Elm because they were saying, "This is amazing. Maybe it takes a little time to figure out how to solve a particular problem on Elm but once we do, we know that we've done it in a solid way." One of the things that I think is most powerful about Elm is that it keeps you from shooting yourself in the foot. I think that's a really good headline kind of summary of what I love about Elm. For example, tweaking the DOM. Now, it might seem like a pretty obvious thing that we just won't tweak the DOM and that's fair enough. That might not be a problem for a lot of teams. People wouldn't even reach for that technique because they're disciplined about it. But at a certain point, you start taking on enough things and then go from kind of those basic things that are going to make your code more unreliable and unsafe like tweaking the DOM and you start getting into the realm of best practices. There's so much discussion these days in the JavaScript community about best practices, which is great. It's great to discuss that but my concern is that there's a new best practice each week and the team has to agree on it, you have to find techniques for enforcing it, people have to make sure that these best practices are being followed in code reviews. Then when you look at a given piece of code, you have to trust that those best practices are being followed, so it requires a lot of work to make sure, in your reducers, in redux that you are not mutating anything. With Elm, data is just immutable. That's just how it is. There are a lot of these kind of things that are baked into the language and the expressivity of the type system allows you to bake in your own constraints. One of the things that I find really compelling about Elm is its design really prevents you from shooting yourself in the foot and it gives you tools for making sure that you take it even a step further and it helps you enforce these best practices at a compiler level. CHARLES: Now what's interesting here is it's almost like the opposite tension of experimentation is a work, right? like here, we have an example of uniformity being the more powerful track but then inside the actual macroscopic process, you want a lot of experimentation and diversity. But at the microscopic level, inside your application, it sounds like you want less experimentation and you derive a lot of strength from that but -- DILLON: That's a great point. CHARLES: -- Experiments that are possible, yeah. DILLON: I think that there is a lot of pain these days in the JavaScript community. We hear people talking often about JavaScript fatigue and it's a real thing. It takes a lot of work to stay on top of the latest best practices and frameworks and that can be a lot of fun. I love learning about the latest new frameworks and tooling but ultimately as you're saying, we don't want that experimentation so much about the fundamentals. We want some dependable, solid fundamentals and then we want the experimentation to happen within there. I think that's exactly what we see in the Elm ecosystem. We have a single kind of data store or way of managing state in Elm. It's called the Elm Architecture. In fact, it's what Redux is based on and it worked extremely well and you don't have to experiment with different data stores in Elm because that's just what Elm code looks like. Now, if you want to experiment in Elm, then there is a lot of innovation happening. One of my favorite things about Elm is that the compiler and its expressiveness has sparked a lot of creativity. One of my favorite things about Elm is the library called Elm UI. Actually, a client that I'm working with right now, it's a really interesting case study. They are kind of a very small startup. They just kind of branched off of a larger startup. They're building some tooling for this ecosystem. They were engineers at a company called Procore that does cloud document management for construction companies. They wanted to get a product-ready for a big conference for their potential clients. The reason they brought me in to help them was because they wanted to reach this ambitious target of being able to do a demo of this brand new product at this conference and they wanted to iterate very quickly. One of the things that really drew them into Elm in the first place is this library Elm UI. Elm UI essentially, Richard Feldman gives a talk on it, where he uses the analogy of it being treating CSS and HTML as bytecode for your views. I think that's a really apt way to put it. If you break down this idea of CSS -- Cascading Style Sheets, it removes the cascading part of CSS and it removes the sheets part of CSS. What you're left with is a way of expressing style and it's a way of expressing style that is able to part ways with all of the baggage of the entire history of backwards compatible decisions that CSS has ever made. If you want to vertically aligned something, then you just say, "Align vertically," you know, center vertically. If you want to center something horizontally, you say center X. It creates a high level language for expressing views. My experience with Elm UI, this may not be the right choice for every team but I love it. I use it on all of the projects that I maintain personally. I love using it because it gives you that same sense of invincibility refactoring that you get with Elm, which is remarkable that you could have that feeling with managing views. CHARLES: It's definitely something that feels like a dark art and it can't be called science. It's an art. It's a science for some people but it's historically been a dark art and something fiddly to work with. In terms of being able to make the experiment with Elm, when we talked a little bit about why you might want to experiment with it in the first place, what the business case is, I guess my next question is or a question that immediately comes to mind is supposing that we have decided to experiment with this, how do you mitigate that experiment? We talked about lowering the cost, having a way to turn away from it, having a way to make it inexpensive. For example, one of the things that I think of when evaluating a new technology is how well can I use it with old technologies. I have a lot about best practices in my tool bag. We all do. We got our all favorite libraries and pathways that are just familiar to us. One of the things that I've noticed is when adopting a new technology, one of the things that makes it easy to experiment with is how well it works with the existing technologies. I know that, we talked about Elm UI, kind of rethinking style in CSS and your views and Elm itself as a completely different language within JavaScript, that can be both liberating but it can also be limiting in the sense that I can't reach back for my existing tool if no tool exists in this new space. The kind of experience that I've had where this is really worked is systems like JRuby or Clojure, where there's a very clear pathway to be able to use Java libraries from those environments, so you always have kind of an escape hatch. What's that like in Elm? DILLON: This is a really interesting conversation because it highlights, in some ways some of the most defining features of Elm. In terms of how do you kind of pull Elm into an existing application, there are a lot of different techniques for that. It's pretty straightforward to create a little Elm app. We usually don't call them components for reasons that we can get into if we want to but that's a whole can of worms. But if you've got a little Elm application that you want to use to render a widget on your page, then it's as simple as just calling Elm.yourmodule.init and rendering it onto the page there. That's quite straightforward and if you want to interface with your existing code there are several ways to do that. There's something called port in Elm, which is how you kind of communicate by sending these messages and data back and forth between your Elm app and JavaScript. Now, this is one of the decisions, I think that defines Elm as the language and the reason this is important is because Elm decided not to make the choice that a lot of other compile to JS languages do. For example, if you look at ReasonML or PureScript or a more extreme example, TypeScript. TypeScript is a superset of JavaScript, so it's trying to allow you to gradually introduce this to get some incremental improvements for your JavaScript code, so it's extremely easy to experiment with it, which we've talked about the importance of experimentation. Now, the challenge with this technique, the tradeoff here is it's great, that it then becomes very easy to transition into it and that's an excellent strategy for the goals of TypeScript. Elm has a different set of goals, so the things that elm is focused on giving you is a truly type-safe experience. When you're working with Elm, if your Elm code says that this data is a float, then it is a float. Either, it is a float or that code is not being run and so, that's very different than the experience in TypeScript where you have these escape hatches. This is an inevitable choice for any compiled to JS language. Are you going to have escape hatches or not? Elm is really the only language out there, I think that chooses not to have escape hatches and that is actually the thing that that I love about the language because that's the only way you can truly have guarantees, rather than, "Yeah, I'm pretty sure that these type guarantees hold." DAVID: Yeah, wishes and dreams. DILLON: Yeah. CHARLES: What does it mean to have no escape hatches? because you talked about ports. Does it mean like it's impossible to use an external JavaScript library? DILLON: That's an excellent question. You absolutely can use JavaScript libraries. It means that it's being explicit and upfront about the fact that there's uncertainty in these areas. That's what it comes down to. Take for example dealing with JSON. In a JavaScript application, what we get when we're dealing with JSON is you make a request up to the server, you have some callback that passes in the data you get back and then you start pulling bits and pieces off of it and you say 'response.users subzero.firstname' and you hope that none of those things are null, none of those types are different than what you expected. In a way, it's kind of letting you pretend that you have certainty there when in fact, you don't and with Elm, the approach is quite different. You have to explicitly say, "I expect my response to have this shape. I expect it to be a list of things, which have a first name and last name which are strings," and then Elm says, "Okay, great. I'm going to check your assumptions," and if you're right, then here you go and you're in a well typed-space where you know exactly what the types are and if you're wrong, then that's just another type of data, so it's just a case statement where you say, "If my assumptions were correct, then do something and if my assumptions were incorrect, then you decide what to do from there." CHARLES: Right. For me, it sounds like there is some way because ultimately, I'm going to be getting unstructured but I'm going to be getting JSON back from the server and maybe, I have some library that's going to be doing that for me and enhancing it and adding value to that JSON in some way. But then at some point, I can present it to Elm but what you just saying is I need to be complete in making sure that I handle each case. I need to do or handle the case. Explicit about saying if the assumptions that Elm wants to make, turn out to not be true, Elm is going to make me handle the case where those assumptions were not true. DILLON: Exactly. I think that TypeScript of any type is the perfect illustration of the difference. TypeScript of any type is sort of allowing you to say, "Don't type check this. Trust me here," and Elm's approach is more kind of just be explicit about what you want me to do if your assumptions are incorrect. It doesn't let you kind of come in and say, "No, I know I'm going to be right here." CHARLES: Right but there is a way to pass data structures back and forth. DILLON: There absolutely is and actually, there's a technique that's starting to gain some traction now, which I'm really excited about, which is rather than using this sort of JavaScript interrupt technique we talked about, which is again, it's very much like communicating with a server where you're kind of sending messages and getting data back -- getting these messages with data back. But there's an alternative to that which is using web components. Actually, there's quite good support for assuming that you don't need to be compatible with Internet Explorer. Basically in a nutshell, if you can wrap a sort of declarative web component around anything, it could be a Google Maps API, it could be a syntax highlighting JavaScript library, something that you don't have an Elm library for but you want to use this JavaScript library, it's actually quite a nice experience. You just render that custom element using your Elm code just as you would any other HTML in Elm. CHARLES: Yeah I like that, so the HTML becomes the canvas or composition with other JavaScript and the semantics are very well-defined and that interface is actually pretty thin. DILLON: Exactly and the key again is that you wanted to find a declarative interface, rather than an imperative one where you're kind of just doing a series of statements where you say, "Do this and then set this value and then call this and then set this call back." Instead, you're saying, "Render this Google Maps custom element," which is centered around these coordinates and has this zoom level on. You declaratively give it the bit of information that it needs to render a particular view. CHARLES: Okay. Then I guess the final question that I have around this area is about being able to integrate existing tools and functions inside of an Elm application. Because it sounds like you could theoretically develop large parts of your application, is there a way that you can actually have other areas of your application that are not currently invested in Elm still benefit from it, in the sense for kind of need of JavaScript APIs that Elm can make available. DILLON: Right, so you're kind of talking about the reverse of that Elm reaching out to JavaScript. You're asking about, can JavaScript reach out to Elm and benefit from some of its ecosystem? CHARLES: Exactly. I say that is that another potential vector for experimentation. DILLON: It's a really interesting thought. I haven't given it too much thought, to be honest but I actually have heard it come up before and my gut feeling is that it's probably more fruitful to explore the inverse, reaching out to JavaScript from Elm and the reason is kind of the main appeal of Elm is that when you're operating within Elm, you have this sense that if it compiles, it works. Because again, this central decision to not allow escape hatches is what allows you to have that sort of robustness, so you have this feeling of bullet proof refactorings and adding new features seamlessly where you change your data modeling to say, "Here's this other case that can be represented," and then suddenly, the Elm compiler says, "Tell me what to do here, tell me what to do here and tell me what to do there," and you do it and your app is working. That's the real appeal of Elm, I think and you don't really get much of that by just calling out to an Elm library from within JavaScript. That's my gut feeling on it. CHARLES: Okay, that's fair enough. On the subject of interrupt and using tools like JSON, you actually maintain a GraphQL library for Elm. You probably have a lot of experience on this. Maybe we can talk about that as a concrete case that highlights the examples. DILLON: Yeah. I think to me this is one of the things that really highlights the power of Elm, to give you a really amazing refactoring and kind of feature creating experience. A lot of Elm libraries are prefaced by the author name, so it's still DillonKearns/ElmGraphQL. I spoke about it this year at ElmConf. In a nutshell, what it does is it actually generates code based on your GraphQL schema. For anyone who doesn't know, GraphQL is just kind of a language for expressing the shape of your API and what types of data can return. What DillonKearns on GraphQL does is it looks at your GraphQL schema and it generates an API that allows you to query that API. using this library, you can actually guarantee that you're making a valid query to your server. Again, you get this bulletproof experience of refactoring in Elm where you can do something like make a change in your API and recompile your Elm code and see whether you've made a backwards incompatible change. All of this effort of doing sort of this JSON decoding I was talking about earlier where you kind of have to explicitly say, "These are my assumptions about the shape of the JSON that I'm getting back." When you're using this library, you no longer need to make any assumptions because you're able to rely on this sort of schema of your API and so you know when you're requesting this data, you don't have to run it, see if it works and then tweak it and run it again -- this sort of cycle of checking your assumptions at runtime. It moves those assumptions that you're making from runtime to compile time and it can tell you when you compile your application, it can say, "Actually, this data you're requesting, it doesn't exist," or, "It's actually called this," or, "This is actually the type of the data." CHARLES: Right. I love that. How do you do that? Because it seems like you've got a little bit of a chicken and the egg problem because the schema is defined outside of Elm, so you have to be able to parse and understand the schema in order to generate the Elm types to be able to compile Elm code against them. Maybe I'm not -- DILLON: That's exactly right. That's exactly what it does. Now, the nice thing is that GraphQL is really designed for these types of use cases. It supports them in a first class way. If you have a GraphQL API, that means you have built into it whether you know about it or not, a way to introspect the schema. All of the queries for kind of interrogating that GraphQL server and asking what types of data does this return, what are all your queries that I can run, it's built into it by the framework, so that comes for free. Getting up and running with this package I built is as simple as running a little npm CLI, pointing it to either your URL for your server or the JSON form of your schema, if you prefer and then, it generates the code for you. CHARLES: Wow, that sounds fantastic. This is the exact kind of thing that feels like it would be cool if I could just start using this library to manage the GraphQL of my application but I'm consuming that GraphQL from other JavaScript but it's the Elm code that's managing it. Do you see what I mean? DILLON: I hadn't considered that. I guess you could. You're right. Maybe I'm so smitten with Elm that it's hard to see an in-between but I guess, you could get some benefits from that approach. CHARLES: Right and as an experiment of course. DILLON: There you go. There you go. CHARLES: All right. With that, I think we'll wrap it up. Thank you so much, Dillon for coming on and talking with us on the podcast. DILLON: My pleasure. I really enjoyed the conversation. CHARLES: I actually got so many great tidbits from so many different areas of software development in Elm but also, just in kind of other things that I'm interested in trying. It was a really great conversation. DILLON: I had a lot of fun and I love discussing these things. For any listeners who are interested in this stuff, feel free to reach out to me on the Elm Slack or on Twitter. I'm at @DillonTKearns. I'm also offering a free intro Elm talk for any companies that are kind of entertaining the idea of doing an experiment with Elm. If you go to IncrementalElm.com/Intro, you can find out about some of the talks that I'm offering. CHARLES: All right. Well, thank you very much and we, as always are the Frontside. We build software that you can stake your future on and you can get in touch with us at @TheFrontside on Twitter or Contact@Frontside.io on email. Please send us any questions you might have, any topics that you'd like to hear about and we look forward to hearing from you and we will see you next week.
Yanik takes a look at the history of platform-supported Ruby implementations, whatever that means.Related LinksFU: Learning with Manga! Fate/Grand OrderThe Ruby programming languageRuby on RailsJRubyYouTube: Charles Nutter - JRuby in 2017: Fast, Compatible, and Concurrent, RubyConfBY 2017, a great session that gives a nice status update on where JRuby was 9 months agoIronRubyWikipedia: Common Language RuntimeWikipedia: Microsoft SilverlightWikipedia: Dynamic Language RuntimeWikipedia: Windows PowerShellGitHub: IronLanguages/ironrubyMacRubyLimitless Possibility 57: Evolutionary Dead End where we last discussed RubyCocoaJohn Siracusa's Copland 2010 articles: part 1, part 2, part 3, and the revisited articleRubyMotion, the spiritual successor to MacRuby * Limitless Possibility 65: Complaint Extravaganza where we last discussed XamarinGitHub: MacRuby/MacRuby
This week my guests are Mark Mandel and Francesc Campoy Flores who run the Google Cloud Platform (GCP) Podcast. They produce a weekly podcast discussing everything on Google Cloud Platform that would benefit your business. As you look at alternatives like Microsoft Azure, Amazon Web Services, you should also look at Google Cloud Platform. Our conversation is super techy, but very informative. Listen to the interview and learn more about Google Cloud Platform Major Take-Aways From This Episode: The GCP Podcast interviews Google product managers and engineers who answer questions from listeners. Google’s philosophy of Open Cloud is explained. Google App Engine and managed services explained. Kubernetes and Container Orchestration (Google Container Engine) at scale - @ 16:00 Google Cloud is open as it is the best place to run Open Source technologies. No vendor lock-in; minimizing all operations that are not a part of your business. The concept of “Lift and Shift”. “On Demand” managed services - Helping customers orchestrate their projects in the Cloud and available to everyone. Open source product, Spinnaker – automated launcher for common things; Container builder – sets up steps of a workflow. Why you need a better observability of your system? Difference between “Go Programming”, “Python”, and “C++” @ 27:00. Who is Go Programming Language for? Code that is easy to learn for decision-makers. The direction the future programming talent is heading to. Other key resources: TensorFlow open-source machine learning framework Greenfield Platform @ 8:00 Cloud Identity and Access Management (IAM) - unified view into security policy across your entire organization, with built-in auditing to ease compliance processes. Episode #25 on GCP Podcast, Interview with Go team members. Episode #100 with Vint Cerf, one of Internet founders, on GCP podcast Read full transcript here. About Mark Mandel Mark Mandel is a Developer Advocate for the Google Cloud Platform. Hailing from Australia, Mark built his career developing backend web applications which included several widely adopted open source projects, and running an international conference in Melbourne for several years. Since then he has focused on becoming a polyglot developer, building systems in Go, JRuby and Clojure on a variety of infrastructures. In his spare time he plays with his dog, trains martial arts and reads too much fantasy literature. About Francesc Campoy Flores Francesc Campoy Flores is a Developer Advocate for Go and the Cloud at Google. He joined the Go team in 2012 and since then he has written some considerable didactic resources and traveled the world attending conferences, organizing live courses, and meeting fellow gophers. He joined Google in 2011 as a backend software engineer working mostly in C++ and Python, but it was with Go that he rediscovered how fun programming can be. Where to Find Google Cloud Platform Podcast Email: hello@gcppodcast.com Twitter: GCPPodcast Google Plus: +GCPPodcast Reddit: /r/gcppodcast Ways to connect with Mark and Francesc: Mark Mandel: Twitter Website LinkedIn Francesc Campoy Flores: Twitter Website LinkedIn This episode is sponsored by the CIO Innovation Insider Offense and Defense Community, dedicated to Business Digital Leaders who want to be a part of 20% of the planet and help their businesses win with innovation and transformation. Credits: * Outro music provided by Ben’s Sound Other Ways To Listen to the Podcast iTunes | Libsyn | Soundcloud | RSS | LinkedIn Leave a Review Feedback is my oxygen. I would appreciate your comments, so please leave an iTunes review here. Click here for instructions on how to leave an iTunes review if you're doing this for the first time. About Bill Murphy Bill Murphy is a world renowned Innovation and Transformation (Offense and Defense) Expert dedicated to your success as an IT business leader. Follow Bill on LinkedIn and Twitter.
Panel: AJ O’Neal Joe Eames Aimee Knight Special Guests: Chris Ferdinandi In this episode, JavaScript Jabber panelist speak with Chris Ferdinandi. Chris teaches vanilla JavaScript to beginners and those coming from a design background. Chris mentions his background in Web design and Web Develop that led him JavaScript development. Chris and the JSJ panelist discuss the best ways to learn JavaScript, as well as resources for learning JavaScript. Also, some discussion of technologies that work in conjunction with vanilla JavaScript. In particular, we dive pretty deep on: Teaching JavaScript - Beginners and Design patrons Web Design and Web Development CSS Tricks Todd Motto How to do jQuery Things without jQuery Doing things like mentors (Todd) When JavaScript makes sense. CSS is easier to learn then JS? Being good at CSS and JS at the same time? How about Node developers? jRuby, DOM Documentation And much more! Links: https://github.com/cferdinandi https://gomakethings.com @ChrisFerdinandi https://www.linkedin.com/in/cferdinandi Picks: AJ Discover Card Mistborn Aimee Your Smart Phone is Making You Stupid… Crypto Currency Joe Mystic Vale Kedi Chris https://gomakethings.com Teva Mush
Panel: AJ O’Neal Joe Eames Aimee Knight Special Guests: Chris Ferdinandi In this episode, JavaScript Jabber panelist speak with Chris Ferdinandi. Chris teaches vanilla JavaScript to beginners and those coming from a design background. Chris mentions his background in Web design and Web Develop that led him JavaScript development. Chris and the JSJ panelist discuss the best ways to learn JavaScript, as well as resources for learning JavaScript. Also, some discussion of technologies that work in conjunction with vanilla JavaScript. In particular, we dive pretty deep on: Teaching JavaScript - Beginners and Design patrons Web Design and Web Development CSS Tricks Todd Motto How to do jQuery Things without jQuery Doing things like mentors (Todd) When JavaScript makes sense. CSS is easier to learn then JS? Being good at CSS and JS at the same time? How about Node developers? jRuby, DOM Documentation And much more! Links: https://github.com/cferdinandi https://gomakethings.com @ChrisFerdinandi https://www.linkedin.com/in/cferdinandi Picks: AJ Discover Card Mistborn Aimee Your Smart Phone is Making You Stupid… Crypto Currency Joe Mystic Vale Kedi Chris https://gomakethings.com Teva Mush
Panel: AJ O’Neal Joe Eames Aimee Knight Special Guests: Chris Ferdinandi In this episode, JavaScript Jabber panelist speak with Chris Ferdinandi. Chris teaches vanilla JavaScript to beginners and those coming from a design background. Chris mentions his background in Web design and Web Develop that led him JavaScript development. Chris and the JSJ panelist discuss the best ways to learn JavaScript, as well as resources for learning JavaScript. Also, some discussion of technologies that work in conjunction with vanilla JavaScript. In particular, we dive pretty deep on: Teaching JavaScript - Beginners and Design patrons Web Design and Web Development CSS Tricks Todd Motto How to do jQuery Things without jQuery Doing things like mentors (Todd) When JavaScript makes sense. CSS is easier to learn then JS? Being good at CSS and JS at the same time? How about Node developers? jRuby, DOM Documentation And much more! Links: https://github.com/cferdinandi https://gomakethings.com @ChrisFerdinandi https://www.linkedin.com/in/cferdinandi Picks: AJ Discover Card Mistborn Aimee Your Smart Phone is Making You Stupid… Crypto Currency Joe Mystic Vale Kedi Chris https://gomakethings.com Teva Mush
Добрый день уважаемые слушатели. Представляем новый выпуск подкаста RWpod. В этом выпуске: Ruby Rails 5.0.3 and 5.1.1 have been released, Fixing Unicode for Ruby Developers, How to find and fix bug in JRuby and don't go crazy и Don't Use Objects as Hash Keys in Ruby Start using GraphQL in Rails, The hidden cost of the invisible queries in Rails и Faster Rails: Is Your Database Properly Indexed? Trailblazer on Rails: Basics - Setup & Use, Serverless-ruby - a Serverless Framework example using an AWS lambda which runs a Ruby function и Bundleup - a Ruby project containing a Gemfile to see what gem dependencies need updating JavaScript Announcing the new webpack CLI, Methods for Contrasting Text Against Backgrounds и The Issue with Preprocessing CSS Custom Properties Distributing a self-replicating malicious code using NPM, The Hitchhiker's Guide to d3.js и Making Maps With React JavaScript implementations of different famous Computer Science algorithms, Britecharts - a client-side reusable Charting Library based on D3.js, Pingy CLI - simple frontend build tool и Sticky Sidebar - jQuery plugin for making smart and high performance sticky sidebars
Добрый день уважаемые слушатели. Представляем новый выпуск подкаста RWpod. В этом выпуске: Ruby ROM 3.0 Released, Benchmarking a Go AI in Ruby: CRuby vs. Rubinius vs. JRuby vs. Truffle – a year later и What makes Rails a framework worth learning in 2017? How To Add Active Admin to a Rails 5 API Application и Build your first Facebook Messenger bot in Ruby with Sinatra The Difference Between to_s & to_str In Ruby, Elixir for Rubyists и Random Ruby Tips and Tricks JavaScript Announcing Ionic 2.0.0 Final, ES proposal: Shared memory and atomics и Making Responsive HTML Email Coding Easy With MJML Introduction to WebAssembly, Angular in Production и The end of the clearfix hack? Swarm-numberformat - format large numbers in several human-readable ways, Tilt.js - tiny requestAnimationFrame powered 60+fps и QArt.js - generate artistic QR code
00:45 - What deployments have we used? 3:22 - Heroku 5:10 - Dev/prod parity 10:30 - Deployment stories 11:50 - Continuous deployment CircleCI SnapCI 15:55 - Working with clients that are anti-testing and writing tests 28:50 - Server setup Docker Chef 34:05 - Nginx and Passenger 39:35 - Handling caching issues and increasing server space 44:25 - Methods for deploying 46:30 - Team size and deployment Capistrano 49:40 - Monitoring tools Code Climate Honey Badger Zabbix NewRelic TrackJS JSJ 138 with Todd Gardner Picks: Dinosaur Odyssey by Scott Sampson (Jason) Shadows of Forgotten Ancestors by Carl Sagan (Jason) Rails Solutions: Ruby on Rails Made Easy by Justin Williams (Jerome) Take My Money: Accepting Payments on the Web by Noel Rappin (Brian) Deploying with JRuby by Joe Kutner (Brian) RR Episode 281 with Noel Rappin RR 150 with Joe Kutner Echo Dot (Charles) The Life-Changing Magic of Tidying Up by Marie Kondo (Brian) Getting Things Done by David Allen (Charles)
00:45 - What deployments have we used? 3:22 - Heroku 5:10 - Dev/prod parity 10:30 - Deployment stories 11:50 - Continuous deployment CircleCI SnapCI 15:55 - Working with clients that are anti-testing and writing tests 28:50 - Server setup Docker Chef 34:05 - Nginx and Passenger 39:35 - Handling caching issues and increasing server space 44:25 - Methods for deploying 46:30 - Team size and deployment Capistrano 49:40 - Monitoring tools Code Climate Honey Badger Zabbix NewRelic TrackJS JSJ 138 with Todd Gardner Picks: Dinosaur Odyssey by Scott Sampson (Jason) Shadows of Forgotten Ancestors by Carl Sagan (Jason) Rails Solutions: Ruby on Rails Made Easy by Justin Williams (Jerome) Take My Money: Accepting Payments on the Web by Noel Rappin (Brian) Deploying with JRuby by Joe Kutner (Brian) RR Episode 281 with Noel Rappin RR 150 with Joe Kutner Echo Dot (Charles) The Life-Changing Magic of Tidying Up by Marie Kondo (Brian) Getting Things Done by David Allen (Charles)
00:45 - What deployments have we used? 3:22 - Heroku 5:10 - Dev/prod parity 10:30 - Deployment stories 11:50 - Continuous deployment CircleCI SnapCI 15:55 - Working with clients that are anti-testing and writing tests 28:50 - Server setup Docker Chef 34:05 - Nginx and Passenger 39:35 - Handling caching issues and increasing server space 44:25 - Methods for deploying 46:30 - Team size and deployment Capistrano 49:40 - Monitoring tools Code Climate Honey Badger Zabbix NewRelic TrackJS JSJ 138 with Todd Gardner Picks: Dinosaur Odyssey by Scott Sampson (Jason) Shadows of Forgotten Ancestors by Carl Sagan (Jason) Rails Solutions: Ruby on Rails Made Easy by Justin Williams (Jerome) Take My Money: Accepting Payments on the Web by Noel Rappin (Brian) Deploying with JRuby by Joe Kutner (Brian) RR Episode 281 with Noel Rappin RR 150 with Joe Kutner Echo Dot (Charles) The Life-Changing Magic of Tidying Up by Marie Kondo (Brian) Getting Things Done by David Allen (Charles)
Coraline Ada Ehmke is a speaker, writer, teacher, open source advocate and technologist with 20 years of experience in developing apps for the web. She works diligently to promote diversity and inclusivity in open source and the tech industry. She is the creator of the Contributor Covenant, the most popular open source code of conduct in the world (with over 15,000 adoptions including JRuby, Swift, F# and Rails.) Coraline works for GitHub as a senior engineer on a team devoted to creating community management and anti-harassment tools. Show notes at http://hellotechpros.com/coraline-ehmke-people/ What You Will Learn In This Episode Why a lack of diversity limits creativity and problem solving. What a Code of Conduct can help you achieve in your organization. The impact your words and behaviors have on those around you, regardless of your intention. How to approach and communicate with someone who is violating the code of conduct. Technical terminology that needs to be refactored by everyone. The root cause behind most software problems. The anti-harassment and community support tools GitHub is building to foster excellent conduct. The emotion we all need to show at work to make life and work better for everyone involved.
Добрый день уважаемые слушатели. Представляем новый выпуск подкаста RWpod. В этом выпуске: Ruby Battle of Interpreters: MRI vs JRuby vs Rubinius, Walkthrough of my .vimrc file for Ruby development и Bundler's Multiple Source Security Vulnerability Deploy rails application with docker compose and capistrano, The SQL Alternative To Counter Caches и Auto-increment counter not persisted on disk with InnoDB React on Rails, Hyperloop - React on Ruby и Whirly - a simple, colorful and customizable terminal spinner library for Ruby JavaScript How it feels to learn JavaScript in 2016, JavaScript Fatigue Fatigue, Everything is fine with JavaScript и JavaScript fatigue is not real Fall cleaning: Optimizing V8 memory consumption, Firebase with Redux и RethinkDB is shutting down JavaScript Internationalization API, KUTE.js - a native Javascript animation engine featuring badass performance и iTunes Remote - control iTunes on Mac with other devices on same network
Software Engineering Radio - The Podcast for Professional Software Developers
Charles Nutter from the JRuby project talks to Charles Anderson about JRuby and the Java Virtual Machine (JVM) as a platform for implementing programming languages. They begin by discussing the Java platform beyond just the Java language. As a case study in implementing a language other than Java on the JVM, they discuss JRuby - what it is and how it’s implemented on the JVM. They discuss recent additions to the Java platform like the invoke-dynamic byte code and lambdas in Java 8. The conversation concludes by discussing the future of the Java language, platform, and virtual machine.
Software Engineering Radio - The Podcast for Professional Software Developers
Charles Nutter talks to Charles Anderson about the JRuby language and the JVM as a platform for implementing programming languages. They discuss JRuby and its implementation on the JVM as an example of a language other than Java on the JVM. Venue: Skype Related Links Charles Nutter on Twitter: https://twitter.com/headius Charles Nutter on GitHub: https://github.com/headius JRuby […]
02:00 - Introduction Twitter GitHub Blog OrderUp readthesource: Clearwater with Jamie Gaskins 02:23 - Clearwater Clearwater Gitter Channel Opal roda 03:51 - How an App is Typically Structured React TodoMVC Code TodoMVC Demo 05:39 - Persistence and Wiring Up to the Backend grand_central 06:49 - Why Clearwater Was Created 08:26 - How does it compare to prevalent JavaScript frameworks? Clearwater — Ruby on the front end outperforms React.js Virtual DOM Implementations Roadmap to 1.0 11:23 - What problem is Clearwater aiming to solve? 14:30 - Debugging 16:39 - Use Cases 20:33 - The Future of Clearwater 21:59 - Maintaining Clearwater 24:39 - What is success? 25:23 - Using Clearwater with a System Like Volt Picks Contributor Covenant (Coraline) Kaleidoscope (Coraline) LEGO Ideas - Lovelace & Babbage (Coraline) Freelance Remote Conf (Chuck) Ruby Remote Conf (Chuck) RushMyPassport (Chuck) Primula Cold Brew Glass Carafe Iced Coffee Maker (Jamie) JRuby (Jamie)
02:00 - Introduction Twitter GitHub Blog OrderUp readthesource: Clearwater with Jamie Gaskins 02:23 - Clearwater Clearwater Gitter Channel Opal roda 03:51 - How an App is Typically Structured React TodoMVC Code TodoMVC Demo 05:39 - Persistence and Wiring Up to the Backend grand_central 06:49 - Why Clearwater Was Created 08:26 - How does it compare to prevalent JavaScript frameworks? Clearwater — Ruby on the front end outperforms React.js Virtual DOM Implementations Roadmap to 1.0 11:23 - What problem is Clearwater aiming to solve? 14:30 - Debugging 16:39 - Use Cases 20:33 - The Future of Clearwater 21:59 - Maintaining Clearwater 24:39 - What is success? 25:23 - Using Clearwater with a System Like Volt Picks Contributor Covenant (Coraline) Kaleidoscope (Coraline) LEGO Ideas - Lovelace & Babbage (Coraline) Freelance Remote Conf (Chuck) Ruby Remote Conf (Chuck) RushMyPassport (Chuck) Primula Cold Brew Glass Carafe Iced Coffee Maker (Jamie) JRuby (Jamie)
02:00 - Introduction Twitter GitHub Blog OrderUp readthesource: Clearwater with Jamie Gaskins 02:23 - Clearwater Clearwater Gitter Channel Opal roda 03:51 - How an App is Typically Structured React TodoMVC Code TodoMVC Demo 05:39 - Persistence and Wiring Up to the Backend grand_central 06:49 - Why Clearwater Was Created 08:26 - How does it compare to prevalent JavaScript frameworks? Clearwater — Ruby on the front end outperforms React.js Virtual DOM Implementations Roadmap to 1.0 11:23 - What problem is Clearwater aiming to solve? 14:30 - Debugging 16:39 - Use Cases 20:33 - The Future of Clearwater 21:59 - Maintaining Clearwater 24:39 - What is success? 25:23 - Using Clearwater with a System Like Volt Picks Contributor Covenant (Coraline) Kaleidoscope (Coraline) LEGO Ideas - Lovelace & Babbage (Coraline) Freelance Remote Conf (Chuck) Ruby Remote Conf (Chuck) RushMyPassport (Chuck) Primula Cold Brew Glass Carafe Iced Coffee Maker (Jamie) JRuby (Jamie)
Hundreds of books are available to help you write Ruby source code and there are multiple large disciplines about how to structure the concepts within your code. But when you execute your code it ceases to be source and begins life as a unix process alongside other processes on a piece of hardware somewhere in the actual world. I'll walk us through how to reason about your process, how to know what it's doing and what resources it's using and how to determine whether it's healthy. We'll learn about what you can add to your source to make debugging easier, how to debug your code as if it were merely a C program, and what kinds of unique behaviors MRI, Rubinius, and JRuby have that are distinct from processes written in other languages.
Hundreds of books are available to help you write Ruby source code and there are multiple large disciplines about how to structure the concepts within your code. But when you execute your code it ceases to be source and begins life as a unix process alongside other processes on a piece of hardware somewhere in the actual world. I'll walk us through how to reason about your process, how to know what it's doing and what resources it's using and how to determine whether it's healthy. We'll learn about what you can add to your source to make debugging easier, how to debug your code as if it were merely a C program, and what kinds of unique behaviors MRI, Rubinius, and JRuby have that are distinct from processes written in other languages.
Hundreds of books are available to help you write Ruby source code and there are multiple large disciplines about how to structure the concepts within your code. But when you execute your code it ceases to be source and begins life as a unix process alongside other processes on a piece of hardware somewhere in the actual world. I'll walk us through how to reason about your process, how to know what it's doing and what resources it's using and how to determine whether it's healthy. We'll learn about what you can add to your source to make debugging easier, how to debug your code as if it were merely a C program, and what kinds of unique behaviors MRI, Rubinius, and JRuby have that are distinct from processes written in other languages.
Hundreds of books are available to help you write Ruby source code and there are multiple large disciplines about how to structure the concepts within your code. But when you execute your code it ceases to be source and begins life as a unix process alongside other processes on a piece of hardware somewhere in the actual world. I'll walk us through how to reason about your process, how to know what it's doing and what resources it's using and how to determine whether it's healthy. We'll learn about what you can add to your source to make debugging easier, how to debug your code as if it were merely a C program, and what kinds of unique behaviors MRI, Rubinius, and JRuby have that are distinct from processes written in other languages.
Hundreds of books are available to help you write Ruby source code and there are multiple large disciplines about how to structure the concepts within your code. But when you execute your code it ceases to be source and begins life as a unix process alongside other processes on a piece of hardware somewhere in the actual world. I'll walk us through how to reason about your process, how to know what it's doing and what resources it's using and how to determine whether it's healthy. We'll learn about what you can add to your source to make debugging easier, how to debug your code as if it were merely a C program, and what kinds of unique behaviors MRI, Rubinius, and JRuby have that are distinct from processes written in other languages.
02:18 - Ben Browning Introduction Twitter GitHub Blog Red Hat JRuby 02:46 - TorqueBox @torquebox 04:05 - Use Cases and Benchmarks TechEmpower's latest round of benchmark results, filtered to just the Ruby servers running Rack/Rails/Sinatra/etc apps and their JSON serialization test 06:32 - The Genesis of TorqueBox Bob McWhirter 07:49 - JBoss WildFly 09:15 - The Name “TorqueBox” 10:12 - Adoption 12:05 - Documentation DocBook YARD 13:18 - When should/could you use TorqueBox? 17:25 - Monolith vs Microservice WildFly Swarm 21:36 - JAR Files and WAR Files 25:31 - Server Setup & Deployment Process 27:16 - Packaging Static Assets in JAR and WAR Files 28:27 - Contribution and Community Involvement 32:55 - Startup Cost 35:53 - Getting Started with TorqueBox 37:33 - Immutant 40:17 - The Rack Spec and TorqueBox tubesock SockJS 42:11 - Useful Features 44:26 - Building Useful Features 45:53 - Growth Picks [Khan Academy] Pixar in a Box: Introduction to Animation Curves (Saron) Tony Stark in Salt and Pepper (Saron) ElixirConf (Jessica) Nick Shrock: GraphQL Introduction (Jessica) Troll - Shane Koyczan (Coraline) funtools (Coraline) Ruby Remote Conf Talks (Chuck) Angular Remote Conf (Chuck) Bob McWhirter: qcon-keynote (Ben) Coders For Sanders (Ben) Extras JavaScript Jabber Episode #152: GraphQL and Relay with Nick Schrock and Joe Savona
02:18 - Ben Browning Introduction Twitter GitHub Blog Red Hat JRuby 02:46 - TorqueBox @torquebox 04:05 - Use Cases and Benchmarks TechEmpower's latest round of benchmark results, filtered to just the Ruby servers running Rack/Rails/Sinatra/etc apps and their JSON serialization test 06:32 - The Genesis of TorqueBox Bob McWhirter 07:49 - JBoss WildFly 09:15 - The Name “TorqueBox” 10:12 - Adoption 12:05 - Documentation DocBook YARD 13:18 - When should/could you use TorqueBox? 17:25 - Monolith vs Microservice WildFly Swarm 21:36 - JAR Files and WAR Files 25:31 - Server Setup & Deployment Process 27:16 - Packaging Static Assets in JAR and WAR Files 28:27 - Contribution and Community Involvement 32:55 - Startup Cost 35:53 - Getting Started with TorqueBox 37:33 - Immutant 40:17 - The Rack Spec and TorqueBox tubesock SockJS 42:11 - Useful Features 44:26 - Building Useful Features 45:53 - Growth Picks [Khan Academy] Pixar in a Box: Introduction to Animation Curves (Saron) Tony Stark in Salt and Pepper (Saron) ElixirConf (Jessica) Nick Shrock: GraphQL Introduction (Jessica) Troll - Shane Koyczan (Coraline) funtools (Coraline) Ruby Remote Conf Talks (Chuck) Angular Remote Conf (Chuck) Bob McWhirter: qcon-keynote (Ben) Coders For Sanders (Ben) Extras JavaScript Jabber Episode #152: GraphQL and Relay with Nick Schrock and Joe Savona
02:18 - Ben Browning Introduction Twitter GitHub Blog Red Hat JRuby 02:46 - TorqueBox @torquebox 04:05 - Use Cases and Benchmarks TechEmpower's latest round of benchmark results, filtered to just the Ruby servers running Rack/Rails/Sinatra/etc apps and their JSON serialization test 06:32 - The Genesis of TorqueBox Bob McWhirter 07:49 - JBoss WildFly 09:15 - The Name “TorqueBox” 10:12 - Adoption 12:05 - Documentation DocBook YARD 13:18 - When should/could you use TorqueBox? 17:25 - Monolith vs Microservice WildFly Swarm 21:36 - JAR Files and WAR Files 25:31 - Server Setup & Deployment Process 27:16 - Packaging Static Assets in JAR and WAR Files 28:27 - Contribution and Community Involvement 32:55 - Startup Cost 35:53 - Getting Started with TorqueBox 37:33 - Immutant 40:17 - The Rack Spec and TorqueBox tubesock SockJS 42:11 - Useful Features 44:26 - Building Useful Features 45:53 - Growth Picks [Khan Academy] Pixar in a Box: Introduction to Animation Curves (Saron) Tony Stark in Salt and Pepper (Saron) ElixirConf (Jessica) Nick Shrock: GraphQL Introduction (Jessica) Troll - Shane Koyczan (Coraline) funtools (Coraline) Ruby Remote Conf Talks (Chuck) Angular Remote Conf (Chuck) Bob McWhirter: qcon-keynote (Ben) Coders For Sanders (Ben) Extras JavaScript Jabber Episode #152: GraphQL and Relay with Nick Schrock and Joe Savona
Check out Angular Remote Conf and RailsClips! 03:15 - Mike Perham Introduction Twitter GitHub Blog Contributed Systems sidekiq dalli 03:43 - Sidekiq Overview resque JRuby 05:18 - Job Runners vs Queuing Systems, Background Jobs RabbitMQ sneakers 08:47 - Performance celluloid 09:49 - celluloid vs Ruby Threads 11:47 - The GIL (Global Interpreter Lock) 12:49 - Passing Data 14:01 - Performance Boost From Using JRuby? 15:48 - The Actor Model revactor Rubinius girl_friday 20:39 - Sidekiq Roadmap Statistics & History 21:44 - Sidekiq Enterprise 27:58 - Sidekiq vs Resque Scheduled-Jobs 29:50 - Adding Features to Sidekiq 30:28 - “Unique Job” 31:17 - Idempotency Sidekiq Best Practices Page 33:12 - Mixing In Other Data Stores Redis Kafka Apollo 38:42 - Encoding 40:04 - Format 40:36 - The Active Job Adapter 41:23 - Making Open Source Viable and Sustainable 44:04 - Launching An Open Source Project Kickstarter BSD & LGPL Licences Picks Mike Hoye: Citation Needed (David) Code Master (Coraline) Robot Turtles (Coraline) Zalando STUPS (Jessica) Elevator Saga (Chuck) Developer On Fire: Episode 017 - Charles Max Wood - Get Involved and Try New Things (Chuck) Model View Culture (Mike) Plasso (Mike) James Mickens: Not Even Close: The State of Computer Security (with slides) from NDC Conferences (Mike)
Check out Angular Remote Conf and RailsClips! 03:15 - Mike Perham Introduction Twitter GitHub Blog Contributed Systems sidekiq dalli 03:43 - Sidekiq Overview resque JRuby 05:18 - Job Runners vs Queuing Systems, Background Jobs RabbitMQ sneakers 08:47 - Performance celluloid 09:49 - celluloid vs Ruby Threads 11:47 - The GIL (Global Interpreter Lock) 12:49 - Passing Data 14:01 - Performance Boost From Using JRuby? 15:48 - The Actor Model revactor Rubinius girl_friday 20:39 - Sidekiq Roadmap Statistics & History 21:44 - Sidekiq Enterprise 27:58 - Sidekiq vs Resque Scheduled-Jobs 29:50 - Adding Features to Sidekiq 30:28 - “Unique Job” 31:17 - Idempotency Sidekiq Best Practices Page 33:12 - Mixing In Other Data Stores Redis Kafka Apollo 38:42 - Encoding 40:04 - Format 40:36 - The Active Job Adapter 41:23 - Making Open Source Viable and Sustainable 44:04 - Launching An Open Source Project Kickstarter BSD & LGPL Licences Picks Mike Hoye: Citation Needed (David) Code Master (Coraline) Robot Turtles (Coraline) Zalando STUPS (Jessica) Elevator Saga (Chuck) Developer On Fire: Episode 017 - Charles Max Wood - Get Involved and Try New Things (Chuck) Model View Culture (Mike) Plasso (Mike) James Mickens: Not Even Close: The State of Computer Security (with slides) from NDC Conferences (Mike)
Check out Angular Remote Conf and RailsClips! 03:15 - Mike Perham Introduction Twitter GitHub Blog Contributed Systems sidekiq dalli 03:43 - Sidekiq Overview resque JRuby 05:18 - Job Runners vs Queuing Systems, Background Jobs RabbitMQ sneakers 08:47 - Performance celluloid 09:49 - celluloid vs Ruby Threads 11:47 - The GIL (Global Interpreter Lock) 12:49 - Passing Data 14:01 - Performance Boost From Using JRuby? 15:48 - The Actor Model revactor Rubinius girl_friday 20:39 - Sidekiq Roadmap Statistics & History 21:44 - Sidekiq Enterprise 27:58 - Sidekiq vs Resque Scheduled-Jobs 29:50 - Adding Features to Sidekiq 30:28 - “Unique Job” 31:17 - Idempotency Sidekiq Best Practices Page 33:12 - Mixing In Other Data Stores Redis Kafka Apollo 38:42 - Encoding 40:04 - Format 40:36 - The Active Job Adapter 41:23 - Making Open Source Viable and Sustainable 44:04 - Launching An Open Source Project Kickstarter BSD & LGPL Licences Picks Mike Hoye: Citation Needed (David) Code Master (Coraline) Robot Turtles (Coraline) Zalando STUPS (Jessica) Elevator Saga (Chuck) Developer On Fire: Episode 017 - Charles Max Wood - Get Involved and Try New Things (Chuck) Model View Culture (Mike) Plasso (Mike) James Mickens: Not Even Close: The State of Computer Security (with slides) from NDC Conferences (Mike)
So we recorded this nearly two months ago, but some family stuff delayed the release of this and Episode 64 (coming very soon). On this episode we talk about large developers, cars, Ed learning Java against his will, and Chris re-learning how to teach people. Do these things! Check out our sponsors: Roave and WonderNetwork Buy stickers at devhell.info/shop Follow us on Twitter here Rate us on iTunes here Listen Download now (MP3, 70.1MB, 1:20:05 ) Links and Notes Mondelēz International Neo4j Clojure Scala Akka Jython JRuby Maven Elevation Dock Amazon Echo How common is the name ‘Alexa’ Boldt Castle
02:32 - Julian Cheal Introduction Twitter GitHub Blog 02:49 - Julian’s Background with Robots and Drones Arduino AR.Drone 03:32 - NodeCopter Events 04:31 - Traveling with Robots 05:35 - Julian’s Collection and Projects Julian Cheal: Dancing with Robots Raspberry Pi BeagleBone 07:46 - Giving Demos 09:12 - What Makes Robots? Sinon.JS MQTT Protocol 10:21 - Where is IoT (Internet of Things) Heading? Security 13:11 - Programming Languages NodeBots 14:15 - Tools and Protocols The MIDI Protocol Spark Core voodoospark 17:31 - Programming Challenges Around Hardware Hacking Artoo celluloid 18:49 - Barrier to Entry 20:41 - Getting Kids Started Kids Ruby Arduino Starter Kit 22:09 - Wearables EL Wire (Electroluminescent Wire) 23:18 - LEGO Robotics Mindstorms LabVIEW National Instruments 25:01 - Issues with Hardware Hacking 28:22 - Rubyists and Hardware Julian Cheal: Dancing with Robots JRuby Rubinius 29:45 - Interfacing with Humans iBeacon OpenCV 33:27 - [Kickstarter] CHIP - The World's First Nine Dollar Computer 34:01 - Connectivity Sphero Carin Meier: The Joy of Flying Robots with Clojure @ OSCON 2013 36:55 - More Interesting Projects Aaron Patterson: Using chicken scheme to read sausagebox values Oscilloscope Picks Jacob Kaplan-Moss Keynote @ Pycon 2015 (Jessica) Kobo Aura H20 (Avdi) Liz Abinante: Unicorns Are People, Too (Re-Thinking Soft and Hard Skills) @ Madison+ Ruby 2014 (Coraline) littleBits (Julian) Jewelbots (Julian) Ruby Rogues Episode #156: Hardware Hacking with Julia Grace (Julian) The End of Mr. Y by Scarlett Thomas (Julian)
02:32 - Julian Cheal Introduction Twitter GitHub Blog 02:49 - Julian’s Background with Robots and Drones Arduino AR.Drone 03:32 - NodeCopter Events 04:31 - Traveling with Robots 05:35 - Julian’s Collection and Projects Julian Cheal: Dancing with Robots Raspberry Pi BeagleBone 07:46 - Giving Demos 09:12 - What Makes Robots? Sinon.JS MQTT Protocol 10:21 - Where is IoT (Internet of Things) Heading? Security 13:11 - Programming Languages NodeBots 14:15 - Tools and Protocols The MIDI Protocol Spark Core voodoospark 17:31 - Programming Challenges Around Hardware Hacking Artoo celluloid 18:49 - Barrier to Entry 20:41 - Getting Kids Started Kids Ruby Arduino Starter Kit 22:09 - Wearables EL Wire (Electroluminescent Wire) 23:18 - LEGO Robotics Mindstorms LabVIEW National Instruments 25:01 - Issues with Hardware Hacking 28:22 - Rubyists and Hardware Julian Cheal: Dancing with Robots JRuby Rubinius 29:45 - Interfacing with Humans iBeacon OpenCV 33:27 - [Kickstarter] CHIP - The World's First Nine Dollar Computer 34:01 - Connectivity Sphero Carin Meier: The Joy of Flying Robots with Clojure @ OSCON 2013 36:55 - More Interesting Projects Aaron Patterson: Using chicken scheme to read sausagebox values Oscilloscope Picks Jacob Kaplan-Moss Keynote @ Pycon 2015 (Jessica) Kobo Aura H20 (Avdi) Liz Abinante: Unicorns Are People, Too (Re-Thinking Soft and Hard Skills) @ Madison+ Ruby 2014 (Coraline) littleBits (Julian) Jewelbots (Julian) Ruby Rogues Episode #156: Hardware Hacking with Julia Grace (Julian) The End of Mr. Y by Scarlett Thomas (Julian)
02:32 - Julian Cheal Introduction Twitter GitHub Blog 02:49 - Julian’s Background with Robots and Drones Arduino AR.Drone 03:32 - NodeCopter Events 04:31 - Traveling with Robots 05:35 - Julian’s Collection and Projects Julian Cheal: Dancing with Robots Raspberry Pi BeagleBone 07:46 - Giving Demos 09:12 - What Makes Robots? Sinon.JS MQTT Protocol 10:21 - Where is IoT (Internet of Things) Heading? Security 13:11 - Programming Languages NodeBots 14:15 - Tools and Protocols The MIDI Protocol Spark Core voodoospark 17:31 - Programming Challenges Around Hardware Hacking Artoo celluloid 18:49 - Barrier to Entry 20:41 - Getting Kids Started Kids Ruby Arduino Starter Kit 22:09 - Wearables EL Wire (Electroluminescent Wire) 23:18 - LEGO Robotics Mindstorms LabVIEW National Instruments 25:01 - Issues with Hardware Hacking 28:22 - Rubyists and Hardware Julian Cheal: Dancing with Robots JRuby Rubinius 29:45 - Interfacing with Humans iBeacon OpenCV 33:27 - [Kickstarter] CHIP - The World's First Nine Dollar Computer 34:01 - Connectivity Sphero Carin Meier: The Joy of Flying Robots with Clojure @ OSCON 2013 36:55 - More Interesting Projects Aaron Patterson: Using chicken scheme to read sausagebox values Oscilloscope Picks Jacob Kaplan-Moss Keynote @ Pycon 2015 (Jessica) Kobo Aura H20 (Avdi) Liz Abinante: Unicorns Are People, Too (Re-Thinking Soft and Hard Skills) @ Madison+ Ruby 2014 (Coraline) littleBits (Julian) Jewelbots (Julian) Ruby Rogues Episode #156: Hardware Hacking with Julia Grace (Julian) The End of Mr. Y by Scarlett Thomas (Julian)
Derek and Sean discuss what the Attributes API enables, the addition of Relation#or and paid open source. Sean's attributes API is "finished" Attributes API documentation PostGIS ActiveRecord Adapter composed_of Yehuda's RailsConf Keynote on the power of shared abstractions. Ernie Miller's RailsConf talk on the consequences of Rails' abstractions. load_schema makes sense now. DelegateClass Steve Klabnik tweets about companies not giving back significantly to Ruby open source Sean speeds up &block on MRI and jRuby
The Rogues talk to ThoughtWorks' Sudhindra R. Rao about JRuby.
The Rogues talk to ThoughtWorks' Sudhindra R. Rao about JRuby.
The Rogues talk to ThoughtWorks' Sudhindra R. Rao about JRuby.
Larry Wall joins me to talk about Perl 6. Show Notes FOSDEM 2015 - Get ready to party! Perl 6 Parrot VM Pugs - pugscode sorear/niecza Not Quite Perl MoarVM - A VM for NQP and Rakudo Perl 6 rakudo.org | Rakudo Perl 6 Curtis Poe: Perl 6 For Mere Mortals Perl 6 RFC Index Gradual Typing Inline::Perl5 FOSDEM 2015 - Over 9000: The Future of JRuby The Wall Nuthouse #perl6 IRC channel Larry Wall (@TimToady) | Twitter Tim O'Reilly Rosetta Code
tagomorisさんをゲストに迎えて、RubyConf, Flow, JRuby, Fluentd, Norikra, Lambda Architecture などについて話しました。 Show Notes Rubyconf2014 Matz at RubyConf 2014: Will Ruby 3.0 be Statically Typed? - The Omniref Blog Rebuild: 59: Ruby 3.0 Coming Soon (Matz) Flow | A static type checker for JavaScript Statically typed JavaScript via Microsoft TypeScript, Facebook Flow and Google AtScript Ko1 at RubyConf 2014: Massive Garbage Collection Speedup in Ruby 2.2 - The Omniref Blog JRuby 9K Expected in 2014 Ready for Production The Social Coding Contract // Speaker Deck Confreaks Invitation for v1.0.0 | RubyKaigi 2014 Template Engines in Ruby // Speaker Deck Rebuild: 3: MessagePack (frsyuki, kiyoto) Fluentd | Open Source Data Collector logstash - open source log management Elasticsearch.org Kibana | Overview | Elasticsearch Welcome to Apache Flume - Apache Flume fluent-plugin-amazon_sns | RubyGems.org Turn on Elasticsearch logging by default for GCE platform FluentdがKubernetesの標準ログ収集ツールとして採用 GoogleCloudPlatform/google-fluentd Elasticsearch.org Kibana 4 Beta 2: Get It Now | Blog | Elasticsearch Configuring a Google Compute Engine VM for Google Cloud Logging Norikra: Stream processing with SQL for everybody Norikra: SQL Stream Processing In Ruby Lambda Architecture Microsoft Azure Stream Analytics | Real-time Event Processing Dryad - Microsoft Research Apache Tez - Welcome to Apache Tez Web Operations and Performance - O'Reilly Velocity Strata + Hadoop World Apple Podcasts app now with Show Notes - Tatsuhiko Miyagawa's blog
Ryo Nakamuraさん、mizchiさんと、Square, Node.js, CoffeeScript, Amazon Echo などについて話しました。 Show Notes JRuby at Square OkHttp Kochiku: CI for long test suites #8 AltJS | mozaic.fm CoffeeScript Browserify Ring : Shortcut Everything. iOS 8: Hey Siri! Amazon Echo Amazon Dash
Расшифровки Интервью с Аароном Ярослав Так, ладно, поехали. Аарон Паттерсон с нами, привет Аарон! Аарон Привет! Ярослав Так, ладно, с чего бы начать. Ты первый раз в Москве? Как тебе? Аарон Да, я первый раз в Москве, и, кстати, первый раз в России. Все потрясающе, здорово. Красивый город, вкусная еда, да и пожаловаться не на что. Ярослав Хорошо — это прямо как в Сиэтле? Аарон Ну, еда — еда совсем другая, город намного больше. Кстати, по погоде сейчас очень похоже. Я слышал, тут очень холодно бывает, так что вот. Ярослав Ага. Аарон К счастью, в Сиэтле так холодно не бывает. Не думаю, что здешнюю зиму я бы пережил. Ярослав Как у тебя впечатления о нашей руби тусовке? Это локальная группа (LUG — прим. пер.), или что-то большее? Аарон Не, намного больше. Намного больше, чем обычная локальная группа. Больше, чем наша группа в Сиэтле, это уж точно. Но да, здорово — тут столько компаний разных. Кажется, в Москве сообщество рубистов процветает. Ярослав Ага, ладно. Для начала — можешь рассказать о своей новой работе? Аарон Да-да-да. Я перешел на работу в RedHat.. недели две назад, кажется. Нет, три. Я работаю в команде, которая.. В общем, мы делаем продукт, систему управления виртуальными машинами. Да, в общем, и все — если у вас есть ферма серверов, можно поставить наше приложение и рулить всем из одной точки. Ярослав Оно на ванильных Rails, или как? Аарон Это Rails приложение. Прямо сейчас у нас есть ветка с нашими собственными патчами, и моя работа, часть моей работы — взять все наши патчи, слить их с апстримом Rails, и перевести приложение на основную версию Rails. Вот когда я с этим закончу, будет ванильный Rails. То есть, мы возьмем все изменения RedHat и запушим их в апстрим. Ярослав А какая часть твоей работы — именно опенсорс? Я могу ошибаться, но, насколько я знаю, в AT&T Interactive ты все рабочее время занимался только опенсорсом в Rails. В этот раз — это частично работа над продуктом, частично опенсорс? Аарон Вообще, продукт — все равно опенсорс, так что формально я в любом случае занимаюсь опенсорсом. Но прямо сейчас.. Не знаю, в основном работаю над Rails, в оставшееся время — над продуктом, может, 30-40% времени. Моя цель — взять продукт, перевести его на Edge Rails (последнюю версию — прим. пер.), и использовать его как контрольный пример для самих Rails. Ярослав А значит ли это.. Ну, помимо того, что продукт будет работать на последних рельсах, будут ли какие-то новые фичи в самих Rails? Так же, как Дэвид пробует кучу вещей в Basecamp, и потом вливает их в апстрим? Аарон Да, конечно. У нас есть фичи — в нашей ветке, есть разные фичи, которых нет в Rails, так что вот их я и буду вливать в апстрим. Будут новые фичи, да. Ярослав Вопрос, который меня очень интересует — работаешь ли ты плотно с ребятами из JRuby? Потому что многие в России, ну, многие из нас пришли из Java, и многим нравится JVM, потому что это явно один из самых сложных когда-либо созданных проектов.. Аарон Точно, точно. Ярослав Поэтому многие думают, что главный способ сделать Ruby быстрее и Rails быстрее — сделать так, чтобы Rails лучше работал с JRuby, и речь не о том, чтобы мьютекс просто запихнуть поглубже. Аарон Я работаю с ними немного и не напрямую. Проще говоря, я разговариваю с командой TorqueBox — мы смотрим, как сделать, чтобы Rails лучше работал на TorqueBox. И там точно будут улучшения, но это не то, чтобы.. В смысле, моя работа в RedHat — сотрудничать со всеми командами, которые используют у нас Ruby, поэтому я работаю с командой JRuby, но не только с ними. Ярослав Ага. Еще вопрос: мы начали с вопроса про Ruby комьюнити и все такое, хочу немного спросить о Seattle Ruby Brigade (Seattle.rb — прим. пер.). Вы, ребята, кажется, самая известная и хорошо организованная руби бригада, да и одна из первых, верно? Аарон Да. Ярослав Так вот как у вас.. Ну, в чем секретный рецепт, как у вас получилось все это организовать, локальную руби группу? Я спрашиваю, потому что у нас тут в Москве до сих пор есть только коммерческая конференция — уже 5 лет — с классными спикерами, но просто конференция — люди не собираются вместе, чтобы над чем-то поработать. Аарон Думаю.. Ну, честно, это все Райан Дэвис. В этом только его заслуга. Вот, что он говорит — у него был доклад на эту тему — секретный рецепт в том, чтобы собираться каждую неделю. Приходить всегда, назначить определенное время, и приходить; приходить, даже если никто еще не собирается, посвещать этому время. И тогда будет приходить все больше людей — так наша группа и выросла, она была очень маленькой, но мы постоянно встречались, каждую неделю; кто-то приходит, кто-то уходит, но мы начали собирать все больше и больше людей. Ярослав Ага. У меня есть немного спорный вопрос, он больше к докладу относится, но его пока еще не было, так что спрошу прямо сейчас. И может потом, для аудитории, ладно? Извини что спрашиваю, но Джош Пик (Josh Peek) однажды затвитил, что решение строить Rails на базе Rack было худшим его решением. Ну, он правда так сказал. Аарон (смеется) Ярослав Думая о названии твоего доклада, не мог перестать вспоминать тот твит. Получается, что чтобы перейти к Rack 2.0, поддерживать стриминг, надо переделать все API, сверху донизу. Так что ты думаешь о решении, которое было принято, когда Rails мигрировал на Rack? Это было умное решение, или может быть, или?.. Аарон Ну, я думаю.. Это было умное решение. Думаю, что у Rack не очень хорошее API, но решение было очень хорошим, например, для того, чтобы поддерживать разные веб-серверы, да? Из-за Rack можно использовать, знаешь, Unicorn, Puma, Thin, да что угодно. Любой веб-сервер, и это очень мощная фича. Так что это самая важная вещь, которую позволил сделать Rack. Так что хорошо, что Rails перешел на Rack, но теперь надо развивать API дальше. Стали ясны недостатки в API, так что надо двигать его дальше. Это была хорошая идея, но надо делать все постепенно. Ярослав Думаешь ли ты, что так называемый успех Node.js (не будем отвлекаться на порку Node.js) — это было.. Ну, проще говоря, одной из причиной этого стало отсутствие реального стриминга в Rails? JavaScript не то чтобы хороший язык, и не будем больше об этом, но.. Аарон Ну, весь бум, большой бум с Node.js — это возможность делать стриминг и все такое, и их API.. Вообще, в своем докладе.. Ты увидишь API, который я предлагаю для Rack 2.0, и там будет видно, что я вообще-то краду многое из Node.js. Я серьезно думаю, что у них хороший API. Он классный для стриминга, чтобы на нем писать простые, несложные веб-сервера, и это то, что нам стоит у них позаимствовать. Ярослав Ты сказал, что главная фича Rack, использования Rack — это то, что можно использовать разные веб-сервера. Я думаю, что одна из самых больших фич — это то, что сейчас у нас есть куча разных веб-фреймворков, большинство из них — просто микрофреймворки, но они все работают на Rack, и им не нужно переизобретать все заново, да и они могут работать на разных веб-серверах. Вот что я хочу спросить — появляется ли шанс у новых фреймворков, которые сейчас развиваются, например, как его.. От Люка Гуиди, как он называется? Кир ..?! Ярослав Так, щас (гуглит). Lotus, он называется Lotus. Видел? Аарон Неа. Ярослав Ладно, скину ссылку, это хорошая вещь. Там идея в том, что лучше бы вам, ребята, использовать паттерны, и использовать их на полную катушку, без рельсизмов. Аарон Ага. Ярослав Так вот, пока Rails переходит на новое API, есть ли шанс, что разовьются фреймворки, которые скажут — знаете, Rails вам больше не нужен. Потому что вам не нужен ActionView, раз уж куча приложений работает на JavaScript интерфейсах.. Аарон Угу. Ярослав .. куча вариантов с ORM, как Sequel, например, так вот, будет ли большая конкуренция? Аарон Ээ, думаю, будет большая конкуренция, но конкуренция и так есть, и будет еще больше. Но, это очень хорошо. Я имею в виду, это будет пушать Rails вперед еще больше. Штука с Rails — не нужно принимать решения вроде «какую бы ORM мне использовать?», или там, какой шаблонизатор — ты абстрагирован от таких проблем и можешь сосредоточиться на самом приложении. Не нужно об этом думать. Но, если будет больше рельсоподобных фреймворков, они будут двигаться вперед и будет конкуренция — это хорошо. Ярослав Еще одна штука про Rails — ну, тролинг, но все-таки — куча людей говорят, что Rails, то есть, Ruby — он только хорош для Rails, знаешь? Точно есть фреймворки для управления конфигурацией, большинство из них работает на Ruby — Chef на Ruby, Puppet на Ruby, да и скриптования на Ruby куча — насколько я слышал, в Amazon куча скриптования внутри на Ruby. Думаешь ли ты, что Ruby должно быть намного больше в каких-то областях? Больше скриптования, или эмбеддинга, чего-нибудь такого? Аарон Ммм. Мне сложно сказать, я веб-чувак. Мне нравится Ruby на вебе использовать, но, в смысле.. Мне Ruby для всего нравится использовать. Скриптование, просто скриптование. Разработка для встраиваемых систем — mruby для этого лучше, конечно, но знаешь.. Я везде использую Ruby, и думаю, что большему количеству людей тоже стоило бы так делать. Неправильно говорить, что Ruby — это только для Rails, совсем. Есть куча примеров, как ты и говорил, Chef и Puppet — все это показывает, что есть куча способов использовать Ruby, где бы ты не работал. Ярослав Точняк. Так.. Аарон (продолжает синячить портвейн) Хорошая штука! Ярослав Серьезно? Аарон Да, мне нравится. Порто А-ле-гро? Ярослав Порто Аллегре, да. Аарон Порто Аллегре Руби. Хорошая штука! Кир Когда я был в Португалии, взял с собой семь литров. Семь бутылок. Аарон (довольно зевает) Ярослав Долейте чуваку. Аарон Извините, что прерываем подкаст такими разговорами. Ярослав Да, это была хорошая идея. Ребята думали, что я шутил, когда спрашивал, брать одну бутылку или две. Аарон (смеется) Ярослав Ладно, еще вопрос. Есть такая штука с русскими митапами по Ruby — по крайней мере половину времени мы говорим о языках, отличных от Ruby. Иногда больше, чем половину времени. Обычно люди интересуются функциональщиной. Аарон Угу. Ярослав То есть, Erlang, Clojure, Scala; Elixir — это горячая тема. Аарон Rust! (смеется). Go, Rust, ну да. Ярослав Функция была представлена неделю назад и безнадежно устарела — вот тебе Rust. Аарон (смеется) Да, точняк. Ярослав Так тебе нравятся какие-то языки кроме Ruby, что ты используешь? Какие именно? Аарон Да-да. Что мне нравится в Ruby сообществе — так это то, что мы не замыкаемся на самом Ruby, всегда смотрим на другие языки и вообще изучаем программирование. Ярослав Ну, с Ruby началась революция «у нас есть задача, надо подобрать под нее язык». Аарон Да. Ну вот, я в последнее время учил Rust. Пытаюсь учить Elixir. Но вообще я много пишу на Scheme. Ярослав То есть, раз нравится Scheme, нравится и Clojure, наверное? Аарон Да, ну, Clojure клевый. Мне очень нравится Clojure. Главная причина, по которой я использую.. Я использую CHICKEN Scheme, главная причина — я в свободное время много пишу для встраиваемых систем, так что нужна хорошая поддержка C. И там хорошая поддержка C-библиотек и всякое такое. Но да, Clojure клевый. Ярослав Тебе нравятся языки на JVM, например, или просто все подряд? Аарон Все подряд, мне плевать, на чем оно работает. C, JVM, Erlang, мне все равно. Главное, чтобы язык нравился. Ярослав Еще вопрос. У меня есть, вроде как, любимый вопрос для опенсорс знаменитостей. Глупый немного, но думаю, с этой проблемой сталкивался любой, кто начал заниматься опенсорсом, или, может быть, даже закончил заниматься из-за этого. В общем, многие, кто занимается опенсорсом, особенно популярными проектами, сталкиваются с кучей негатива, да? Аарон Угу. Ярослав В общем, люди часто тебе говорят, что код у тебя отстой, и подход твой отстой, и надо делать все по другому, и вообще сходил бы ты подучился. Есть люди, которые к тебе относятся, как будто они твои заказчики.. Аарон Да-а-а. Ярослав И вот они тебе объясняют, что ты обязан что-то сделать, и они расчитывают, что ты управишься к понедельнику, знаешь? Так вот, как ты с таким негативом борешься? И ты вроде как — не знаю, как по-английски — расстрельный человек? (я имел в виду расстрельную должность — прим. пер.) — в общем, человек, на которого все пальцем покажут, если что-то пойдет не так. Вот, помнишь начало года, проблемы с безопасностью.. Аарон Ой, да. Ярослав В общем, сначала все обсуждают проблемы с безопасностью и говорят — эти чуваки отстой, у нас уязвимость. Аарон Да! Ярослав А потом ты фиксишь и пушаешь релиз, и все такие — теперь мне еще и все приложения обновлять! Аарон (смеется) Ярослав В общем, ты долгое время этим занимался, так что как ты с этим справляешься? Аарон Ну, тут такое дело. Надо понимать, что на каждого человека, который жалуется и говорит что код твой отстой, или что-то такое, найдется сто человек, которые, вообще-то, очень довольны твоей работой. Ярослав Да, но они молчат же. Аарон Да, ты просто от них ничего не слышишь. Но надо.. Лично я это просто держу в голове. Каждый раз кто-то говорит — ты отстой, и так далее — я просто не обращаю внимания, потому что знаю, что есть еще очень много людей, которым очень нравится то, чем я занимаюсь. И знаешь, вообще есть люди, которые на самом деле говорят — спасибо за то, что ты делаешь. Такое довольно часто случается. И я себя так чувствую.. Ну, один человек, который сказал спасибо, отменяет негатив по крайней мере от десяти других. В общем, не знаю, по-моему, у меня иммунитет выработался. Ярослав Знаешь, я вспоминаю твой твиттер, когда обсуждались проблемы с безопасностью, ты пытался выпустить релиз, и ты писал в том духе, что это твой последний релиз, был очень раздражен. Так ты что, просыпаешься утром и проблемы проходят? Аарон Да, да. Нельзя, чтобы такие вещи тебя задевали, просто нельзя. Я знаю, что это все очень влияет на нервы и знаю многих людей, которые мне говорили, что больше не выдержат и просто уходили. Но, не знаю, мне просто все равно (смеется). Вот к чему все сводится. Ярослав Так, еще одна спорная вещь, которую хочется обсудить. Было несколько людей из Rails Core тут в Москве за эти годы, с некоторыми я говорил, и все сходятся на том, что есть проблема с разработкой Rails: у тебя есть клевая идея, или фича, и ты даже делаешь патч для нее, и тут приходит Дэвид и говорит: «я этого не вижу в Rails». Аарон Ох, да. Ярослав Ну и многие люди, с кем я говорил — кто-то из Rails Core, кто-то, кто хотел бы попасть в Core — рассказывали, что не могут так работать. Так что, какой есть способ защищать свои идеи и пушать их в Core сейчас? Аарон Ну, я расскажу тебе секрет, но тебе придется дать слово, что никому не расскажешь. Ярослав Кроме слушателей. Аарон Кроме твоих слушателей. Слушатели, пожалуйста не рассказывайте никому. А секрет такой: коммитишь и не спрашиваешь. Ярослав … Аарон Коммичу и все. Ярослав Такой твой секрет? Аарон Да! Надо попасть в команду Rails Core, и делай все что хочешь. Добавляешь что-то, и если никто не заметит — то все зашибись (смеется). Да, ну а если честно, я иногда так делаю — добавляю какую-то определенную фичу, которая мне нужна, и если всем все равно — люди же видят, что ты коммитишь — и если всем все равно, она там остается. Но, на самом деле, вот что нужно сделать: нужно разработать.. Как бы это.. Вкус к тому, что может войти в Rails, а что нет. Я в команде Rails Core уже так долго, что я теперь вроде как могу предсказать, что DHH отклонит, а что ему понравится. И на сто процентов я это сделать не могу. Приходится его изучать, и пробовать как-то представить свою идею так, чтобы ему понравилось, и тогда все получится. Ярослав То есть, ты говоришь, что Дэвид все еще всем рулит? Аарон О да, однозначно, да. Ярослав Все еще Basecamp Rails? Аарон Однозначно. Basecamp Rails! (смеется) Ярослав У вас там еще есть секретный Campfire, где вы все обсуждаете? Аарон Ну, у нас есть комната в Campfire, она особенно и не секретная. Любой может попроситься, мы пригласим — это неважно. Ну, надо спросить — «эй, мне можно попасть в комнату?» — и мы пригласим (не делайте этого, если не уверены — прим. пер.). Но да, есть у нас комната в Campfire, где мы обсуждаем все, но Basecamp все еще… Имеет очень «сильное влияние»… (смеется) Я пытаюсь об этом сказать настолько мягко, насколько это возможно! Не думаю, что будет RedHat Rails. Ярослав Да, но много было разговоров о том, чтобы делать форки. Некоторые ребята из Rails Core думали о том, чтобы сделать форк. Ну, и я многого не знаю, но GitHub работает на собственном форке с устаревшей версией Rails, большой форк. Аарон Угу. Ну, это правда, но большинство людей.. Сложно получить какую-то поддержку (traction — прим. пер.) форка — нужно достаточно людей, нужно что-то, из-за чего люди его поддержат. Ярослав Вроде сотни гитхаберов. Аарон Да, вроде сотен гитхаберов. Точно. Нужно много людей на борту. Но вот форк GitHub — там вещи, специфичные именно для них, для GitHub. То, над чем я сейчас работаю в RedHat — нам, наверное, не нужно, то что сделал GitHub. Так что нам сложно найти общее. Ярослав Да, но все еще много чего нет. Например, у нас до сих пор нет нормальной.. По крайней мере, нормального API для партишенинга баз данных, потому что.. Аарон Да-а-а. Ярослав Потому что в Basecamp не хотели бы покупать больше одной БД. Аарон Да, все правда. Ярослав Поэтому приходится работать со страшными хаками, которые ломаются из релиза в релиз. Аарон Ну, хорошая новость в том, что в приложении, над которым я работаю в RedHat, есть партиционирование баз данных, так что, наверное, увидим его в будущих версиях (смеется). Ярослав Так, вопросы, наверное, кончились, давай последний. Много ребят приходят в Rails Core, много ребят уходят, да? Кто-то водит блестящие спорткары, у кого-то появляются новые хобби, кто-то основывает успешные компании, как Тоби (Tobias Lütke, CEO Shopify — прим. пер.), кто-то может обнаружить, что у него три ребенка, которых растить надо. Так вот, какие у тебя.. Глупый вопрос, но какие у тебя лично планы на Rails? Не устал ли ты сейчас, много ли осталось времени именно тебе в Rails? Я спрашиваю потому, что иногда кажется, что ты — такой последний герой, как тогда с проблемами с безопасностью. Аарон Не знаю. Причина, по которой я работаю над Rails.. Ну, я программист. И я работал на компании.. Я работал на много компаний, которые делают какой-то продукт.. Я не знал, скольким людям я помогаю, не понимал необходимости того, что я делал. Звучит хреново. Когда я работаю над Rails, я делаю продукт, который помогает точно таким же людям, как я; я веб-разработчик, и когда я делаю очередные улучшения, я помогаю моим друзьям — всем, кого я знаю, кто делает то же самое. Так что я продолжаю делать то, что делаю.. Хочу, чтобы у других разработчиков, таких же как и я, были инструменты лучше, чтобы мир, в котором они работают, был лучше. Хочу, чтобы моим продуктом с удовольствием пользовался я сам и мои друзья. Поэтому и продолжаю. Ярослав А у тебя не бывает таких мыслей по ночам, вроде, блин, я веб-разработчик, сколько уже, 5-10 лет, я не занимаюсь улучшением здоровья людей, не занимаюсь правительственными вещами.. Аарон Да.. (смеется) Ярослав Не занимаюсь супер-нагруженными штуками, и все что я делаю — HTML и CSS, так что отстойный из меня программист. Ну, многие молодые ребята так думают. Думают, к черту все это, пойду Clojure заниматься, или чем-нибудь таким. Аарон Нуу. Иногда я думаю о таких вещах, но, все-таки, я занимаюсь тем, что лучше всего умею, так что раз уж я чем-то хорошо умею заниматься, мне стоит стараться делать это лучше всего, да? Так я больше всего смогу повлиять на мир. Ну да, я думаю о таких вещах, но.. Раньше я от этого расстраивался, но теперь я понял, что раз уж я хорош в том, что делаю, значит так я могу больше всего улучшить мир, и больше это проблемой не кажется. Ярослав В общем, ты счастлив? Аарон Да, точно. Ярослав Спасибо, с нами был Аарон! Аарон Тебе спасибо. Интервью с Йонасом Кир Пишем! Так вот, это твой первый визит в Москву? Йонас Да, все так. Кир Как тебе в Москве, что думаешь о городе? Йонас Да все хорошо. Организаторы конференции очень хорошо о нас заботятся. Здорово провел время здесь в городе, видел много классных вещей. Хотел бы побыть подольше, но, к сожалению, уезжаю уже завтра, вот. Кир Три дня, да? Йонас Три дня. Кир Начнем больше про программирование. Планируешь новую большую версию Carrierwave? Йонас Я вообще не особенно участвую в проекте в последнее время. Я взял самоотвод как мейнтейнер.. Довольно давно, два-три года назад. Но, вообще, было очень интересно сегодня слышать презентацию, не помню имя спикера (Кирилл Горин из Coub — прим. пер.), он, в общем, написал похожую библиотеку на Carrierwave. Кир Да, его зовут Кирилл. Йонас Кирилл, да. Кир Изменил ли ты что-то в Carrierwave, если бы у тебя была возможность сделать какие-то вещи по-другому? Лет пять назад, или вроде того. Йонас Ну да, если сейчас вспоминать о том, что было, точно есть какие-то вещи.. Он был написан в другое время. Кир Согласен. Йонас Так что.. Библиотека изначально, что довольно смешно, была плагином для Merb, так что если посмотреть на первые коммиты, она вообще-то называлась merb-upload, и долгое время не называлась Carrierwave. И в то время Rails приложения по-другому разворачивали (деплоили), была другая архитектура и администрирование по-другому велось, так что.. В некотором смысле, думаю, сейчас надо было бы строить библиотеку для загрузки файлов по-другому, не так, как я сделал в Carrierwave раньше. Она все еще решает многие проблемы хорошо, но можно было бы решать и проблемы посложнее, из числа тех, которые она сейчас не решает — загрузку напрямую с клиента (видимо, речь идет о прямой загрузке на S3 минуя сервер — прим. пер.), фоновую обработку, и всякие такие вещи, которыми она сейчас не занимается. Кир У нас сейчас есть клиент с довольно большим Rails приложением.. Йонас Угу. Кир Там, например, несколько сотен тысяч загрузок каждый день (Кир оговорился, на самом деле десятки тысяч — прим. пер.), и мы по полной используем Carrierwave. И однажды я обнаружил, насколько там здоровенный стек. Там был carrierwave_backgrounder, и сверху — куча вещей, чтобы сделать кастомный URL для хранилища в S3, так что стек там был такой большой.. В общем, для следующего проекта я начал писать свою библиотеку — небольшую замену, только с тем, что мне нужно, и было очень интересно. А вообще, большое тебе спасибо за Carrierwave. Так вот, теперь к Capybara. Будет что-нибудь новенькое с Capybara? Йонас Хех. Надеюсь. Я, в общем, и в этом проекте не так много делаю теперь. Но, думаю, безопасность в многопоточной среде будет проблемой. То, о чем Аарон говорил на своем докладе, про то, как тесты должны идти в параллель — многое из этого применимо и к Capybara. А текущая реализация небезопасна для работы в несколько потоков, что, конечно, проблема. Так что это то, чему мне, или кому-то еще, придется заняться в будущем. Кир Расскажи, какие развивающиеся языки тебе интересны? Йонас Мне дико интересен Rust. Думаю, это потрясающий язык. И из-за него меняется мое представление о программировании, так что.. точно рекомендую всем на него посмотреть. Он слишком новый и слишком нестабильный, так что новую версию вашего большого приложения на нем писать не стоит, пока что. Но он очень интересен тем, что обещает быть заменой C и C++ — таким же быстрым по скорости, но намного лучше. И безопаснее. Кир Знаешь кого-нибудь, кто использует Rust в бою? Йонас Да! Ребята из Tilde — это где работает Йехуда Кац. Кир Это приложение для знакомств? Йонас Нет, это Tinder. Tilde делают продукт под названием Skylight.. Кир А, да, да. Йонас Сервис для мониторинга Rails. И у них часть клиента, клиентской штуки на Rust — то, что раздают людям. И, вроде бы, используют его и на стороне сервиса, но я не уверен на сто процентов. Думаю, это первое, и, может, единственное использование Rust в продуктиве. Кир И спасибо тебе большое за pundit! Йонас Ой, да. Кир Я пушаю ребят в нашей команде, чтобы мы больше использовали pundit у себя, и людям он очень нравится, и очень классно им пользоваться после cancan. Потому что можно писать эти миниатюрные классы с настройками доступа.. Мы несколько раз о нем рассказывали в нашем подкасте. Йонас Да, здорово, спасибо большое. Действительно, веселый проект. Оказывается, люди с большим энтузиазмом к нему относятся. Кажется, он становится де-факто стандартом для авторизации в Rails — круто для такой небольшой библиотеки. Там всего сотня строк кода. Но нам она точно помогла во многом. Оказалось, с ее помощью мы сильно улучшили код в нашем приложении, который относится к авторизации. Кир Так ты сейчас сфокусирован на pundit? Йонас Ну, он не то чтобы много энергии у меня отнимает, слишком маленький проект. У него неожиданно большое количество контрибьюторов, но это в основном небольшие поправки здесь и там. Так что это не такой проект, как Capybara или Carrierwave, который занимает много времени. Вот. Я сейчас в основном занимаюсь изучением других языков, и занимаюсь всякой всячиной для собственного удовольствия. Кир Спасибо за интервью! Йонас Без проблем. Мы также выражаем огромную благодарность Стасу Спиридонову за помощь с мастерингом этого выпуска.
This is Episode #1 featuring live interviews from RubyNation 2014, a regional Ruby Conference in Silver Springs, MD. It showcases the importance of building meaningful digital experiences, development culture & community, & the value sharing knowledge.
Lambdas have come to Java! Now that more developers have access to this powerful abstraction, many will wonder about the dynamics of how they work and how to best leverage them in their code. In this webinar, Ryan Knight discusses why lambdas are useful and how to best leverage them in Scala, Java 8, Clojure and JRuby.
Charlie Nutter joins the Ruby Rogues to talk about the intricacies, power, and uses for JRuby.
Charlie Nutter joins the Ruby Rogues to talk about the intricacies, power, and uses for JRuby.
Charlie Nutter joins the Ruby Rogues to talk about the intricacies, power, and uses for JRuby.
Новости Акция от NewRelic О сложности URL Encoding Паттерн visitor Эликсир для программистов Конфигурилка iptables Как сэкономить немного денег (и потратить много времени) Метод с пробелом Новая книга Эвди Гримма Rspec sutiations Отчет Леонида Шевцова о поездке на EuRuKo 2013 Еще один PaaS - nitrous.io Обзор потоков в Ruby Пару слов о Rack Revel — жалкие Go-подражатели пытаются сделать рельсы Обсуждение У нас в гостя Борис Сталь Блог Бориса Твиттер Бориса SOAP для Rails, WashOut JRuby Trinidad TorqueBox Puma Joosy Protector Интеграции Protector Прототип Protector, Heimdallr Apiary Наброски формата документации API Разное Скетчап – 3D редактор Обучающий курс Brainwashing по DevOps от «Экспресс 42» Railsclub 28 сентября
Ori Pekelman a connu les débuts de la micro-informatique, dans les années 80, jusqu’à l’explosion de l’Internet. Et il travaille dans « le web » depuis que ce mot signifie quelque chose ! Ori nous raconte la naissance d’AF83, ses années PHP, puis la bascule rapide et totale vers Ruby et Ruby On Rails. Curieux et [&hellip
Ben is joined by Bryan Helmkamp, the founder of CodeClimate. In Bryan's second appearance on the podcast, Ben and Bryan discuss the architecture behind CodeClimate, scaling the service, and growing the business. They also discuss speaking at conferences, proposal selection, two factor authentication and adding it to CodeClimate, marketing and content marketing, how to decide what to build and proving that it was worthwhile, strategies for testing at the beginning when you have few users, and Bryan reveals CodeClimate next big upcoming feature. Sidekiq JRuby Rubinius Just-in-time (JIT) compilation Librato metrics Rails Security Monitor by Code Climate Boston.rb, Rails Application Security in Practice_ railssecurity.com Follow @thoughtbot, @r00k, and @brynary on twitter.
Новости Engine Yard Local JRuby 1.7.1 DRY в RSpec Refinements могу быть отложены до 2.1, полная функциональность точно отложена, статья Чарльза Наттера об этом Статья на русском об ActiveSupport::Notifications Легкий пул процессов xpool StatBoard — статистика создания объектов Ruby 2.0.0 preview2 Вышел Draper 1.0.0.beta1 Библиотека krypt Тур по исходному коду MRI Обсуждение Новый сайт Наш новый сайт Мащенко Артем и твиттер Хилков Иван Юдин Максим Инструмент для статических сайтов middleman Railsclub'Ульяновск — 15 и 16 декабря в Ульяновске Алексей Палажченко Твиттер Алексея Qik Проект PyPy и еще о нем же Язык Go и еще о нем же История создания и философия языка Go Дизайн и философия языка Celluloid Модель акторов и статья в википедии о последовательных процессах (Алексей назвал их “синхронными”, хотя они последовательные) dl.google.com now served by Go Пакетный менеджер для Go Проблема с GC на 32-битных системах Changelog Go 1.1 Пять этажей в сутки Борец за качество подкаста Алексей назвал процедурные языки декларативными, хотя они императивные. facepalm. (Добавлено по просьбе Алексея)
Новости Rollout от Джеймса Голика Вышел JRuby 1.7.0 Много вещей, которые умеет делать Ruby, а вы не знали Ruby Scaffolding as a Service Clap - еще один парсер командной строки Используемые технологии среди победителей Rails Rumble Быстрый CityHash Вышла Ruby Under a Microscope Passenger поддерживает JRuby и Rubinius Если вы еще не знаете что такое символы в Ruby, это видео для вас! Быстрая замена Nokogiri: бенчмарк и сам проект Ox Обсуждение Ванин позор в 19 эпизоде по поводу скандального интервью с DHH Конференция Highload++ Коллега Никита Борзых в твиттере Chef-рецепт postgresql от Express42 Конференция PostgreSQL Conference Europe Репликация в PostgreSQL Postgres-XC Postgres R, официальный сат лежал на момент подготовки подкаста Londiste Slony Bucardo Инструменты для анализа запросов в PostgreSQL PgFouine pgBadger pgstatstatements Менеджер соединений для PostgreSQL - pgBouncer Bruce Momjian — там в разделе Presentations есть его презентации, о которых рассказывалось в подкасте Пражский рубист Эдуард
JRuby is a polished and stable Ruby implementation. Here I show the basics of setting it up and executing Java from within Ruby. I also see how it compares with MRI at running threads.
JRuby is a polished and stable Ruby implementation. Here I show the basics of setting it up and executing Java from within Ruby. I also see how it compares with MRI at running threads.
Unsupported Operation 77General NewsJRuby smokes normal RubyApache Camel seems to be getting strong enough so that Red Hat purchased Fuse SourceMule 3.3 releasedIntelliJ IDEA 12 “Leda” EAP openedNew compiler mode brings eclipse like continuous compilation, and other improvements.Eclipse 4.2 releasedEclipse Xtend 1.0 releasedCeylon Milestone 3 was released, with a new JS compiler - discussed on the latest JBoss Asylum podcast.Weka is a new data mining tool from the University of Waikato - It includes an extensive series of pre-implemented machine learning algorithms, including well known classification and clustering algorithms. If you’ve ever been curious how Bayes Theorem works, this is a great tool to get up and running.Google NewsIO obviously happened this week:New JellyBean, but not sure what new APIsCloud messaging grows upGoogle Now - event reminders with estimated travel times to destination, advance Siri beating voice search etc. etc.New Google TV APIsNew YouTube APIsWeb IntentsGoogle Compute EngineAdobe has killed Flash for Android 4.1Mark and I used Party Mode on a trip today, worked great! Remember to turn your calendar from “yes accept any and all invitations” to “no” if thats what its setting is and you want to be more careful.Oddly - the photo I took when in Party Mode never uploaded...Google did not gloat at IO about Oracle case as far as I sawGWT 2.5 RC/beta?GWT control seeded to external standards group/organisation/steering committee - Red Hat coming on board, Vaadin, and othersVaadin 7 Alpha 3 also releasednow includes full GWT for client side JS development, new navigation apis, js execution apis, JS based components, Groovy2.0 releaseda static type checker to let the compiler tell you about the correctness of your code,static compilation for the performance of the critical parts of your application,modularity, splitting the Groovy JAR into smaller feature-oriented JARs and letting you create your own extension modules,JDK 7 Project Coin syntax enhancements, so that Groovy is still as friendly as possible with its Java cousin,and JDK 7 Invoke Dynamic integration to benefit from the support of the JVM for dynamic languages.Grails 2.1.0-RC3Greame Rocher happy with Grails smoking Play.Did we say Gradle went 1.0?Apache NewsApache Tomcat 7.0.28Phonegap 1.9.0 released ( now Apache Cordova I believe ) OtherAmazon EC2 down and took out Instagram, Netflix, and lots of others, followed up by a leap second bug taking out java apps everywhere - YAY.
Enregistré le 15 juin 2012 Téléchargement de l’épisode LesCastCodeurs-Episode–60.mp3 Errata News A Haskell newbie is someone who hasn’t yet implemented a compiler. They’ve only written a monad tutorial. Breizhcamp Java JavaFX Multi-touch Griffon 1.0 Hammer.js L’equipe JRuby rejoint Red Hat Flattrer GitHub NoSQL Driver pour MongoDB Fongo: tester MongoDB en Java Le théorème CAP a 12 ans Google F1 Plateforme Migration à Play 2 Design de LLVM Google App Engine 1.6.6 Gaelyk 1.2 Outils Editeur BPMN 2 chez Eclipse Gradle 1.0 est sorti AngularJS 1.0 Matos MacBook Pro Retina Divers Mots de passe MySQL vulnerable via optimisation LinkedIn the fait piquer des mots de passes non salés Litigation en ligne Latence en quelques lignes Les outils de l’épisode et les mains dans le cambouis Commander VirtualBox en ligne de commande Vagrant Gitective JUG et Conferences JBoss World et JUDCon 26–29 juin http://www.redhat.com/summit/ Google IO Extension 27 juin https://plus.google.com/100575125902423385750/posts/5ESacFpF576 Nous contacter Contactez-nous via twitter http://twitter.com/lescastcodeurs sur le groupe Google http://groups.google.com/group/lescastcodeurs ou sur le site web http://lescastcodeurs.com/ Flattr-ez nous (dons) sur http://lescastcodeurs.com/
Новости Зарелизились версии 3.0.13, 3.1.5 и 3.2.5 Rails Online routes James Golick выпустил фреймворк Objectify. Русский скринкаст о Руби 100-ый коммит Алексея Вахова в rails. ActiveSupport::Configurable Разработчки JRuby ушли в RedHat, русский перевод Замена стандартному OptionParser Зарелизился фреймворк от рельсоводов для рельсоводов - Joosy пост на хабре JRuby performance Yet another debug for ruby Обсуждение Интервью с докладчиками DevConf Результаты конкурса
Новости Fork/Join для JRuby Evan Phoenix уходит из Engine Yard Скидка 1000 рублей на devConf Heimdallr CanCan 2.0, статья на Хабре про него Yell логгер 2.0 Poffer защищаем представления от “случайных” переменных контроллера Акторы в Rubinius Future of MacRuby Ruby 1.8.7 and REE End of Life Новый блог Расса Олсена Без комментариев. Специальный гость Леонид Никаноров Конкурс от Mail.ru для всех любителей МакБуков Леонид на Моем круге Обсуждение Fork/Join Плохая статься в Wikipedia про дэк IDE и текстовые редакторы Текстовый редактор Vim Текствоый редактор Sublime Text 2 NetBeans для Ruby, который уже не поддерживается IDE RubyMine от JetBrains Шрифт PT Mono от компании ПараТайп, которую безграммотные ведущие обозвали ПараГраф Шрифт Bitstream Vera Sans Mono Плагин vim-rails Не к ночи помянутый редактор Emacs Библиотека для создания PDF-файлов Prawn Плагин для Vim для дебага Ruby Gedit Redcar IDE Aptana Studio Попытка приделать Eclipse к Vim - Eclim Arcadia IDE
Новости Grape 24 приёма в Ruby Ruby 1.9.3-p125 MacRuby & MountainLion + what you can do to help the project 9 февраля зарелизился Spree 1.0.0 Полезные инструменты для Capistrano - capistrano-deploy “MicroGems: five minute RubyGems” 22 февраля вышел JRuby 1.6.7 23 февраля вышел SimpleForm 2.0 Обсуждение Версии Ruby tinyrb, который неграммотные авторы обзывали то “тайни руби”, то TinyRuby JRuby Rubinius MagLev MRI Ruby Celluloid Elixir - функциональный язык поверх Erlang VM Celluloid Nio2R — New IO for Ruby Reel — web-сервер на Celluloid DCell - распределенный Celluloid ZooKeeper — высоконадежный сервер для распределенной координации
JRuby is a 100% pure-Java implementation of Ruby with high performance, real threading, and a vast array of libraries. Chris McCann explores how JRuby can provide real value for Rails developers.
Does your language of choice allow you to express yourself more effectively? Dr. Nic Williams believes so, especially when the language is Ruby / JRuby. Listen in as Nic discusses Ruby — its efficiency, syntax, and happiness factor — that makes it such a useful language for web applications and the cloud.
第6回Matsue.rb Radio:Rubinius、JRuby、IronRuby、SalesforceがHerokuを買収、しまねスタイル、松江中学生Ruby教室、山陰ITPro勉強会代表 あみだくさんiTunesへの登録はこちら:http://itunes.apple.com/jp/podcast/id363449631このPodcastでは、○Rubyに関するニュースやブログ○松江を中心とした島根県に関するローカルニュース○島根県で活躍されている方との対談など扱ってい..
第6回Matsue.rb Radio:Rubinius、JRuby、IronRuby、SalesforceがHerokuを買収、しまねスタイル、松江中学生Ruby教室、山陰ITPro勉強会代表 あみだくさんiTunesへの登録はこちら:http://itunes.apple.com/jp/podcast/id363449631このPodcastでは、○Rubyに関するニュースやブログ○松江を中心とした島根県に関するローカルニュース○島根県で活躍されている方との対談など扱ってい..
第6回Matsue.rb Radio:Rubinius、JRuby、IronRuby、SalesforceがHerokuを買収、しまねスタイル、松江中学生Ruby教室、山陰ITPro勉強会代表 あみだくさんiTunesへの登録はこちら:http://itunes.apple.com/jp/podcast/id363449631このPodcastでは、○Rubyに関するニュースやブログ○松江を中心とした島根県に関するローカルニュース○島根県で活躍されている方との対談など扱ってい..
Chris Matthieu and Jason Goecke interview Charlie Nutter of JRuby fame about his upcoming talk at SunnyConf, Arizona's first Rails Conference! Get your sneak preview of some of the topics that Charlie will be discussing including JRuby on Google AppEngine and in the enterprise as well as the new JRuby framework for Android devices called Ruboto! Register to today for SunnyConf (9/25/2010) before all of the tickets are gone! It's only $100 for a whole day of talks and hack sessions and a free breakfast!
Mark Ranallo will give an introduction to using JRuby in conjunction with the Android Scripting Environment.
JBoss Asylum 9 Shownotes Recorded 27th January 2010 Music by Real Rice (http://www.jamendo.com/en/track/24321) Licence Art Libre 1.3 Direct download: mp3 and ogg #9: Guests: Bob McWirther, Red Hat (@bobmcwirther) Short news: Deadline extended for JBoss World to January 29th (http://bit.ly/70rGgy) JBoss DNA renamed to ModeShape and relaunched (http://bit.ly/bcFLil) IDEA 9.0.1 is out (http://bit.ly/chF14g) Sun/Oracle merge, finally and JavaOne stays: (http://bit.ly/bpUejR) Upcoming talks: Max speaking at EclipseCon, "Pimp your bugreport" and "How to write a framework plugin that does not suck!" (http://bit.ly/aLi1mP) Emmanuel at JSF World days (http://bit.ly/avfAYa) Michael and Bob at Cloud Computing Forum (http://bit.ly/dktkbB) Interview: Drools (http://bit.ly/cIKjX0) The Codehaus and Groovy history (http://bit.ly/c2NYjx) TorqueBox (http://bit.ly/aiR5Op)
Guyren Howe gives a way-too-brief demonstration of OpenCyc, an AI technology based on the world's most comprehensive general-purpose ontology. Along the way, he reveals how to talk to OpenCyc using JRuby.
De sidste par måneder har Kresten Krab Thorup arbejdet på et projekt der går ud på at lave "Erjang", en Java-udgave af Erlang, ligesom JRuby er det for Ruby, og Jython er det for Python. Nu er det jo efterhånden ikke nogen nyhed, at det er interessant at forstå, hvordan vi på en effektiv og forståelig måde kan udnytte parallelitet. Problemet bliver i disse år bare mere og mere presserende med udviklingen i hardware og i den grad hvormed vi laver store distribuerede systemer med SOA og netværksservices. Erlang har gode bud på disse problemstillinger, og det er ikke bare noget smart nyt teknolog: det har nemlig været i anvendelse i mere end 20 år - i produktion - til at lave netop pålidelige distribuerede systemer. Find Erjang her: http://wiki.github.com/krestenkrab/erjang
De sidste par måneder har Kresten Krab Thorup arbejdet på et projekt der går ud på at lave "Erjang", en Java-udgave af Erlang, ligesom JRuby er det for Ruby, og Jython er det for Python. Nu er det jo efterhånden ikke nogen nyhed, at det er interessant at forstå, hvordan vi på en effektiv og forståelig måde kan udnytte parallelitet. Problemet bliver i disse år bare mere og mere presserende med udviklingen i hardware og i den grad hvormed vi laver store distribuerede systemer med SOA og netværksservices. Erlang har gode bud på disse problemstillinger, og det er ikke bare noget smart nyt teknolog: det har nemlig været i anvendelse i mere end 20 år - i produktion - til at lave netop pålidelige distribuerede systemer. Find Erjang her: http://wiki.github.com/krestenkrab/erjang
Recorded on 12/3/2009, featuring Chris Lloyd, Gerard Gualberto, Chris Miles, Lou Franco, and Chas Emerick, we talk about building user interfaces (RIA's, even!), Twitter monitoring, Rails vs. JRuby on Rails, music copyrights, Miles' creepy Big Brother-esque run-ins with Charter and Universal, and the A-Team.
Depuis 10 ans les serveurs d'applications se sont imposés dans l'informatique de gestion. Mais aujourd'hui des offres innovantes bousculent les anciennes règles et standards. Les architectures cloud et grid rompent avec le découpage en 3 tiers. Des offres modulaires s'opposent aux outils dotés de multiples fonctionnalités. Des nouveaux frameworks java mais également Grails ou JRuby on Rails challengent les API JEE tout en s'appuyant sur l'existant. En nous basant sur la plateforme Java, nous balaieront les principales innovations qui dessinent le futur des serveurs d'application. Que peuvent-elles apporter ? Que vont-elles remettre en cause ou remplacer ?
This episode was originally published on October 1, 2008. Charles Nutter of JRuby, from erubycon.
This episode was originally published on October 1, 2008. Charles Nutter of JRuby, from erubycon.
This episode was originally published on September 20, 2006. Charles Nutter of JRuby talks about his recent hiring by Sun Microsystems. Also features a report from the crowd with Damien Tanner and Max Williams of New Bamboo.
We discuss the origins of JRuby, JRuby on Android/AppEngine and how to run your Ruby/Rails project on Java with JRuby. Charles is one of the lead developers of JRuby and now is hacking away at Engine Yard. The intro and outro music of this podcast is from an internet archive backup of Why the Lucky Stiffs performance at the very first RailsConf from June 2006. Follow Charles on Twitter and his blog. Follow Kyle on Twitter and Tumblr. Subscribe to this podcast in iTunes or RSS.
Ajaxians interview Zed Shaw covering his thoughts on the Rails community, the role of the Enterprise, the state of Ajax, JRuby and Rubinius, documentation, tests, tooling, the role of patents in software, and a whole lot of opinion.
If this isn't entertaining I don't know what is! David Koontz, President of Rising Tide Software (http://www.risingtidesoftware.com), gave a speech in front of 50 Java professionals at the Phoenix Java User Group (http://www.phxjug.org/) and convinced them all to switch to JRuby! I tell you, Sun should hire this guy. He knows his stuff (both java and ruby) - and he has charisma!
Brian Chapados shows how to install and work with the latest JRuby release.
This is my second podcast from this weekend's Desert Code Camp in Tempe, Arizona. David Koontz, founder of RisingTideSoftware.com, gave an outstanding presentation on JRuby and even demo'd his GUI framework for Ruby called MonkeyBars. Check it out!