POPULARITY
On today's episode, Elixir Wizards Owen Bickford and Dan Ivovich compare notes on building web applications with Elixir and the Phoenix Framework versus Ruby on Rails. They discuss the history of both frameworks, key differences in architecture and approach, and deciding which programming language to use when starting a project. Both Phoenix and Rails are robust frameworks that enable developers to build high-quality web apps—Phoenix leverages functional programming in Elixir and Erlang's networking for real-time communication. Rails follows object-oriented principles and has a vast ecosystem of plug-ins. For data-heavy CRUD apps, Phoenix's immutable data pipelines provide some advantages. Developers can build great web apps with either Phoenix or Rails. Phoenix may have a slight edge for new projects based on its functional approach, built-in real-time features like LiveView, and ability to scale efficiently. But, choosing the right tech stack depends heavily on the app's specific requirements and the team's existing skills. Topics discussed in this episode: History and evolution of Phoenix Framework and Ruby on Rails Default project structure and code organization preferences in each framework Comparing object-oriented vs functional programming paradigms CRUD app development and interaction with databases Live reloading capabilities in Phoenix LiveView vs Rails Turbolinks Leveraging WebSockets for real-time UI updates Testing frameworks like RSpec, Cucumber, Wallaby, and Capybara Dependency management and size of standard libraries Scalability and distribution across nodes Readability and approachability of object-oriented code Immutability and data pipelines in functional programming Types, specs, and static analysis with Dialyzer Monkey patching in Ruby vs extensible core language in Elixir Factors to consider when choosing between frameworks Experience training new developers on Phoenix and Rails Community influences on coding styles Real-world project examples and refactoring approaches Deployment and dev ops differences Popularity and adoption curves of both frameworks Ongoing research into improving Phoenix and Rails Links Mentioned in this Episode: SmartLogic.io (https://smartlogic.io/) Dan's LinkedIn (https://www.linkedin.com/in/divovich/) Owen's LinkedIn (https://www.linkedin.com/in/owen-bickford-8b6b1523a/) Ruby https://www.ruby-lang.org/en/ Rails https://rubyonrails.org/ Sams Teach Yourself Ruby in 21 Days (https://www.overdrive.com/media/56304/sams-teach-yourself-ruby-in-21-days) Learn Ruby in 7 Days (https://www.thriftbooks.com/w/learn-ruby-in-7-days---color-print---ruby-tutorial-for-guaranteed-quick-learning-ruby-guide-with-many-practical-examples-this-ruby-programming-book--to-build-real-life-software-projects/18539364/#edition=19727339&idiq=25678249) Build Your Own Ruby on Rails Web Applications (https://www.thriftbooks.com/w/build-your-own-ruby-on-rails-web-applications_patrick-lenz/725256/item/2315989/?utm_source=google&utm_medium=cpc&utm_campaign=low_vol_backlist_standard_shopping_customer_acquisition&utm_adgroup=&utm_term=&utm_content=593118743925&gad_source=1&gclid=CjwKCAiA1MCrBhAoEiwAC2d64aQyFawuU3znN0VFgGyjR0I-0vrXlseIvht0QPOqx4DjKjdpgjCMZhoC6PcQAvD_BwE#idiq=2315989&edition=3380836) Django https://github.com/django Sidekiq https://github.com/sidekiq Kafka https://kafka.apache.org/ Phoenix Framework https://www.phoenixframework.org/ Phoenix LiveView https://hexdocs.pm/phoenixliveview/Phoenix.LiveView.html#content Flask https://flask.palletsprojects.com/en/3.0.x/ WebSockets API https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API WebSocket connection for Phoenix https://github.com/phoenixframework/websock Morph Dom https://github.com/patrick-steele-idem/morphdom Turbolinks https://github.com/turbolinks Ecto https://github.com/elixir-ecto Capybara Testing Framework https://teamcapybara.github.io/capybara/ Wallaby Testing Framework https://wallabyjs.com/ Cucumber Testing Framework https://cucumber.io/ RSpec https://rspec.info/
Watch the live stream: Watch on YouTube About the show Sponsored by Microsoft for Startups Founders Hub. Brian #1: Awesome pytest speedup Neyts Zupan A checklist of best practices to speed up your pytest suite. as a talk at Plone NAMUR 2022 Measure first Then make sure (all items have explanations) Hardware is fast use a faster computer also try a self-hosted runner seriously, a dedicated computer (or a few) for making test runs faster might be worth it. CI resources are usually slower in cloud than local, and even expensive VM farms are often slower. Try local Collection is fast utilize norecursedirs and specifying the location of the tests, either on the command line or with testpaths PYTHONDONTWRITEBYTECODE=1 is set might help Built-in pytest plugins are disabled try -p no:pastebin -p no:nose -p no:doctest Only a subset of tests are executed Especially when developing or debugging, run a subset and skip the slow tests. Network access is disabled pytest-socket can make sure of that Disk access is disabled interesting idea Database access is optimized great discussion here, including using truncate and rollback. Tests run in parallel pytest-xdist or similar Then keep them fast monitor test speed Michael #2: Strive to travel without a laptop Prompt from Panic for SSH on iThings github.dev for an editor on iPad Push to branch for continuous deployment BTW, Apple could just make M1 iPads boot to macOS rather than chase silly multi windowing systems (stage manager, etc, etc) Brian #3: Some fun tools from the previous testing article hyperfine for timing the whole suite pytest --``durations 10 for finding test times of slowest 10 tests leave the 10 off to find times of everything, sorted pyinstrument for profiling with nice tree structures and how to use it with pytest pytest-socket disables network calls with --disable-socket, helping to find tests that use network calls. pyfakefs, a fake file system that mocks the Python file system modules. “Using pyfakefs, your tests operate on a fake file system in memory without touching the real disk.” BlueRacer.io Michael #4: Refurb A tool for refurbishing and modernizing Python codebases Think of it as suggesting the pythonic line of code. A little sampling of what I got on Talk Python Training file.py:186:25 [FURB106]: Replace x.replace("t", " ") with x.expandtabs(1) file.py:128:17 [FURB131]: Replace del x[y] with x.pop(y) file.py:103:17 [FURB131]: Replace del x[y] with x.pop(y) file.py:112:39 [FURB109]: Replace not in [x, y, z] with not in (x, y, z) file.py:45:5 [FURB131]: Replace del x[y] with x.pop(y) file.py:81:21 [FURB131]: Replace del x[y] with x.pop(y) file.py:143:9 [FURB131]: Replace del x[y] with x.pop(y) file.py:8:50 [FURB123]: Replace list(x) with x.copy() You don't always want the change, can suppress the recommendation with either a CLI flag or comment. Extras Michael: Back on episode 54 in 2017 we discussed python apps in systemd daemons. Multiprocessing allows for a cool way to save on server memory Do the scheduled work a multiprocessing.Process Here's an example from Talk Python Training Completely rewrote search UI for Talk Python courses Google analytics is now illegal? Fleet is finally in public preview I'll be on a JetBrains/PyCharm webcast Thursday. Joke: Tests pass
Data Scientist at World Wide Technology, Leah Ellis-Clemons gives an overview of the specific considerations for implementing machine learning models in Python in real time including OpenCV and Multiprocessing... She gives us a live demonstration of her code as well! Resources: https://github.com/LEllisClemons/Lego_Detector_Realtime https://www.kaggle.com/code/databeru/classify-bricks-compare-transfer-learning-model/notebook https://www.kaggle.com/datasets/joosthazelzet/lego-brick-images https://www.linkedin.com/in/leah-ellis-clemons-6230aa68/ https://www.udemy.com/course/python-for-computer-vision-with-opencv-and-deep-learning/
Link to bioRxiv paper: http://biorxiv.org/cgi/content/short/2020.08.21.261966v1?rss=1 Authors: Han, H. Abstract: BayesFactorFMRI is a tool developed with R and Python to allow neuroimaging researchers to conduct Bayesian second-level analysis and Bayesian meta-analysis of fMRI image data with multiprocessing. This tool expedites computationally intensive Bayesian fMRI analysis through multiprocessing. Its GUI allows researchers who are not experts in computer programming to feasibly perform Bayesian fMRI analysis. BayesFactorFMRI is available via Zenodo and GitHub for download. It would be widely reused by neuroimaging researchers who intend to analyse their fMRI data with Bayesian analysis with better sensitivity compared with classical analysis while improving performance by distributing analysis tasks into multiple processors. Copy rights belong to original authors. Visit the link for more info
Sharing a Single TCP Connection whether this is HTTP, WebSockets or just RAW TCP protocol between multi-threading or multi-processes application is bound to cause bad undesirable effects. I explain this in this video and give example of how QUIC & HTTP/2 have solved this problem. Pooling 5:00 QUICK Database 6:30 HTTP/2 Playlist 7:00 --- Send in a voice message: https://anchor.fm/hnasr/message
1:08 Scala Love is a conference for folks who simply love the Scala language, community, and ecosystem. 1:10 Become a patron! 1:15 Scala Love goodies 1:20 Scala Love survey 1:42 Richard 3:26 Richard's Speaking experience 8:12 Program music 9:24 orca 10:24 What is Scala Native 10:51 LLVM 16:05 Scala Native by Denis Shabalin 20:23 Manual memory management 22:35 C interop 24:00 Libuv 26:47 Scala Native vs GraalVM 29:30 Book 32:31 Network IO 34:13 Multiprocessing 35:56 ZIO support 36:24 Ported libraries 40:21 Skunk 43:09 Maintanence status 44:49 What is Love?
In this video I explain the main difference between asynchronous execution, multithreading and multiprocessing programming. There are advantages and disadvantages of each approach. Synchronous 0:30 Multithreading a process have many threads shared resources 3:20 Async io single thread 6:00 Multiprocessing 11:00 Threads are evil https://web.stanford.edu/~ouster/cgi-bin/papers/threads.pdf sync vs async, multithreading vs multiprocessing, multithreading async, threading --- Send in a voice message: https://anchor.fm/hnasr/message
Continuing from assements we discuss Take Home Tests and Group Work in Computer Science. When and how should we collaborate? Andrew talks about having trouble finding an effective group, Jonathan says to just push forward, and Peter wants it to be something more. Internal Fragmentation Contact Us: Email: internalfragmentation@gmail.com Twitter: @InternFragment @AndrewLitteken Show Notes AT&T Technology Development Program Pair Programming Hosted by Andrew Litteken, Jonathan Baker and Peter Bui
William Leslie - OmniTrend Universe William Bill Leslie was one of the authors of Omnitrend's Universe; a science fiction space trading and combat game. The first version was programmed in valFORTH on an Atari 800, based on a board game created by Bill. It was Omnitrend's first game and was released in 1983. There were versions of Universe for the Atari 8-bit, Apple II and IBM computers. Bill was also involved in the development of the sequels Universe 2 and Universe 3, and of Breach, a turn-based tactical squad combat game. This interview took place on Jan. 7, 2017. Links: Atarimania - http://www.atarimania.com/game-atari-400-800-xl-xe-universe_5617.html Wikipedia - https://en.wikipedia.org/wiki/Universe_(1983_video_game) Review of Universe in ANTIC VOL. 3, NO. 5 / SEPTEMBER 1984 / PAGE 76 - http://web.archive.org/web/20080504080033/http://www.atarimagazines.com/v3n5/reviews.html Omnitrend's Universe ad on page 92 of issue 13 of ANALOG Computing magazine, November 1983 - https://archive.org/stream/analog-computing-magazine-14/Analog_Computing_14_1983-11_Retrofire_Hexpad_Lumberjack#page/n92/mode/1up Two reviews of Universe starting on page 14 of the June 1984 issue of Computer Gaming World magazine - http://www.cgwmuseum.org/galleries/issues/cgw_4.3.pdf ANALOG Computing magazine had a review beginning on page 33 of Issue 20 in July 1984 - https://archive.org/stream/analog-computing-magazine-20/Analog_Computing_20_1984-07_Games_Bacterion_Buzz-Zap#page/n34/mode/1up BYTE magazine had a review in Vol. 10, No. 5 on page 311 in May, 1985 - https://archive.org/stream/byte-magazine-1985-05/1985_05_BYTE_10-05_Multiprocessing#page/n312/mode/1up Dungeons and Desktops - https://smile.amazon.com/Dungeons-Desktops-History-Computer-Role-Playing/dp/1568814119/ FAQ for Atari 8-bit Universe (Chris Edgar) - https://www.gamefaqs.com/pc/564695-universe/faqs/58365 Omnitrend’s Universe group on Facebook - https://www.facebook.com/groups/435419473491677/
Cillian joins That Old Pod again to discuss this week in tech. Discussion covers the new releases by AMD and Nvidea; the future of the processor market; quantum computing; Google's new product releases and some issues arising with Google Home; digital assistants and space travel. *There were some technical issues uploading the file. If you notice your audio stop after 5 minutes and become crackling noise, or issues with the alignment of the audio, erase the download and simply download the episode again. Show NotesAMD RyzenAMD and ATI mergerAMD BulldozerMultithreading vs Multiple-core ProcessorsQualcomm SoCPS3 Cell ProcessorPrices of AMD Ryzen vs Intel i7ARM in mobileIntel Tick-Tock ModelWhat is a SoCHow is a GPU different from a CPU?What is Nvidea CUDA?NVidea 1080 TIValue of 60 FPS (frames per second)What is SLI?CPU Power ConsumptionGPU Power ConsumptionWhat is Bitcoin Mining?AMD VegaApple A Series ProcessorsApple silicone developmentApple silicone purchases - Lucio was confusing the PrimeSense acquisition with what he meant to be discussing, the PA Semi purchase, a US based company. Apple has also purchased several other semi-conductor teams for their engineering talent including Intrinisity and Passif SemiconductorQuantum computingLucio kept saying Qubit and meant D-WaveFirst quantum computer was highly contested but eventually verified in 2014Google quantum seversIBM quantum computersAdvantages of graphene processorsIntel abandoning silicone at 7 nmNokia 3310 re-release2G network shutdown5G specification is under reviewPalm/WebOSGoogle JamboardMS Surface Hub vs Google JamboardGoogle Hangouts latest updatesWhat is Slack?Google Answer issuesGoogle Home on Obama Google Home Caramelized Onion RecipeMachine Learning a Video GameSpaceX plans to send two private astronauts around the moon in late 2018Article to visualize Earth’s atmosphere. Deep space is defined as the area outside of these zones. Humans have not left the atmosphere since the Apollo missions.Europe Space Agency current and future activitiesChina’s Space Program’s latest newsUnited Arab Emigrates Space Program plans to build inhabitable human settlement on Mars by 2117, on track to send probe to Mars in 2020Apollo 1 Cockpit fireTesla PowerwallEnder’s Saga - Whole series is absolutely fantastic and a must read. Xenocide is the third book and Lucio’s favorite. Shadow of the Hegemon is now the 6th book in the seriesPlant communication has actually been shown in a number of studiesMushroom growth time lapseAre viruses alive?Solar system Trappist-1 discoveredThe actual image astronomers have used to understand Trappist-1New suggestion for planet classificationsHow electrons behave in an electric circuitProsthetic limbs responding to brain signalsImages reconstructed from people’s thoughts
Check out RailsClips on Kickstarter!! 02:39 - Hongli Lai Introduction Twitter GitHub Blog Phusion 03:08 - Tinco Andringa Introduction GitHub 03:23 - Phusion Passenger [GitHub] passenger 06:13 - Automation nginx 08:37 - Parsing HTTP Headers Hooking 12:44 - Meteor Support 15:37 - Future Added Features? 17:12 - Passenger Enterprise Ruby Rogues Episode #143: Passenger Enterprise with Tinco Andringa and Hongli Lai About Phusion Passenger Documentation & Support 20:03 - Concurrency and Multithreading Multiprocessing The Cluster Module WebSockets passenger_sticky_sessions 23:33 - Setting Up on a Server for a Node.js Application Debian Packages 25:06 - Union Station Monitoring Tool (Union Station Teaser) Introducing Union Station: our web app performance monitoring and behavior analysis service; now in open beta Using Google Polymer JavaScript Jabber Episode #120: Google Polymer with Rob Dodson and Eric Bidelman Polymer vs Facebook React Picks Emily Claire Reese: Playing Catch-Up (Jamison) Jason Punyon: Providence: Failure Is Always an Option (Jamison) Active Child: You Are All I See (Jamison) FFmpeg (Chuck) YouTube (Chuck) Developers' Box Club (Chuck) Ruby Remote Conf (Chuck) DevChat.tv Kickstarter (Chuck) Dash (Hongli) In the Balance: An Alternate History of the Second World War by Harry Turtledove (Hongli) phusion-mvc (Tinco) Union Station Teaser (Tinco) Radio 1's Live Lounge (Tinco)
Check out RailsClips on Kickstarter!! 02:39 - Hongli Lai Introduction Twitter GitHub Blog Phusion 03:08 - Tinco Andringa Introduction GitHub 03:23 - Phusion Passenger [GitHub] passenger 06:13 - Automation nginx 08:37 - Parsing HTTP Headers Hooking 12:44 - Meteor Support 15:37 - Future Added Features? 17:12 - Passenger Enterprise Ruby Rogues Episode #143: Passenger Enterprise with Tinco Andringa and Hongli Lai About Phusion Passenger Documentation & Support 20:03 - Concurrency and Multithreading Multiprocessing The Cluster Module WebSockets passenger_sticky_sessions 23:33 - Setting Up on a Server for a Node.js Application Debian Packages 25:06 - Union Station Monitoring Tool (Union Station Teaser) Introducing Union Station: our web app performance monitoring and behavior analysis service; now in open beta Using Google Polymer JavaScript Jabber Episode #120: Google Polymer with Rob Dodson and Eric Bidelman Polymer vs Facebook React Picks Emily Claire Reese: Playing Catch-Up (Jamison) Jason Punyon: Providence: Failure Is Always an Option (Jamison) Active Child: You Are All I See (Jamison) FFmpeg (Chuck) YouTube (Chuck) Developers' Box Club (Chuck) Ruby Remote Conf (Chuck) DevChat.tv Kickstarter (Chuck) Dash (Hongli) In the Balance: An Alternate History of the Second World War by Harry Turtledove (Hongli) phusion-mvc (Tinco) Union Station Teaser (Tinco) Radio 1's Live Lounge (Tinco)
Check out RailsClips on Kickstarter!! 02:39 - Hongli Lai Introduction Twitter GitHub Blog Phusion 03:08 - Tinco Andringa Introduction GitHub 03:23 - Phusion Passenger [GitHub] passenger 06:13 - Automation nginx 08:37 - Parsing HTTP Headers Hooking 12:44 - Meteor Support 15:37 - Future Added Features? 17:12 - Passenger Enterprise Ruby Rogues Episode #143: Passenger Enterprise with Tinco Andringa and Hongli Lai About Phusion Passenger Documentation & Support 20:03 - Concurrency and Multithreading Multiprocessing The Cluster Module WebSockets passenger_sticky_sessions 23:33 - Setting Up on a Server for a Node.js Application Debian Packages 25:06 - Union Station Monitoring Tool (Union Station Teaser) Introducing Union Station: our web app performance monitoring and behavior analysis service; now in open beta Using Google Polymer JavaScript Jabber Episode #120: Google Polymer with Rob Dodson and Eric Bidelman Polymer vs Facebook React Picks Emily Claire Reese: Playing Catch-Up (Jamison) Jason Punyon: Providence: Failure Is Always an Option (Jamison) Active Child: You Are All I See (Jamison) FFmpeg (Chuck) YouTube (Chuck) Developers' Box Club (Chuck) Ruby Remote Conf (Chuck) DevChat.tv Kickstarter (Chuck) Dash (Hongli) In the Balance: An Alternate History of the Second World War by Harry Turtledove (Hongli) phusion-mvc (Tinco) Union Station Teaser (Tinco) Radio 1's Live Lounge (Tinco)
InvasIC Seminar: Vorträge im SFB/TRR 89 (HD 1280 - Video & Folien)
InvasIC Seminar: Vorträge im SFB/TRR 89 (HD 1280 - Video & Folien)