Podcasts about Turbo Pascal

  • 55PODCASTS
  • 101EPISODES
  • 58mAVG DURATION
  • 1MONTHLY NEW EPISODE
  • Mar 9, 2026LATEST
Turbo Pascal

POPULARITY

20192020202120222023202420252026


Best podcasts about Turbo Pascal

Latest podcast episodes about Turbo Pascal

airhacks.fm podcast with adam bien

An airhacks.fm conversation with Daniel Terhorst-North (@tastapod.com) about: first computer experience with the ZX81 and its 1K memory, the 1K chess game on ZX81, the ZX Spectrum with 16K and later 48K memory, the Amstrad 128K, typing in game listings from computer magazines, Dan's brother John hacking ZX spectrum games using a hardware freeze device and memory peeking/poking, cracking game encryption and copy protection on 8-bit tape cassette games, the arms race between game publishers and hackers, cracking the Star Wars game security before its release, ZX Spectrum fan sites and retro gaming communities, classic games including 3D Monster Maze and Manic Miner and Jet Set Willy, sprite graphics innovation on the Z80 chip, first internship at Domark publishing Empire Strikes Back on ZX Spectrum and Commodore 64, second internship at IBM Hursley Park working on CICS in PL/1 and Rexx, the contrast between casual game studio culture and IBM corporate culture in the 1980s, IBM's role as a founding partner of J2EE Enterprise Java, JMS wrapping MQ Series, the reliability of MQ Series compared to later messaging technologies, finding and reporting a concurrency bug in MQ Series with JUnit tests and IBM's rapid response with an emergency patch, IBM alphaWorks portal and experimental technologies, IBM Aglets mobile Java agent framework compared to modern A2A agent protocols, Jini and JavaSpaces from Sun Microsystems with leasing and self-healing, JXTA peer-to-peer technology, IBM Jikes Compiler performance compared to javac, IBM's own JVM, JVM running on Palm Pilot around 1999, VisualAge for Java as a port of VisualAge for SmallTalk with its image-based architecture and no file system exposure, Java's coupling of class and package names to files and directories as a design weakness, the difficulty of refactoring without IDE support, Eclipse as the first IDE with proper refactoring, NetBeans IDE performance compared to Visual Studio Code, third internship writing X-ray machine control software in Turbo Pascal doing digital image processing, the pace of technological innovation slowing from kaikaku (abrupt change) to kaizen (continuous improvement), Douglas Adams quote about technology perception by age, DEC Alpha 64-bit Unix performance, commodity Linux hardware replacing exotic RISC machines, Apple M series chips rediscovering RISC Architecture and system-on-chip design, innovation fatigue and signal-to-noise ratio in modern tech, LLMs and the trillion-dollar bet on the wrong technology, electric cars as an example of ongoing innovation, Tailwind CSS shutting down due to AI-generated code replacing paid expertise, Stack Overflow in trouble due to AI summarization, open source innovation continuing with tools like Astral's uv replacing the python toolchain, cross-community collaboration between rust and Python and Ruby ecosystems, first graduate job at Crossfield (Fuji/DuPont joint venture) doing electronic pre-press and color transformation through 4D CMYK color cubes, writing a TIFF decoder from scratch in C, Raster Image Processor technology and its connection to Adobe, transition from C++ to Java feeling quirky, joining ThoughtWorks in 2002 for enterprise Java work Daniel Terhorst-North on twitter: @tastapod.com

Geek Forever's Podcast
Borland หายไปไหน? จากผู้ท้าชิงที่ Microsoft ยังกลัว สู่ตำนานที่ “สาบสูญ” | Geek Story EP573

Geek Forever's Podcast

Play Episode Listen Later Jan 12, 2026 14:26


ถ้าเราย้อนเวลากลับไปในช่วงทศวรรษที่ 1990 ชื่อของบริษัทหนึ่ง เป็นชื่อที่ทุกคนในวงการไอทีต้องรู้จัก ไม่ว่าคุณจะเป็นโปรแกรมเมอร์ระดับเซียน หรือแค่นักเรียนที่เพิ่งหัดจับคอมพิวเตอร์ ชื่อนั้นคือ Borland เป็นเวลากว่า 20 ปี ที่ผลิตภัณฑ์ของพวกเขาอย่าง Turbo Pascal เป็นเหมือนตำราเรียนเล่มแรกของนักเขียนโปรแกรมทั่วโลก และเป็นเวลากว่า 15 ปี ที่ Delphi เป็นเครื่องมือหากินที่ทรงพลังที่สุดของนักพัฒนาซอฟต์แวร์ บริษัทนี้ไม่ได้แค่ “ทำของดี” แต่พวกเขา “ปฏิวัติวงการ” ถึงสองครั้งสองครา แต่คำถามที่น่าสนใจกว่าความสำเร็จ คือ “ความล้มเหลว” ครับ ทำไมบริษัทที่สร้างปาฏิหาริย์ทางเทคโนโลยีได้ขนาดนี้ ถึงพ่ายแพ้ในสงครามธุรกิจจนแทบไม่เหลือชื่อ วันนี้ผมจะพาไปถอดบทเรียน มหากาพย์การเดินทางของ Borland ตั้งแต่จุดเริ่มต้นที่ยิ่งใหญ่ ไปจนถึงวันที่แสงสว่างมอดดับลง เรื่องนี้ไม่ใช่แค่เรื่องของซอฟต์แวร์ แต่มันคือเรื่องของ “คน” และ “การตัดสินใจ” ที่เดิมพันด้วยอนาคตของบริษัท เลือกฟังกันได้เลยนะครับ อย่าลืมกด Follow ติดตาม PodCast ช่อง Geek Forever's Podcast ของผมกันด้วยนะครับ #Borland #TurboPascal #Delphi #ประวัติศาสตร์ไอที #โปรแกรมเมอร์ #เขียนโปรแกรม #กรณีศึกษาธุรกิจ #บทเรียนธุรกิจ #สาระไอที #Microsoft #เทคโนโลยี #AndersHejlsberg #Startups #คอมพิวเตอร์ #เรื่องเล่าธุรกิจ #กลยุทธ์การตลาด #geekstory #geekforeverpodcast

airhacks.fm podcast with adam bien
How PowerMock Happened

airhacks.fm podcast with adam bien

Play Episode Listen Later Dec 20, 2025 66:54


An airhacks.fm conversation with Johan Haleby (@johanhaleby) about: first computer experience with Commodore C64 and typing Basic programs from instruction manuals, early gaming experiences and interest in understanding load commands, transition to Amiga 500 Plus for demo scene scripting and composition, moving to PC era with 486 SX25 and four megabytes of RAM, learning Turbo Pascal and creating 2D Super Mario-inspired games, experimenting with inline assembler in Pascal and reading "The Art of Assembly Programming", reverse engineering games using Win32 disassembler to bypass license checks, studying computer science at Blekinge and Lund University in Sweden, first job at JayWay consultancy firm working on IKEA project in 2005, early adoption of Spring framework and automated testing practices, comparison of old-style EJB with heavy XML configuration versus Spring's lightweight approach, the evolution from XML-based configuration to annotation-based Java EE 5 and 6, creating PowerMock with colleague Jan Kronqvist to mock static methods and final classes, using asm and JavaAssist for bytecode manipulation instead of AspectJ, implementing custom class loaders where each JUnit method executed in different class loader, deep clone module for cloning object graphs between class loaders, tight coupling challenges between PowerMock and Mockito/EasyMock/JUnit versions, transition from EasyMock's record-replay pattern to Mockito's when-then approach, modern preference for avoiding mocks and testing against real cloud environments, optimizing for fast CI/CD pipelines rather than local simulation, structuring code to separate infrastructure concerns from pure business logic, using Java Records as pure data carriers versus adding behavior to records, Clojure-inspired philosophy of decoupling state from behavior and identity, Rich Hickey's "Simple Made Easy" talk and definitions of simple versus easy, multi-methods in functional languages as alternative to polymorphism, domain modeling example with network devices and fiber channel connections, benefits of object-oriented polymorphism for transparent persistence and simple code, avoiding religious adherence to patterns in favor of pragmatic solutions, Maven's stability and opinionated approach versus Gradle's flexibility, reducing external dependencies and Maven plugins in favor of CI/CD automation, the NPM ecosystem's over-modularization compared to Java's more reasonable approach, decline of OSGi hype and return to simpler monolithic architectures, Johan's current work on Occurrent Event Sourcing library and cloud events Johan Haleby on twitter: @johanhaleby

art spring sweden pc basic ikea ram pascal java amiga maven ci cd xml lund university npm clojure blekinge gradle win32 junit turbo pascal java ee rich hickey ejb simple made easy osgi aspectj
airhacks.fm podcast with adam bien
From Turbo Pascal to Java Advent

airhacks.fm podcast with adam bien

Play Episode Listen Later Nov 16, 2025 56:26


An airhacks.fm conversation with Olimpiu Pop (@olimpiupop) about: Romanian developer's journey from 486 computers to Transylvania Java User Group, early programming with Turbo Pascal at age 9-10, playing games like Jazz Jackrabbit and Prince of Persia, influence of Star Trek and science fiction on career choice, mathematics olympiads participation, computer science high school education, learning C and FoxPro, Java vs .net ecosystem in Romania during 2000s, Microsoft's university infiltration strategy, first Java exposure with version 1.4, Siemens internship on telecommunications servers, neighborhood network building projects, working without home internet until 2005-2006, nearshoring company experience, EJB and Spring framework with XML configuration, master's studies at Johannes Kepler University Linz 2008-2011, working with fabasoft on observability systems, .NET development for two years with C#, attributes vs annotations comparison, Java ME micro edition development, implementing DTOs and service architectures, agile methodology adoption, iterative development practices, data gravity concept from Ruby on Rails, working for Uniqa with WebMethods, brueckner Group spin-off developing industrial software, DevOps implementation with Jenkins and Git, choosing between Mercurial and Git version control, Broadridge financial technology work, stock exchange monitoring systems, low-latency Java implementations, Mechanical Sympathy and Disruptor pattern, taking over Java User Group from Gabi Pop, managing Java Advent Calendar for 15 years, WordPress to Java migration plans using quarkus-roq, transition from coding to management roles, challenging microservices adoption, modular monolith advocacy, Java verbosity improvements and scripting capabilities, young developers returning to Java, typescript developers discovering Java patterns, Romanian tech scene evolution, Cluj coffee culture and steampunk bars Olimpiu Pop on twitter: @olimpiupop

Hacker Public Radio
HPR4459: How I got into tech

Hacker Public Radio

Play Episode Listen Later Sep 4, 2025


This show has been flagged as Clean by the host. Hello, I'm Wojciech (pronounciation available at https://en.wiktionary.org/wiki/Wojciech ), I'm a nerd from Poland, I work as a software engineer. I've found HPR about a year ago and wanted to record a show since. But life is busy. I'm trying it out, in a supermarket parking lot in my car. This is my second attempt, so we'll see how it works. How I got into tech? In a way I've kind of always been there. At least since I was a child. The story that I like to tell is when I was about 4 years old my cousing launched me Mortal Kombat on his Amiga computer and I got interested. That's my oldest tech related memory. As a kid I've mostly played video games. Mostly on clones of old 8-bit consoles like Atari 2600 or NES, later some unspecified models of Commodore and Schneider computers. I don't even remember what exact models they were. Got my first PC at about 10 years old, it was an Intel 486SX, 12 MB RAM, 850 MB HDD, running Windows 95. Still mostly playing games on the computer but, as it was running Windows, as you maybe know, with Windows come problems. Sometimes user-induced, but not always. Spoiler, it's been over 25 years and this trend continues. Around the same time my sister went to high school and got a Turbo Pascal textbook. This is what really got me interested in programming and that's when my interests and career in software development begun. Since that time I had a very good idea what I want to do in life. I just knew I wanted to work with computers, primarily doing software engineering. I went to a technical university, Wrocław University of Science and Technology. And there I got interested in other computer related things like networking and I also got into digital and analog electronics. Just because I really wanted to go that one level deeper, to learn about how computers work, and electronics in general. I also have other interests, but tech and non-tech related, like for example science fiction literature and I would like to record some shows about those in the future. We shall see. There is one specific story I want to tell, but I think I will save it for October. Why October? Because it is a workplace horror story about... Windows. Well, not really a horror story story, but it was really bizarre and can be described as such. In the meantime I don't want to promise anything. But maybe I will record a show about what I am currently doing at work, which is the topic of audit trail in software applications. But I am chaotic and may do something entirely different. We shall see. I think that's all I want to say today. I would really appreciate if you left some feedback. Was the audio OK, is my English enough, did I speak too fast? English is not my first language and I've noticed over the years that I really tend to speak too fast when using English. And that's it, thank you for listening. Hopefully we'll hear in the future from me. Provide feedback on this episode.

Code for Thought
[EN] ByteSized RSE: AI assisted coding - with Liam (Jianliang) Gao

Code for Thought

Play Episode Listen Later Mar 31, 2025 34:24


English Edition: In this last episode for the ByteSized RSE "miniseries" we talk about AI assisted coding - and the (long) history how engineers tried to come up with assisting tools to make our code better and more robust. My guest is Liam Gao from Imperial College, London, UK. Links:https://github.com/features/copilot  GitHub Co-Pilothttps://huggingface.co HuggingFace another AI toolhttps://spacelift.io/blog/ai-coding-assistant-tools a summary of current tools (non exhaustive)https://platform.openai.com/docs/guides/prompt-engineering OpenAI's take on prompt engineeringhttps://www.promptingguide.aihttps://web.archive.org/web/20121022091418/http://www.stanford.edu/~learnest/spelling.pdf some of the attempts to come up with spelling checkshttps://en.wikipedia.org/wiki/Code_completionhttps://www.gnu.org/software/emacs/ Good old Emacshttps://en.wikipedia.org/wiki/Vi_(text_editor) vi editor (not for the faint hearted)https://winworldpc.com/product/turbo-pascal/7x Borland's Turbo Pascal with IDEhttps://survey.stackoverflow.co/2024/ Stackoverflow survey from 2024 with ca 65000 respondents And here the YouTube clips mentionedhttps://www.youtube.com/watch?v=MvEXkd3O2ow Cypher musing why he didn't take the "blue pill"https://www.youtube.com/watch?v=L0mRMp2kbQY Star Trek TNG, S3E6 - Geordie LaForge talking to the computerGet in touchThank you for listening! Merci de votre écoute! Vielen Dank für´s Zuhören! Contact Details/ Coordonnées / Kontakt: Email mailto:peter@code4thought.org UK RSE Slack (ukrse.slack.com): @code4thought or @piddie US RSE Slack (usrse.slack.com): @Peter Schmidt Mastodon: https://fosstodon.org/@code4thought or @code4thought@fosstodon.org Bluesky: https://bsky.app/profile/code4thought.bsky.social LinkedIn: https://www.linkedin.com/in/pweschmidt/ (personal Profile)LinkedIn: https://www.linkedin.com/company/codeforthought/ (Code for Thought Profile) This podcast is licensed under the Creative Commons Licence: https://creativecommons.org/licenses/by-sa/4.0/

airhacks.fm podcast with adam bien
From Predator Plants to Concordance with Java

airhacks.fm podcast with adam bien

Play Episode Listen Later Mar 23, 2025 64:15


An airhacks.fm conversation with Volker Simonis (@volker_simonis) about: early computing experiences with Schneider CPC (Amstrad in UK) with Z80 CPU, CP/M operating system as an add-on that provided a real file system, programming in Basic and Turbo Pascal on early computers, discussion about gaming versus programming interests, using a 9-pin needle printer for school work, programming on pocket computers with BASIC in school, memories of Digital Research's CP/M and DR-DOS competing with MS-DOS, HiMEM memory management in early operating systems, programming in Logo language with turtle graphics and fractals, fascination with Lindenmayer systems (L-systems) for simulating biological growth patterns, interest in biology and carnivorous plants, transition to PCs with floppy disk drives, using SGI Iris workstations at university with IRIX operating system, early experiences with Linux installed from floppy disks, challenges of configuring X Window System, programming graphics on interlaced monitors, early work with HP using Tickle/Tk and python around 1993, first experiences with Java around version 0.8/0.9, attraction to Java's platform-independent networking and graphics capabilities, using Blackdown Java for Linux created by Johan Vos, freelance work creating Java applets for accessing databases of technical standards, PhD work creating software for analyzing parallel text corpora in multiple languages, developing internationalization and XML capabilities in Java Swing applications, career at Sun Microsystems porting MaxDB to Solaris, transition to SAP to work on JVM development, Adabas and MaxDB, reflections on ABAP programming language at SAP and its database-centric nature Volker Simonis on twitter: @volker_simonis

Draussen mit Claussen: ein RefLab-Podcast
Theaterkollektiv Turbo Pascal: Den Glauben spielen – eine Performance

Draussen mit Claussen: ein RefLab-Podcast

Play Episode Listen Later Mar 14, 2025 48:47


Im vergangenen Oktober habe ich in den Berliner Sophiensälen die Performance «Faith Fiction» des Kollektivs Turbopascal miterlebt. Das war ein einmaliges Erlebnis, das mich immer noch beschäftigt. Den Glauben mitten im vermeintlich säkularen Berlin, in einer interaktiven Theaterperformance zum Thema machen – wie das gelingen kann und was dabei herauskommt, darüber spreche ich mit Angela Löhr und Frank Oberhäußer, der künstlerischen Leitung. Am Anfang der Produktion von «Faith Fiction» stand ein Text, den der Theaterkritiker und Journalist Dirk Pilz 2017 auf der Website «nachtkritik» veröffentlicht hatte. Ihn habe ich sehr geschätzt. Pilz war ein überaus kundiger Theaterfachmann und auf seine Weise ein sehr inspirierender Theologe. 2018 ist er viel zu früh verstorben. Deshalb hier einige Sätze aus einem Text, in dem er sich Gedanken über Religion und Theater gemacht hat – Gedanken, die Turbo Pascal bei der Vorbereitung ihrer Performance inspiriert haben: «Es ist ja nicht so, dass es einen Mangel an Religion auf deutschsprachigen Bühnen gäbe. Religion gehört schließlich nicht erst in der Gegenwart zu den umstrittensten und heikelsten Themen überhaupt. Aber Gläubige treten im deutschsprachigen Theater fast nur als Zerrbild auf, als Mängelwesen und bedauernswerte Tropfe, die den Anschluss an die Welt der Aufklärung und Vernunft verpasst zu haben scheinen… Religion wird durchweg zum diffusen Sammelbegriff für alles, was als irgend fremd, irrational oder überholt gilt, mitunter auch schlicht als Kennzeichen von Konservatismus. Sie wird so als das vorgeführt, was moderne, aufgeklärte Menschen nicht hätten – und auch nicht bräuchten.» Dass es genauso nicht ist, haben die Schauspielerinnen und Schauspieler von Turbo Pascal in ihren Vorarbeiten – langen Rechercheinterviews – und in ihrer Performance herausgefunden: Glaubensfragen bewegen immer noch, nur sind die Antworten inzwischen vielfältiger und vielschichtiger geworden. Wenn man sich über sie austauscht und das gängige Beschweigen von Religion überwindet, dann kann man sich und seine Mitmenschen besser kennenlernen.

programmier.bar – der Podcast für App- und Webentwicklung
Deep Dive 172 – .NET mit Dennis Oehme und Martin Deiss

programmier.bar – der Podcast für App- und Webentwicklung

Play Episode Listen Later Feb 14, 2025 78:00


Den Namen .NET haben sicherlich viele von euch schon einmal gehört. Viele Windows-Updates bringen regelmäßig Neuerungen zur wichtigen Runtime der Plattform. Aber was genau verbirgt sich dahinter und warum ist diese Technologie auch außerhalb des Windows-Ökosystems relevant? Aber zuallererst klären wir auf, was sich hinter dem Begriff .NET alles verbirgt – denn das ist eine ganze Menge.Gemeinsam mit Dennis Oehme und Martin Deiss von Garden of Concepts sprechen wir über die Entwicklung, die .NET und C# in den letzten Jahrzehnten durchlaufen haben. Die beiden berichten Jan im Podcast-Studio, wie sie modernes .NET Core nutzen, um ihre Projekte und Web-Services nicht nur auf Webservern, sondern auch auf Embedded Devices zu bringen.Außerdem besprechen die drei die Nähe und Gemeinsamkeiten von .NET, C#, TypeScript und anderen Sprachen und Frameworks. Immerhin stammen beide aus der Feder von Anders Hejlsberg, einem der maßgeblich verantwortlichen Entwickler für Turbo Pascal und Delphi bei Microsoft.Und natürlich interessiert uns nicht nur das Framework und die Syntax der Sprache, sondern auch die Community und wie neue Entwickler:innen am besten den Einstieg in die sehr vielfältig nutzbare Welt von .NET und C# schaffen.Schreibt uns! Schickt uns eure Themenwünsche und euer Feedback: podcast@programmier.barFolgt uns! Bleibt auf dem Laufenden über zukünftige Folgen und virtuelle Meetups und beteiligt euch an Community-Diskussionen. BlueskyInstagramLinkedInMeetupYouTubeMusik: Hanimo

Azure DevOps Podcast
Jeff Wouters: PowerShell Programming - Episode 320

Azure DevOps Podcast

Play Episode Listen Later Oct 21, 2024 33:18


Jeff was born and raised in The Netherlands and is an IT geek with a passion for automation. At the young age of 6, he had his very first computer and started developing his own Pacman to learn Batch programming. Looking back, the performance was terrible, but it worked. Over the years, he has always kept in touch with some sort of scripting or programming languages, such as Batch, (Turbo) Pascal, PHP, Delphi, Kixtart, Visual Basic Scripting (VBS), VB .NET, PowerShell, and C# .NET (Core). He is the owner of Methos, a consultancy and managed services company from The Netherlands focused on Microsoft Modern Workplace (Windows + Intune + Office365) and Azure through automation and Infrastructure-as-Code.   Topics of Discussion: [4:19] Jeff's passion and the three turning points in his career. [8:47] The architecture and intention behind PowerShell being built on .NET. [12:33] What are the biggest mistakes Jeff sees people making when it comes to PowerShell? [11:50] Best practices for using PowerShell in DevOps environments, and common mistakes to avoid. [16:04] Differences between binary and PowerShell-based modules, and the benefits of exploring module code. [18:18] Leveraging .NET code in PowerShell scripts and the advantages of this approach. [20:00] Preferred methods for writing automated tests for PowerShell code. [23:39] Jeff's current focus areas, including certifications and his upcoming “script portal” project.   Mentioned in this Episode: Clear Measure Way Architect Forum Software Engineer Forum Programming with Palermo — New Video Podcast! Email us at programming@palermo.net. Clear Measure, Inc. (Sponsor) .NET DevOps for Azure: A Developer's Guide to DevOps Architecture the Right Way, by Jeffrey Palermo — Available on Amazon! Jeffrey Palermo's Twitter — Follow to stay informed about future events! Jeff on Twitter Jeff on LinkedIn Jeff Wouters Methos jeff@methos.nl   Want to Learn More? Visit AzureDevOps.Show for show notes and additional episodes.

INNOQ Podcast
Women in Tech: Carmen

INNOQ Podcast

Play Episode Listen Later May 21, 2024 41:05


Carmen gehört zu den Mobile App-Entwicklerinnen der ersten Stunde, die mit Symbian begann und anschließend Apps für iOS entwickelte. Ihren beruflichen Weg in die IT fand sie durch ihre Begeisterung für Computerspiele und das Programmieren mit Turbo Pascal im Informatikunterricht, was schließlich zu einem Informatikstudium führte. Heute ist sie als Senior Consultant bei INNOQ tätig, wo sie vor allem im Bereich der Frontend-Entwicklung arbeitet. In dieser Folge der Podcast-Reihe Women in Tech spricht Carmen mit Stefanie über ihren Berufseinstieg, entscheidende Lernmomente und die Bedeutung von Flexibilität und Anpassungsfähigkeit in einer schnelllebigen Branche.

Hörspiel - Deutschlandfunk Kultur
Wurfsendungen nonstop - Mini-Hörspiele am laufenden Band

Hörspiel - Deutschlandfunk Kultur

Play Episode Listen Later Apr 30, 2024 49:45


Und noch eins, und noch eins, und … Dieses Stück hält was es verspricht: Hörspiele im Minutentakt. Auf ein gereimtes Dramolett folgt eine Slapstick-Nummer, auf die Publikumsbefragung eine irre Zahnärztin, auf die Ode eine Collage. Von Brigitte Abraham & Ruth Johanna Benrath, Christian Berner, Anna-Luise Böhm, Susanne Franzmeyer, Erwin Grosche, Astrid Litfaß, Marie T. Martin, Katharina Schlender, Frank Schültge, Robert Schurz, Wolfgang Seesko, Jan Theiler, Turbo Pascal und Frank Zauleck www.deutschlandfunkkultur.de, Hörspiel

ASecuritySite Podcast
Thank You, IBM … Here's To Another 100 Years

ASecuritySite Podcast

Play Episode Listen Later Feb 15, 2024 21:48


I do what I do because of one company … IBM. Why? Because in the 1970s, I got into computers, with a ZX81 (1KB of RAM) and a Dragon 32 (32 KB of RAM). They were very much home computers, and where you would rush out and buy the latest computer magazine, and then spend a happy evening entering some BASIC code that made a cursor move across the screen using the IJLM keys. If you were very lucky you would manage to save it to a cassette — that could take over ten minutes to save a simple program — only to get an error at the end. I was hooked! But, at work, we had a DEC VAX minicomputer, and which cost a fortune to buy and maintain (even in those days). This mini ran typically Pascal, and I remember running labs for students, and where they all decided to compile their program at the same time, and 30 minutes later, some of them would get their errors, and have to compile it again. Basically, every lab ended with me saying, “Sorry about that.” The VAX, though, was not designed to support 25 students compiling their program at the same time … it was a batch processing machine and wanted to be given jobs that it could run whenever it had time. It basically came from the days when you handed in your punch cards (containing either FORTRAN if you were an engineer or COBOL if you were more business-focused) to someone with a white coat, and then came back the next week with a printed output with green lined paper. But, just in time, the IBM PC arrived, and it was heavy but beautiful. So, as many in my department pushed for the VAX, but pushed for the PC for our labs. With their clock speed of 4.7 MHz, and 640KB of memory, I went ahead and bought a batch for a new PC lab. In those days there were no network switches, so they all connected with coaxial cable and had T-pieces to connect to the shared Ethernet bus. My logic was that we were paying around £20K for maintenance on the VAX, and where we could buy 20 £1K PC clones for the same cost. But, we'd have to maintain them. And, it worked. It freed us, and allowed us to run the classic Turbo Pascal (and Turbo C): Our student could now bring in their 5-inch floppy disks and save their programs for later use. And the size of the hard disk? 20MB! And, so, it is to IBM that we turn in starting the PC revolution, and today is the 100th anniversary of the IBM name — and first defined on 15 Feb 1924.

airhacks.fm podcast with adam bien
Java, Continuations and How Rife Happened

airhacks.fm podcast with adam bien

Play Episode Listen Later Jan 28, 2024 55:11


An airhacks.fm conversation with Geert Bevin (@gbevin) about: early days learning to code on a Commodore 64 and writing a painting program, learning Basic, Turbo Pascal, then C++, building custom software for companies in Belgium using Java and owned the IP, Seaside web framework was written in Smalltalk, Rife web framework, Cameron Purdy on "#16 Java, Caching and How the Information Flows", Cedric Beust on "#134 How EJBGen, TestNG and ...Android happened", the lightweight Spark (web framework), Gradle and Apache Maven, Project Loom and Continuations, BLD build tool, Object-oriented programming, Smalltalk, Seaside (software), ASM (Java bytecode manipulation and analysis framework), Rife and continuations, Rife is based on Servlets, Velocity (software), Spark (web framework), jetty (web server),Apache Tomcat, WAR (Sun file format), JSP, Kotlin, Tangosol, TestNG Geert Bevin on twitter: @gbevin

airhacks.fm podcast with adam bien
The Long Road to Java and Kotlin

airhacks.fm podcast with adam bien

Play Episode Listen Later Dec 17, 2023 65:39


An airhacks.fm conversation with Anton Arhipov (@antonarhipov) about: playing sports games on Pentium 233 MHz the 2014 JavaOne Rockstar awards about NetBeans, Eclipse, and IntelliJ., enjoying sports games and destroying joysticks, practicing competitive swimming, swim training, starting to program in Turbo Pascal at Maelardalen University, ship simulation with Java for Vasa Museum, joining a company which maintains RefactorIT, working with Java EE and WebLogic and JRockit, joining ZeroturnAround and working on JRebel, Rebel and LiveRebel, working on a profiler, JetBrain's MPS, DevRel for TeamCity, AppCode features are appearing in fleet, Fleet is built on common UI principles, the rendering engine Skia, Kotlin and Jetpack Compose, Circles by Anton Anton Arhipov on twitter: @antonarhipov

rebel eclipse circles ui java fleet mps long road kotlin devrel pentium intellij turbo pascal java ee weblogic teamcity netbeans vasa museum appcode skia
Les Technos (vidéo)
Episode 426 : Stockage Informatique : Du passé au futur, les métamorphoses

Les Technos (vidéo)

Play Episode Listen Later Dec 15, 2023


Episode 426 avec Xavier et David.La revue de presse :• A comme AMD (00:03:51) : Le MI300A d'AMD : APU le plus puissant? AMD sort sont nouveau APU Instinct MI300A, qui prétend rivaliser avec les meilleurs solutions NVIDIA. (Sources : techradar.com et forbes.com) • I comme Impression 3D (00:09:04) : Des photos en 3D grâce à l'impression 3D ? C'est possible ! Un maker imprime en 3D un accessoire qui permet de réaliser un stéréogramme à partir de photos macro. (Sources : 3dnatives.com, printables.com et youtube.com) • M comme Mistral (00:16:19) : Un modèle IA rivalisant avec ChatGPT 3.5 donné au publique. Mistral IA a distribué discrètement son modèle LLM rivalisant avec GPT 3.5. (Sources : gizmodo.com, mistral.ai et ycombinator.com) • R comme Réseau social (00:26:08) : Threads arrive en Europe. Le réseau social Threads arrive en Europe ce Jeudi. (Sources : bfmtv.com, lepoint.fr et tomsguide.fr) • T comme Téléscope (00:36:04) : Un téléscope intelligent. L'incroyable téléscope Seestar S50. (Sources : fstoppers.com et seestar.com) • T comme Turbo-Pascal (00:42:22) : Un language de programmation fête ses 40 ans. Le Turbo-Pascal a 40 ans. (Sources : techspot.com, metatrone.fr et developpez.net) Dossier : Stockage: du byte à l'exabyte (00:51:09)• Historique, évolution des moyens de stockage (Sources : nectardunet.com et utmel.com)• Cartes perforées / disquettes (Sources : wikipedia.org, wikipedia.org et zdnet.fr)• Disques durs / Disques optiques (Sources : wikipedia.org et wikipedia.org)• Memoires flash / SSD (Sources : wikipedia.org et wikipedia.org)• Longévité du stockage (Source : arcserve.com)• Le stockage sur verre de microsoft (Source : usglassmag.com) Retrouvez toutes nos informations, liens, versions du podcast via notre site : LesTechnos.be

Les Technos
Episode 426 : Stockage Informatique : Du passé au futur, les métamorphoses

Les Technos

Play Episode Listen Later Dec 14, 2023 91:09


Episode 426 avec Xavier et David.La revue de presse :• A comme AMD (00:03:51) : Le MI300A d'AMD : APU le plus puissant? AMD sort sont nouveau APU Instinct MI300A, qui prétend rivaliser avec les meilleurs solutions NVIDIA. (Sources : techradar.com et forbes.com) • I comme Impression 3D (00:09:04) : Des photos en 3D grâce à l'impression 3D ? C'est possible ! Un maker imprime en 3D un accessoire qui permet de réaliser un stéréogramme à partir de photos macro. (Sources : 3dnatives.com, printables.com et youtube.com) • M comme Mistral (00:16:19) : Un modèle IA rivalisant avec ChatGPT 3.5 donné au publique. Mistral IA a distribué discrètement son modèle LLM rivalisant avec GPT 3.5. (Sources : gizmodo.com, mistral.ai et ycombinator.com) • R comme Réseau social (00:26:08) : Threads arrive en Europe. Le réseau social Threads arrive en Europe ce Jeudi. (Sources : bfmtv.com, lepoint.fr et tomsguide.fr) • T comme Téléscope (00:36:04) : Un téléscope intelligent. L'incroyable téléscope Seestar S50. (Sources : fstoppers.com et seestar.com) • T comme Turbo-Pascal (00:42:22) : Un language de programmation fête ses 40 ans. Le Turbo-Pascal a 40 ans. (Sources : techspot.com, metatrone.fr et developpez.net) Dossier : Stockage: du byte à l'exabyte (00:51:09)• Historique, évolution des moyens de stockage (Sources : nectardunet.com et utmel.com)• Cartes perforées / disquettes (Sources : wikipedia.org, wikipedia.org et zdnet.fr)• Disques durs / Disques optiques (Sources : wikipedia.org et wikipedia.org)• Memoires flash / SSD (Sources : wikipedia.org et wikipedia.org)• Longévité du stockage (Source : arcserve.com)• Le stockage sur verre de microsoft (Source : usglassmag.com) Retrouvez toutes nos informations, liens, versions du podcast via notre site : LesTechnos.be

Geeks in Space
Tap Back, Previously on Furiosa, Fallout Returns, Turbo Pascal is 40, Monarch, Moon Bases GIS816

Geeks in Space

Play Episode Listen Later Dec 1, 2023 28:07


RobChrisRob talked about plans for Humanity's first permanent lunar base which definitely is gonna happen, Rob Reiner announcing that Spinal Tap is gonna be shooting a sequal in 2024, Vanity Fair had first look photos at the Fallout TV series from the Westworld team, there's a trailer for the next & final season of Letterkenny, the fate of the Collings Foundations WWII aircraft, Turbo Pascal's 40th birthday, the first trailer for the Furiosa Prequel, and a bit of chat about the Monarch TV Show. Join our discord to talk along or the Subreddit where you will find all the links https://discord.gg/YZMTgpyhB https://www.reddit.com/r/TacoZone/

airhacks.fm podcast with adam bien
How FlywayDB Happened

airhacks.fm podcast with adam bien

Play Episode Listen Later Sep 3, 2023 68:36


An airhacks.fm conversation with Axel Fontaine (@axelfontaine) about: starting with 8086 and 640 kB, starting with GW Basic, enjoying Alley Cat and Monkey Island on Sega Master, switching to QBasic, protecting the lemmings, the cyber cafe Cyberia in London, learning Turbo Pascal, impressed by Java Applets, starting in 1998 at IBM Global Services, using Visual Age for Java, travelling the world, the envy version control for Visual Age for java, attending JavaPolis, qcon, first talk at JUG Augsburg about Continuous Delivery, the Continous Delivery Book, Ruby DSL migrations, “data will outlive the code”, database outlives the code, the travel report website, Flyway - the migration path for birds, using JDBC metadata for schema migrations, promoting FlywayDB, paid features and support contracts, running migrations on application startup, the Java EE simplicity Axel Fontaine on twitter: @axelfontaine

java kb monkey island continuous delivery alley cats flyway cyberia turbo pascal java ee ibm global services jdbc qbasic
airhacks.fm podcast with adam bien
FPGAs, GPUs or Data Science with Java

airhacks.fm podcast with adam bien

Play Episode Listen Later Jul 10, 2023 61:01


An airhacks.fm conversation with Juan Fumero (@snatverk) about: 8088 an IBM clone, joining a cross country running team at school, Zoran previously at "#169 Deep Learning with Modern Java Code", leaning Turbo Pascal, C and C++, working on particle detection at CERN , working on GraalVM to GPU compilation and optimization, using direct memory access to communicate with the GPU, vector types in Java, Apache Flink acceleration on FPGA and GPUs, working on FPGAs, using RTL for FPGA programming, transparent acceleration for Java, astrophysics analytics with Java, DeepNetts on tornadovm, the relation between TornadoVM and GraalVM, using Panama to access native memory GPU-less TornadoVM, contributing to TornadoVM Juan Fumero on twitter: @snatverk

Rang I - das Theatermagazin - Deutschlandfunk Kultur
Wenn Kinder die Straße beherrschen: Turbo Pascal beim Impulse-Festival

Rang I - das Theatermagazin - Deutschlandfunk Kultur

Play Episode Listen Later Jun 17, 2023 5:12


Marcus, Dorotheawww.deutschlandfunkkultur.de, Rang 1Direkter Link zur Audiodatei

airhacks.fm podcast with adam bien
Simplicity is a Good Incentive

airhacks.fm podcast with adam bien

Play Episode Listen Later May 7, 2023 59:27


An airhacks.fm conversation with Ceki Guelcue (@ceki) about: cava the Turkish Java, PC XT 8080, 360 kB floppy disk, using Turbo Pascal, developing a board game in Turbo Pascal, learning MS-DOS, studying physics, using Smaky, EPFL Logitech is based in Lausanne, programming over physics, CDMA algorithm, OSI model, ping pong the simplest possible transport protocol, ping pong protocol is also known as Time-division multiplexing, TCP is a very simple protocol, easy of implementation is an interesting property, SLF4j a simple logging framework, learning C and struggling with pointers, the division algorithm is magical, Mix Network, developing mix-based email system, the beginnings of tor, the tor project, enjoying operator overloading in C++, DSLs might be a waste of time, the LogBack DS, Log4j vs. java.util.logging, anonymity and freedom, using traffic analysis to analyse tor, onion routing and tor, tor's honeypots, Ceki's paper: Mixing Email with Babel, Ceki's company: qos.ch Ceki Guelcue on twitter: @ceki

airhacks.fm podcast with adam bien
Low-Code, No-Code with Java

airhacks.fm podcast with adam bien

Play Episode Listen Later Apr 23, 2023 68:17


An airhacks.fm conversation with Richard Fichtner (@richardfichtner) about: the jcon.one conference, the cinedom and thunderdome, Digital Crafts Day, 80485 Intel with ISDN router, starting with Turbo Pascal, the ISDN extension card, prehistoric and Prince of Persia, Wing Commander, starting with SUSE Linux, ISDN router and asterisks, lilo the Linux loader, geocities and myspace, Internet Cafes and resetting the computers, Netscape Composer and Netscape Navigator, Netscape Mail, teaching HTML at school, xpage is a WYSIWYG, Florian Habermann the god of programming, xdev the low code / nocode environment, xdev is Java 21 compatible, xapi the framework, moving from Swing to Vaadin, the extended persistence context and EntityManager, PersistenceContextType.EXTENDED and interactive applications, Vaadin flow and WebComponents, GWT and Vaadin, xdev the Vaadin IDE, xdev a no-code IDE, SqlEngine a custom DSL for SQL with xdev, RapidClipse and Eclipse, Eclipse performance significantly improved in recent releases Richard Fichtner on twitter: @richardfichtner

airhacks.fm podcast with adam bien

An airhacks.fm conversation with Shai Almog (@debugagent) about: Sinclair spectrum and VIC 20, moving to Apple 2, programming the first game, learning assembly and Turbo Pascal, first programming job with 17, using OS/2 for fun, working for Paradox, enjoying BeOS, apple wanted to buy BeOS before it bought NeXT, working for AI company, working on heuristic scheduling, writing articles for IDM about Java 1.1, the attraction to CORBA, OS2 and DSOM, MarshalledObject in Java, the great SGI machines, pretending to be a fighter pilot, developing in a burning building, USAF Video Game, starting a Java consulting company in 1999, building a Palm Pilot application for waiters, Sun's Spotless VM comes with support for Solaris and Windows, porting Spotless VM to Linux, working for Sun Israel Development Center Shai Almog on twitter: @debugagent

Hemispheric Views
079: Five Percent Mildly Annoyed!

Hemispheric Views

Play Episode Listen Later Mar 9, 2023 49:49


We're back to three and all is well! Unless you count the facts that Martin is not wearing a shirt and Andrew sings quite a lot. New One Prime Plus members, New Zealand, New Corner, and Old computers! PSA: Review early and review often. ⭐⭐⭐⭐⭐ Follow-up: Hard-out! 00:00:00 Hard Out (https://www.yourdictionary.com/hard-out) ⏰ 30 degrees Celsius = 86 Degrees Fahrenheit

Good Time Show by Aarthi and Sriram
EP 34 - Anders Hejlsberg, Microsoft Technical Fellow and creator of Typescript, C#, Turbo Pascal and Delphi on programming languages, and the power of working on long term projects

Good Time Show by Aarthi and Sriram

Play Episode Listen Later Feb 11, 2023 86:19 Transcription Available


In this episode, we talk to Anders Hejlsberg, the creator of programming languages such. as C#, Typescript, Turbo Pascal and Delphi, on a life spent on building programming languages, the history of Java, his systems and setup, and what the future of programing languages looks like. Anders is someone we have looked up to for a big part of our lives, and this episode was a treat for us!See omnystudio.com/listener for privacy information.

The Array Cast
Michal Wallace, k programmer and J video producer

The Array Cast

Play Episode Listen Later Nov 12, 2022 62:17


Array Cast - November 11, 2022 Show NotesThanks to Bob Therriault and Adám Brudzewsky for gathering these links:[01] 00:04:10 SJT AT 5JT DOT COM[02] 00:04:30 APLNAATOT Podcast https://www.youtube.com/watch?v=R_dpMVyyCEo&list=PLYKQVqyrAEj8Q7BdOgakZCAGf6ReO1cue https://abrudz.github.io/aplnaatot/ Dyalog User meeting videos https://dyalog.tv/Dyalog22/[03] 00:08:40 q personal licence https://kx.com/kdb-personal-edition-download/[04] 00:09:20 Stop Writing Dead Programs StrangeLoop 2022 https://www.youtube.com/watch?v=8Ab3ArE8W3s[05] 00:11:22 Deck of Cards video https://www.youtube.com/watch?v=eXGKK8BkCkg[06] 00:11:44 Tangentstorm home page http://www.tangentstorm.com/ Youtube https://www.youtube.com/user/tangentstorm/videos Twitch https://www.twitch.tv/tangentstorm Twitter https://twitter.com/tangentstorm GitHub https://github.com/tangentstorm/[07] 00:13:09 Tandy 1000 https://en.wikipedia.org/wiki/Tandy_1000 GW Basic https://en.wikipedia.org/wiki/GW-BASIC[08] 00:14:09 Turbo Pascal https://en.wikipedia.org/wiki/Turbo_Pascal[09] 00:15:30 Fred and Wanda website http://tempytantrum.com[10] 00:16:50 AmeriCorps https://americorps.gov/[11] 00:21:30 Haskell https://www.haskell.org/ Smalltalk https://en.wikipedia.org/wiki/Smalltalk Python https://www.python.org/[12] 00:22:50 J software https://www.jsoftware.com/#/[13] 00:24:15 J for C programmers https://code.jsoftware.com/wiki/Books#J_for_C_Programmers Ulam's Spiral video https://youtu.be/dBC5vnwf6Zw[14] 00:25:18 Eric Iverson Episode https://www.arraycast.com/episodes/episode10-eric-iverson[15] 00:25:42 1010data.com https://www.1010data.com/ Stevan Apter Episode https://www.arraycast.com/episodes/episode26-stevan-apter Joel Kaplan Episode https://www.arraycast.com/episodes/episode27-joel-kaplan[16] 00:29:05 Github Tangentlab http://tangentstorm.github.io/ Ward Cunningham https://en.wikipedia.org/wiki/Ward_Cunningham C2 wiki http://wiki.c2.com/[17] 00:30:00 Python Paradox Paul Graham http://www.paulgraham.com/pypar.html k language https://en.wikipedia.org/wiki/K_(programming_language)[18] 00:31:50 kona https://github.com/kevinlawler/kona/wiki[19] 00:34:12 ok.js https://johnearnest.github.io/ok/index.html[20] 00:35:21 Job posting https://www.linkedin.com/pulse/want-work-k-1010data-michal-wallace/?trackingId=MAtCm2uioHw0wAsNbxJ%2FNA%3D%3D[21] 00:38:34 Recursion https://en.wikipedia.org/wiki/Recursion[22] 00:54:12 Jprez presentation in J https://github.com/tangentstorm/jprez Tangentstream https://www.youtube.com/channel/UCWgUN-LjgbKkeqQ0llA51Gw[23] 00:59:45 CP3 Python https://www.youtube.com/watch?v=o4Pnn6T9d3Y[24] 01:00:30 Why Isn't Functional Programming the Norm Richard Feldman https://www.youtube.com/watch?v=QyJZzq0v7Z4

The Work Item - A Career Growth and Exploration Podcast
#57 - From Turbo Pascal to CodePen, with Chris Coyier

The Work Item - A Career Growth and Exploration Podcast

Play Episode Listen Later Oct 29, 2022 38:16


If you are a web developer, chances are that you used CodePen more than once. You're also probably very familiar with CSS-Tricks for, well, more than just CSS tricks. The man behind these experiences, Chris Coyier, actually started his journey some time ago with a programming language called Turbo Pascal - many steps removed from web development. I sat down with Chris to talk more about his career, lessons in getting CodePen out into the world, and so much more.

airhacks.fm podcast with adam bien
I first played games I wrote

airhacks.fm podcast with adam bien

Play Episode Listen Later Aug 14, 2022 72:26


An airhacks.fm conversation with Daniel Lipp (@dynamic_123) about: starting to program CPC Schneider in the store, Basic and Logo, the first floppy disk to save the work, writing a senso game, Mandelbrot caclulations locked the computer for days, wiring computers on vacations, finding hidden files of Werner the German rocker game, Logo looks like assembly, starting physics and learning Turbo Pascal, from Basic to Visual Age SmallTalk, math formulas as code, memory leaks in C++, SmallTalk solved memory leaks, SmallTalk over Java, migrating from SmallTalk to Java, the elegance of SmallTalk, overriding a non-existing method in SmallTalk, Visual Age for SmallTalk over Visual Age for Java, the non-extendible Java currency class, recompiling the java.util.Currency class, writing a Java persistence layer, modernising with Java EE 5, writing Eclipse RAP clients, it is hard to maintain the spirit in fast growing companies, starting at open source CMS startup, migrating to openshift and containers, migrating microservices from JBoss to Quarkus, saving memory and CPU with Quarkus, saving money with quarkus, migrating from Java EE to Quarkus with minor code adjustments, the same old, serverless, architecture, Daniel Lipp on twitter: @dynamic_123 and Instagram: dynamic_dli

MS-DOS CLUB
MS-DOS CLUB – Vol 27 - Aventuras conversacionales a fondo con Carlos Sánchez, Uto.

MS-DOS CLUB

Play Episode Listen Later Aug 10, 2022 231:54


MS-DOS CLUB – Vol 27 - Aventuras conversacionales a fondo con Carlos Sánchez, Uto. Si te gusta nuestro contenido recuerda apoyarnos con una recomendación o echando una mano con los gastos del server ;) En el MS-DOS CLUB de este mes vamos a hablar a fondo de Aventuras conversacionales con Carlos Sánchez, alias Uto. Uto nos explicará cómo se lio a hacer ficción interactiva con su Spectrum y cómo aprendió a programar en BASIC y Turbo Pascal, llegando a crear sus propios parsers. Entre los parsers que ha creado tenemos, NMP, Superglus o ngPAWS, además de haber colaborado en la creación de otros como Visual Sintac o el recuperado parser de Aventuras AD. Así aprenderemos un poco de la historia de las aventuras conversacionales desde que dejaron de ser comerciales, a principios de los 90, hasta día de hoy. Después haremos una pausita para la publicidad, recordando cómo era la televisión noventera. Tendremos las efemérides de julio de 1994 en las que Logaran nos pondrá al día de lo que se cocía hace 28 años. Hablaremos del virus Koko, un virus que se activaba en Julio para hacer de las suyas en tu ordenador y por último, en el Readme.txt responderemos a vuestros comentarios de esta web y de Ivoox, por cierto, recordad que normalmente grabamos esta parte en vivo en nuestro grupo de Telegram. Recuerda que no estás viejo/a, tan solo un poco obsoleto/a ¡Obsoleta et Superbus! El listado del disquete VOL 27 es: Presentación: 00:04:41 Autoexec.bat: 00:17:13 Aventuras conversacionales desde los 90 hasta hoy con Uto: 00:18:16 El juego de Logaran del mes - Scape from Pulsar: 01:37:40  Publicidad: 02:00:57 Efemérides julio de 1994: 02:13:59 El Virus - Koko: 02:32:51 Readme.txt: 02:50:15 Os agradecemos desde ya vuestros comentarios y valoraciones positivas en iTunes, iVoox y nuestra web msdos.club y las recomendaciones del programa. Ayúdanos a mantener MS-DOS Club. Agradecemos en este episodio a: Sonia Chaves (@DubbingSonia) por su voz para las cortinillas. Canal de Sonia en Ivoox: Órbita Arrakis. Web de Sonia: soniachaves.es. Antonio Lozano (TwitterLess) por su dedicación y participación. Javier Sancho (@kalzakath1) por su dedicación y participación y editar esto que ha sido un infierno. Carlos Sánchez - Uto (@uto_dev) por explicarnos mucho acerca de aventuras conversacionales. ¡A todos y todas los que nos apoyáis de maneras diferentes en este proyecto!

airhacks.fm podcast with adam bien
Becoming an Apache Maven Committer

airhacks.fm podcast with adam bien

Play Episode Listen Later Jun 19, 2022 54:36


An airhacks.fm conversation with Karl Heinz Marbaise (@khmarbaise) about: PET 2001 was the first computer, enjoying programming at school, writing Basic and assembly code on Commodore CBM 4000, writing software for Commodore 1 PCB, finally getting a Commodore 64, programming extruder mesh machines, writing floating point libraries on Intel 8080, the connection between computers and math, starting with Turbo Pascal, C and C++ and Turbo C, studying part time, working full time, tracking cars with GPS in Delphi, implementing a new language in lex, yacc and bison, banks were using the OS/2 Warp operating system, working with Visual Basic, starting with Java 1.4 in 2004, working with PHP and MySQL, SOAP with PHP, developing an internal sourceforge, write simple code and enjoy JVM performance, starting with Ant then migrate to Maven 2, Apache Jelly the executable XML, Convention over Configuration with Maven, Apache Continuum, AnthillPro and CruiseControl, becoming a Maven committer, Apache Axis 2, using Hudson for CI/CD, contributing to open source at Deutsche Boerse, working with Robert Scholte, airhacks.fm episode with Robert: "#28 More Conventions with Maven.next", working as DevOps engineer, Karl Heinz Marbaise on twitter: @khmarbaise

BlåSkjerm Brødrene
#22-18 Hva er en utvikler og hva driver de med?

BlåSkjerm Brødrene

Play Episode Listen Later May 14, 2022 31:40


Alexander og Olav sitter med gammeldagse holdninger og tenker at det er på tide å sjekke om de stemmer eller om de må oppjusteres.Roberth Strand fra Crayon kan bekrefte noe, han liker Pizza. Men han får oppjustert Alexander og Olav om hvilke "kategorier" av utviklere som er vanlig og hva de driver med.Masse gode råd om alt fra Roberth sitt favoritt programmeringsspråk til Olav sitt, som er Turbo Pascal. Alexander hamstrer inn data til biblioteket sitt, blir alle 95 MB han har oppbrukt? See acast.com/privacy for privacy and opt-out information.

Fillole
Ep 48 - Blaise "Turbo" Pascal

Fillole

Play Episode Listen Later Jan 26, 2022 2:42


Benvenuti su Fillole. Nel quarantottesimo episodio vi racconterò il pensiero di Blaise Pascal.Nel minor tempo possibile!Hot Swing di Kevin MacLeod è un brano autorizzato da Creative Commons Attribution (https://creativecommons.org/licenses/by/4.0/)Fonte: http://incompetech.com/music/royalty-free/index.html?isrc=USUAN1100202Artista: http://incompetech.com/Grafiche di Valentina Sciuttihttps://www.instagram.com/valentina.sciutti/?hl=it

CodeKlets
[S2E13] Robert van Loghem en Jamie Craane over Mobile Development

CodeKlets

Play Episode Listen Later Dec 6, 2021 121:44


Show notes Robert van Loghem programmeert sinds zijn 13e in Turbo Pascal, na meer dan tien jaar backend-ontwikkeling in Java en wat Scala te hebben gedaan, begon hij in 2010 met het ontwikkelen van Objective-C iOS-apps voor NS en een klein beetje ProRail. Nu doet hij voornamelijk Kotlin en Swift in frontend en... in backend. Jamie Craane is een Full Stack software ontwikkelaar met een passie voor Kotlin en Kotlin Multiplatform. Hij heeft o.a. aan de wieg gestaan van de NS Reisplanner Android app en de Kotlin multiplatform app van Eneco. Met hosts Kishen Simbhoedatpanday - LinkedIn Twitter Robert van Loghem LinkedIn - link Twitter - @soundbites Jamie Craane LinkedIn - link Twitter - @jcraane jamiecraane.dev Onderwerpen 00:00 Intro 04:45 Hoe is het programmeren begonnen bij jullie? 14:45 Huidig mobile development project en de team samenstelling 19:05 Hoe omgaan met multiplatform en verschillende mobile developer skillsets 26:17 Welke Mobile Software Development stack gebruiken jullie? 30:00 CI, testing en CD naar App Stores voor Mobile Development 39:45 Wijze lessen tijdens Mobile Development en de beste Mobile experience 49:40 Mobile testing in de Cloud? 51:50 Multiplatform Mobile Development met Kotlin, de voor- en nadelen 01:04:45 Trunk based development vs. Pull requests 01:11:40 Hoe loopt het proces in Multiplatform development. Maak je genoeg gebruik van de hardware mogelijkheden? 01:16:39 TempleOS? 01:18:40 iPhone of Android voor privé gebruik. En welke andere hardware gebruiken jullie? En voor gaming? 01:24:47 Wat is een full stack developer volgens jullie? 01:27:08 Welke loopbaan tips zou je je jongere zelf geven? 01:32:28 Grootste fout afgelopen jaar? 01:37:17 Belangrijkste developer skill die je zou aanraden? 01:40:18 “Bouw mee aan onze complexe Architectuur” in een complex domein 01:53:48 Tips 02:21:03 Outro Random notes Kotlin Multiplatform Pact integration/ microservices testing Flutter Cordova React native Obsidian Tips Robert Investeer in je gereedschap! Zoals goeie werkplek Disney+ de What if Serie Apple TV+ Foundation Jamie Jamie music producer Github Co-pilot Snyder's Justice League Kishen Ego is the enemy Twin Peaks CodeKlets links CodeKlets CodeKlets Nieuwsbrief CodeKlets Slack CodeKlets Twitter CodeKlets op Vriend van de Show

airhacks.fm podcast with adam bien
AI with Java as a Hobby

airhacks.fm podcast with adam bien

Play Episode Listen Later Nov 21, 2021 54:08


An airhacks.fm conversation with Dr. Zoran Sevarac (@zsevarac) about: ZX Spectrum with rubber keys in 1987, starting with games, improving the game loading experience, application for transformer calculations, simon's Basic, playing Out Run, improving the software loading experience with screwdrivers, learning Turbo Pascal 5.0, writing an application for medical registry, learning C and C++, building websites, learning Java with Applets, building chatbots and natural language processing, learning lex and yacc, ads automation for local musicians with C-script and Common Gateway Interface (CGI), selling books online, starting an e-commerce framework with PHP, starting an e-commerce company, the German ecommerce company: intershop, neural framework with Java in 2008, openourcing neuroph on sourceforge, neuroph is winning the duke choice award, using NetBeans for building the neuroph UI, speed vs. readability, deep netts comes with commercial support, JSR 381: Visual Recognition (VisRec) Specification, Dr. Zoran Sevarac on twitter: @zsevarac and Zoran's deepnetts.com

airhacks.fm podcast with adam bien
The Endless Loop of Frustration and Challenge

airhacks.fm podcast with adam bien

Play Episode Listen Later Nov 7, 2021 91:28


An airhacks.fm conversation with Nicolai Parlog (@nipafx) about: Amiga 500, booting into blue environment, Settlers, dune game on Amiga, writing the first line of Turbo Pascal at high-school, starting with Java in 2001 with Applets, the dining philosopher's problem with Java, Karel the Robot in Java, studying math is hard, Temporal logic and formal verification, the endless loop of frustration and challenge, mathematicians and formulas, solving an equation is refactoring, learning complexity theory, TLA+ and Lesley Lamport, Amazon S3 formal verification with TLA+, cost estimation in large scale projects, java.awt.List vs. java.util.List Kotlin vs. Java 17 productivity, Java is the lowest possible denominator, working for lichtblick - the renewal energy company, implementing energy model for Fraunhofer in Karlsruhe, linear programming with simplex in C, dependencies come with a cost, dependencies are liability, starting to work for Oracle as Java Developer Advocate, Nicolai Parlog on twitter: @nipafx, Nicolai's website: nipafx.dev

Reversim Podcast
413 GitOps with Yaron from Soluto

Reversim Podcast

Play Episode Listen Later Jul 17, 2021


זהו פרק 413 של רברס עם פלטפורמה, הוקלט ב-8 ביולי 2021, וזה הטייק השני - הטייק הראשון היה מוצלח במיוחד, אבל הוא לא הוקלט . . .אז הנה אתם פה, בטייק 2, יחד איתנו - כן, אני יודע שבשבילכם זה הטייק הראשון, בסדר - אז היום אנחנו נמצאים באולפן שלנו ביוקנעם עילית (!), אורי נמצא בחופש ומחליף את אורי יונתן מ-Outbrain - היי יונתן, מה נשמע?(יונתן) היי, מה העניינים?(רן) מצויין, ברוך הבא - ואיתנו נמצא גם ירון מחברת Soluto - היי ירון!(ירון) היי, מה העניינים? נעים מאוד . . . .(רן) טוב שבאת - היום אנחנו הולכים לדבר על GitOps, בפעם הראשונה.ולפני שנדבר על GitOps, נעשה סבב היכרות קצר - יונתן, היית כאן הרבה פעמים בפודקאסט לפני זה [הקדמה והיכרות - בפרק הקודם], אבל בוא ספר לנו בכל זאת עוד קצת על עצמך - (יונתן) אז אני הגעתי ל-Outbrain לפני 10 שנים, כמהנדס Backend, ובחמש השנים האחרונות אני מנהל את הפיתוח.ומאזין ותיק של רברסים [וגם אורח - 328 The tension between Agility and Ownership או Final Class 23: IDEs או 131 uijet או 088 Final Class 2, וכמובן 412 Serverless at Via](רן) מצויין - טוב שאתה פה.ירון - שני משפטים עליך?(ירון) אז אני ירון עידן, אני מוביל את צוות ה-DevOps ב-Solutoאני משחק עם מחשבים כבר יותר מ-20 שנה - התחלתי בצבא בתור DBA ואחרי זה עברתי להיות מפתח.לפני כמה שנים כבר גיליתי את עולם ה-DevOps ועברתי אליו לחלוטין - ומאז אני מאוד נהנה מהעולם הזה.ב-Soluto אני עושה את זה כבר משהו כמו חמש שנים.אני אספר גם קצת על Soluto, החברה שבה אני עובד - Soluto היא חברה שרוצה להפוך את הטכנולוגיה לדבר יותר ידידותי, בעיקר עבור אנשים שעבורם טכנולוגיה “זו לא השפה הראשונה שלהם”.אז המשתמשים שלנו יכולים לגשת לממשקים ב-Web או ב-Mobile ובעצם לקבל את המיטב מהמנויים הדיגיטליים שלהםלוודא שכל המידע שלהם מאובטח ושמוראם יש להם איזושהי מכונת כביסה חכמה בבית אז הם יכולים לוודא שהמכונה מתפקדת כמו שצריך ושהם מצליחים להשתמש בה . . .ובצד השני - יש להם גם את היכולת לפתוח איזשהו צ'אט, איזשהו Session של Chat עם Expert-ים - וגם הם משתמשים בפלטפורמה שאנחנו מפתחים בתל אביב, שנקראית Anywhere Expert, והיא מאפשרת לתומכים טכניים להיות מסוגלים לעשות את הסשנים האלה מהבית שלהם, מתוך איזושהי אפליקציה, כמו ב-Uberכבר לא צריכים לשבת בתוך איזה Cubical עם אוזניית מדונה ב-Setting קצת אפרורי - אלא ממש להשתחרר ולעשות את זה בתנאים שלהם.זה מייצר Disruption ענק לכל התעשייה הזאת של Tech-support בארה”ב - שם נמצאים רוב הלקוחות שלנו.(רן) אז זה, למעשה, Marketplace של תומכים ונתמכים - מצד אחד יש את הנתמכים, שאלו אנשים שיש להם, לצורך העניין, בעיה עם הטלפון או עם מכונת הכביסה או כל מכשיר אחרומצד שני התומכים, שבזמנם . . . אולי בנוסף על עבודתם, כמו שאמרת כמו ב-Uber, עושים השלמת הכנסה בזמנם החופשי.(ירון) כן - אנחנו אוהבים לחשוב על זה שאנחנו מצליחים לתרום לשני הצדדים הרבה מאודגם לגרום לאנשים להרגיש שהם מוציאים את המיטב ממה שהם שילמו עליו כסףוגם לגרום לאנשים לעשות את העבודה שלהם בתנאים יותר משחררים [אה . . . ](רן) אז הנה שאלה מפתיעה, שהרבה זמן לא שאלו אותך - אמרת שאתה כבר מתכנת הרבה זמן, אז תהיתי מה היה המעבד הראשון שסבל את נחת זרועך?(ירון) אז יש לי Deja Vu . . . אני חושב שזה היה 386 לדעתי? אבל נראה לי שעברתי על כל הסדרה, ואיפשהו בילדות מצאתי מצאתי איזושהי חוברת כזאת בעברית שמלמדת לתכנת ב-Basic, התחלתי לפתוח אותה - ומאז לא הפסקתי.(רן) עדיין ב-Basic?(ירון) התקדמתי מאז - עכשיו אני ב-Pascal . . . [אין יותר טוב מזה](רן) יפה . . . Turbo Pascal [אוקיי, יש יותר טוב…], Object Pascal . . . נחמד - הכחול והתכלת הזה, מקסים, הנדסת אנוש למופת.[אתה לא ציני, נכון? זה היה נפלא]בסדר - אז אנחנו התכנסנו היום כדי לדבר על GitOps.כולם, פחות או יותר, יודעים מה זה Git, וכולם, פחות או יותר, יודעים מה זה Ops - החלק המעניין של DevOps, להזכירכם . . . אבל מה זה GitOps? מה זה השילוב הזה ביניהם?(ירון) אז כן - דבר ראשון, הטרנד היום זה באמת לשים סיומת של Ops על הכל . . . יש DataOps ויש MLOps, אז עכשיו יש גם Buzzword חדש שהוא GitOps.אנחנו ב-Soluto עושים את זה כבר הרבה שנים, בלי לתת לזה את השם הזה, אבל אני כן אתן את ההרחבה של “מה זה בעצם אומר?”אז GitOps היא איזושהי מכניקה של CD, איזושהי אימפלמנטציה (Implementation), שמאפשרת למפתח לדלבר (Deliver) את המוצר שלו ל-Production בצורה שבה Git, או הקוד שיושב בתוך Git, ייצג את המצב של Production.אז אם ב-Continuous Delivery רגיל, יש איזושהו מבוך רציני, שהקוד צריך לעבור מהרגע שהוא Committed ל-Branch הראשי, ועד שבאמת אפשר לראות אותו ב-Production - אז GitOps מנסה לחסל כמה שיותר מהמחסומים האלהובאמצעות איזשהו רכיב שעושה פעולה שנקראת Reconciliation, לבדוק מה המצב של הקוד ב-Git, ולראות האם Production עונה על אותן הגדרות - ואם יש צורך אז לסנכרן בין שני הרכיבים האלה.(רן) כשאתה אומר “מבוך” ,אתה מתייחס, נגיד, לפרישה בהתחלה כ-Canary, ואחר כך אולי פרישה של 25% ב-Data Center אחד ואחר כך ב-Data Center אחר? זה המבוך שאליו אתה מתייחס?(ירון) אז האמת שהמבוך הזה יכול להיות קיים גם ב-GitOps, אבל אנחנו, ספציפית ב-Soluto כן משתמשים ב-Canaryהוא אפילו ניהיה הרבה יותר נגיש עבורנו בזכות השימוש שלנו ב-GitOpsשני הדברים האלו הם לא Mutually-exclusiveהמבוך שאני מתאר זה בעיקר להיכנס לתשתית של ה-CI, ללחוץ על “Deploy”, לראות שמשהו נתקע, להיזכר שהיה צריך לשדרג את ה-Script שעושה את זה . . .(רן) כן . . . בעצם אתה מדבר על ההתערבות האנושית שנדרשת אחרי שהקוד כבר נמצא ב-Master . . .(ירון) נכון - וגם זיהוי של טעויות שמתרחשות בזמן ה-Deployment - נניח, אצלנו ראינו הרבה פעמים שבגלל התאימות היחסית של Pipelines של Deployment, הרבה פעמים יש שגיאה ב-Production, והיא לא משתקפת חזרה ל-Pipeline של ה-Continuous Delivery - ואז המפתח פשוט יושב ואומר “טוב, זה כנראה לוקח לו הרבה זמן . . . זה כנראה הגמדים שלוקחים את הקופסאות ל-AWS התעכבו בדרך . . . “ורק אחרי 20 דקות או 30 דקות יש איזושהי הבנה שמשהו השתבש בצורה נוראית . . . (רן) זאת אומרת - ברגע שאני עושה Merge של Branch ל-Master - אני אף פעם לא אעשה הרי Commit ל-Master, זה אסור . . . - ברגע שאני עושה עושה Merge ל-Master, אני צריך להניח שהכל, כאילו, ב-Production, נכון?(ירון) לאו דווקאיש כלים של GitOps שלוקחים את זה בתור ה-First Class Citizen, הם באמת בונים על זה שתיהיה סדרה של הגנותבין אם זה טסטים ו-Smoke Tests או Canary ו-Gradual releases, כמו שהזכרתוהם פשוט מניחים שהמשתמש עושה בהם שימוש.אנחנו מעדיפים Deployments יותר קונטקסטואליים, ובגלל זה בהתחלה התחלנו להשתמש ב-Flux, שהוא כלי של WeaveWorks שלוקח את המתודלוגיה הזאת קדימה, ומנסה באמת “לאסור על ה-user” ליצור שינויים . . . ליצור הבדלים בין Production לקוד.ועברנו ל-Argo - כלי של Intuit - שחולק איתו הרבה מהקוד, אבל משנה הרבה מהדינמיקה והמכניקה.הוא מאפשר באמת קודם כל להכניס את הקוד לתוך ה-Master - ורק אחר כך להגיד למפתח “תעשה את הסנכרון שלך בצורה מודעת”.יש גם אופציה ליצור Sync אוטומטי, ואז ברגע שההגנות האלו נמצאות ובאמת יש את הבטחון לדעת שמה שנכנס ל-Master יכול להגיע ל-Production, ניתן להדליק את ה-Flag הזה ולהינות מחיים עם הרבה פחות Toil, הרבה פחות עבודה ידנית.(רן) אז דיברת על Reconciliation ועל זה שיש הפרשים בין מה שקיים ב-Master, שאמור לתאר את סביבת ה-Production, לבין סביבת ה-Production האמיתית, וההפרשים האלה יכולים לנבוע מכמה דברים - קוד שנכנס ל-Master, אבל עדיין לא עבר Deployment, אבל זה יכול גם להיות לנבוע מזה שהלך איזשהו איש Ops ושינה את ה-Production . . . נכנס ל-AWS או עשה SSH לאיזשהו שרת ושינה שם משהוואולי יש Drift-ים מכל מיני סוגים, ואני בטוח שכל מי שנמצא בעולם האופרציה נתקל בדברים האלה.אבל איך . . . מתי זה הגיע לנקודה שבה זה ממש הפריע לכם, ואמרתם “עד כאן! פה אנחנו חייבים לקום ולעשות איזשהו מעשה! אצלנו לא יהיה הבדל בין Master ל-Production!” . . . היה איזשהו אירוע מכונן שגרם לכם לעשות את זה?(ירון) אז היה . . . לפני שאני אסביר את האירוע הזה, אני גם אסביר איך הגענו למקום שבו אפשר לחשוב בכלל על הקונספט הזה.כמו שאמרתי - עשינו את זה עוד הרבה לפני שקראו לזה GitOps, והתחלנו במקומות הרבה יותר Low-stakes מסביבת ה-Production, שמגישה תוכן לקרוב למאה מיליון משתמשים היום . . .איפה שהתחלנו זה בתשתית הניטור שלנו - זה היה כבר לפני יותר מחמש שנים.רצינו לעשות דמוקרטיזציה של הניטור, לא רצינו שזה יהיה משהו שמפתח אומר “אני רוצה לנטר בבקשה . . . קח את השליפה הזו ושים אותה בבקשה על הכלי”וכדי שזה יקרה, יצרנו איזשהו Repository, שמנו בו קובץ JSON ענק ואמרנו למפתחים: “פשוט תכתבו פה את כל מה שאתם רוצים לנטר, וזה יגיע “בדרך קסם” אל התשתית”.אז זה היה ה-Production הראשון אצלנו שבעצם כל Commit ל-Master הסתנכרן עם הקוד, והיופי של זה היה שבאמת יכולנו לשחק פה ב-Stakes יותר נמוכים.שבירה של תשתית ניטור זו בעיה מסדר שני - משהו שיכול לקרות לדקה-שתיים בלי שהמשתמשים ירגישוזה בדרך כלל קורה בצורה מבוקרת, כשהמפתחים במשרדולכן זה היה משהו שנתן לנו להתנסות עם זה בצורה בטוחה.(רן) אז למעשה, המוטיבציה הראשונית שלכם הייתה לספק חווייית-מפתח יותר טובה - במקום שהוא ילך ויפנה אליכם ויבקש “תוסיפו לי בבקשה Monitoring” או שבמקום שיצטרך להכיר את כל החוכמות של כלי הניטור, הוא יכול לערוך איזשהו קובץ JSON ולעשות Commit - ומבחינתו זה ממשק העריכה - ועכשיו הוא מבין שברגע שהוא עשה Commit, יש איזשהו Hook שלוקח את הקובץ הזה ועושה לו Apply ל-Production.אז מבחינתך זה איזושהי חוויית מפתח יותר טובה - אבל זה עדיין . . . זאת אומרת, אני לא רואה עדיין איך זה בא ומטפל בתקלות Production . . . (יונתן) לכאורה, יכולת לממש את זה גם, נניח, עם CI/CD רגיל, נכון? בלי “הקונץ” הזה של הסנכרון או לבדוק את הפערים?(ירון) נכון - ואני אפילו אגיד שבאיזשהו שלב עברנו לזה: היה לנו Repository אחד מרכזי ואז הכנסנו איזושהי תשתית “כמו CD”, שלוקחת Commit-ים מ-Repository אחד ומזריקה אותם ל-Repo המרכזי הזה.ושם כבר התחילו להרגיש את החסרונות שאמרתי - הכלי היה נשבר הרבה פעמיםהיו נוצרים מצבים שבהם ה-Pipeline הקלאסי הזה, שמנסה להגיע למקום ה-GitOps-י, נתקע בגלל כל מיני טעיות שלא חזינו מראש, והיה קשה לקבל Visibility על דבר כזה.זה דורש יצירה של המון כלים, רק כדי שהדבר הזה יעבוד בצורה שהיא Flowless.(יונתן) עוד משהו שרציתי לשאול - איך ה-GitOps אל מול Infra-as-a-Code - זה משלים את זה? זה השלב הבא של זה?(ירון) זאת שאלה מעולה, כי באמת הרבה פעמים, את ה-Infra-as-a-Code אנחנו עדיין עושים עם כלים שהם יותר “Push-יים” כאלהאנחנו עבדנו קצת עם Terraform, נטינו יותר לכלי שנקרא Pulumi, שהוא סוג-של-כזה-Wrapper סביב Terraform, עם שפות תכנות יותר נפוצות.ושם מרגישים בדיוק את העניין הזה - שכדי עכשיו לשנות את ה-Infrastructure שלי, אני צריך לעשות Apply . . .ולפני שאני צריך לעשות Apply, אני ארצה לעשות איזשהו Preview, ולהציג אותו למפתחים, כדי שהם יבינו איזה שינוי הולך לקרות.ואז המנגנון הכמעט-אימפרטיבי (Imperative) הזה הוא נורא מורגש - נורא מורגש שהולך להיות איזשהו שינוי, וצריך לעשות איזושהי פעולה כדי שזה יקרה.ואחד הכלים שאנחנו מסתכלים עליהם יותר ויותר נקרא Xstate, וזה כלי שבאמת שם את ה-Infrastructure שרוצים ליצור כ-Custom resources בתוך Cluster של Kubernetes, ואז יש איזשהו Reconciliator, שבמקום לעבור עם ה-API של Kubernetes, הוא עובד עם ה-API של AWS או Azure או GCP - יוצר שם את אובייקטים.וזה שוב - שינוי תפיסה יחסית מאסיבי, כי זה אומר שברגע שמפתח עשה commit ל-Master, אז Xstate תופס אותו ומסנכרן אותו לענן אין איזשהו שלב באמצע של Apply, של Preview . . . כל הדברים האלה חייבים לקרות ב-PR, לפני שהקוד משתנה.(רן) מצד אחד - זה נשמע נורא אלגנטי . . . כאילו פיהם וליבם של Production ו-Master שווים. מגניב, נורא סימטרי כזה, נורא פשוט . . .מצד שני - גם נשמע נורא מסוכן: עשיתי Commit . . . סליחה - עשיתי Merge ל-Master, לא עשיתי Commit ל-Master. . . עשיתי Merge ל-Master, ואולי אני לא כל כך יודע מה זה הולך לייצר, זאת אומרת - אני לא יודע שזה עכשיו אולי הולך לייצר בלגאן לא נורמלי בתוך Production. . . אין לי איזשהו מקום קטן שבו אני יכול ככה להתנסות, בקטנה, לפני שאני עושה את ה-Commit? איך מטפלים? איך עושים מיטיגציה (Mitigation) למוטת הכנף הענקית שפתאום כל אחד מקבל?(ירון) זו שאלה נהדרת, כי היא מחזירה לשאלה הקודמת ששאלת - של בעצם “איזו בעיה ניסינו לפתור?”כי דווקא בניגוד או בהיפוך כזה של התמונה הזאת, החוסר ביטחון הגיע לפני שהיה לנו את ה-GitOpsהייתה לנו בעיה שהתשתית… פשוט כשעובדים עם תשתיות כמו Kubernetes אז התשתית נהיית מאוד מאוד מורכבתהיא גם נהיית במצב שכדי להרים Cluster חדש, במקרה של איזושהי בעית Production, בנאדם צריך לעשות פעולה ידנית, שיכול להיות שיכולה לארוך כמה שעות - וזה היה מצב מאוד לא נוח.קשה היה לדעת, כשיש לי מספר מוגבל של Cluster-ים - במקרה שלנו שניים - ואם עכשיו אחד מהם נופל אז אני צריך להיכנס למרוץ נגד השעון כדי ש-Cluster חדש יעלה.וזה גם עיכב אותנו מלייצר, אולי, את מה שרמזת אליו - שזה איזשהו מקום, איזשהו “מגרש משחקים” או ארגז חול בצד, שבו אפשר לעשות את כל השינויים בצורה בטוחה, ולדעת שלא משנה מה אני אשבור - Production לא ידע מזה.וזאת בעיה אחת שבאמת נאבקנו בה הרבה לפני שהגענו לעולם ה-GitOps המובטח.בעיה נוספת, שגם אותה אני אסביר איך GitOps פתר עבורנו, זה הארגונומיה של המפתחים מול Kubernetesכי מפתחים אצלנו היו רגילים לעבוד מול אילו-שהם Self-contained Services, שרצים על PaaS, כמו Herokuבמקרה שלנו זה היה Azure, אבל זו הייתה איזושהי סביבה סגורה, מכונות וירטואליות שכל מפתח קיבל, שמריצות את ה-Services שלו.ופתאום לעבור ל-Cluster שהוא Multi-tenant, שכולם עובדים ביחד, שצריך לדעת לא “לדרוך אחד לשני על הבהונות” . . . שיש בהם הרבה-הרבה אובייקטים חדשים שהמפתחים לא מכירים - יצר שינוי פרספקטיבה, שלא היה קל להנחיל לצוותי הפיתוח.אנחנו בצוות עבדנו עם Kubernetes הרבה, אבל המפתחים לא תמיד רצו להבין את המורכבות הזאת, והיה קשה לחשוף אותם לזה בצורה שתפגע איפשהו באיזון הזה . . .(רן) אז גם בהקשר הזה, זה נשמע כאילו אתה בעצם מייצר ממשק למפתחים עבור Kubernetes . . . זאת אומרת: “אתם לא צריכים ללכת ולהשתמש ב-Kubectl או בכלים אחרים” אלא אתם צריכים, לצורך העניין, “לעשות Commit לאיזשהו קובץ JSON ומשם אנחנו כבר נטפל בזה”.(ירון) נכון . . . אז היום הכל YAML, אבל כן - זה השינוי המרכזי שעשינו . . .(רן) . . . השתדרגנו . . . (ירון) . . . עכשיו יש מקפים במקום סוגריים מסולסלים . . .(יונתן) תזהיר את אבישי - יש לו איזה משהו נגד YAML-ים . . (רן) מאזיננו אבישי - תסתום רגע את האוזניים . . . כל העולם YAML כבר, אין מה לעשות . . .(ירון) בהרבה מקומות ראיתי שכבר מגייסים מפתחי YAML . . . (רן) כן - אולי המפתחי XML בפנסיה יהפכו למפתחי YAML . . . נחזור רגע אחורה - דיברת קודם על המוצר שלכם, ואמרת שהמוצר הזה יודע לתת תמיכה למכונות כביסה למחשבים אישיים וכו'. אז כל פעם שאני עושה Commit ל-Master, נגיד לאפלקיציה ה . . .(יונתן) אתה לא עושה Commit ל-Master, רן . . . . תזכור - עוד פעם, אני אעשה לך Reject . . . (רן) איך נפלתי . . . זה הפרוידיאני בי שמדבר . . . אז כל פעם שאני עושה Commit ל-Branch, ו-Merge ל-Master, אחרי Code review, כמובן, ומתקן את כל ההערות, ועובר CI - אז לאפליקציה האחרונה המגניבה שכתבתי למכונת הכביסה של סבתי - אז זה מיד הולך לכל מכונות הכביסה בעולם? לכל הטלפונים בעולם? זאת אומרת - זה באמת מה שאנחנו רוצים?(ירון) אז התשובה היא “לא” . . . כמו שאמרתי, יש לנו מידה מאוד חזקה של Control, כי ככה רצינו לבצע את השינוי הזהלא רצינו להפחיד אנשים ולהגיד לכל מי שעובד על הקוד אצלנו “תזהרו מאוד מה-Master!”הרעיון היה באמת לאפשר לאנשים יותר Visibility, יותר שקיפות - ולאט-לאט להגיע למודל הבגרות הזה, שבו אנחנו מרגישים בנוח לסנכרן דברים בצורה אוטומטית.זה אומר שהיום, רב שירותי ה-Backend שלנו נפרשים באמצעות כלי GitOpsבאמצעות Argo, שציינתי קודםמה שהמפתחים מקבלים מזה זה להחליף את ה-Pipeline המסועף והקשה להבנה באיזשהו Commit ל-Masterעכשיו, במקום לעשות את ה-Deployment בשלב הזה של ה-Pipeline, יש רק Commit אחד, שמשנה את ה-Version ש-Argo מסתכל עליו.ברגע שנעשה שינוי ה-Version הזה, המפתח הולך ל-UI אחר, של Argo - הוא רואה בצורה מאוד מאוד ברורה שהשתנה שדה מסויים ב-YAML של ה-Deployment שלו, עם ה-Tag.וזה מייצר הרבה דברים מאוד טובים עבורנו - כי גם אם עכשיו מבצעים סנכרון של הדבר הזה, אז זה כבר לא איזשהו Context-switch של לעבור עכשיו ולהסתכל מה המצב - Argo ממש מראה יפה, עם לבבות ירוקים או לבבות אדומים-שבורים , מה הסטטוס של הגרסא הישנה והגרסא החדשה.וזה נותן פידבק מאוד מהיר - האם השינוי הזה כרגע עובד? האם השינוי הזה נכשל? האם צריך לחזור רגע לשולחן השרטוטים ולתקן אותו?במצב הנוכחי, זה דווקא הגביר מאוד את ה-Control ואת השליטה שלנו ב-Production, ולא יצר אי-יציבות וחסר ודאות.(יונתן) ה-State הזה, נניח של שינוי הגרסא - נניח שאני מהנדס, ויש לי גרסא חדשה - אתה אומר, בעצם, שדבר ראשון אני צריך לעשות Branch ו-Commit ו-Merge, בגלל שאני רוצה גרסא חדשה, עם איזשהו Tag - זה ב-Repository של האפליקציה שלי או שזה ב-Repository של האפליקציה שמנהלת את ה-GitOps?(ירון) זו שאלה נהדרת, כי באמת אנחנו עושים משהו לא מסורתי שם - אנחנו כן עושים את כל השינויים האלו ב-Repository של הקוד, ובדרך כלל - אני מקשיב בכנסים, קראתי פוסט יפה של מישהי מ-Riskified שכותבת איך הם עובדים עם Argo - וראיתי שהקונצנזוס, פחות או יותר, הוא להפריד את ה-Repository שהמכונות קוראות וה-Repository שבני האדם קוראים . . . אז בדרך כלל, מה שמקובל זה ליצור, נגיד, את “Yaron-API”, להגיד שזה הולך להיות ה-Service שלי, ופה אני, כבן אדם, כותב קוד - ואז לתת למכונה לעשות את ה-Commit לאיזשהו Repository אחר, שיקרה “Yaron-API-Deployment”, ומשם לקחת את ה-State שה-Argo מסתכל עליו.אנחנו, פשוט בגלל שרצינו את הנושא הזה שאמרתי קודם - רצינו לשפר ארגונומיה של מפתחים - לא רצינו שיהיה להם את ה-Context-Switch הזה, את המעבר כל הזמן בין ה-Repo שבו הקוד כתוב לבין ה-Repo שבו ה-Deployment קורה . . .(יונתן) גם יש עוד יתרון - אתה תעשה git-log ותראה את ה-Deployments ולא . . . הרבה אנשים אומרים הפוך . . . הם אומרים “אני לא רוצה לראות Commit-ים של מכונה” [אחלה שם לפודקאסט, אגב], זה לא קדוש.אבל אנחנו מאמינים שה-Commit-ים האלה באמת, כמו שאתה אומר, מייצגים את השינוי של ה-State.(רן) אני מניח שהויכוח הזה, או הדילמה הזו, במצב של Mono-Repo היא פחות רלוונטית - עדיין יש התלבטות, נניח שאנחנו בעולם של Mono-Repo, ואני מבין שאתם לא - יש את ההתלבטות של האם לשים את הקונפיגורציה קרוב לקוד, או את כל הקונפיגורציה במקום אחד, לצורך העניין באיזשהו Branch או תת-עץ של ה-Mono-Repo.גם אני הייתי בהתלבטות הזאת הרבה פעמים, ואני חושב שיש פה Trade-off - מצד אחד זה נחמד שהקונפיגורציה קרובה לקוד, ולפעמים ממש בתוך הקוד; ומצד שני, זה גם נחמד לקבל איזשהו מבט על כל הקונפיגורציה של כל ה-Service-ים השונים, וככה להבין איך הדברים קורים.אז אני מבין שאתם יותר נוטים לשים את הקונפיגורציה קרוב לקוד, אם אפשר לקרוא לזה “קונפיגורציה”, בוא נקרא לזה . . .?(ירון) אז גם פה יש כמה תשובות . . . דבר ראשון - אנחנו לא נגד Mono-Repo, אנחנו מאוד-מאוד בגישה של “לתת למפתחים ולמפתחות פשוט להחליט מה הכי טוב ב-Context של המשימה הנוכחית” ולכן יש אצלנו קבוצה שלמה שעובדת בתוך Mono-Repo אחד, שמחזיק את כל ה-Service-ים, בלי שום קונטקסטויש לנו קבוצה שעובדת עם Repo-per-Serviceויש קבוצה שלישית, שעובדת עם Mono-Repos קונטקסטואליים . . . (יונתן) אתם לא נגד Mono-Repo - פשוט יש לכם הרבה כאלה, זה מה שאתה אומר . . . [“רבים מידידי הטובים ביותר” וכו'…](ירון) בדיוק . . . אנחנו אוליגו-Repo . . .(רן) לא, יש לזה גם שם - Multi-Mono-Repo . . . כתבו את זה לפנינו . . .(ירון) כן . . . אז לא הגענו למצב שבאמת אנחנו יכולים להגיע לרמות של Facebook, והקסמים שהם עשו עם Mono-Repos שם.בסוף, Mono-Repo ענק שמחזיק את כל הקוד זו לדעתי משימה הנדסית כבירה, וצריך לעשות אותה בצורה מאוד מחושבת.ושוב - בגלל הצורה ה-Distributed והלא-פרספקטיבית שאנחנו עובדים בה, שאנחנו לא רוצים להגיד לאנשים איך לעבוד, אז כמעט בלתי אפשרי לחשוב על “כל המפתחים ב-Soluto כותבים ל-Repository אחד”,כי דברים קמים, אנשים רוצים לשנות דברים, להתנסות עם משהו חדשוברגע שאנחנו מאפשרים את זה, אז לא נקבל אף פעם את השליטה של להגיד לאנשים “כל ה-Commit-ים שלכם עכשיו יהיו רק ב-Soluto-Code” [וגם אז - רק אם הם טובים]וזה נחמד, כי זה כן גורם לנו להתקדם קדימה . . .(רן) כן . . . אני חייב להעיר שאם כל זה שאני מכבד את שיקול דעתם של המפתחים, ואני הרבה פעמים גם לא רוצה להגיד למפתחים אחרים מה לעשות - אני חייב להגיד שלפעמים יש הרבה חוכמה בכן להגיד למפתחים מה לעשות, כי אני חושב שהרבה פעמים ההחלטות הן שרירותיות, והחלטה אחת טובה כהחלטה אחרת - הבעיה שכששתי החלטות, ששתיהן שקולות, אבל כששתי החלטות נלקחות, אז אתה בבלגן . . . אז דווקא בקטע הזה אני נוטה להיות קצת יותר הדוק, ולבוא ולהגיד “חבר'ה, נכון - יש פה שתי דעות, אבל אני בוחר את זאת, “כי ככה” - ובואו נתגלגל עם זה הלאה”כי אחרת פשוט נוצר בלגאן - וראיתי את זה קורה בחברות גדולות . . . ראיתי את זה קורה ב-Google,אני מבין ממה שאתה אומר שזה קורה גם ב-Facebook . . . מתקבלות החלטות שרירותיות, וכל המפתחים לפעמים אולי מקטרים - אבל הולכים לפיהןוזה עושה הרבה טוב, בסופו של דבר - “המסר שלי לאומה” הוא של “לא לפחד לקבל החלטות בשביל המפתחים”, ובסופו של דבר, בשורה התחתונה, אני חושב שזה עושה טובה, כי זה יותר קל כשדברים הם אחידים.(ירון) זה מעניין מאוד - ואני חושב שמה שאתה מציין הוא גם פונקציה של גדילה.אני חושב שיש שלב מסויים שבו חברה יכולה להרשות לעצמה להתפזר יותר ולנסות יותר דברים, ויש שלב מסויים שבו צריך להתכנס ולהגיד “אוקיי, ה-Business הגיע ל-SLA מאוד גבוה שהוא צריך לספק, החברה גדולה מספיק כדי שלא נוכל לתת ל-15 Frankenstein-ים לרוץ במקביל, המפלצות של . . .(רן) כל מפלצת טובה . . . כל מפלצת לכשלעצמה היא בסדר . . . אני לא אומר שההחלטות הן לא נכונות, הבעיה שיש החלטות אחרות, והחלטות סותרות לפעמים, החלטות שלא עובדות טוב אחת עם השנייהאו אפילו אם לא סותרות - לייצר Infrastructure שמתאים גם . . . לצורך העניין אפשר לקחת שפות תכנות - Infrastructure שמתאים גם ל-Python וגם ל-Ruby וגם ל-Java זה אפשרי, אני בטוח שזה אפשרי - זה רק יותר קשה.אז אתה יודע - שפות תכנות אפשר בדרך כלל, רוב החברות מתקבעות, זו לא הבעיה - אבל עדיין יש עוד הרבה בחירות אחרות:איך עושים Messaging, איך שומרים, באיזה Database משתמשים וכו'.(יונתן) אני חושב שאני מסכים - מבחינתי, המדד של מתי צריך לקחת כזאת החלטה או “דיקטטורה נאורה” שכזאת זה כשאתה צריך “לעבוד לרוחב”דיברת על תשתיות - ברגע שאתה צריך להתחיל . . . כשתשתיות נהייה “עניין”, אז קשה לתמוך בוריאנטים השונים . . . [כן . . .](רן) בוא נחזור רגע אחורה ל-GitOps . . . אז נלך, שנייה, Back-to-Basics: הבנו את הקונספט של “Mater ו-Production צריכים להיות שווים”. אז אני, אתה יודע, מתחיל ככה ב-Back-to-Basics ואני רוצה לעשות GitOps, אוקיי? אז מה אני עושה? אני מייצר Git-Hook, ובעצם אני צריך לדאוג לשני דברים . . .אחד זה שיהיה לי קוד שיודע לתאר את סביבת ה-Production, נגיד - כמה Server-ים, כמה Services, מה ה-Multiplicity שלהם, כל מיני דברים . . . מה שיודע. . . לצורך העניין קובץ YAML שיודע לתאר את סביבת ה-Production, ובטח יש שפות למכביר שיודעות לעשות את זה.אז אני צריך קוד שיודע לתאר את סביבת ה-Productionושתיים - אני צריך לדעת לעשות איזשהו Git-Hook, נגיד, שכל פעם שעושים Commit אז Production מתעדכן לפי מה השינוי האחרון.אז זה אולי GitOps בממש-ככה-30,000 רגל - ואתה הזכרת שיש כמה כלים שיודעים לעשות את זה - הזכרת קודם את Flux של WeaveWorks והזכרת את Argo של Intuit - ואני מניח שיש עוד כלים אחרים בשכונה.אז אם קם הבנאדם בבוקר ואומר “יאללה - בא לי GitOps!” [חמור מאוד] או “אני חייב GitOps!” [תופעת לוואי חדשה?] או “המנהלים שלי אומרים לי שאני צריך GitOps . . . “ [המקרה היותר נפוץ?] - איך אתה ממליץ לו להתחיל?(ירון) אז אני אזכיר פה את Kelsey Hightower, שהוא מן בחור כזה שאוהב לדבר על Kubernetes, מ-Google [בדיוק זז שם קצת], ואני מאוד אוהב גם את הצורה שבה הוא מנגיש ידע מורכבנגיד, לפני הרבה שנים הוא כתב את Kubernetes-the-hard-way [אבל כבר קישרתי לזה…], שזה מעיין מדריך על איך להרים את Kubernetes מ-Scratch, לעשות את כל הפעולות שעשויות, עבורנו, בצורה ידנית - וכשעברתי דרכו הרגשתי היכרות הרבה יותר טובה עם התשתית הזו, שהיום מעירה אותי בלילה אם יש לה בעיה . . .והוא עושה הרצאה מדהימה - יש כבר כנסים שנקראים GitOps Days מרוב שהדבר הזה טרנדי - הוא עשה הרצאה ממש מעניינת בכנס שהיה בשנה שעברה, שבה הוא מראה איך עושים Reconciliation Loop מ-Scratch . . . הוא ממש כזה . . . מראים קוד שהוא כותב ב-Go תוך כדי על המסך, תוך כדי הכנס - והדבר הזה מייצר, במקרה שלו, פונקציות של Cloud Run, שזה איזשהו Serverless כזה של Google.אני חושב שההרצאה הזאת היא פתיח מדהים בשביל לעשות דימיסטיפיקציה (Demystify) למשהו שבאמת, כמו שאמרת, יכול להישמע מורכב ויכול להישמע אפילו די מפחיד, כי זה מראה שהדבר הזה יכול להיות מאוד נשלט.אחרי שעוברים את המשוכה הזאת, של להבין את הקונספט, הייתי כן ממליץ לבחור את אחד מהכלים הגדולים - בין אם זה Argo או Flux, כי הם כרגע הכלים ששולטים בשוקאבל גם חשוב מאוד, כנראה, להבין את הבעיה - אם Argo ו-Flux מתאימים מאוד לתחזוקה של Kubernetes, אז אם רוצים לתחזק משהו שהוא מחוץ ל-Kubernetes, צריך לבחור משהו שהוא כלי שיודע לעשות את זה גם בלי הכוח הזה.וכמו שאמרתי - גם Puppet ו-Chef יודעים לעשות את זה עבור מכונות Linux, ויש כלי שנקרא Atlantis, שיודע לעשות את זה עבור Terraformואז בעצם כל אחד מהכלים האלה יכול להיות Entry-point ל-GitOps, לא משנה מה האתגר שכרגע עומד מולכם.(רן) נזכיר, אני חושב ששווה אולי לבוא ולמצוא את המקבילות בין הכלים השונים - אז גם מי שמכיר את Puppet ואת Chef - הם כולם עובדים באיזשהו Mode של Reconciliation Loopזאת אומרת - מסתכלים מה המצב הרצוי ועושים Apply, וכל פעם עושים Reconciliationזאת אומרת שאם משהו שהגדרת, לצורך העניין, שצריך להיות קובץ במערכת על מחשב והוא לא שם - אז הוא בכל פעם ייצר אותו מחדש אם הוא ימחק.גם Puppet וגם Chef עובדים באותה צורה - וגם Kubernetes הרבה פעמים עובד באותה צורה, זאת אומרת שגם ל Kubernetes יש Reconciliation Loop שמסתכל על ה-Resource-ים ועושה Apply ל-Resource מחדש בכל פעם שצריךכמובן שלא סתם . . . אז בהקשר הזה, המוטיב הזה של ה-Reconciliation Loop עובר, כנראה, בהרבה מאוד מהכלים שהזכרת.(יונתן) לפי מה שירון . . . לפי מה שתיארת, יש יכולת גם לעדכון מהצד השני - יכול להיות שזה לא שב-Production, לא רק שחסר קובץ, אלא שמישהו, לא יודע, שינה אותו, או שמישהו נכנס ל-UI של ה- Management של Kubernetes ושינה את ה-State Loader - איך ה-Flow המרכזי . . . מה יקרה אז?(ירון) זה בעיני הדבר . . . זה ממש ה-Added-Value, אולי אפילו ה-Killer-Feature של GitOps, כי אלו הפתעות שתמיד היו תופסות אותנו במקום הכי לא מוכן, ואני מאמין שזה קרה להרבה צוותי Production [מה?! מה פתאום?]שפשוט איזשהו שינוי נעשה בזמן של מקרה חירום, או אולי כלאחר-יד מתוך איזשהו חוסר הבנה, ולא הייתה לדבר הזה שום נוטיפיקציה (Notification)ואז בדרך כלל מגלים את זה חודשים, אם לא שנים, אחר כך, כשהידע כבר נשכח . . . יש את הפתגם הזה - שקוד שכתבת אחרי חצי שנה הוא כמו קוד שנכתב על ידי מישהו אחר [יש לזה אפילו שם - Eagleson's law] . . . אז גם עבור שינויים ב-Production הדבר הזה תקף - מה גם שהם הרבה פחות מתועדים . . .ב-GitOps, בצורה שאנחנו עובדים, Argo מחובר ל-Slack - וכל פעם שמישהו עושה Deployment יש הודעה חמודה כזו עם שאומרת “הקוד שלך שינה בהצלחה את ה-Production”אם במקרה, נגיד, הקוד שלי מסתמך על איזשהו Redis חיצוני, וה-Redis הזה פתאום נפל, אז אני אקבל “לב שבור ועצוב ” שאומר לי “רוץ מהר! משהו השתנה, זה כבר לא נראה כמו ה-Production, אני שבור וקשה לי” . . . (יונתן) אוקיי . . .(רן) מה ה-Hack החביב עליך? נגיד, מסוג הדברים שהתעוררת בשתיים-שלוש בלילה, וגילית “מי לעזאזל עשה את זה?!”? . . . אני אתחיל עם שלי - נניח שאתה נכנס ואתה מגלה שמישהו, לפני חצי שנה, כמו שאתה אומר, ערך את קובץ ה-Host והוסיף שם איזשהו Entry, כי כנראה פעם זה תיקן לו איזשהו משהו . . . עכשיו את מגלה ש Name Resolution מחוץ ל-Host עובד שונה לחלוטין ממה ש-Name Resolution עושה בתוך ה-Host - וזה מסביר הרבה דברים, בדרך כלל . . . (יונתן) סתם, פתאום התחלתי לחשוב האם זה יכול לעזור באילו-שהן בעיות של Security? או של מישהו ששינה משהו עקיף ב-Production, והוא לא עשה Git-Merge וכל הסיפור הזה . . . .(ירון) אז בהחלט . . . אני רק אגיד על ה-Hack-ים - שזה תמיד יהיה נס, אין ספק . . .ה-Hack החביב עלי זה שכשעובדים ב-High Availability, שולחים גרסא אחת של Production ל-Site אחד וגרסא שנייה ל-Site אחר - ועכשיו לך תבין למה חצי מה-Traffic מחזיר תשובה אחת וחצי מחזיר משהו אחר . . .(רן) יש את הסיפור המפורסם על ה-Trading. . . (ירון) כן, Knight - מסכנים . . .(רן) . . . שהם עדכנו גרסא, אבל כנראה נשאר שרת אחד או שניים, שאולי היו Offline בזמן עדכון הגרסא - וזה גרם לחברה לפשוט את הרגל, חברה של שווי, בגדול, של מיליארד דולר, שהפסידו ב-Algo-Trading את כל הכסף שלהם בגלל איזה Deployment שלא עלה נכון . . .(ירון) כן, זה סיפור נורא כשקוראים אותו, ופרקי הידיים מלבינים כי אתה חושב שאולי זה קורה לך עכשיו . . . (רן) ממש עכשיו . . . אבל ממש ממש עכשיו . . .(יונתן) . . תן לי רגע רק לבדוק את ה-Inspection . . .אז בנוגע ל-Security - יש כאן באמת יתרון אדיר, כי גם - ב-Continuous Delivery מסורתי, אני חייב לתת לתשתית שלי את היכולת לגשת ל-Production, ונגיד, אם זה Jenkins שיושב אצלך בשרת, אז לא אכפת לך כנראה לשים שם איזושהי גישת-כתיבה ל-Productionאנחנו עובדים עם SaaS, עם codefresh - חברה ישראלית שעושה CI ממש נחמד לדברים שהם Docker ו-Kubernetesועדיין, עם כל האהבה והרצון הטוב - אנחנו מעדיפים שהם לא יוכלו לגשת ל-Production . . . ברגע שאנחנו עושים את ההפרדה הזאת, הם יכולים לגשת רק עד הקוד - והמוצר היחיד שיכול לגשת ל-Production הוא ה-Reconciler של GitOps, שבמקרה שלנו זה שרת של Argo שיושב על ה-Clusterואז ה-Attack surface הוא הרבה יותר נמוך - כי הוא מלכתחילה יושב שם ומלכתחילה עושה שינויים, וזה טבעי שאצלו ישבו המפתחות [חביתוש?].ואני אעשה גם איזה Shout-out לפרויקט Open-Source שכתבנו ב-Soluto ושנקרא kamus - והוא גם מתבסס על GitOpsהרעיון שעשינו שם הוא שהראינו שה-Secret-ים ב-Kubernetes הם עוד לא בשלים, פחות או יותר - Secrets ב-Kubernetes הוא פשוט איזשהו אובייקט מקודד ב-Base 64, וזה אומר שכל מי שניגש ל-UI ב-Kubernetes ולוחץ על הכפתור של העין פשוט רואה את ה-Secret, פשוט רואה את ה-Plain-text, ולא הרגשנו עם זה בנוח . . .אז כתבנו Controller, שאפשר להתקין על כל Cluster, ומה שה-Controller הזה עושה הוא לאפשר למפתחים להצפין את הערכים מקומית אצלם על המחשב, לעשות להם Commit ל-Gitואז לכל Container נוסף איזשהו Init-Container, שעושה Encryption על ה-Cluster.זה גם מאוד מחזק את ה-Security, כי ה-Decryption יכול לקרות מעכשיו רק בסביבת ה-Productionזה דומה, נגיד, ל-Vault, אבל מגיע עם Operation overhead הרבה יותר נמוך.(רן) הזכרת מקודם - ואולי בזה, ככה, נסיים את הערב - הזכרת מקודם שעם המעבר ל-Kubernetes, מפתחים הרגישו איזושהי עלייה ברמת המורכבות, שהם פתאום צריכים להבין יותר Production, ואז יצרתם ממשק משתמש, או לפחות אני תיארתי את זה ככה - יצרתם ממשק משתמש, ממשק מפתח, באמצעות GitOps.האבחנה שרציתי להגיד זהש-Kubernetes מאפשר GitOps, נכון? אולי זה לא הכלי היחיד שמאפשר GitOps, אבל בהחלט אחד הכלים שמאפשרים GitOps.כי הוא נותן לך לתאר את סביבת ה-Production ולעשות לה Apply יחסית בקלותאז Kubernetes אמנם מאפשר GitOpsמצד שני, לפני Kubernetes אולי לא היה צריך GitOps, כי הדברים היו יותר פשוטים . . .אז אני סתם תוהה האם זו אבחנה שנראית לך מוצדקת, נכונה?(ירון) אני חושב שכולם מכירים את ה-Death-Star של Netflix, שמראה פשוט מיליארד שירותי microService שמדברים אחד עם השניוהם כתבו את Spinnaker, שזה כלי שהוא מזכיר . . . הוא מאוד מאפשר את הסיבוכיות שיכולה להגיע בדברים של Continuous Deliveryעם כל היופי והאלגנטיות של הכלי הזה, אני חושב שהוא בא לשרת משהו שאם לא צריך אותו, אז זה יהיה נחמד להיפטר ממנו.ושוב אני אצטט את Kelsey Hightower שאומר שהקסם והחידוש ב-Kubernetes זה שהתשתית מתוארת כדאטה, לא כקונפיגורציה (Configuration)זו לא סדרה ל צעדים אימפרטיביים (Imperative) שדרושים כדי שמכונת Linux תוכל להגיש קוד ב-Ruby - זה תמיד יהיה דאטה - זה תמיד יהיה קבצים ב-YAML שנשמרים ב-Database, והם אלה שמאפשרים את העלייה של Production.(רן) כן - וזה אולי אחד מהדברים שמאפשרים לעשות GitOps בצורה יחסית פשוטה, כי כל מה שצריך לעשות זה Commit לקובץ YAML - ולעשות Apply . . .(ירון) בהחלט(רן) טוב - אז תודה רבה, ירון, היה סופר-סופר מרתק. יש משהו שהיית רוצה עוד להגיד לפני שנסיים?(ירון) אז אני אשמח להגיד שאנחנו מגייסים - גם לצוות שלי וגם למגוון תפקידים ב-Solutoאם כל מה ששמעתם פה נשמע לכם מעניין, מבחינת החזון של החברה או מבחינת הדברים היותר Geek-יים - בואו, תתראיינו, תתקבלו . . . (רן) מעולה . . .(יונתן) אה, אפשר למסור ד”ש, רן?(רן) קדימה, נו . . . עם איזה שיר? רגע, שאני אכין את התקליטייה . . .(יונתן) שנכין בתקליטייה . . . אז למאזין אורי להב, ששט לו בדוגית בחופי הים התיכון . . . (רן) אורי - מתגעגעים אליך, חזור הביתה!טוב - אז תודה רבה לשניכם, ויאללה, נשתמע . . . להתראות.ובהצלחה ל-Reversim Summit 2021 . . . הקובץ נמצא כאן, האזנה נעימה ותודה רבה לעופר פורר על התמלול

Springwald Radio
Persönliche Computergeschichte(n)

Springwald Radio

Play Episode Listen Later Jul 8, 2021 108:23


Thomas und Daniel erzählen davon, in den 1980er Jahren mit den ersten Home-Computern aufzuwachsen.

Springwald Radio
Persönliche Computergeschichte(n)

Springwald Radio

Play Episode Listen Later Jul 8, 2021 108:23


Thomas und Daniel erzählen davon, in den 1980er Jahren mit den ersten Home-Computern aufzuwachsen.

airhacks.fm podcast with adam bien
How Java WebSocket Implementation Happened

airhacks.fm podcast with adam bien

Play Episode Listen Later Jun 14, 2021 70:07


An airhacks.fm conversation with Justin Lee (@evanchooly) about: C-64, the Run Magazine with source code, summer olympics - the joystick destroyer, coding "triangle with trigonometry" in Basic, computer were like science fiction, random access file in C-64 basic, IBM PCjr BASIC, writing American Football simulator, starting Turbo Pascal, learning Oberon and C, NAG and fortran, loosing a sub tree, the Forth programming language, starting Java on HP-UX machines, starting with JDK 1.0.2, the amazing Sun branding, Software Development Lifecycle - SDLC, writing software costs estimation in Java, 3D modelling in TCL/TK, working with TogetherJ, using vim professionally, starting with Eclipse and JBuilder, building systems for online grocery shopping in 1998, using jhtml with Dynamo ATG, building an own application server with own persistence, using the blaze rules engine, using Java Server Pages with Jasper compiler, JSP was a weekend project, JSPs could be sold SSR, working on Glassfish and Project Grizzly, implementing WebSocket in Java on application servers, using Comet communication style with Atmosphere, using GlassFish with grizzly for long polling, writing unit tests for WebSockets in a Chrome client, Tyrus took the Grizzly implementation as base, Dany Coward wrote a Web Socket book, SPDY and Bosh were the bases of HTTP/2, the sticky session Web Sockeet problem, using WebSockets for Java application servers clustering, starting at Squarespace, Squarespace used Java on the backed any MySQL / MongoDB, fronted was implemented in YUI (Yahoo UI), maintaining Morphia for MongoDB, joining Red Hat and working on quarkus, working on Quarkus MongoDB integration, Quarkus Kotlin integration, eventually and evancholy Justin Lee on twitter: @evanchooly, Justin's blog: https://www.antwerkz.com

airhacks.fm podcast with adam bien
From Personal Java, over Java EE to Serverless and back to the Java Platform

airhacks.fm podcast with adam bien

Play Episode Listen Later May 10, 2021 66:12


An airhacks.fm conversation with David Delabassee (@delabassee) about: C-64, Commodore 128, Amiga 500, and Amiga 2000, Basic then assembler, developing a basic horse racing statistics application, saving the state to the tape, understanding Peeks and Pokes, Amiga 500 vs. Atari ST, extending Amiga 2000 with a PC board, starting to program Turbo Pascal on a PC, the 47 MB hard disk, a vectorized walking person in Turbo Pascal, the War Games movie, the acoustic coupler, the U.S Robotics modems, identifying modems by sound, writing a terminal application, learning how to learn, using Vax VMS at the university, a pigeon-based failsafe system, creating a word processor in C to write Safety Data Sheets, writing backend application for Motorola Unix running on Motorola Hardware, discovering Java applets in 1995, teletext and minitel, developing a web phone in 1997 in Personal Java, booting a phone in 15 minutes, building a TV set top box for Navio, starting at Sun Microsystems and Javasoft as pre-sales and a Java Ambassador, Java Developer Connection (JDC) and Duke Dollars, Java EE evangelist at Oracle, inspiring JavaOne conferences, spending time with Glassfish in the "field", working on EE4J and Java EE to Jakarta EE transition, the trigger of open sourcing the Java EE platform, moving to serverless organization at Oracle, FN project is used under the hood of Oracle Functions, joining the Java platform group, launching the Java Inside podcast, launching the inside.java website focussing on Java SE platform David Delabassee on twitter: @delabassee

airhacks.fm podcast with adam bien
How lit-html happened

airhacks.fm podcast with adam bien

Play Episode Listen Later Mar 29, 2021 70:46


An airhacks.fm conversation with Justin Fagnani (@justinfagnani) about: creating fireworks animations with Apple IIe, games were hard to get for Apple IIe, "hello, world" with Apple Basic, enjoying the un-productivity and making funk music, Basic, Turbo Pascal, Turbo C, Java and Python, starting with Java 0.9 and Applets, Microsoft introduced JScript (Visual J++) with major incompatibilities to Java, staring with Python and Django, Python over Ruby, studying an algorithm book for two weeks to pass the interview at Google, using FileMaker, starting at Google's HR department compensation planning system, creating the AppMaker during the "free" 20% Google time, AppMaker was shutdown in 2020, AppMaker is an low-code application builder, one-click deploy and one-click deploy, GWT and Java were heavily used at Google, using Java's Rhino to run JavaScript on the server, the AppMaker clone with Dart, writing parsers and Polymer Dart, Chrome supported Dart, leaving Dart before flutter, Angular Dart is very popular at the apps group at Google, wiz is the most popular web framework at google, joining the polymer team, html imports vs. JavaScript imports, CSS-modules and JSON-modules proposals, lit-html start to provide better tooling story for Polymer 3.0, lit-html vs. hyper-html, ES 6 template literals enable great performance for lit-html, Microsoft's fast framework was inspired by lit-html, lit-html source code fits on a slide, lit-html source size is close to 3kB, the first lit-html breaking change since 2017, the contractual obligation to support IE, lit-html vs. lit-element, lit-element offers a richer, reactive lifecycle, decreasing lock-in is lit's design philosophy, passing data between component trees, cross-DOM communication with Custom Events, Web Components conventions are micro stacks, less and less needs for a JavaScript framework, chrome is shipping with import maps, web platform - and the tooling is optional, polymer was not the component host, polymer is popular inside google, lit-html is growing fast at google, Chrome OS is using lit-element, Chrome Dev Tools is implemented with lit-html Justin Fagnani @justinfagnani, @polymer and @lit_html on twitter

Zinvol Gezever
Afl. 023: Janelas noventa e oito

Zinvol Gezever

Play Episode Listen Later Feb 20, 2021 88:08


Herinneringen aan de Kaai, wijsheden rond lesgeven en ruilhandel in wijn en porto. Bert Van Rillaer, die de EhB verliet om warmere oorden op te zoeken, komt mee zeveren. Wij proberen onze job veilig te stellen door Bert te overtuigen dat Portugal zo slecht nog niet is. Vermeld in de podcast: Rute '98 (Alles kan beter): https://www.youtube.com/watch?v=sx-tTMIByb8 Arduini: https://www.arduino.cc/ Circuit Playground: https://code.org/circuitplayground BBC micro:bit: https://www.microbit.org/ Turbo Pascal: https://en.wikipedia.org/wiki/Turbo_Pascal Isolab: (bestaat niet meer, denk ik) La Linea: https://www.youtube.com/watch?v=6iw_rdx11V0 Berts favoriete Portugese wijnen komen uit de Douro- en Alentejo-regio: https://en.wikipedia.org/wiki/Douro_DOC https://en.wikipedia.org/wiki/Alentejo_wine Outlander: https://www.imdb.com/title/tt3006802/ The Pillars of the Earth (Ken Follet): https://www.goodreads.com/book/show/5043.The_Pillars_of_the_Earth Kinderen en spraaktechnologie, niet altijd een goede combinatie: https://www.youtube.com/watch?v=r5p0gqCIEa8 Futurama: https://www.imdb.com/title/tt0149460 WandaVision: https://www.imdb.com/title/tt9140560/ Vragen, aanvullingen of opmerkingen: huiswerk@zinvolgezever.be. Je vindt ons ook op YouTube: https://www.youtube.com/channel/UCZ2QfheiZ-sVUVrBPSgPw8g --- Send in a voice message: https://anchor.fm/zinvol-gezever/message

airhacks.fm podcast with adam bien
Plasma is the new "Hello,World"

airhacks.fm podcast with adam bien

Play Episode Listen Later Jan 14, 2021 41:07


An airhacks.fm conversation with Bert Jan Schrijver (@bjschrijver) about: C64, playing Paper Boy, winter games - the joystick destroyer, BASIC, print, sprites peek and poke, resilience patterns and fault tolerance motivated by a stronger brother, writing text based adventures in BASIC, programming Turbo Pascal on a 486, smoking computers, joining the demo scene and the 28k modem, generating samples - the SVG for music, staring with Java at the university, experimentation with Java Applets, enjoying static imports with Java 5, plasma with an Java Applet, flood prevention simulation in Java, building a text classification system in Java, the beginning of AI with Java, using Java Server Pages and Servlets at an insurance company, combining Groovy with EJB 3, starting OpenValue with 25 people, migration from Java EE servers to quarkus, Quarkus--the comeback of Java EE, WildFly Swarm and "I don't want your Thorntail" podcast episode, Guild42 Serverless Java #slideless presentation, GraalVM made Java appealing again in the server space, EJB pooling could solve lambda cold start problems, from developer the manager - and the end of plasmas, Bert's plasma in JavaScript: github.com/bertjan/html5-canvas-js-plasma, OpenValue is hiring, Bert Jan Schrijver on twitter: @bjschrijver and github.com/bertjan

airhacks.fm podcast with adam bien
Kamenicky Encoding, Enterprise Java and Helidon

airhacks.fm podcast with adam bien

Play Episode Listen Later Dec 21, 2020 52:24


An airhacks.fm conversation with Daniel Kec (@DanielKec) about: playing games on dell 386dx, playing Commander Keen, wolfenstein, golden axe, hexen, beautiful markup with microsoft frontpage, On the Internet, nobody knows you're a dog, Hot Metal Pro, Net Object Fusion, Frontpage, HTML editors, Adobe Pagemill, NetBeans and IntelliJ IDE, Turbo Pascal at high school, enjoying Transistor-transistor logic TTLs and IC, the problem with CMOS and static charge, transition from Turbo Pascal to Borland Delphi, private, university in prague, Kamenicky Encoding and codepage 895, starting to love Java after Visual Basic experiences, starting with JDK 1.6, xelphi and forte for Java, episode with Jaroslav Tulach, x-definition validation language for XML, the super senior developer, find a bug: Donald Knuth and TeX, writing plugins for Netbeans, inheriting the register of traffic accidents, using WebSphere with wizards and EJB 2.1, migrating to Eclipse and xdoclet, rational developer studio IDE, MDA as solution for generating superfluous artifacts, the great dash dispute, parkinson's law of triviality, transition from EJB 2.1 to EJB 3.0, analyzing logfiles with the R programming language, R runs on GraalVM, starting at Oracle at the Java Architecture for XML Binding (JAXB), Jersey, Helidon team, Daniel Kec on twitter: @DanielKec and on github: github.com/danielkec

internet oracle jersey eclipse java ic html cmos ide tex transistor front page xml mda encoding visual basic commander keen jdk donald knuth turbo pascal netbeans ejb websphere enterprise java
The Stack Overflow Podcast
Cleaning up build systems and gathering computer history with Adam Gordon Bell

The Stack Overflow Podcast

Play Episode Listen Later Dec 11, 2020 29:04


As promised, here is the grass hat.You can find out more about Earthly here.We spend a little time talking about Nix OS the operating system you can roll back if you don't like a patch.Raise your hand if you remember learning computer science with Turbo Pascal.Maybe you didn't know, but discs aren't as slow as people think. Adam's recent episode is about upending common assumptions on IO performance. Shoutout to our Lifeboat badge winner of the week, Josh Smift, for answering the question: How to delete *.web files only if they exist. 

The Stack Overflow Podcast
Cleaning up build systems and gathering computer history with Adam Gordon Bell

The Stack Overflow Podcast

Play Episode Listen Later Dec 11, 2020 29:04


As promised, here is the grass hat.You can find out more about Earthly here.We spend a little time talking about Nix OS the operating system you can roll back if you don't like a patch.Raise your hand if you remember learning computer science with Turbo Pascal.Maybe you didn't know, but discs aren't as slow as people think. Adam's recent episode is about upending common assumptions on IO performance. Shoutout to our Lifeboat badge winner of the week, Josh Smift, for answering the question: How to delete *.web files only if they exist. 

airhacks.fm podcast with adam bien

An airhacks.fm conversation with Lukas Eder (@lukaseder) about: a Unisys 8086, don't break your dad's computer, playing with "format", starting with QBasic and 12 years, serial cable chat programs in QBasic, Turbo Pascal with 15, changing the font in the BIOS, starting CMS with PHP and MySQL, no transactions, no connection pools in PHP, the beginning with serverless and CGI, Java is not a website technology, Java static pages vs. PHP includes, enterprise PHP: Zend Framework, from PHP to Java, PHP 4 to PHP 5 migration and the assignment operator, enjoying Java 1.3, Ant vs. Maven 1, a reporting project for a telco company with Java and Hibernate, writing backends in SQL and frontends with XSLT, stateless, functional programming with XSQL and SQL, jooq manual was built with XSLT, apache Cocoon and XSLT, Servlets and Java Message System (JMS) with WebLogic, from Hibernate query builder to jooq in 2006, cascading interfaces which feel like SQL, everyone built a query builder, rewriting jooq - jooq2 in 2008, queryDSL - the abstraction across multiple query language, jooq only abstracts SQL, dynamic "where" clauses with criteria query, jooq stands for: j-object oriented query, jooq started with stored procedure support, SQLJ the preprocessor, PRO-C* -> the C preprocessor for Oracle to generate boring glue code, jooq 1 was a procedural query builder, jooq 2 DSL API looks like SQL and uses the query builder layer, the database first design, SQL is not composable, SQL: different syntax on different levels, 1000 lines of jooq code is not unusual, DSLContext - the starting point, commercial support for jooq is available, database migrations with jooq, opensource vs. commercial edition, dependency on products, saving costs with opensource, focus on Jakarta EE, Java EE, MicroProfile API vs. direct runtime dependencies, working with dynamic SQL and jooq, database vs. Java first Lukas Eder on twitter: @lukaseder

The History of Computing
The PASCAL Programming Language

The History of Computing

Play Episode Listen Later Jul 13, 2019 10:08


PASCAL was designed in 1969 by the Swiss computer scientist Niklaus Wirth and released in 1970, the same year Beneath the Planet of the Apes, Patton, and Love Story was released. The Beatles released Let It Be, Three Dog Night was ruling the airwaves with Mama Told Me Not To Come, and you could buy Pong and Simon Says for home. Wirth had been a PhD student at Berkeley in the early 1960s, at the same time Ken Thompson, co-inventor of Unix and author of the Go programming language was in school there. It's not uncommon for a language to kick around for a decade or more gathering steam, but PASCAL quickly caught on. In 1983, PASCAL got legit and was standardized, in ISO 7185. The next year Wirth would win the 1984 Turing Award. Perhaps he listened to When Doves Cry when he heard. Or maybe he watched Beverly Hills Cop, Indiana Jones, Gremlines, Red Dawn, The Karate Kid, Ghostbusters, or Terminator on his flight home. Actually, probably not.  PASCAL is named after Blaise Pascal, the French Philosopher and Mathemetician. As with many programmers, PASCAL built THE WORLD'S FIRST FULLY FUNCTIONAL MECHANICAL CALCULATOR because he was lazy and his dad made him do too many calculations to help pay his bills. 400 years later, we still need calculators here and there, to help us with our bills.  As with many natural scientists of the time, Blaise Pascal contributed to science and math in a variety of ways: PASCAL'S LAW IN HYDROSTATICS PASCAL'S THEOREM TO THE EMERGING FIELD OF PROJECTIVE GEOMETRY IMPORTANT WORK on ATMOSPHERIC PRESSURE AND VACUUM including that REDISCOVERing THAT ATMOSPHERIC PRESSURE DECREASES WITH HEIGHT A pioneer in THE THEORY OF PROBABILITY While Indian and Chinese mathematicians had been using it for centuries, PASCAL POPULARIZED THE PASCAL'S TRIANGLE and was credited with providing PASCAL's Identity As with many in the 1600s he was deeply religious and dedicated the later part of his life to religious writings including Pensees, which helped shape the French Classical Period. Perhaps he wrote it while listening to Bonini or watching The History of Sir Francis Drake The PASCAL programming language was built to teach students to program, but as with many tools students learn on, it grew in popularity as those students graduated from college throughout the 1970s and 1980s. I learned PASCAL in high school computer science in 1992. Yes, Kris Kross was making you Jump and Billy Ray Cyrus was singing Achy Breaky Heart the same year his daughter was born.  I learned my first if, then, else, case, and while statements in PASCAL.  PASCAL is a procedural programming language that supports structured data structures and structured programming.At the time I would write programs on notebook paper and type them in next time I had a chance to play with a computer. I also learned enumerations, pointers, type definitions, and sets. PASCAL also gave me my first exposure to integers, real numbers, chars, and booleans. I can still remember writing the word program at the top of a piece of paper, followed by a word to describe the program I was about to write. Then writing begin and end. Never forgetting the period after the end of course. The structures were simple. Instead of echo you would simply use the word write to write text to the screen, followed by hello world in parenthesis wrapped in single quotes. After all, there are special characters if you use a comma and an exclamation point in hello word.  I also clearly remember wrapping my comments in {} because if you didn't comment what you did it was assumed you stole your code from Byte managize. I also remember making my first procedure and how there was a difference between procedures and functions. The code was simple and readable.  Later I would use AmigaPascal and hate life.  PASCAL eventually branched out into a number of versions including Visual PASCAL, Instant PASCAL, and Turbo PASCAL. There are still live variants including the freepascal compiler available at freepascal.org. PASCAL was the dominant language used in the early days of both Apple and Microsoft. So much so that most of the original Apple software was written in PASCAL, including Desk Accessories, which would later become Extensions. Perhaps the first awesome computer was the Apple II, where PASCAL was all over the place. Because developers knew PASCAL, it ended up being the main high-level language for the Lisa and then the Mac. In fact, some of the original Mac OS was hand-translated to assembly language from PASCAL. PASCAL wasn't just for parts of the operating system. It was also used for a number of popular early programs, including Photoshop 1. PASCAL became object-oriented first with Lisa Pascal, Classcal then with Object PASCAL in 1985. That year Apple released MacApp, which was an object oriented API for the classic Mac Operating system. Apple stuck with Object PASCAL until the beginning of the end of mainline PASCAL in 1991, when it transitioned to C++ for System 7. MacApp would go on to burn a fiery death when Apple acquired NeXT. Perhaps it was due to Terminator 2 being released that year and developers figured things had gone full circle. Or maybe it was because REM caused them to Lose Their Religion.  PASCAL wasn't just for Apple. Universities all over the world were using PASCAL, including the University of California San Diego, which introduced UCSD Pascal, which was a branch of Pascal-P2. UCSD p-System was one of three operating systems you could run on the original IBM Personal Computer. Microsoft would then implement the Object Pascal compiler, which caught on with developers that wanted to get more than what BASIC offered. Around this time, people were actually making real money and BORLAND released Turbo Pascal, making it cheap to grab big marketshare. Object PASCAL also begat Delphi, still used to write programs by people who refuse to change today.  Wirth himself was fascinating. He not only wrote The Pascal User Manual and Report but also went on to write an article called Program Development by Stepwise Refinement, about how to teach programming and something all computer science teachers and aficionados should read. His book Algorithms + Data Structures = Programs helped shape how I think of computers even today, because it turns out the more things change the more they stay the same.  He also coined Wirth's law, which states that software is getting slower more rapidly than hardware becomes faster. Every time I see a beachball or hourglass on my laptop I think of that. This could be initially from his work on building a compiler into the ALGOL language, which resulted in ALGOL W and watching that turn into the swamp thing that was ALGOL X and then ALGOL 68, which became so complex and difficult that writing good compilers became out of the question. Due to this ALGOL languished, making room for PASCAL in the hearts of early programmers.  While PASCAL is his most substantial contribution to computing, he also designed parts of Algol, Modula and Oberon, and did two sabbaticals at Xerox PARC,  the first from 1976–1977 and the second from 1984–1985. Here, he would have been exposed to a graphical operating system  and the mouse, before Apple popularized them.  Perhaps one of the most enduring legacies of PACAL though, is A. A is a computer pogromming language that was originally written as a hoax. Dennis Richie had just finished reading a National Lampoon parody of the Lord of the Rings called “Bored of the Rings.” Unix as a parody of Multics mean to “to be as complex and cryptic as possible to maximize casual users' frustration levels” Ken Thompson would go on to describe A this way “Dennis and Brian worked on a warped version of Pascal, called 'A'. 'A' looked a lot like Pascal, but elevated the notion of the direct memory address (which Wirth had banished) to the central concept of the language. This was Dennis's contribution, and he in fact coined the term "pointer" as an innocuous sounding name for a truly malevolent construct.” Anyone who has gotten a null pointer exception should know that their pain is intentional. The prank evolved into B and then C. By the way, the hoax is a hoax. But there is a little truth to every lie. The truth here is that in many ways, C is the anti-pascal. I blame Berkeley in the 60s. But not for wasting your time with the hoax. For that I blame me. I mean, first I blame the creators of Unix, then me.  PASCAL has all but been replaced by a multitude of languages starting with the word Visual, Objective-C, Java, Go, Ruby, Python, PHP, and other more “modern” languages. But it is still, as they said in Beneath the Planet of the Apes, it is “Another lovely souvenir from the 20th Century.”        

The Laravel Podcast
Interview: Marcel Pociot, creator of BotMan

The Laravel Podcast

Play Episode Listen Later Jan 10, 2018 48:08


An interview with Marcel Pociot, creator of BotMan and co-founder of Beyond Code. Marcel on Twitter API Doc generator BotMan BeyondCode Laravel Notification Channels Marcel's Laracon EU talk Night Night Baby | Träum Süss BotMan slack invite Editing sponsored by Larajobs Transcription sponsored by GoTranscript.com [music] Matt Stauffer: Welcome back to the Laravel podcast, today we're talking to Marcel Pociot, the founder of BotMan, the framework agnostic PHP chatbot package. Try saying that two times, 10 times fast. Stay tuned. [music] Welcome back to the Laravel podcast. This is season three where we're doing interviews. It's the people you know—getting to know aspects of them you never understood. Or it's also finding some people who you probably have used their tools or you've seen them but you don't actually, necessarily know who they are. Those names who you've been putting in GitHub require or to Composer require for ages but never actually known who the person is. The guy we have in front of us today, I'm actually curious to see what his entire history of working with Laravel is, but the current most present one that's going on right now is connecting Laravel to chatbots and slackbots, and all that kind of stuff, and this is called BotMan but there's a lot more going on here. First of all, we start with the point where I massacre somebody's name and then we move on to the next point where I ask that person to say their name correctly and then introduce themselves a little bit. Marcel Pociot, that's close, not perfect. He's still smiling, so I didn't massacre it too badly. Can you tell us-- and I'm probably ending up calling you just Marcel through this podcast. Marcel Pociot: Yes, that's fine. Matt Stauffer: That's because it is easier for me to say. Thank You. Can you tell us a little bit about-- just real quick, you don't have to tell us your whole life story, I'll ask those questions but—who are you? What are you doing? What are you about? What's BotMan? What is your new company? Just give us the basics of what should we know about you. Marcel Pociot: Okay. Yes, my name is Marcel Pociot. I think that's at least the German pronunciation. I co-founded a company in December last year. Matt Stauffer: Congratulations. Marcel Pociot: Thank you. Very fresh still. I think you're one of the first people that I actually tell this in person that's not from my family- Matt Stauffer: I got the insider track then. [laughter] Marcel Pociot: -and friends because the website isn't finished yet. Yes. I think I'm quite around in the Laravel community for a bit. Matt Stauffer: You've been working-- I've known you just generally in the Laravel community, but you're one of those people where I know that I've known you but I don't even know how we originally connected. Now, you mentioned that we spoke together at a conference so that it may have been it, but do you have any early claim to fame in the Laravel community? Were there any packages that you did earlier on it that were more popular or is it just that you've been around for a while that you're known? Do you know? Marcel Pociot: Well, I did a few. There is one, I think it's called teamwork, for some user/team association package. Matt Stauffer: I remember that. Marcel Pociot: But they're all a bit older. Matt Stauffer: Where did first start using Laravel? Marcel Pociot: Two and a half years ago, I think. I wasn't doing that much PHP back in the days, at least not with frameworks. At the companies I work with, they were using self-built frameworks which are usually crap. You do this once in your lifetime and never again. Well, I ended up at companies that did it all the time. At one point, we decided that we'd built a SaaS application and we were looking for framework to use. This is pretty much the story I tell everyone when they ask me how I got into Laravel. My boss was really into Zend because of the whole Zend ecosystem, with the Zend Studio and the Zend server. I looked into the Zend framework, I think it was two. I gave it a week, I gave it really my best shot. I even bought a book and to gave it a try. In the meantime, I looked around for other frameworks and discovered Laravel. What I did with Zend framework in a week, I did with Laravel in an hour in the evening on the couch. This was the main motivation to use Laravel then. Matt Stauffer: Got it. Okay. I do remember that one of the things that, originally I saw, is that you were doing the Laravel notifications thing. Did you help co-manage that? Marcel Pociot: Yes. Matt Stauffer: Or manage or- Marcel Pociot: With Mohamed and Freek, yes. Matt Stauffer: Okay. Cool. Got it. Stepping back for a second, it's so funny because I try not to go too deep in my own ethnological and linguistic curiosities in the podcasts because nobody else isn't quite as interested as I am, so one of the things I actually ask myself before we were on a call is how was your English so good, we went to that little bit but I must admit that based on your name, it's sounds French to me, but I know that you live in Germany. Are you French origin living in Germany or I'm I just totally? Marcel Pociot: No. I hear that a lot. I think it's also because of my first name. People try to pronounce it French, like Marcel Pociot or something like that. Matt Stauffer: That's exactly what I expected you to say when you first told me, yes. Marcel Pociot: As far as I can tell, the name-- we can't trace it back that much. I think it's just two generations and it's from Eastern Europe, so that's pretty much all I can say. Matt Stauffer: Okay, but you're German, you live in-- where do you live in Germany? Marcel Pociot: Near Dusseldorf, which is near Cologne so, yes. Matt Stauffer: I took a little bit of German in high school and college and probably forgot the majority of it, but just enough that I can read a couple of German story books to my kids and to try to get a little bit of German heritage in for them. My sister was in a little bookstore, a local bookstore and found this-- what's it called? It's like sweet dreams or something like that - Träumt Suss? Marcel Pociot: Susse Träume? Matt Stauffer: Anyway, it's this cute little blue book so I read it to my son over and over and over again, and my pronunciation was really bad at day one, but over time I got good at it. Then at some point, my wife found the exact same book in English and so now, with both of my kids, I read them both of the books back and forth, but my daughter is understanding enough English right now that when I read the German version to her she's like, "Wait a minute, I don't understand this one". She gets mad at me [laughs] because she prefers the English version. Anyway, cool. I do remember there was another big one, the API documentation generator, tell me a little bit about that project. Marcel Pociot: Well, it's a tool that you can pull into your Laravel application and it will basically just reads the routes that you define, so you can call it and give it the prefix of the routes that you want documentation for and will scan the routes and create this Stripe like documentation. So that you have the documentation on the left and then code examples how you can interact with the API on the right, and it does it by just pausing the routes and then reading the documentation of the code. Matt Stauffer: Is it its own thing or is generating like one of the preexisting styles? You know what I mean? Because I've never got to use it, but we are always looking for API documentation generators. Marcel Pociot: It's a theme that's called slate, so it's using this. Matt Stauffer: Cool. Very cool. I'll put links in the show notes. But the main two that I see associated with your name right now are the API doc generator and then, of course, BotMan, which we'll talk about in a minute. Those are the things and then we've got your company. Let's real quick talk about what is BotMan, where did it come from and then also, what's your company and then we're going to dig into the back story. BotMan, what is BotMan? What does it do and where did it come from? Marcel Pociot: Okay, I'll start with where it came from. It was really just coincidence. Late 2016, Slack announced that they now have a new HTTP based API, it's called event API. Basically, before that when you wanted to react to Slack events, like new messages, you had to connect through web sockets and the new API was basically just webhooks. Whenever a new action appears-- yes. Well, I mean, if you have a large Slack team it will blast a lot of events to your server. When I heard that Slack announced this API, I just thought that it would be cool to have a PHP API that wraps around it and have an elegant API around it, it's sort of what Laravel is all about, then apply this to Slack. Then I did this, I open sourced it. It was called just SlackBot at the time. It lay around there for three or four months, I didn't do anything with it and then, I came up with the idea that it might be cool to connect multiple services to it, not just Slack, but also Telegram and Facebook Messenger. That's the main thing with BotMan. It's one of the only-- maybe it's the only —PHP library that actually allows you to connect to multiple messenger services. Matt Stauffer: Yes. If it not the only, it's the only one that matters. That's what I think. [laughs] Marcel Pociot: It allows you to connect to these services with one API and reuse your code. Matt Stauffer: One of the hardest things for people to think about, chatbots— everyone hears "Chatbot is the cool new thing", whatever and often, it's really difficult to understand in what context would I actually want to use this, what are some--? Some of the simplest ones we've seen are, "Oh well, when I hook into a CodeShip integration, something that already exists but, what are some of the-- either in your personal use of it or in seeing other people use it, what are some of the most compelling uses of chatbots? Whether it's in Slack or Telegram, or whatever else that you've seen to help people's imagination get started a little. Marcel Pociot: Yes, I think the problem is that people always associate chatbots with these super artificial intelligence systems that understand whatever the user wants. In my opinion, it's just a different interface for your application. It's a conversational interface for your application and what I've seen that was built with BotMan, a lot is like websites, for example, for insurance companies. On their website, they have this chat bubble, that you know maybe from Intercom, and what it does is it guides you through the website. When you click on a button, the chatbot opens and asks you a question related to the action that you triggered when you clicked on the button. That's one-use case and I think- Matt Stauffer: I want to stop you for a second. When I think of a chatbot, what I think about is something that allows someone to use a preexisting chat system, like Facebook Messenger or something else, to interact with their backend API. What you're describing sounds like an entirely manual process where you just used webhooks to hook in your app, right? Am I missing what you're talking about? Marcel Pociot: No. That's also possible. With BotMan, it is the web drivers, so you can just connect it to your own API and then you send the message from your user to your own API and reply back. Matt Stauffer: Okay. Got it. Marcel Pociot: But in the end, that's what happens with Telegram or Facebook too. Yes. Matt Stauffer: So really, anything that has to do with sending and receiving messages to your user in a chat-like format. Marcel Pociot: Yes, right. Matt Stauffer: Regardless of which chat format they're usbing. Okay. I think the on page one is just so clear of an example. Everyone has used a website with Intercom on it or one of Intercom's competitors at some point. I get that one. I think that's super compelling. I'm happy to know that if I need to build that, still reach for BotMan, that's cool. I wouldn't have known that until you said that. Have you seen people use-- I think the hard thing for me is that when I think about Telegram or when I think about Facebook Messenger, I very infrequently think about interacting with someone who has enough money to have an API. I think of my friends. I'm sending a message to my friend, my friend messages me back. Have you seen or heard of really compelling use cases where people are using traditional chats systems, outside of Slack? We'll talk about Slack in a second, but has anybody done anything interesting that you know of with Telegram or Messenger or are those little more aspirational at this point? Marcel Pociot: Messenger is used a lot for more marketing kind of services. For example, TechCrunch has this, well, it's a chatbot where you can-- when you sign up you can register for different topics from their RSS feeds. Matt Stauffer: Intere-- wow. Marcel Pociot: Then you get- Matt Stauffer: They are using it to publish information out and people are subscribing. Marcel Pociot: Yes, every evening-- so you can select topics and then the time. Every evening, I get the top 10 stories from TechCrunch into the Messenger. Matt Stauffer: You just blew my mind. My son just started a podcast www.stauffersonscience.com, and I have a whole bunch of people who I grew up with, who are completely un-computer savvy and they're all saying, "How do I subscribe to a podcast?", I'm like, "Oh Gosh, how am I going to handle this?". I could build a little light Laravel or Lumen app that subscribes to the RSS feed of the podcast and allows people to enter their-- authenticate their Messenger information and pushes every new episode to their Messenger inbox. Marcel Pociot: Yes, right. Matt Stauffer: Holy crap, you just blew my mind. That's amazing. That is so cool, that's so clever. That opens up so many things for people to subscribe because everybody, all your non-tech savvy friends, your mom, your grandma, all of them, they all have Facebook which means they all have Messenger. Marcel Pociot: Yes. I think even more like the younger generation because they don't have MacBooks or laptops, they just have smartphone and use Messenger to communicate. Matt Stauffer: Do you know-- I'm sorry I'm just going into the weeds here, but I am so fascinated. If somebody doesn't use Messenger and they send something to a Messenger authenticated thing, does it show up on the web interface in their little messages thing in Facebook website? Marcel Pociot: You mean if they don't use the Messenger application? Matt Stauffer: Like if somebody doesn't have an iPhone but they go to facebook.com on their browser every day, can they do Messenger interactions using the little- Marcel Pociot: Yes. Matt Stauffer: Okay, so it's the same thing as Facebook. Man, I need to pause for a moment, this is so cool. Okay, broadcasting makes a ton of sense. Broadcasting information, this—in some ways, you have some of the value but a lot more configurability of like an RSS feed through a multiple-medium subscription. That makes a ton of sense and I get that now. Marcel Pociot: Plus, I think. maybe this will change over time, but right now the click rates are much higher because it's not that overused as e-mail newsletters. For example, with the TechCrunch- Matt Stauffer: They feel more personal too? Marcel Pociot: Yes. It feels-- even though you know that you're not actually talking to someone at the company, it feels like you're interacting with the company, well, with its brand. The whole market taking thing is really popular on Facebook, also for artists, they have chatbots that you can ask, "where's the next concert?", and the user feels like they are talking to, I don't know, Beyoncé, whatever. Matt Stauffer: Interesting. I was just going to ask about questions. That one right there would feel like a little bit of natural language processing. If you can do some of that then you can have like ask questions of our whatever bot, or whatever, and that makes sense too. You imagine that you are working for some big company, like an insurance company maybe, and they say, "You want to ask us a question? Here, hook up to our messenger bot and you can ask--" blah, blah, blah. The messenger bot parses out using some basic natural language processing. So, the messenger bot is basically BotMan hooked in your API. The API, your Laravel app takes the questions tries to process them, tries to look up an answer and then sends the message back to that person. So that BotMan would be the interface layer in between. Marcel Pociot: Yes, right. Matt Stauffer: Okay, that makes sense. Slack makes the most sense for our context. I think we're all sitting and using cycle work every day, and it seems like Slack is adding more and more things you can do every time. Buttons at the bottom and stuff like that. What is the most interesting thing that you have built or seen built with Slack integrations on BotMan? Marcel Pociot: It's also interesting because Slack got-- I think they moved away from the term chatbots a while ago, and I think they just called it application. They even integrated like forms that open up, like select boxes, drop downs. I haven't seen that many slackbots using BotMan. There's one, I forgot the name who built it, but he built a slack game, it's like a dice rolling game, it's called Liar's dice. Matt Stauffer: I, obviously, could talk about BotMan the whole time. But this isn't actually about BotMan, this is about you. BotMan is amazing, there's all sorts of interesting stuff. You also have given-- do you know if your Laravel EU talk is online? I didn't actually watch those. Marcel Pociot: Yes, it's online. Matt Stauffer: Okay, great. I'll put a link up to your BotMan talk which is called From zero to multi-platform Chatbot with BotMan. I'll put the link up to that one as well. Let's move on to you. The first place I always start with everybody is, when did you first get interested in computers? Or when did you first get access to a computer? What did your original kind of exposure to computers? Marcel Pociot: I think the first memory that I have from a computer was, I was sitting, I might be like 6 or 7, sitting in the living room with my father, and I don't remember what kind of computer it was. But we had a book with games, so if you wanted to play a game that was the source code of the game in the book. Matt Stauffer: Was it BASIC? Marcel Pociot: Yes, it was. You had to type it in and then you got the game. What I remember, maybe that's also the reason why I remembered it is, my father was sitting there and typing everything in, and I just came at the power adapter and the whole thing crashed. [laughter] He was frustrated. Matt Stauffer: Yes, I believe it. I assume that was like one of those black and green old-- those boxes. Very cool. Marcel Pociot: This is the first memory of sitting in front of a computer. Matt Stauffer: I try not to call at people's ages too much, but I think that you're around my age, around 33, is that right? Marcel Pociot: Yes. 32 and in April 33. Matt Stauffer: We're almost exactly the same age. In our generation it was not all that common, at least in the US, I don't know about Germany, for people to have a home computer when we were that young. Since your father was the one doing this. Was your father-- was he a geek or is he a programmer? Marcel Pociot: Not at all, no. He was always interested in it, but well not so much that he really wanted to write more code than there was in the book. [laughs] Matt Stauffer: At what point did your interaction with the computer go from pulling out the plug from your dad typing in BASIC program to you creating things on your own? Marcel Pociot: I think it was-- in school we had, at the programming class, we wrote Turbo Pascal. Matt Stauffer: Wait, what age of school are you talking about? Marcel Pociot: I think this is seventh grade, so I must have been like 12, 13. Matt Stauffer: You had programming class when you were 13 years old? Marcel Pociot: Yes. Matt Stauffer: That's fascinating. When I was in seventh grade, we had typing class and I- Marcel Pociot: With typewriters or--? Matt Stauffer: They were on Macs, but they were old Macs and we'd all sit around and I would finish the Mavis Beacon thing in five minutes and then I'd go try to learn Applescript and write programs that would infect all the other computers in the network and shut them all down at the same time without the teacher noticing, but there's no formal programming education even in high school. The best we had was an engineering class where the teacher would let us go hack around and stuff, but certainly, nothing formal. So, you learned Turbo Pascal in seventh grade? Marcel Pociot: Yes, pretty much and then- Matt Stauffer: How did that go? Marcel Pociot: Well, I think we moved quite fast from there to Delphi where also-- in the class, there were a handful of people that were always very fast with all the tasks and, just as you said, had a lot of time. We developed like a Trojan, a Trojan Horse [laughter] to open the CD trays from the other computers and stuff like that. Matt Stauffer: Exactly. That's exactly what I was trying to do. That's awesome. Okay, early on you were deep in the computers, you were writing code, you were hacking at it. When did you first get into the web? Marcel Pociot: I don't really remember what age I was, but it was like the Geocities sites. All this crappy-- Matt Stauffer: Yes, man. I still remember, mine was MA slash 1984. My first two letters in my name and then the birth year. [laughter] What was your first Geocities site, you remember? Marcel Pociot: No, I just remember that I had this cool hacker name. Matt Stauffer: What? Like 1337 speak?? Marcel Pociot: Yes. Matt Stauffer: One, three, three, seven, four, four, whatever. Marcel Pociot: It was Delta2K, I don't know. Matt Stauffer: Nice. Marcel Pociot: It sounded cool. Matt Stauffer: Yes, of course, with 2k especially. Okay, it's funny because it seems like I'm either picking people to interview who are old head PHP dorks or there's something consistent about folks who are helping lead in our community that a lot of us are from similar generation. I'm curious to see where that goes, but-- you were doing that, you were playing around with it at the side, what did you study? Did you study that in university or--? Marcel Pociot: No. Here in Germany after you finish school, you can either go to a university or you can do training. You go to a company and then you have three years at the company and besides working at the company, you also go to school. Matt Stauffer: Is it a school provided by the government or provided by the company? Marcel Pociot: No, it's just a public school for learning the- Matt Stauffer: For that specific career? Marcel Pociot: -specific profession. Yes. Matt Stauffer: Got it, okay. Marcel Pociot: I did that to become a software engineer and I ended up in a company in Bochum, here in Germany, and- Matt Stauffer: I don't even know how to spell that. I'll put that down on the show notes [laughs]. Okay, cool. Marcel Pociot: Yes, that's what I did. I wasn't that much into liking school that much back in the days. So pretty early on, I decided to skip the school part and rather work five days a week, so that I can hack on some code. That's what I did and then just did the tasks on my own and learned from them on my own. Matt Stauffer: Got it. You have a pretty straight line from being a little kid watching your dad enter QBASIC programs in. Through learning in school and doing your own Geocities stuff, to being a software engineer and going straight in the industry. Have you at any point felt like, "Oh my gosh, this is not what I want to do"? Or is it just been pretty clear since early on- Marcel Pociot: Yes, it's been really clear since early on. Matt Stauffer: - "I'm a programmer, this is my thing"? Marcel Pociot: That's always what I wanted to do. It's always a bit funny when I talk to people that don't really know what they want to do with their lives and what direction they want to go because it was always really clear for me that I want to go to that direction. Matt Stauffer: Interesting. If you today-- and I know that you just started your own company in December, so hopefully this is really fresh in your head. If you today were to be able to pick exactly what you were doing day to day, if your company was successful in exactly all the ways you want it to be, what would you be doing with your time? Marcel Pociot: Right now, I would say I would still love to write code. I heard that you talked about this also with a few other people, what to do when you're 40 or 50 years old. Well, right now, I would say that I hope that I still want to write code at that time Matt Stauffer: If you found yourself in a situation where your company just-- and we will talk about you company in a second, but you just took off and it's going really well. You decide to hire five people and all the sudden, you're spending all your time doing administrative work. At that point, you think you might say, "I gotta fix this, I got to get back into the code"? Is that your sense of it right now? Marcel Pociot: Right now, it is, yes, but I'm just so refreshed and I'm really just coming from a lead developer role. Matt Stauffer: Yes. Okay. All right. Tell me about your company. You went right into that internship, what's your work history look like? You don't have to tell me every company, but what kind of stuff you've been doing. Have you been working primarily for software firms or have you've been working for non-software companies as a software programmer? Marcel Pociot: No. I just worked for agencies, like web agencies. Matt Stauffer: Got it. Marcel Pociot: The first one was very small, four people when I started there which was very cool because I got to do everything. I had to talk to customers and the clients. We had-- it was very small so we had to do things like setting up e-mail accounts for them. They called if they couldn't set up the email account on their mobile phone. Then they would come in with their phone and stuff like that. Yes, the second company was also a bigger agency but still an agency, where I did-- At the first one, I did PHP and then I got a lot into Appcelerator Titanium. Matt Stauffer: That's why I thought you'd done Titanium. Let's talk about Titanium for a second. Titanium, I feel like was one of the first used JavaScript to write multi-platform apps. How is it different and similar from something like Ionic? Marcel Pociot: The main difference is that while Ionic is just html that gets executed on the phone in the browser, or in the web view, Titanium used the JavaScript code that you wrote and they had proxies for the native languages for java or Objective C. Then the JavaScript code would call the native proxy objects that would then execute native code. When you wanted [crosstalk]- Matt Stauffer: It is more of like a predecessor of React Native. Marcel Pociot: Yes, right. It's like- Matt Stauffer: Okay. Got it. Is it still around? Marcel Pociot: It is. The company got acquired and they still develop it but the time Facebook announced React Native, the community just ran away and went to Facebook, yes. Matt Stauffer: Got it. Okay. I'm sorry, I interrupted. You were doing that at that company and then--? Continue. Marcel Pociot: Yes. Titanium was also my main motivation to work on open source in the first place. I haven't done that before and I started developing Titanium modules. Just small user interfaces- Matt Stauffer: Like packages. Marcel Pociot: Yes. Right. User interface libraries to share and I put them open source and I think I did Titanium for, maybe, one and a half years. Mostly Titanium and then also some Java and Objective C to work on some native modules. During that time, I got bit away from PHP because also, at the time, there was no Composer. The whole ecosystem wasn't as stable as it is right now. Matt Stauffer: Yes. What brought you back? Marcel Pociot: Well, I think it was just a client project. [laughs] Matt Stauffer: Okay. Did they say PHP or it was a web and you had to pick and you just pick PHP because you knew it? Marcel Pociot: Yes, because I knew it and also because of React Native. When React Native was announced, Titanium just pretty much died. Matt Stauffer: Yes. But that was pretty recently, right? Marcel Pociot: Well-- Matt Stauffer: Like a year [crosstalk] Marcel Pociot: No. Native is more around more than a year, I think. Matt Stauffer: Is that real? I believe you, I don't actually know. Okay. Yes, let's say, it may be as long time as 2015 but-- because a lot of times when I hear people talk about "I stepped away from PHP--", blah, blah, blah, "and I finally came back", and they are in the Laravel community. A lot of them came back right around the time when Laravel 4 came out. Maybe I just got the timeline on that wrong in my head. When did Laravel 4 come out? Marcel Pociot: When I started working with their Laravel, 5 came out. I think I worked with 4 for about a month. Matt Stauffer: That is what I was expecting then. Okay. Marcel Pociot: Yes. We started this SaaS product at our company and we chose to use Laravel 5 because-- I think the main reason was the form requests, which just blew my mind. I thought they were super cool to validate stuff and then we decided to pick up, there Laravel 5 during the development with the beta, there was no good decision. Matt Stauffer: I didn't say and it was also bad decision. Marcel Pociot: We had to fix several things every day and at some point we just pinned the dependency to one specific commit, so we knew, “okay, this is working” Matt Stauffer: And you built against that commit until you released it until and then deal with all the fixes at once. Marcel Pociot: And then it stays that way for a long time Matt Stauffer: It's funny. This timeline does line up here is what I have seen, as four came out in 2013, five came out in 2015 and React Native was announced probably at some point in 2015. So you were deep in titanium, you were off in that world and interestingly you were doing a lot of other mobile stuff. You talked about getting into Java, getting into objective C a little bit it, so it was both Titanium, which is JavaScript but then also the adapter worlds, which means you got to know a little bit of Java from Android, a little objective C for Apple and then you all of a sudden come and jump back into PHP and it was Laravel 5, things were modern and Composer all that kind of stuff, were you still working for that same consultancy at that point? Marcel Pociot: Yes, must have been sort of at the same time that I switched jobs, yes. And I didn't do that-- I always did PHP in the afternoon on the couch Matt Stauffer: Got it. It was still always like your fun time favorite language because I know a lot of people would say they left, they're like "oh well, I got tired of PHP I left for rails, I got tired of PHP and I left for .NET or whatever, so you still had a soft spot in your heart for PHP the whole time. Marcel Pociot: Yes right, but not with the framework at the time. Matt Stauffer: You ever rolled your own? You said your company rolled their own, Marcel Pociot: Yes, of course. Matt Stauffer: Does it have a name? Marcel Pociot: No, it didn't really have a name, no. Matt Stauffer: Never got that far? Marcel Pociot: No. Matt Stauffer: Okay. You got a pretty classic story here, obviously everyone's different but a lot of us left at some point a lot of us came back at some point but it's interesting for the amount of impact you have made with BotMan you came up to Laravel pretty recently and BotMan isn't really a Laravel framework either. I feel like it was tied to Laravel at some point, is it basically just a PHP framework that does it even have a Laravel convenience layer on top of it right now? Marcel Pociot: Yes it does. It is framework agnostic but there's a piece that's called BotMan Studio which is basically a blank Laravel 5.5 installation with some additional BotMan service provider and additional commands, a Tinker page to play around with it but it's not tied to Laravel. Matt Stauffer: Got it. Okay we've caught up, you switched consultancies, you got in Laravel 5, you built BotMan, you talked about how you built BotMan so let's talk about your company. We chatted on and off about it but let's pretend that we haven't chatted at all. In December you formed your own company, you went out on your own. Tell me about it, what's your motivation, what's your goal, what's your desire; what made you want to get out of working for other consultancies and start your own thing and what is your own thing? Marcel Pociot: Okay. I'm not doing this alone, I'm doing this with a former colleague, he has been a freelancer for a year now already and already a year ago when he left the company, we were already thinking about doing something on our own and I think the main motivation was- when we started this SaaS application at our company, we thought about turning it into its own company, which they eventually did. I ended up sitting in a new office with my now business partner and the CEO from this new company and we basically sat together for 2 years, just the two of us working on the product and we just knew that the CEO back at the time was a sales person and- how can I put it, a sales person as the CEO of a software product is difficult. This was like the main motivation because we had a different idea of the product, the way we wanted to get with it and it didn't turn out into that direction so we thought that, well if we do something on our own, we can give it our best shot. Matt Stauffer: Okay. Is it a similar product to what you originally planned but since it didn't go the way you originally planned you're going to go build, are you doing product work then? Marcel Pociot: Right now the company is called Beyond Code and we are, it's sort of a split. We have, on the one hand, we do projects, project work mostly we try to do it for Chatbots obviously. Matt Stauffer: Your consultancy that builds Chatbots for people as a part of what you're doing. Marcel Pociot: Yes, right. On the other hand, we have BotMan as the library and we want to focus around building a whole product ecosystem around it so that it becomes easier for people to pick it up and use it like analytics, bot building systems. Matt Stauffer: So Beyond Code GMBH, what does that stand for by the way? I've never known that. GMBH. I assume it means limited liability corporation but the Germany version. Marcel Pociot: Yes. Matt Stauffer: Let's test my German. Gesellschaft mit beschränkter Haftung. Marcel Pociot: Yes, that's quite good. Matt Stauffer: All right. I did okay. All right. Beyond Code is a consultancy that builds primarily applications that have Chatbots on them and also uses the finances that come from that to further build the ecosystem around BotMan which is a PHP framework agnostic library to make it easy to build the type of applications that Beyond Code is building for people. Right? Marcel Pociot: Right. Exactly. Matt Stauffer: It makes sense. It's like that, not quite, like the Discourse model where like hey, there's a free or then Wordpress model. There's a free piece of software, there's also the way to pay us to do it, the money that you pay us to do it makes the free piece software better. Everything fits and everything else. Okay. That totally makes sense. All right, that's going forward. A success for the next couple years of your life would mean that the work that you're doing or consultancy work, the work you're doing for clients basically allows you to make BotMan better, is that the general? Marcel Pociot: Yes. Matt Stauffer: You mentioned analytics, you mention understanding what's going on. Are there any other big next goals or features or things that you want that you feel like you can share with us that aren't the secret sauce? Marcel Pociot: No. Not that I can share them. No. Matt Stauffer: Okay, cool. But you've got big plans, it's not just sitting where it is, it is something you want to grow. Marcel Pociot: Yes. Matt Stauffer: Okay, that's cool. I think that the ability to compellingly get someone excited about the possibilities with a Chatbot obviously is going to be a big part of your doing. I'm glad we had the opportunity for that. Like I said, I'm literally going to get off this call and go see how fast I can hack together something to send that one woman who went church with me growing up. Facebook Messenger notifications when my son's podcast goes out. I'm super geeked about that. Okay, let's see. What else, what do you do in your free time? One of the things is that you have such a straight line through programming that I think that I want to know more about what is not programming you. What motivates you? I know you've got a family, I know you've got one kid? Marcel Pociot: Yes, one kid. Matt Stauffer: One kid. How old is your kid? Marcel Pociot: Four. Matt Stauffer: Four. Okay. Obviously spending time with your family is significant but whether with your family or on your own, what do you do outside of coding? What motivates you? What excites you? What do you do when you're away from the computer? Marcel Pociot: I think I have to re-calibrate myself a bit because when I was working at the consultancy, what I was doing in the afternoon was BotMan and now I'm doing this during the day job. Matt Stauffer: Actually I got to stop you for a second. You keep mentioning the afternoon as your free time, what does your schedule look like? Marcel Pociot: It's mostly nine to five. Matt Stauffer: When you say in the afternoon, do you mean after five? Marcel Pociot: Yes, right. Sorry, in the evening. Matt Stauffer: In the evening. Got it. Okay. What you mean is basically your free time, hacking time in your old job you're doing consultancy during the day and then BotMan stuff at night but now the BotMan is your day job. How do you reorient? Marcel Pociot: Yes, I still have to figure that out myself. I'm not that much of like a sports person or anything. I think really my main motivation was to program still. Matt Stauffer: You just love coding. Marcel Pociot: Yes. Well and other than that it's mostly, beside my family of course, playing some video games but- yes. Matt Stauffer: Yes. I'm not a gamer but I gotta ask what kind of games are, I don't even know what questions gamers ask, is it a PC or console that the question they would ask what game you are into? Marcel Pociot: No, it is console but also it's funny and also a bit sad that I just realized that I'm getting old because I'm no longer good at these games. I no longer can play these games longer. I have always liked these big games that pull you in like big RPGs but now with a kid, I don't really have the time to do that. Matt Stauffer: You don't have much time. Marcel Pociot: I don't want to play for five consecutive hours and if I come back after a few days, I don't want an hour to find out where was I or what I'm supposed to do. Matt Stauffer: That's why I loved Nintendo, that's one of many reasons why I love Nintendo. Because for people with families, Nintendo is good. A, because there's games that you can play with your kids, and also user interfaces you can play with the kids, but B, there's games that are like you can dip in and out. Marcel Pociot: Yes, you can just pick them up and then play for half an hour and then your're done. Matt Stauffer: Even Zelda as an extremely immersive game. You can still pick it up for 20 minutes here or there. Marcel Pociot: That is also too big for me. Matt Stauffer: Zelda is. I mean I can understand it. I've played more video games when I played through-- I'm not done with Zelda, but I played more video games when I first got the Switch and Zelda than I have in years. And even so, it was 20 minutes here and there. Because of the Switch, I just put it down and it just pauses it, but I hear you. Super Mario Odyssey is pretty small. And of course, Mario Kart I play with my son nearly every day. Marcel Pociot: Yes, [laughs] me too, yes. Matt Stauffer: Nice. Marcel Pociot: So now we have this rule that we play every other day. [laughter]. Matt Stauffer: Yes, yes. Every night became a problem, so I was like, "You need to get off." The good thing is my son is super, super active. I was a lazy kid, I didn't want to do anything, I just wanted to sit around. My kid, if I let him, we would be outside running around every day, I don't don't have any problems. Marcel Pociot: Yes, my son too. Yes, when I came home from work, usually the first thing that he would tell me was, "Okay, you can leave your shoes on, we go out and play some soccer." [laughter] Matt Stauffer: I love it, that's very cool. Yes, I think my biggest bummer about the neighborhood we live in right now is that-- the best thing about it is the houses are really close and everybody gets to know each other very well, so he's got tons of friends. But the bummer is the yards are so small that there's nowhere for us to play without getting in the car and driving somewhere. Like, play soccer or baseball or something like that. But what we end up doing is just running around in the house like crazy people anyway. Marcel Pociot: [laughs]. Matt Stauffer: It's his favorite game right now. Marcel Pociot: We have people living underneath so we can't do this all the time. Matt Stauffer: My son's favorite game right now is turn on some music really loud, some really hype pop music or something like that, and then run around and chase each other and throw bouncy balls at each other or try to tickle each other or something like that while the music plays really loud. I'm like, "Okay." Marcel Pociot: [laughs]. Yes, haven't done that in a while. Matt Stauffer: What keeps you from getting stuck when you're coding? Or what tools do you use, or what book or what languages. How do you keep either on a single problem, or on a single framework, or single language? What broadens your perspectives? Whether it's in the programming world, like some other programming language, or whether it's something about your family or your life. What helps you keep your brain out of just the really narrow focus of, "I work in one language, one package, all day long." What gives you inspiration? Marcel Pociot: Recently, when we had in mind that we're going to start the company, I focused a lot on the organizational things and on how to get this even up and running. During that time I was not that much focused on code, or on frameworks, or anything else, because it also meant for me just to get out of the comfort zone and start a company, and not have the safety as an employee. What I'm trying to tell is that, during this time, I sort of stepped away from being too close to the coding world a bit, and now I'm just catching up again. But I think it's mostly just talking to other people and exchanging with my business partner, things like that. It's not that I use other languages and look into them specifically to see new things, so it's not that I really have the plan on how to broaden my view. I don't know, I think it just happens this way. And if I'm stuck at a specific problem, I just try to go out for a bit and [chuckle] step away from the code. Matt Stauffer: Yes. All right. I feel like I promised every time that I'm not going to say I could talk for hours and then I do it every time anyway. Oh well, I failed, I did it. Marcel Pociot: [laughs]. Matt Stauffer: We are nearing time, so I don't want to start anything new and big. Are there any other big parts of you, your life, your motivation or your work that you feel like we haven't got a chance to cover? Marcel Pociot: No, I think we covered the important parts, most of all, yes. Matt Stauffer: Okay, I like it. What's your favorite candy? Marcel Pociot: Candy? [laughs]. After the whole Christmas candy mess-- we set ourselves as a family goal to not eat any candy for a week. Matt Stauffer: I like that. Marcel Pociot: My son is doing great. Matt Stauffer: [laughs]. He's doing better than you, huh? Marcel Pociot: Yes, right. [laughter] Marcel Pociot: I cheated but he doesn't know. Matt Stauffer: All right. Well, hopefully, he doesn't listen to this. Marcel Pociot: Well, he doesn't understand English. So-- Matt Stauffer: There you go, that's the way to do it. Reveal your secrets in the other language. Marcel Pociot: [laughs]. Yes. Marcel Pociot: But other than that-- favorite candy-- I'm mostly into some sour candy. Matt Stauffer: Like what? Marcel Pociot: Skittles in sour, they're pretty good. Matt Stauffer: Really? Skittle Sour-- I had no idea. Marcel Pociot: Yes. Matt Stauffer: All right, Skittle Sour, favorite candy. Marcel Pociot: How about you? Matt Stauffer: I ask this question to people all the time and I don't know if I know the answer. The first thing that came to my mind was Snickers. I think that I like candies with chocolate, and I think if it's chocolate plus some things that rounded it out, those are high in my list. I mean I really like Almond Joys, and Mounds as well. But I think Snickers is probably my top one. Marcel Pociot: We all like bread with Nutella, but is it really candy? Matt Stauffer: Yes, but I mean, it's basically candy. Marcel Pociot: Yes. [laughs]. Yes. Matt Stauffer: Yes. It's funny, my wife likes to put Nutella on sweet things. I'm like, "No, no, no, the Nutella is the sweet, I want it on bread or toast.", just plain piece of multi-grain bread, put some Nutella on top of it, good to go. Marcel Pociot: And peanut butter, and then you basically have Snickers. Matt Stauffer: Wait, do you put peanut butter and Nutella on the same thing? Marcel Pociot: Sure. That's literally Snickers, right? Matt Stauffer: Oh my god [whispers]. I had never thought of that. Alright last story and then I got to let you go. My dad worked for a German company when I was growing up, and he was the president of the US distributor of a German-based company. So he would fly over to Germany pretty frequently, and he would bring Levi's jeans and peanut butter to Germany, because it was hard for them to get, and he'd bring back German chocolate and Nutella, because it was hard for us to get. You can get Nutella in the grocery stores now, but back then you couldn't. And so, every time dad came home, we would get Nutella and we tried to keep these couple of jars of Nutella to last until the next time he went to Germany. Marcel Pociot: Okay. Next time I see you, can you get some Nutella? Matt Stauffer: Yes, I mean, we've got a lot of Nutella here, so you have to pick something up to trade with. Marcel Pociot: But not the German one. [laughs]. Matt Stauffer: Yes, it's true, it's true. All right, Marcel, this was a ton of fun talking to you. Thanks for taking some time. Thank you for BotMan, I'm seriously going to go distribute my son's podcasts using it. So you can expect me to bother you with requests for help sometime soon. Marcel Pociot: No problem. Thank you for inviting me. Matt Stauffer: How can people follow you? And, I guess, go start BotMan. What is following after you look like? Marcel Pociot: Well I think the easiest way to connect with me is on Twitter. Matt Stauffer: All right. I'll make sure your handle is linked to the show notes. Marcel Pociot: Okay. Or, if people want to talk about BotMan, I have the Slack team of BotMan where you can join, I think we're nearly 500 people in there. Matt Stauffer: All right, we'll link that in the show notes too. Got it. Marcel Pociot: Yes. Matt Stauffer: Cool. All right, well thanks for your time, was a pleasure talking to you. Until next time everyone. See you later. Marcel Pociot: Bye.