Podcast appearances and mentions of Donald Knuth

American computer scientist (born 1938)

  • 57PODCASTS
  • 80EPISODES
  • 52mAVG DURATION
  • ?INFREQUENT EPISODES
  • Apr 1, 2025LATEST
Donald Knuth

POPULARITY

20172018201920202021202220232024


Best podcasts about Donald Knuth

Latest podcast episodes about Donald Knuth

All JavaScript Podcasts by Devchat.tv
Pioneers of Computing: A Journey Through Tech History with Bob Martin - JsJ 671

All JavaScript Podcasts by Devchat.tv

Play Episode Listen Later Apr 1, 2025 69:49


In this episode, we dive into a fascinating mix of tech history, personal stories, and entertainment recommendations. We chat with Bob Martin, who shares insights from his new book, offering a look back at the pioneers of computing, including early breakthroughs and the industry's evolution. Bob talks about the challenges of leaving out influential figures like Margaret Hamilton, Donald Knuth, and Linus Torvalds, while also reminiscing about his early career as a self-taught developer during the 70s.The conversation takes a fun turn when we discuss some mind-blowing tech feats, including a wild project where Doom was implemented using TypeScript's type system—a true demonstration of the power of programming languages. For those into entertainment, we share some great picks, like the classic science fiction novels When Worlds Collide and After Worlds Collide, plus a rundown of TV shows like Reacher and the intriguing comparison between the Expanse books and TV show. Packed with history, tech talk, and plenty of geeky fun, this episode is a must-listen for anyone interested in the past, present, and future of computing!Become a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

Troubleshooting Agile
Documenting Failure

Troubleshooting Agile

Play Episode Listen Later Dec 16, 2024 7:33


Do you document and analyse failure? In this episode, Squirrel and Jeffrey draw inspiration from Donald Knuth's detailed study of his own software mistakes to give you the lowdown on learning from past mistakes, including meaningful postmortems and retrospectives. -------------------------------------------------- You'll find free videos and practice material, plus our book Agile Conversations, at agileconversations.com And we'd love to hear any thoughts, ideas, or feedback you have about the show: email us at info@agileconversations.com -------------------------------------------------- About Your Hosts Douglas Squirrel and Jeffrey Fredrick joined forces at TIM Group in 2013, where they studied and practised the art of management through difficult conversations. Over a decade later, they remain united in their passion for growing profitable organisations through better communication. Squirrel is an advisor, author, keynote speaker, coach, and consultant, and he's helped over 300 companies of all sizes make huge, profitable improvements in their culture, skills, and processes. You can find out more about his work here: douglassquirrel.com/index.html Jeffrey is Vice President of Engineering at ION Analytics, Organiser at CITCON, the Continuous Integration and Testing Conference, and is an accomplished author and speaker. You can connect with him here: www.linkedin.com/in/jfredrick/

ANTIC The Atari 8-bit Podcast
ANTIC Interview 443 - Rick Reaser, Current Notes Magazine

ANTIC The Atari 8-bit Podcast

Play Episode Listen Later Nov 8, 2024 50:50


Rick Reaser, Current Notes Magazine's 8-bit Editor   Rick Reaser was the 8-bit Editor of Current Notes Magazine, a popular magazine dedicated to the Atari computers. He began in 1992, and wrote a column called 8-Bit Tidbits. Rick used his Atari 8-bit computer exclusively through his college years and for programming for grad school. He was also president of P3ACE - Pikes Peak Poke Atari Computer Enthusiasts - a user group serving the Colorado Springs area.   This interview took place on February 11, 2023.   Video version of this interview at YouTube   P3ACE newsletters   Rick's "Atari Revolution" quote   Current Notes at Internet Archive   The Current Notes issue Kay received from Rick   Art of Computer Programming by Donald Knuth   Rick's letter to Antic Magazine Volume 7 Number 11 "My kids love Talking Toddle"   Support Kay's interviews on Patreon

Packet Pushers - Full Podcast Feed
HS083: Why Protocols Fail: Russ White's Perspective on Effective Architecture

Packet Pushers - Full Podcast Feed

Play Episode Listen Later Sep 24, 2024 42:19


Network veteran Russ White joins the Heavy Strategy team for a rousing discussion on why protocols fail, how much complexity is too much, why “premature optimization is the root of all evil” (Donald Knuth) and why architects should always remember to think about state. Episode Guest: Russ White, Senior Architect, Akamai Technologies For the last... Read more »

Heavy Strategy
HS083: Why Protocols Fail: Russ White's Perspective on Effective Architecture

Heavy Strategy

Play Episode Listen Later Sep 24, 2024 42:19


Network veteran Russ White joins the Heavy Strategy team for a rousing discussion on why protocols fail, how much complexity is too much, why “premature optimization is the root of all evil” (Donald Knuth) and why architects should always remember to think about state. Episode Guest: Russ White, Senior Architect, Akamai Technologies For the last... Read more »

The GeekNarrator
Clean Code Adventures with Uncle Bob

The GeekNarrator

Play Episode Listen Later Feb 17, 2024 94:01


In this episode, we dive deep into the world of clean coding with none other than the master and pioneer of the field, Uncle Bob. We explore the nuances and the art behind writing effective and efficient scripts. This conversation covers the nitty-gritty of writing and editing scripts, from understanding how to break down large functions, to discussing principles like 'Single Responsibility Principle', 'Dependency Inversion Principle' and how to balance the 'DRY' (Don't Repeat Yourself) principles. Uncle Bob also shares valuable insights on testing, handling errors, naming conventions and how to work with different types of duplication in coding. He shares recommended resources and books that every coder should read. Chapters: 00:00 Introduction and Welcome 00:06 The Importance of Code Quality 00:29 Introducing Robert Martin (Uncle Bob) 01:39 Uncle Bob's Journey in Programming 02:34 Discussion on Functional Design and New Book 03:52 The Evolution of Software Development 04:28 Revisiting the Clean Code Book 04:49 The Impact of Hardware Changes on Software 06:13 The Evolution of Programming Languages 07:33 The Importance of Code Structure and Organization 09:07 The Impact of Microservices and Open Source 11:14 The Role of Modular Programming 22:07 The Importance of Naming in Code 26:31 The Role of Functions in Code 34:12 The Role of Switch Statements in Code 42:36 The Importance of Immutability 51:00 Dealing with Complex Steps in Programming 51:21 Implementing State Machines in Programming 51:46 The Pragmatic Approach to Programming 53:01 Understanding Error Handling in Programming 54:08 The Challenge of Exception Handling 57:27 The Importance of Log Messages in Debugging 01:03:05 The Dilemma of Code Duplication 01:05:51 The Intricacies of Error Handling 01:07:40 The Role of Abstraction in Programming 01:13:55 The Importance of Testing in Programming 01:19:43 The Challenges of Mocking in Testing 01:25:11 The Essence of Programming: Discipline, Ethics, and Standards Book Recommendations: Tidy First: https://www.oreilly.com/library/view/tidy-first/9781098151232/ Design Patterns: https://www.amazon.de/-/en/Erich-Gamma/dp/0201633612 Analysis Pattern: https://martinfowler.com/books/ap.html Structured Analysis and System Specification: https://www.amazon.de/-/en/Tom-Demarco/dp/0138543801 Fundamental Algorithms: https://www.amazon.com/Art-Computer-Programming-Vol-Fundamental/dp/0201896834 Sorting and Searching: https://www.amazon.de/-/en/Donald-Knuth/dp/0201896850 Structure and Interpretation of Computer Programs: https://web.mit.edu/6.001/6.037/sicp.pdf =============================================================================== For discount on the below courses: Appsync: https://appsyncmasterclass.com/?affiliateId=41c07a65-24c8-4499-af3c-b853a3495003 Testing serverless: https://testserverlessapps.com/?affiliateId=41c07a65-24c8-4499-af3c-b853a3495003 Production-Ready Serverless: https://productionreadyserverless.com/?affiliateId=41c07a65-24c8-4499-af3c-b853a3495003 Use the button, Add Discount and enter "geeknarrator" discount code to get 20% discount. =============================================================================== Follow me on Linkedin and Twitter: https://www.linkedin.com/in/kaivalyaapte/ and https://twitter.com/thegeeknarrator If you like this episode, please hit the like button and share it with your network. Also please subscribe if you haven't yet. Database internals series: https://youtu.be/yV_Zp0Mi3xs Popular playlists: Realtime streaming systems: https://www.youtube.com/playlist?list=PLL7QpTxsA4se-mAKKoVOs3VcaP71X_LA- Software Engineering: https://www.youtube.com/playlist?list=PLL7QpTxsA4sf6By03bot5BhKoMgxDUU17 Distributed systems and databases: https://www.youtube.com/playlist?list=PLL7QpTxsA4sfLDUnjBJXJGFhhz94jDd_d Modern databases: https://www.youtube.com/playlist?list=PLL7QpTxsA4scSeZAsCUXijtnfW5ARlrsN Stay Curios! Keep Learning!

The Numberphile Podcast
A Very Bad Estimator - with Donald Knuth

The Numberphile Podcast

Play Episode Listen Later Jan 16, 2024 54:26 Very Popular


Donald Knuth is unquestionably a legend of computer science and mathematics - but he is bad at estimation and grew up with a “rhinoceros attitude”.Don Knuth's homepage - https://www-cs-faculty.stanford.edu/~knuth/The Art of Computer Programming (books) - https://www-cs-faculty.stanford.edu/~knuth/taocp.htmlOn Amazon - https://amzn.to/4aUkkeT3:16 (book) - https://amzn.to/4aRs9lHKnuth's questions for Chat GPT - https://www-cs-faculty.stanford.edu/~knuth/chatGPT20.txtKnuth videos on Numberphile - https://www.youtube.com/playlist?list=PLt5AfwLFPxWLfLjzHzmFO6T8jCZdipvQcBrady's video on John 3:16 from his Bibledex series - https://youtu.be/ZJjFebPW5b8Ziegler's Giant Bar - https://www.halfnuts.net/products/an-original-ziegler-giant-bar?variant=55664909259Numberphile is supported by Jane Street - https://www.numberphile.com/jane-streetWe also work with the Simons Laufer Mathematical Sciences Institute - https://www.slmath.org You can support Numberphile on Patreon - https://www.patreon.com/numberphileHere are our Patrons - https://www.numberphile.com/patrons

The Competitive Edge
The view from 9,144 metres: Professor Frédéric Jenny on climate change, AI and digital platforms

The Competitive Edge

Play Episode Listen Later Dec 19, 2023 41:15


OECD Competition Committee Chair Professor Frédéric Jenny joins us to talk about the long arc of the competition law universe, from the Chicago School through COVID to climate change, digital platforms and artificial intelligence. Plus motorways and Rebel Wilson, the inaugural GCR Live conference in Sydney, greenwashing ocean-bound plastics, both kinds of RPM, the Government response to Reppo No. 5 and the ACCC's call for ex ante regulation, and Epic's saga against Google. All this and a new competition law cryptic crossword with co-hosts Moya Dodd and Matt Rubinstein  The inaugural 2nd Anniversary End of Year Holiday Season Speak Now Podcast Survey  Try the new competition law-themed cryptic crossword at crossword.info/edge  OECD Roundtable on Competition and Professional Sports ft. Moya Dodd  GCR reporting on the merger proposals, cartel enforcement and keynote address  All the options on the Android search engine choice pages  ACCC on ocean plastic* yoghurt tubs and ACC on avocado injuries   Techtronic RPM vs Technotronic RPM  Government response to DPSI5 recommendations  Donald Knuth's Potrzebie System of Weights and Measures  Meet the Gilbert + Tobin Competition + Regulation team  Email us at edge@gtlaw.com.au   See omnystudio.com/listener for privacy information.

Danielle Newnham Podcast
Simon Peyton Jones: In Pursuit of Simplicity

Danielle Newnham Podcast

Play Episode Listen Later Aug 30, 2023 54:14


Today's guest is Simon Peyton Jones – a hugely influential computer scientist who has spent his career researching the implementation and applications of functional programming languages, particularly lazy functional programming. After a stint in academia, he joined Microsoft Research Cambridge (1998-2022) where he spent more than 20 years before becoming an Engineering Fellow at Epic Games last year.Simon's main research interest is in functional programming languages, their implementation, and their application. He was a key contributor to the design of the now-standard functional language Haskell, and was the lead designer of the widely-used Glasgow Haskell Compiler.He is also the Chair of Computing at School, the grass-roots organisation which helped lead to the reform in our English computing curriculum in 2014, now making the subject compulsory in all schools.In this conversation, we discuss how he fell in love with programming, how he approaches complex problems, what Epic's Tim Sweeny's vision is for the metaverse and why he believes all kids should code.Simon's enthusiasm for the field of computer science is hugely infectious and whether you know of him already or not, I think you will really enjoy this episode. Simon Peyton Jones Website / Twitter / GitHub / Computing at SchoolDanielle Twitter / Instagram / Newsletter 

The Stephen Wolfram Podcast
Business, Innovation, and Managing Life (October 26, 2022)

The Stephen Wolfram Podcast

Play Episode Listen Later Jul 21, 2023 76:19


Stephen Wolfram answers questions from his viewers about business, innovation, and managing life as part of an unscripted livestream series, also available on YouTube here: https://wolfr.am/youtube-sw-business-qa Questions include: Do you have any fun Halloween plans? Any memorable costumes you've dressed up in or have seen? - If you could spend the day as any animal in the world, what would it be? What might the change in perspective allow you to understand and apply toward your current work? - What are your thoughts on providing feedback to employees? What methodologies and tools do you use? How can we best help an employee to grow before letting them go for underperformance? - I just finished reading Things a Computer Scientist Rarely Talks About by Donald Knuth. He briefly mentions the possibility of the universe being a cellular automaton. Have you ever read this book? - Maybe "project" is not an adequate word for undertakings like Wolfram|Alpha. - Do you have a timeframe for the Physics Project, or is it a lifelong project? If you had to work on another idea/project, what would that be? - How would you tackle a problem? Dive into it or first observe the bigger picture? - What's your way of studying something new? Understanding the historical evolution of concepts or reading from textbooks and working out examples? - I have to wonder how Bertrand Russell would have viewed the Wolfram Metamathematics Project! - ​What has been the typical response when reaching out to "academics" to join the Physics Project?

The Changelog
Starlight, Knuth asks ChatGPT, Stack Overflow mods strike, Reddit API pricing revolt & open source AI has a new champ

The Changelog

Play Episode Listen Later Jun 5, 2023 9:48 Transcription Available


The Astro team releases a new documentation builder, legendary computer scientist Donald Knuth plays with ChatGPT, over 500 volunteer mods have signed an open letter to Stack Overflow Inc, Reddit faces a revolt due to their new API pricing & the Technology Innovation Institute release Falcon, a new open source LLM that's topping Hugging Face's leaderboard.

Changelog News
Starlight, Knuth asks ChatGPT, Stack Overflow mods strike, Reddit API pricing revolt & open source AI has a new champ

Changelog News

Play Episode Listen Later Jun 5, 2023 9:48 Transcription Available


The Astro team releases a new documentation builder, legendary computer scientist Donald Knuth plays with ChatGPT, over 500 volunteer mods have signed an open letter to Stack Overflow Inc, Reddit faces a revolt due to their new API pricing & the Technology Innovation Institute release Falcon, a new open source LLM that's topping Hugging Face's leaderboard.

Changelog Master Feed
Starlight, Knuth asks ChatGPT, Stack Overflow mods strike, Reddit API pricing revolt & open source AI has a new champ (Changelog News #47)

Changelog Master Feed

Play Episode Listen Later Jun 5, 2023 9:48 Transcription Available


The Astro team releases a new documentation builder, legendary computer scientist Donald Knuth plays with ChatGPT, over 500 volunteer mods have signed an open letter to Stack Overflow Inc, Reddit faces a revolt due to their new API pricing & the Technology Innovation Institute release Falcon, a new open source LLM that's topping Hugging Face's leaderboard.

Lexman Artificial
Donald Knuth: Ratoon

Lexman Artificial

Play Episode Listen Later Feb 8, 2023 4:06


In this episode of Lexman Artificial, the AI chats with famed computer scientist and mathematician Donald Knuth about his new book, Ratoon: A True Story of Fraud, Fiasco, and the Discovery of a New Mathematical Form.

Lexman Artificial
Donald Knuth

Lexman Artificial

Play Episode Listen Later Dec 7, 2022 4:38


Donald Knuth was a businessman and providence extraordinaire. He helped bring technological advancements to the world, and was also responsible for popularizing the use of abstract regular expressions in computer science.

The Array Cast
John Earnest and Versions of k

The Array Cast

Play Episode Listen Later Nov 26, 2022 87:14


Array Cast - November 25, 2022 Show NotesThanks to Bob Therriault and Adám Brudzewsky for gathering these links:[01] 00:02:00 Dr. Fred Brooks obit https://cs.unc.edu/news-article/remembering-department-founder-dr-frederick-p-brooks-jr/ Ken Lettow email http://www.jsoftware.com/pipermail/chat/2022-November/009134.html Vector Article http://archive.vector.org.uk/art10001240 IBM System 360 https://en.wikipedia.org/wiki/System/360[02] 00:08:26 Dr. Brooks Memorial Service [02] 00:08:26 Dr. Brooks Memorial Service https://www.youtube.com/watch?v=BXzvyRGGBoE UNC memorial to be scheduled for the spring of 2023 https://cs.unc.edu/brooks[03] 00:09:18 Dyalog User Meetings https://dyalog.tv/Dyalog22/ training course.dyalog.com https://course.dyalog.com/ APLNAATOT podcast https://www.youtube.com/watch?v=aEN1MBTzCjY[04] 00:10:50 J Wiki Prototype https://code2.jsoftware.com/wiki/Main_Page[05] 00:12:51 BQN REPLxx https://github.com/dzaima/CBQN and REPLXX=1[06] 00:14:00 q for personal use https://kx.com/kdb-personal-edition-download/[07] 00:15:05 John Earnest iKe https://vector.org.uk/a-graphical-sandbox-for-k-2/[08] 00:19:15 Forth Programming Language https://www.forth.com/forth/[09] 00:21:49 Impending kOS https://vector.org.uk/impending-kos/ Arthur Whitney https://en.wikipedia.org/wiki/Arthur_Whitney_(computer_scientist) k2 reference manual http://web.archive.org/web/20050504070651/http://www.kx.com/technical/documents/kreflite.pdf k2 user manual http://web.archive.org/web/20041022042401/http://www.kx.com/technical/documents/kusrlite.pdf k2 c-k interface manual http://web.archive.org/web/20060214100753/http://www.kx.com/technical/documents/cki.pdf[10] 00:24:00 ok.js https://johnearnest.github.io/ok/index.html[11] 00:24:30 kona https://github.com/kevinlawler/kona/wiki[12] 00:25:23 Kerf technical manual https://github.com/kevinlawler/kerf1/raw/master/manual/refmanual.pdf[13] 00:26:08 1010data.com https://www.1010data.com/[14] 00:27:30 kx systems https://kx.com/[15] 00:34:20 Projection https://code.kx.com/q4m3/6_Functions/#64-projection[16] 00:39:17 ngn k https://codeberg.org/ngn/k[17] 00:41:00 shakti https://shakti.com/[18] 00:48:20 k wiki https://k.miraheze.org/wiki/ currently down but soon to be reinstated[19] 00:54:12 J programming language https://www.jsoftware.com/indexno.html[20] 00:58:11 GLSL shader language https://en.wikipedia.org/wiki/OpenGL_Shading_Language[21] 00:38:34 John Earnest's website https://beyondloom.com/[22] 01:02:30 Vanessa McHale episode https://www.arraycast.com/episodes/episode25-vanessa-mchale[24] 01:03:00 Romilly Cocking episode https://www.arraycast.com/episodes/episode34-romilly-cocking[25] 01:03:10 Marshall Lochbaum episode https://www.arraycast.com/episodes/episode-07-marshall-lochbaum-and-the-bqn-array-language[26] 01:07:50 Mechanical Sympathy https://dyalog.tv/Dyalog18/?v=mK2WUDIY4hk[27] 01:09:30 Lambda Cast https://soundcloud.com/lambda-cast[28] 01:10:57 Factor Programming Language https://factorcode.org/[29] 01:12:24 Chuck Moore https://en.wikipedia.org/wiki/Charles_H._Moore[30] 01:16:20 Greenarrays chip GA144 https://www.greenarraychips.com/home/documents/index.php[31] 01:20:10 Donald Knuth https://en.wikipedia.org/wiki/Donald_Knuth Tex https://en.wikipedia.org/wiki/TeX Meta Font https://en.wikipedia.org/wiki/METAFONT[32] 01:21:30 Literate Programming https://en.wikipedia.org/wiki/Literate_programming[33] 01:22:21 CoDfns https://scholarworks.iu.edu/dspace/handle/2022/24749 Aaron Hsu https://www.sacrideo.us/ https://aplwiki.com/wiki/Aaron_Hsu

Lexman Artificial
Donald Knuth on Cognitions, Shraddhas, and Coves

Lexman Artificial

Play Episode Listen Later Oct 20, 2022 4:48


Donald Knuth, the father of computer science, discusses cognition and the shraddhas. He also takes a moment to talk about the coves and pohutukawa trees.

Lexman Artificial
with Donald Knuth

Lexman Artificial

Play Episode Listen Later Oct 14, 2022 4:00


Donald Knuth, mathematician and computer scientist, discusses his work on the principle of actualisations and its relationship to other theoretical developments in mathematics and computer science.

Lexman Artificial
Donald Knuth: The Mathematics of Derivation

Lexman Artificial

Play Episode Listen Later Aug 18, 2022 3:20


In this episode, Donald Knuth discusses the mathematical theory of derivation, or mordants. Interestingly, these concepts are of fundamental importance to the field of cryptography and data security.

Lexman Artificial
Donald Knuth: Cordelia, Perms, Basie, Disgracers, Shostakovich, Fusses

Lexman Artificial

Play Episode Listen Later Aug 9, 2022 6:44


Donald Knuth: cordelia, perms, Basie, disgracers, Shostakovich, fusses

Lexman Artificial
Donald Knuth Omnichannel podcast about computers and mathematics with Lexman the AI

Lexman Artificial

Play Episode Listen Later Aug 3, 2022 3:04


Donald Knuth talks about his new book Golly: A Merry environmental tale, his time spent working on theTeX project and how he applies mathematical concepts to his day-to-day life as a cyclist.

Lexman Artificial
Donald Knuth

Lexman Artificial

Play Episode Listen Later Jul 25, 2022 4:34


Lexman Artificial chats with Donald Knuth, the Herbert S. Zimdars Professor of Mathematics at the California Institute of Technology about his fascinating work in mathematics and computer science.

Researchat.fm
140. Recurrency

Researchat.fm

Play Episode Listen Later May 24, 2022 160:28


kagayaさんをゲストに迎え、アメリカザリガニの自発性行動開始の脳研究における単一ニューロンの膜電位活動の記録とその形態染色技術の話、超高速パンチをするシャコの研究、リカレントニューラルネットワークの機械学習フレームワークであるリザバーコンピューティングについてお話をうかがいました。 (w/ mazさん)Guest (加賀谷の研究履歴) アメリカザリガニの自発性行動開始の脳機構研究(高畑雅一lab) 行動が外部感覚刺激ではなく自発内発的に生じるとき、その開始が起こる脳内機構を調べるため、ザリガニ脳内の単一ニューロンの膜電位活動を記録、形態染色の技を卒論時から9年間継続してようやく特定のニューロンが見つかった。 シャコの超高速運動の研究(Sheila Patek lab) 神経系が身体機構を通して環境に働きかけるメカニズムの研究として、超高速パンチをするシャコを研究。 カニの行動の個性の研究(Seto Marine Biology lab) 京大白浜水族館の飼育員の原田桂太さんがカイメンで帽子をつくるカニをシャコ水槽の隣でされていて、体のわりに小さすぎる帽子をつくってるカニがいたりして、行動実験とデータ解析を計画。ベイズ統計による解析。 ソフトロボット研究(中嶋浩平 lab→國吉中嶋 lab 2022-) 科研費の新学術領域ソフトロボット学に公募班で採用されて、ソフトロボット的研究開始。中嶋さんとは京大白眉、この領域でお世話になり、現在中嶋ラボへ。 Shownotes Katsushi Kagaya maz Researchat.fm mazさん回 (ep133) … “mazさんをゲストに迎え、自身の研究の変遷を軸に、バイオメカニクスのおもしろさを話していただきました。” ゆるふわ生物学 の シャコパンチ回 カニの行動の個性の研究 ソフロボ:ソフトロボット、新学術領域ソフトロボット学 リザバー: リザバー・コンピューティング(recurrent neural networkの機械学習法のひとつ) 中嶋さんの総説 北大水泳部 kagayaさんの輝かしい水泳の記録 … 勝手に貼ってすいません!(tadasu) 北大理学部生物学科 山本貴司さん 千葉すずさん イトマンオーストラリア遠征:年に一度、全国のイトマンスイミングスクールから選抜され豪州遠征があった。 近大附属高校:近畿大学附属高等学校。当時、普通科、理数科、国際科のほか、水泳をはじめスポーツによる活動を重視するクラスもあった。 「鳥が飛ぶようにヒトは言語をつかう」Steven Pinker, Language Instinct 高畑雅一 (たかはたまさかず): kagayaの北大在籍時の先生 アメフラシの神経:キャンデル神経科学のエリック・キャンデルのアメフラシの神経系で学習の分子機構の研究 イカの神経: ホジキンとハクスレーはじめとする活動電位の発生メカニズムの研究が念頭にありました シナプス統合作用:中枢ニューロンは、複雑な形状をもった樹状突起をもって多くの他のニューロンとシナプスを形成する。細胞でのシナプス電位の空間的時間的分布は、シナプス部位からの解剖学的距離だけでなく、三次元構造、膜・細胞質の電気的性質、電位依存型イオンチャネルによるコンダクタンス変化などの影響を受ける。シナプスでの電流が細胞内をどう拡散していくかと合わせてこれらが「神経計算の実体」に大きな影響を与える。この入出力関係(計算)を決めている諸過程をシナプス統合作用という。 ザリガニの脳:kagayaが学部4年生のときに作成したザリガニの脳の組織切片の染色像 ザリガニ論文1:Kagaya & Takahata, 2010 ザリガニ論文2:Kagaya & Takahata, 2011 細胞内記録(イントラ):ガラス管微小電極を細胞に刺入し、主にカレントクランプで細胞内外の電位差を測る。ガラス管内に蛍光色素を充填して細胞内染色をすることが可能。 マイクロエレクトロード(ガラス管微小電極):シャープエレクトロードともいう。クラシックな手法。パッチ電極では細胞膜を密着させるが、自然に膜がシールするのを待つ。膜が破れて細胞を破壊してしまうことも。 カレントクランプ:電流固定法。電流を固定して、電位を測る。 細胞外記録(エクストラ):ほぼスパイク(イントラの記録の活動電位だけフィルタされた電位記録)だけの記録。電極と細胞との位置関係、その他もろもろの複雑な細胞外液の状況に依存した記録になるのでスパイクのタイミングだけをデータとすることが多い。また、近くに複数の細胞があれば複数のスパイクが混じるので一つの電極に複数のユニットが混じるのでスパイク・ソーティングする必要がある。一方、イントラではシナプス活動と同時に活動電位も記録できる。が、細胞の刺さる場所が軸索だとスパイクしか見えない。ザリガニでは樹状突起の肥厚部が主なシナプス統合部でここに刺さればシナプス活動が見える。 パッチ電極をつかったパッチクランプ イオンチャネル ルシファーイエロー 下村脩 … Researchat.fm ep112を参照 下村脩先生がクラゲを採っていた様子 … 家族とクラゲを採っていた下村先生。写真に映っているお子様の一人は伝説のハッカーTsutomu Shimomuraさんである。 下村先生のクラゲ漁の伝説 … “海岸で朝6時から夜まで毎日、家族総出でクラゲを取り続け、17年間で85万匹も捕獲し分析。ごく微量しか含まれないGFPが光る仕組みを突き止めた。” コマンドニューロン: ザリガニコマンドニューロンのレビュー “Fifty years of a command neuron: the neurobiology of escape behavior in the crayfish” アメフラシの水管刺激によるエラの引き込み反射 光遺伝学 神経軸索:シナプス活動によって生じる活動電位は、脊椎動物の運動ニューロンでは軸索の起始部で生じる。ここは活動電位を発生するための電位依存型イオンチャネルがたくさんあって閾値が低い。脊椎動物の細胞ではシナプスからこの部位までに細胞体が介在する。一方、ザリガニなど節足動物では細胞体はこの流れから離れたところにあってシナプス統合に関与しない。よって、統合部位として肥厚した樹状突起に電極を狙って刺入してシナプス統合作用を調べることになる。シナプス統合、つまり神経計算の結果発生した活動電位は軸索を伝導する。 下行性ニューロン:脳内に細胞体と樹状突起をもっていて脳を出て胸部へと軸索を伸ばしていく。 腹髄、囲食道縦連合:梯子型神経系の腹側を通る縦連合を腹髄という。囲食道縦連合は、食道を囲んでいる縦連合。左右をつなぐ連合を横連合という。 神経計算の実体:アナログ的な神経膜電位活動の記録について、 田渕さん並木さんの比較生理2019「神経回路の自発活動パターンとその機能的役割」に詳細にまとめられています キイロショウジョウバエ:いわゆるモデル生物のひとつ。 コネクトーム HHMI Janelia デンドライトdendrite: 樹状突起のこと。 ウチダザリガニ … ウチダザリガニと染色体の話は記念すべきResearchat.fm ep1で話しています。Researchat.fmはウチダザリガニと共に始まったと言っても過言ではない。 氷冷麻酔: 昆虫ではCO2が(も?)よく使われる印象がある (maz) クチクラ:外骨格表面 おおらかな指導:先生ははじめから10年かけてもいいとは思われてはいなかった、はず。 identifiable neuron、 identified neuron 同定(可能)ニューロン: Scholapediaに期待したらまだ書かれておらず「どなたかご存命の方に書いて欲しい」というようなことが。別の個体から得られたニューロンどうしであっても生理学的、形態学的に似ていて同一視できるニューロン。運動ニューロンだと筋肉との関係で厳密な意味で同定ニューロンになる。介在ニューロン、とくに中枢のニューロンになってくると生理と形態の情報の再現性の問題で同一視しづらくなる。なお、同定ニューロンであっても個体間変異が生じる。 Leland H. Hartwell … 出芽酵母を用いた細胞周期に関する研究により、2001年度のノーベル生理学・医学賞を受賞 Leland Hartwellの動画 … 観察から細胞周期に関する因子を同定していく様の解説。 Leland Hartwellの動画 … インタビューワーはResearchat.fm ep107で紹介したBungo Akiyoshiさんの指導教官であるSue Biggins先生。 仮説生成型 vs 仮説検証型: Researchat.fm ep127のHARKingも参照。 Strong inference の翻訳 … めちゃくちゃいいので必読!kagayaさんご紹介ありがとうございます。今度これについて話したいです。(tadasu) Ronald Hoy 柳田敏雄 研究をすすめる「よりどころ」、inflection point(変曲点): mazの脳内では横軸が時間、縦軸が成果みたいなものとして、最初はあまり成果が伸びないが途中からぐいっと上に曲がるような曲線が想像されていた【maz】 ポール・グレアム: 本人の公式ページ・英語版ウィキペディア Y Combinator ハッカーと画家 … オーム社による和書あり。 早すぎる最適化:これは Donald Knuth 博士による記述 早すぎる最適化 … ANRIの江原ニーナさんによるハッカーと画家と早すぎる最適化に関する記事 (関係ないですが、江原ニーナさんのポッドキャスト、復活希望です。) Researchatのポールグレアム回 (ep87) スケールしないことをしよう … FoundXの馬田さんによる解説記事 naoya_tさんによるポール・グレアムの日本語翻訳記事まとめ Coffee machine: いわゆる「コーヒーメーカー」だが英語版ウィキペディア記事では冒頭文(定義文)で “A coffeemaker, coffee maker, or coffee machine” と並列されており英語では同義語のようだ。 雲のツイート 自由意志:「で、ザリガニに自由意志はあるの?」ってPaul Katz氏に聞かれたのが思い出されます。 ヒトであれば内省、内観を言葉で伝えることができるが(リベットの実験)、そうでない動物では行動や生理現象を分析するにとどまる。 運動準備電位: Kornhuber & Deecke, 1965 コンフォーカル:共焦点走査型顕微鏡 ブラックホールの観測: Researchat.fm ep8でも話していました。  スーパーカミオカンデとニュートリノの検出 スーパーカミオカンデとニュートリノの検出 重力波の初検出 シャコパンチ 冨菜雄介さん … (関係ないですが、researchmapのIDがlobsterなのいかつすぎますね) シーラ・パテック:シャコパンチはじめ、生物と物理の境界を研究されている。kagayaのシャコパンチ研究のメンター。シーラのTED Talk The Patek Lab キャビテーション はてブ:はてなブックマーク Comparative Biomechanics:「比較」は多様な生物種を対象とするニュアンスがある。 SICB: Society for Integrative and Comparative Biology というアメリカの学会。毎年1月に年会があり 2011 Annual Meetingで Kagaya と maz はニアミスしていた。非ヒトのバイオメカニクス研究発表の場としてはこの SICB とヨーロッパの SEB (Society for Experimental Biology) が代表的と思われる【maz】 リザバー計算 (reservoir computing) 中嶋浩平さん Kohei Nakajima 京大の白眉プロジェクト シャコパンチ論文 リカレントニューラルネットワーク:回帰的神経回路網 RNN。典型的なRNNとしてはランダムにそれぞれが結合した echo state network (後述)がある。スパイクニューラルネット型もある。 Herbert Jaeger リードアウト:リザバー計算の典型的設定のパラメータチューニングはこの線形読み出し器部分だけなので学習にかかる計算コストがとても小さい。 echo state neural network:シンプルなPC上での Echo State Network (ESN) による計算の例 spiking neural network たこあし、シリコンたこあし計算機:中嶋さんの royal society interface に掲載された論文のひとつ Wolfgang Maass ブラックボックスを解剖する研究 Echo State Property: “Intuitively, the ESP states that the reservoir will asymptotically wash out any information from initial conditions.” 流体構造連成: ある物体、たとえば布みたいなものに風があたって力(いわゆる揚力や抗力)が生じて、形が変わったとする。そうすると、形が変わったことで揚力や抗力が変わるので、また変形がおきる。この繰り返しで振動的な挙動が生じたりする。このように、流れと物体変形の相互作用現象(問題)を流体構造連成 (fluid-structure interation, FSI) と呼ぶ【maz】 双子渦(カルマン渦?): 円柱などの物体の後方には、流れのスケールで決まる無次元数である Reynolds 数に応じて左右対称な双子渦や左右交互の周期的な渦放出(Kármán 渦列)ができる。このうち双子渦を利用してリザバコンピューティングをしようという発想がある (Goto et al., 2021). なお双子渦ができるのは Reynolds 数が低いときで、つまり { サイズが小さい OR 流れが遅い OR 流体の粘性が高い(ねばねばしてる)} ような状態で、具体的には40程度まで。たとえば直径 2 cm の電線を風が 1 m/s でゆっくりと吹きすぎるような場面ですら Reynolds 数は 1300 程度で、双子渦はできない。興味深いことに、上記論文では双子渦からカルマン渦に遷移する直前の Reynolds 数で最も成績がよいという結果が出ているようだ【maz】 カオス的遍歴, “Chaotic itinerancy as a dynamical basis of hermeneutics in brain and mind” 井上さんの論文: Inoue, K., Nakajima, K., & Kuniyoshi, Y. (2020). Designing spontaneous behavioral switching via chaotic itinerancy. Science advances Unconventional Computing Diagital Computing, “Towards a generalized theory comprising digital, neuromorphic and unconventional computing” 大自由度力学系 E-kagen: 鈴森康一「新学術領域研究「ソフトロボット学」 ルースカップリングとタイトカップリング … 柳田敏雄先生による一分子研究の歴史とその解説 モルフォロジカル・コンピュテーション Kunt Shmidt-Nielsen 下澤先生:下澤楯夫先生 Editorial Notes ザリガニ研究は出てから10年以上たってからのもので、あまり外で話す機会がなくなっていたので、今回紹介する機会をいただけて感謝です。シャコパンチを詳しくはまた別の機会に(?)(kagaya) ほぼ聞き役でした。シャコパンチや関連して高速運動・超高速運動の面白さみたいな話はもうちょっとしたかったけど、それやったらたぶんリザバまで行かなかったですね… (maz) kagayaさんとmazさん、お忙しい中、ご出演いただきありがとうございます。全然掘りきれていませんが、また次回よろしくお願いします(シャコとカニの個性!気になる!)。それにしてもkagayaさんのキャリアの変遷は面白すぎて今回お話できて良かったです。リザバーの部分については更なる自身での理解が必要だと思いました。完全版は+40minぐらいあるのですがまたいつか。(tadasu)

COMPLEXITY
Eric Beinhocker & Diane Coyle on Rethinking Economics for A Sustainable & Prosperous World (EPE 02)

COMPLEXITY

Play Episode Listen Later May 6, 2022 50:42 Very Popular


In the digital era, data is practically the air we breathe. So why does everybody treat it like a product to be hoarded and sold at profit? How would our world change if Big Tech operated on assumptions and incentives more aligned with the needs of a healthy society? Are more data — or are bigger models — really better? As human beings scamper around like prehistoric mammals under the proverbial feet of the new enormous digital monopolies that have emerged due to the Web's economies of scale, how might we tip the scales back to a world governed wisely by human judgment and networks of trust? Would Facebook and Twitter be more beneficial for society if they were public services like the BBC? And how do we settle on the social norms that help ensure the ethical deployment of A.I.? These and many other questions grow from the boundary-challenging developments of rapid innovation that define our century — a world in which the familiar dyads of state and market, public and private, individual and institutional are all called into question.Welcome to COMPLEXITY, the official podcast of the Santa Fe Institute. I'm your host, Michael Garfield, and every other week we'll bring you with us for far-ranging conversations with our worldwide network of rigorous researchers developing new frameworks to explain the deepest mysteries of the universe.This week on Complexity, we speak with two researchers helping to rethink political economy:SFI External Professor Eric Beinhocker is the Professor of Public Policy Practice at the University of Oxford, and founder and Executive Director of the Institute for New Economic Thinking at the University's Oxford Martin School. He is also the author of The Origin of Wealth: The Radical Remaking of Economics and What It Means for Business and Society.Diane Coyle is the Bennett Professor of Public Policy at the University of Cambridge, and co-director of the Bennett Institute, whose latest book — Cogs and Monsters: What Economics Is, and What It Should Be— was published by Princeton University Press last fall.In the first episode of this subseries, we spoke with SFI President David Krakauer about how the study of political economy has changed over the last two hundred years due to the innovation of new mathematical and computational methods.  In this episode, we examine how the technological milieu that empowered these changes has also transformed the subject of study itself:  digital surveillance architecture, social media networks, big data, and (largely inadequate) attempts to formalize econometrics have all had a profound impact on modern life. In what ways do new institutions beget even newer institutions to address their unintended consequences? How should we think about the complex relationships between private and public agencies, and what status should we give the data they produce and consume? What is it going to take to restore the trust in one another necessary for society to remain coherent, and what are the most important measures to help economists and policymakers navigate the turbulence of our times into a more inclusive, prosperous, and sustainable world?Subscribe to Complexity Podcast for upcoming episodes with an acclaimed line-up of scholars including Ricardo Hausmann, Doyne Farmer, Steven Teles, Rajiv Sethi, Jenna Bednar, Tom Ginsburg, Niall Ferguson, Neal Stephenson, Paul Smaldino, C. Thi Nguyen, John Kay, John Geneakoplos, and many more to be announced…If you value our research and communication efforts, please rate and review us at Apple Podcasts, and consider making a donation — or finding other ways to engage with us — at santafe.edu/engage. You can find the complete show notes for every episode, with transcripts and links to cited works, at complexity.simplecast.com.Thank you for listening!Join our Facebook discussion group to meet like minds and talk about each episode.Podcast theme music by Mitch Mignano.Follow us on social media:Twitter • YouTube • Facebook • Instagram • LinkedInMentions and additional resources:Toward a New Ontological Framework for the Economic Goodby Eric D. BeinhockerComplexity Economics: Proceedings of the Santa Fe Institute's 2019 Fall Symposiumedited by W. Brian Arthur, Eric Beinhocker, Allison StangerSocializing Databy Diane CoyleThe Public Optionby Diane CoyleCommon as Air: Revolution, Art, and Ownershipby Lewis HydePitchfork Economicsby Nick HanauerThe Nature of Technology: What It Is and How It Evolvesby W. Brian ArthurGeoffrey West on Complexity 35Will A Large Complex System Be Stable?by Robert MayBlockchain: Trust Companies: Every Company Is at Risk of Being Disrupted by A Trusted Version of Itselfby Richie EtwaruHelena Miton on Complexity 46The coming battle for the COVID-19 narrativeby Sam Bowles, Wendy CarlinRecoupling Economic and Social Prosperityby Katharina Lima de Miranda, Dennis J. SnowerSignalling architectures can prevent cancer evolutionby Leonardo Oña & Michael LachmannWhy we should have a public option version of Google and Facebook (response to Diane Coyle)by James PethokoukisBryant Walker Smith on Complexity 79“Premature optimization is the root of all evil."— Donald Knuth

Das Universum
DU047 - Best of James Webb Teleskop: Dawn of the Monsters & Co

Das Universum

Play Episode Listen Later Mar 15, 2022 108:12


In Folge 47 reden wir kurz über Ruths TV-Premiere bei den Science Busters. Und danach präsentiert Ruth ein “Best of” der wissenschaftlichen Beobachtungsprogramme des James-Webb-Space-Telescopes. 268 Programme sind geplant und da ist alles dabei. Monstergalaxien im frühen Universum, Bilder von Exoplaneten, coole Asteroiden und noch viel mehr. Wir beantworten Frage zur Suche nach außerirdischem Leben. Und in “Neues aus der Sternwarte” geht es um LaTeX und nervige Textverarbeitung auf der Uni.

Geek Speak with Lyle Troxell
The Software Arts: Algorithm - Arithmetic

Geek Speak with Lyle Troxell

Play Episode Listen Later Jan 4, 2022 52:43


Professor Warren Sack joins me to speak about the history of Algorithm, including Donald Knuth – Art of Computer Programing, Five Axioms of Algorithms, and When Computers Were Human. This is Part 1 of 2 on Algorithm.

The History of Computing
An Abridged History of Free And Open Source Software

The History of Computing

Play Episode Listen Later Nov 24, 2021 22:34


In the previous episodes, we looked at the rise of patents and software and their impact on the nascent computer industry. But a copyright is a right. And that right can be given to others in whole or in part. We have all benefited from software where the right to copy was waved and it's shaped the computing industry as much, if not more, than proprietary software. The term Free and Open Source Software (FOSS for short) is a blanket term to describe software that's free and/or whose source code is distributed for varying degrees of tinkeration. It's a movement and a choice. Programmers can commercialize our software. But we can also distribute it free of copy protections. And there are about as many licenses as there are opinions about what is unique, types of software, underlying components, etc. But given that many choose to commercialize their work products, how did a movement arise that specifically didn't? The early computers were custom-built to perform various tasks. Then computers and software were bought as a bundle and organizations could edit the source code. But as operating systems and languages evolved and businesses wanted their own custom logic, a cottage industry for software started to emerge. We see this in every industry - as an innovation becomes more mainstream, the expectations and needs of customers progress at an accelerated rate. That evolution took about 20 years to happen following World War II and by 1969, the software industry had evolved to the point that IBM faced antitrust charges for bundling software with hardware. And after that, the world of software would never be the same. The knock-on effect was that in the 1970s, Bell Labs pushed away from MULTICS and developed Unix, which AT&T then gave away as compiled code to researchers. And so proprietary software was a growing industry, which AT&T began charging for commercial licenses as the bushy hair and sideburns of the 70s were traded for the yuppy culture of the 80s. In the meantime, software had become copyrightable due to the findings of CONTU and the codifying of the Copyright Act of 1976. Bill Gates sent his infamous “Open Letter to Hobbyists” in 1976 as well, defending the right to charge for software in an exploding hobbyist market. And then Apple v Franklin led to the ability to copyright compiled code in 1983. There was a growing divide between those who'd been accustomed to being able to copy software freely and edit source code and those who in an up-market sense just needed supported software that worked - and were willing to pay for it, seeing the benefits that automation was having on the capabilities to scale an organization. And yet there were plenty who considered copyright software immoral. One of the best remembered is Richard Stallman, or RMS for short. Steven Levy described Stallman as “The Last of the True Hackers” in his epic book “Hackers: Heroes of the Computer Revolution.” In the book, he describes the MIT Stallman joined where there weren't passwords and we didn't yet pay for software and then goes through the emergence of the LISP language and the divide that formed between Richard Greenblatt, who wanted to keep The Hacker Ethic alive and those who wanted to commercialize LISP. The Hacker Ethic was born from the young MIT students who freely shared information and ideas with one another and help push forward computing in an era they thought was purer in a way, as though it hadn't yet been commercialized. The schism saw the death of the hacker culture and two projects came out of Stallman's technical work: emacs, which is a text editor that is still included freely in most modern Unix variants and the GNU project. Here's the thing, MIT was sitting on patents for things like core memory and thrived in part due to the commercialization or weaponization of the technology they were producing. The industry was maturing and since the days when kings granted patents, maturing technology would be commercialized using that system. And so Stallman's nostalgia gave us the GNU project, born from an idea that the industry moved faster in the days when information was freely shared and that knowledge was meant to be set free. For example, he wanted the source code for a printer driver so he could fix it and was told it was protected by an NDAQ and so couldn't have it. A couple of years later he announced GNU, a recursive acronym for GNU's Not Unix. The next year he built a compiler called GCC and the next year released the GNU Manifesto, launching the Free Software Foundation, often considered the charter of the free and open source software movement. Over the next few years as he worked on GNU, he found emacs had a license, GCC had a license, and the rising tide of free software was all distributed with unique licenses. And so the GNU General Public License was born in 1989 - allowing organizations and individuals to copy, distribute, and modify software covered under the license but with a small change, that if someone modified the source, they had to release that with any binaries they distributed as well. The University of California, Berkley had benefited from a lot of research grants over the years and many of their works could be put into the public domain. They had brought Unix in from Bell Labs in the 70s and Sun cofounder and Java author Bill Joy worked under professor Fabry, who brought Unix in. After working on a Pascal compiler that Unix coauthor Ken Thompson left for Berkeley, Joy and others started working on what would become BSD, not exactly a clone of Unix but with interchangeable parts. They bolted on the OSI model to get networking and through the 80s as Joy left for Sun and DEC got ahold of that source code there were variants and derivatives like FreeBSD, NetBSD, Darwin, and others. The licensing was pretty permissive and simple to understand: Copyright (c) . All rights reserved. Redistribution and use in source and binary forms are permitted provided that the above copyright notice and this paragraph are duplicated in all such forms and that any documentation, advertising materials, and other materials related to such distribution and use acknowledge that the software was developed by the . The name of the may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED ``AS IS AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. By 1990 the Board of Regents at Berkley accepted a four clause BSD license that spawned a class of licenses. While it's matured into other formats like a 0 clause license it's one of my favorites as it is truest to the FOSS cause. And the 90s gave us the Apache License, from the Apache Group, loosely based on the BSD License and then in 2004 leaning away from that with the release of the Apache License 2 that was more compatible with the GPL license. Given the modding nature of Apache they didn't require derivative works to also be open sourced but did require leaving the license in place for unmodified parts of the original work. GNU never really caught on as an OS in the mainstream, although a collection of tools did. The main reason the OS didn't go far is probably because Linus Torvalds started releasing prototypes of his Linux operating system in 1991. Torvalds used The GNU General Public License v2, or GPLv2 to license his kernel, having been inspired by a talk given by Stallman. GPL 2 had been released in 1991 and something else was happening as we turned into the 1990s: the Internet. Suddenly the software projects being worked on weren't just distributed on paper tape or floppy disks; they could be downloaded. The rise of Linux and Apache coincided and so many a web server and site ran that LAMP stack with MySQL and PHP added in there. All open source in varying flavors of what open source was at the time. And collaboration in the industry was at an all-time high. We got the rise of teams of developers who would edit and contribute to projects. One of these was a tool for another aspect of the Internet, email. It was called popclient, Here Eric S Raymond, or ESR for short, picked it up and renamed it to fetchmail, releasing it as an open source project. Raymond presented on his work at the Linux Congress in 1997, expanded that work into an essay and then the essay into “The Cathedral and the Bazaar” where bazaar is meant to be like an open market. That inspired many to open source their own works, including the Netscape team, which resulted in Mozilla and so Firefox - and another book called “Freeing the Source: The Story of Mozilla” from O'Reilly. By then, Tim O'Reilly was a huge proponent of this free or source code available type of software as it was known. And companies like VA Linux were growing fast. And many wanted to congeal around some common themes. So in 1998, Christine Peterson came up with the term “open source” in a meeting with Raymond, Todd Anderson, Larry Augustin, Sam Ockman, and Jon “Maddog” Hall, author of the first book I read on Linux. Free software it may or may not be but open source as a term quickly proliferated throughout the lands. By 1998 there was this funny little company called Tivo that was doing a public beta of a little box with a Linux kernel running on it that bootstrapped a pretty GUI to record TV shows on a hard drive on the box and play them back. You remember when we had to wait for a TV show, right? Or back when some super-fancy VCRs could record a show at a specific time to VHS (but mostly failed for one reason or another)? Well, Tivo meant to fix that. We did an episode on them a couple of years ago but we skipped the term Tivoization and the impact they had on GPL. As the 90s came to a close, VA Linux and Red Hat went through great IPOs, bringing about an era where open source could mean big business. And true to the cause, they shared enough stock with Linus Torvalds to make him a millionaire as well. And IBM pumped a billion dollars into open source, with Sun moving to open source openoffice.org. Now, what really happened there might be that by then Microsoft had become too big for anyone to effectively compete with and so they all tried to pivot around to find a niche, but it still benefited the world and open source in general. By Y2K there was a rapidly growing number of vendors out there putting Linux kernels onto embedded devices. TiVo happened to be one of the most visible. Some in the Linux community felt like they were being taken advantage of because suddenly you had a vendor making changes to the kernel but their changes only worked on their hardware and they blocked users from modifying the software. So The Free Software Foundation updated GPL, bundling in some other minor changes and we got the GNU General Public License (Version 3) in 2006. There was a lot more in GPL 3, given that so many organizations were involved in open source software by then. Here, the full license text and original copyright notice had to be included along with a statement of significant changes and making source code available with binaries. And commercial Unix variants struggled with SGI going bankrupt in 2006 and use of AIX and HP-UX Many of these open source projects flourished because of version control systems and the web. SourceForge was created by VA Software in 1999 and is a free service that can be used to host open source projects. Concurrent Versions System, or CVS had been written by Dick Grune back in 1986 and quickly became a popular way to have multiple developers work on projects, merging diffs of code repositories. That gave way to git in the hearts of many a programmer after Linus Torvalds wrote a new versioning system called git in 2005. GitHub came along in 2008 and was bought by Microsoft in 2018 for 2018. Seeing a need for people to ask questions about coding, Stack Overflow was created by Jeff Atwood and Joel Spolsky in 2008. Now, we could trade projects on one of the versioning tools, get help with projects or find smaller snippets of sample code on Stack Overflow, or even Google random things (and often find answers on Stack Overflow). And so social coding became a large part of many a programmers day. As did dependency management, given how many tools are used to compile a modern web app or app. I often wonder how much of the code in many of our favorite tools is actually original. Another thought is that in an industry dominated by white males, it's no surprise that we often gloss over previous contributions. It was actually Grace Hopper's A-2 compiler that was the first software that was released freely with source for all the world to adapt. Sure, you needed a UNIVAC to run it, and so it might fall into the mainframe era and with the emergence of minicomputers we got Digital Equipment's DECUS for sharing software, leading in part to the PDP-inspired need for source that Stallman was so adamant about. General Motors developed SHARE Operating System for the IBM 701 and made it available through the IBM user group called SHARE. The ARPAnet was free if you could get to it. TeX from Donald Knuth was free. The BASIC distribution from Dartmouth was academic and yet Microsoft sold it for up to $100,000 a license (see Commodore ). So it's no surprise that people avoided paying upstarts like Microsoft for their software or that it took until the late 70s to get copyright legislation and common law. But Hopper's contributions were kinda' like open source v1, the work from RMS to Linux was kinda' like open source v2, and once the term was coined and we got the rise of a name and more social coding platforms from SourceForge to git, we moved into a third version of the FOSS movement. Today, some tools are free, some are open source, some are free as in beer (as you find in many a gist), some are proprietary. All are valid. Today there are also about as many licenses as there are programmers putting software out there. And here's the thing, they're all valid. You see, every creator has the right to restrict the ability to copy their software. After all, it's their intellectual property. Anyone who chooses to charge for their software is well within their rights. Anyone choosing to eschew commercialization also has that right. And every derivative in between. I wouldn't judge anyone based on any model those choose. Just as those who distribute proprietary software shouldn't be judged for retaining their rights to do so. Why not just post things we want to make free? Patents, copyrights, and trademarks are all a part of intellectual property - but as developers of tools we also need to limit our liability as we're probably not out there buying large errors and omissions insurance policies for every script or project we make freely available. Also, we might want to limit the abuse of our marks. For example, Linus Torvalds monitors the use of the Linux mark through the Linux Mark Institute. Apparently some William Dell Croce Jr tried to register the Linux trademark in 1995 and Torvalds had to sue to get it back. He provides use of the mark using a free and perpetual global sublicense. Given that his wife won the Finnish karate championship six times I wouldn't be messing with his trademarks. Thank you to all the creators out there. Thank you for your contributions. And thank you for tuning in to this episode of the History of Computing Podcast. Have a great day.

Lex Fridman Podcast
#219 – Donald Knuth: Programming, Algorithms, Hard Problems & the Game of Life

Lex Fridman Podcast

Play Episode Listen Later Sep 9, 2021 147:39


Donald Knuth is a computer scientist, Turing Award winner, father of algorithm analysis, author of The Art of Computer Programming, and creator of TeX. Please support this podcast by checking out our sponsors: – Coinbase: https://coinbase.com/lex to get $5 in free Bitcoin – InsideTracker: https://insidetracker.com/lex and use code Lex25 to get 25% off – NetSuite: http://netsuite.com/lex to get free product tour – ExpressVPN: https://expressvpn.com/lexpod and use code LexPod to get 3 months free – BetterHelp: https://betterhelp.com/lex to get 10% off EPISODE LINKS: Donald's Stanford Page: https://profiles.stanford.edu/donald-knuth Donald's Books: https://amzn.to/3heyBsC PODCAST INFO: Podcast website: https://lexfridman.com/podcast Apple Podcasts: https://apple.co/2lwqZIr Spotify: https://spoti.fi/2nEwCF8 RSS:

All Ruby Podcasts by Devchat.tv
Going from Development to Production - RUBY 513

All Ruby Podcasts by Devchat.tv

Play Episode Listen Later Sep 2, 2021 76:44


Dave Kimura, John Epperson, Luke Stutters, Darren Broemmer, and Valentino Stoll talk about their experiences in setting up a maintainable development environment and discuss considerations when deploying to production. Panel Darren Broemmer Dave Kimura John Epperson Luke Stutters Valentino Stoll Sponsors Dev Influencers Accelerator Raygun | Click here to get started on your free 14-day trial PodcastBootcamp.io Links GitHub | rails/importmap-rails Ruby on Whales: Dockerizing Ruby and Rails development GitHub | kirillian/shiplane Ruby on Rails Screencasts bin/functions Picks Darren- Debunking the infamous “Only two hard problems in Computer Science” Dave- Drifting Ruby Dave- 3Doodler Create+ 3D Printing Pen John- GitHub | kirillian/shiplane John- Homemade Pool Covers Luke- Ruby's Hidden Gems: Delegator and Forwardable Luke- mix-fgpa  Luke- Donald Knuth’s MIX computer implemented in iCE40HX8K-EVB Contact Darren: Twitter: Darren Broemmer ( @DarrenBroemmer ) Contact Dave: Ruby on Rails Screencasts Twitter: Dave Kimura ( @kobaltz ) GitHub: David Kimura ( kobaltz ) Contact John: Rock Agile Consulting GitHub: John Epperson ( kirillian ) LinkedIn: John Epperson Contact Luke: GitHub: Luke Stutters ( lukestuts ) Contact Valentino: Doximity Technology Blog Work @ Doximity GitHub: Valentino Stoll ( codenamev ) Twitter: V ( @thecodenamev )

development production panel mix debunking computer science github rails donald knuth dev influencers accelerator podcastbootcamp raygun click luke stutters
Devchat.tv Master Feed
Going from Development to Production - RUBY 513

Devchat.tv Master Feed

Play Episode Listen Later Sep 2, 2021 76:44


Dave Kimura, John Epperson, Luke Stutters, Darren Broemmer, and Valentino Stoll talk about their experiences in setting up a maintainable development environment and discuss considerations when deploying to production. Panel Darren Broemmer Dave Kimura John Epperson Luke Stutters Valentino Stoll Sponsors Dev Influencers Accelerator Raygun | Click here to get started on your free 14-day trial PodcastBootcamp.io Links GitHub | rails/importmap-rails Ruby on Whales: Dockerizing Ruby and Rails development GitHub | kirillian/shiplane Ruby on Rails Screencasts bin/functions Picks Darren- Debunking the infamous “Only two hard problems in Computer Science” Dave- Drifting Ruby Dave- 3Doodler Create+ 3D Printing Pen John- GitHub | kirillian/shiplane John- Homemade Pool Covers Luke- Ruby's Hidden Gems: Delegator and Forwardable Luke- mix-fgpa  Luke- Donald Knuth’s MIX computer implemented in iCE40HX8K-EVB Contact Darren: Twitter: Darren Broemmer ( @DarrenBroemmer ) Contact Dave: Ruby on Rails Screencasts Twitter: Dave Kimura ( @kobaltz ) GitHub: David Kimura ( kobaltz ) Contact John: Rock Agile Consulting GitHub: John Epperson ( kirillian ) LinkedIn: John Epperson Contact Luke: GitHub: Luke Stutters ( lukestuts ) Contact Valentino: Doximity Technology Blog Work @ Doximity GitHub: Valentino Stoll ( codenamev ) Twitter: V ( @thecodenamev )

development production panel mix debunking computer science github rails donald knuth dev influencers accelerator podcastbootcamp raygun click luke stutters
Ruby Rogues
Going from Development to Production - RUBY 513

Ruby Rogues

Play Episode Listen Later Sep 1, 2021 76:44


Dave Kimura, John Epperson, Luke Stutters, Darren Broemmer, and Valentino Stoll talk about their experiences in setting up a maintainable development environment and discuss considerations when deploying to production. Panel Darren BroemmerDave KimuraJohn EppersonLuke StuttersValentino Stoll Sponsors Dev Influencers AcceleratorRaygun | Click here to get started on your free 14-day trialPodcastBootcamp.io Links GitHub | rails/importmap-railsRuby on Whales: Dockerizing Ruby and Rails developmentGitHub | kirillian/shiplaneRuby on Rails Screencastsbin/functions Picks Darren- Debunking the infamous “Only two hard problems in Computer Science”Dave- Drifting RubyDave- 3Doodler Create+ 3D Printing PenJohn- GitHub | kirillian/shiplaneJohn- Homemade Pool CoversLuke- Ruby's Hidden Gems: Delegator and ForwardableLuke- mix-fgpa Luke- Donald Knuth's MIX computer implemented in iCE40HX8K-EVB Contact Darren: Twitter: Darren Broemmer ( @DarrenBroemmer ) Contact Dave: Ruby on Rails ScreencastsTwitter: Dave Kimura ( @kobaltz )GitHub: David Kimura ( kobaltz ) Contact John: Rock Agile ConsultingGitHub: John Epperson ( kirillian )LinkedIn: John Epperson Contact Luke: GitHub: Luke Stutters ( lukestuts ) Contact Valentino: Doximity Technology BlogWork @ DoximityGitHub: Valentino Stoll ( codenamev )Twitter: V ( @thecodenamev )

development production panel mix debunking computer science github rails donald knuth dev influencers accelerator podcastbootcamp raygun click luke stutters
All Ruby Podcasts by Devchat.tv
Going from Development to Production - RUBY 513

All Ruby Podcasts by Devchat.tv

Play Episode Listen Later Sep 1, 2021 76:44


Dave Kimura, John Epperson, Luke Stutters, Darren Broemmer, and Valentino Stoll talk about their experiences in setting up a maintainable development environment and discuss considerations when deploying to production. Panel Darren BroemmerDave KimuraJohn EppersonLuke StuttersValentino Stoll Sponsors Dev Influencers AcceleratorRaygun | Click here to get started on your free 14-day trialPodcastBootcamp.io Links GitHub | rails/importmap-railsRuby on Whales: Dockerizing Ruby and Rails developmentGitHub | kirillian/shiplaneRuby on Rails Screencastsbin/functions Picks Darren- Debunking the infamous “Only two hard problems in Computer Science”Dave- Drifting RubyDave- 3Doodler Create+ 3D Printing PenJohn- GitHub | kirillian/shiplaneJohn- Homemade Pool CoversLuke- Ruby's Hidden Gems: Delegator and ForwardableLuke- mix-fgpa Luke- Donald Knuth's MIX computer implemented in iCE40HX8K-EVB Contact Darren: Twitter: Darren Broemmer ( @DarrenBroemmer ) Contact Dave: Ruby on Rails ScreencastsTwitter: Dave Kimura ( @kobaltz )GitHub: David Kimura ( kobaltz ) Contact John: Rock Agile ConsultingGitHub: John Epperson ( kirillian )LinkedIn: John Epperson Contact Luke: GitHub: Luke Stutters ( lukestuts ) Contact Valentino: Doximity Technology BlogWork @ DoximityGitHub: Valentino Stoll ( codenamev )Twitter: V ( @thecodenamev )

development production panel mix debunking computer science github rails donald knuth dev influencers accelerator podcastbootcamp raygun click luke stutters
Springwald Radio

Mit LaTeX kann man Dokumente erzeugen. Aber wie? Und für wen eignet es sich?

Springwald Radio

Mit LaTeX kann man Dokumente erzeugen. Aber wie? Und für wen eignet es sich?

Reversim Podcast
405 Bumpers 68

Reversim Podcast

Play Episode Listen Later Mar 31, 2021


שלום וברוכים הבאים לפרק מספר 405 של רברס עם פלטרפורמה - באמפרס מספר 68 - והתאריך היום הוא ה-1 באפריל 2021.היום יש לנו אורח מיוחד - תגידו שלום למיסטר טרנס אקשן (Terence Action)!(רן) שלום מר טרנס(טרנס) אהלן, בוקר טוב, מה קורה?(רן) בוקר טוב, אנחנו שמחים שאתה איתנו - ואיתנו גם אלון ודותן, הי חברים.אז - מר טרנס, קודם כל תודה שאתה זורם איתנו עם העברית… יש לך רקע עשיר ומגוון בכל מה שקשור בביזור של Databases, וגם אחרים . . . בוא, ספר לנו קצת על הרקע שלך, מאיפה אתה מגיע?(טרנס) תראה, הכל התחיל בשנות ה-60, כשהתחלתי את המאסטר שלי, ואני וקנות’ ישבנו ודיברנו על מחשביםקנות’ אמר . . .(רן) אתה מתכוון ל - Donald Knuth, נכון?(טרנס) כן, אתה יודע . . . מצטער שאני עושה Name-dropping אבל ככה . . . חבר יקר.יום אחד הוא קם ופתח עיניים גדולות, כמו צלחות, ואמר “יום אחד מחשבים יעבדו, כאילו - הרבה ביחד, הרבה הרבה הרבה ביחד” . . . אמרתי לו “וואו!”, והלכתי ולקחתי את זה איתי הביתה, וישבתי בבית וחשבתי לי, קצת עשיתי אסיד, ואמרתי לעצמי “וואו - אם הם עובדים הרבה ביחד, אז לפעמים חלק ייפלו!”ואז ידעתי מה יהיה המאסטר שלי, ה-Citation . . . וכתבתי על מערכות מבוזרות.(רן) אתה רוצה להגיד לי שאתה קודם כתבת את ה-Master, ורק אחר כך את ה-Slaves, באוניברסיטה?(טרנס) וואו, אתה מנסה להפיל אותי פה עם כל העברית החדשה הזו, הא? אני כתבתי את ה-Leading version, ואחר כך את ה-Clone, כן . . (רן) היית Leader, כן . . . אז באילו Databases יצא לך לעסוק בחיים המקצועיים שלך?(טרנס) אז תראה - כמו כולם, התחלתי ב-Sybase, ואחר זה הכנסתי את SQLite לעבודה ב-!Yahoo . . .כל המייל של !Yahoo ישב על SQLite, לא רבים יודעים את זה . . . המנגנון Anti-spam היה בעצם Select למילים, כמו “ציצים” וכאלה, בהתחלה - ואחרי שמנו שם כל מיני בינה מאלכותית.ואז, כשהיינו כבר בקבצים של ה-SQLite, אמרתי “מה יקרה אם נשבור אותם לפי משהו? לפי נושאים, אות ראשונה של המייל? לפי משהו” . . . ואז, ככה, המצאתי בעצם את ה-Sharding . . . זה היה . . .(אלון) ה-Sharding הראשון שלך היה בעצם על Distributed Access DB, נכון?(טרנס) כן - זה היה חתיכת סיפור, כי Access DB הוא בפורמט בינארי, ואני לא יודע אם אתה מכיר פורמטים בינאריים, אבל הם טיפה’לה יותר מסובכים מפורמטים לא-בינאריים, טקסטואליים . . . ואז הייתה בעיה מאוד קשה ב-Access - אי אפשר היה לעשות בשאילתה אחת גם Min, גם Max וגם אגרגציה (Aggregation) - אז ישבתי ושברתי את זה לשלושה Access DBs, בשלושה Access DB האלה - על אחד עשיתי Max, על אחד עשיתי Min ועל השלישי עשיתי אגרגציה.ואז המצאתי משהו חדש, שכאילו מאחד את כל התוצאות ביחד - כאילו אתה לא הרגשת את זה.(דותן) אבל למה לך לעשות Max ו-Min? זה לא ש-Min זה הפוך של Max ו-Max זה הפוך של Min? לא עושים 1- . . .?(טרנס) אז לא קראו לזה Product, אז קראו לו Stephen . . . סטפן אמר שצריך Max ו-Minניסיתי להתווכח אבל אתה יודע - Product היו קשוחים, אז אם הוא רוצה Max ו-Min אז ניתן לו Max ו-Min, מה אני אעשה? . . .(רן) אבל יש את ה . . . זה לא כמו ב-CAP Theorem, שיש לך Max, Min ו-Average - תבחר שנייים? אתה באמת יכול לעשות את שלושתם יחד באותה השאילתה?(טרנס) תשמע, אני לא יודע קורה עם ה-CAP Theorem הזה, בעיני זה הכל פיקציה . . .אני המצאתי את ה-Glasses Theory - זה כמו CAP, אבל כאילו שקוף - וכשהכל שקוף אז הכל גם עובד ביחדאין לך שום בעיה לעשות Through and Through Consistency ו-High Availability - וגם אם ה-Network Partition קורה, אז לא קרה כלום.(רן) אגב שקיפות - במאמרים האחרונים שלך, שאתה מפרסם, לקחת את כל הנסיון שלך ב-Databases ועשית לו Apply לקורונה, As-is . . . בוא, ספר לנו קצת על הניסיון שלך בעבודה עם צוותים מבוזרים בתקופות הקורונה.(טרנס) תשמע, קודם כל, כשהתחיל משבר הקורונה, נזכרתי במשפט שאמר לי פעם Andreessen . . שהוא אמר “במקום שבו אתה רואה משבר, אני רואה הזדמנות”.אז אמרתי מה בעצם הבעיה פה? אז אנשים מתים . . . עכשיו - אנשים מתים זה עצוב וכזה, אל תבין אותי לא נכון, אני ברגישות - אבל מה קורה אם מת לך מפתח באמצע ה-Release ,כאילו? יום לפני ה-Alpha או משהו, מה קורה?[היו מקרים גם ב-2019 . . .]אז אמרתי - וואי, מה יקרה אם נעשה Highly-redundant מפתח, אוקיי?בעצם, כשאתה לוקח מפתחים מאצלי, אז הם באים תמיד בזוגות, אבל מרחוק, ב-Remote - ואם במקרה אחד מהם מת מקורונה, אני עושה Hot-swap ומביא במקומו אחד אחר.עכשיו - מפתחים זה סתם Resources, מה הבעיה? לכתוב X זה קשה? אז הוא ישר נכנס וממשיך מאיפה שהקודם נעצר.(רן) ואם אחד מהם עושה לך NFT על הקוד? מה אתה עושה עם זה אז? לכל אחד יש את המפתחות?(טרנס) מה זאת אומרת “אם”? מה זאת אומרת . . .(רן) הם עושים את זה כבר?(טרנס) אתה קראת את האתר שלנו, הא חמוד? . . . אתה בסדר אתה.תראה - חברות ששמות אנשים בחברות, יש להן תמיד בעיה, יש בעיה במודל . . . לא יודע אם עבדת פעם עם חברת Outsourcing, אבל יש בעיה במודל - אם ה-Outsourcer הוא מצויין, אז אתה רוצה שהוא יעבור אליך, אתה לוקח אותו להיות עובדואז הוא עוזב את החברת Outsourcing ונגמר הכסף מה-Outsourcer הזהואם הוא בלאי, אז אתה תעיף את החברת Outsourcing קומפלט, לא תיקח אותם יותר, נכון? כשאתם עושים עם הראש לא שומעים את זה . . . [גם קשה לקרוא את זה . . . ](רן, אלון, דותן) נכון!(טרנס) אז אני אמרתי “קחו את העובדים בחינם - עלי - אבל הקוד שהם כותבים סגור ב-NFT” . . . אתם מכירים NFT? צריך להסביר?(דותן) לא, תסביר . . .(טרנס) אז NFT זה Crypto-Cyber-Distributed, שסוגר לך בעצם Assets דיגיטליים בצורה שבה בכל שימוש חוזר, היוצר המקורי מקבל חתיכה מהכסף.אז נגיד עכשיו, בחברה שעבדנו, נתתי להם את כל הקוד חינם, חוץ מלולאות If מ-1 עד 10 . . . הלולאות If מ-1 עד 10 סגורות ב-NFT שלי.ברגע שאתה עושה Code reuse ללולאות If מ-1 עד 10, אני מקבל ככה כמה סנטים על כל שימוש.(דותן) זה אומרת שאם יש לי מערכים קטנים אז אני בסדר, זה חינם . . .(טרנס) למי אין מערכים קטנים, תגיד לי? בחייאת . . .זה במיוחד שימושי ל-Columnar Databases . . . (דותן) אבל מה תעשה אם אנשים לוקחים מערך של 100 ומחלקים אותו למאה מערכים של 1? . . . (טרנס) תראה, הפתרון הוא לא מושלם, אבל בדיוק עכשיו המהנדסים שלי עובדים על לתפוס את ה-Until ואת ה-While - וברגע שתפסתי את ה-Until ואת ה-While, אחי - כל ה-Python של העולם יושב לי בכיס הקטן.זהו - אני סגור, אני יוצא לפנסיה, דבר איתי ב-Puerto Vallarta על מרגריטה . . .(אלון) שמע, זה אחלה מודל עסקי - הוא מחלק קוד חינם, וגוזר קופון על השימוש בלולאה . . .(דותן) נכון . . .(אלון) איך לא חשבו על זה קודם . . . (טרנס)לא רק בלולאות, לא רק בלולאות! אתה משתמש ב-Slack? (אלון) כן, אבל רק כל יום . . . (טרנס) בסדר, מעולה - אתה השתמשת פעם באייקון הזה של האיש עם השפם והמשקפיים והאף הגדול? של ה”היי, אני Nerd אבל אני מצחיקי”?(אלון) כן, ברור(טרנס) בכל פעם שאתה משתמש בו, Slack נותנים לי רבע-סנט . . . (אלון) מה אתה אומר? . . .(טרנס) סגרתי Assets מימין ומשאל, אתה לא מבין מה זה . . .(דותן) אפשר לשאול אותך, אם זה בסדר, על המקומות שבהם עבדת? שכולנו מכירים, שהם מפורסמים . . .(טרנס) עכשיו אתה מביך אותי קצת . . . אני לא רוצה להתהדר, אבל כל ה Data Consistency של Mongo? זה אני(רן) מה אתה אומר? . . . כל ה-Data Consistency של של Mongo זה אתה? פשש . . . איזו עבודה . . .(טרנס) כן, באמת, אני . . . באלפות (Alpha) הראשונות הייתי כותב במחברת, אבל אחר כך פיתחנו די הרבה קוד סביב זה.שם זה לא NFT לצערי, כי הרבה משתמשים.(אלון) וכל נושא ה-Data Loss, ב-Mongo - זה נכנס ב-Design? אחרי זה? מתי הכנסתם את הפיצ’רים?(טרנס) הכל מבוסס של AIהבטחנו שזה Eventually Consistent, אבל לא אמרנו מתי זה “Eventually” . . . עכשיו, בזמן שאתה כותב קוד, כותב Data ל-Mongo - אנחנו מג’נרטים (Generate) ספרות בפאי (

Clean Coders
CC 031: The Greatest Programming Books You've Never Heard of with Robert "Uncle Bob" Martin

Clean Coders

Play Episode Listen Later Mar 23, 2021 61:52


In the previous episode, Robert "Uncle Bob" Martin mentioned that there are many books that current programmers don't read anymore. Chuck pressed him and got him to come back and tell us which books those are and why people should be paying attention to them. Panel Charles Max Wood Guest Robert Cecil Martin  Sponsors Dev Heroes Accelerator Links The Art of Computer Programming - Volume 1 - Fundamental Algorithms by Donald Knuth The Art of Computer Programming - Volume 2 - Seminumerical Algorithms by Donald Knuth Art of Computer Programming, The: Volume 3: Sorting and Searching by  Donald Knuth Structured Programming by Edsger Wybe Dijkstra, C. A. R. Hoare and Ole-Johan Dahl  The Annotated Turing by Charles Petzold Alan Turing: The Enigma by Andrew Hodges Structured Analysis and System Specification by  Tom DeMarco Practical Guide to Structured Systems Design by Meilir Page-Jones Design Patterns: Elements of Reusable Object-Oriented Software Patterns of Enterprise Application Architecture by Martin Fowler Analysis Patterns: Reusable Object Models by Martin Fowler Domain-Driven Design: Tackling Complexity in the Heart of Software by Evans Eric The Structure and Interpretation of Computer Programs by Harold Abelson and Gerald Jay Sussman with Julie Sussman  Structure and Interpretation of Computer Programs Agile Software Development, Principles, Patterns, and Practices by Robert Martin

The Stephen Wolfram Podcast
Stephen Wolfram Q&A, For Kids (and others) [October 16, 2020]

The Stephen Wolfram Podcast

Play Episode Listen Later Jan 25, 2021 83:31


Stephen Wolfram answers general questions from his viewers about science and technology as part of an unscripted livestream series. Questions include: For a math/science career, what is the most useful subject to study in school excluding math/science? What was your favorite non-science class(subject) in school? - Does a charged battery weigh more than a discharged battery? - How can scientist Measure Atomic number for every element, electron mass and speed? - Is there an accessible book about the history of computation that you would recommend? - If it's true sound can be transmitted more easily in solids compared to gases, why can we hear better through air compared to through walls or glass? - Why are mirrors made with glass? Would a mirror made with a different material have different reflective properties? - What was your first computer Dr. Wolfram? - How long have you known Donald Knuth? - Golf ball have dimples that allow them to move faster. Why cars and planes don't have dimples? - When you say that in philosophy everyone can think about fundamental questions: why is that the case in philosophy but not in physics or maths? why does philosophy not have a similar rigid corpus of theory as "harder science" have? See the full Q&A video playlist: https://wolfr.am/youtube-sw-qa

The History of Computing
Bob Tayler: ARPA to PARC to DEC

The History of Computing

Play Episode Listen Later Jan 15, 2021 14:31


Robert Taylor was one of the true pioneers in computer science. In many ways, he is the string (or glue) that connected the US governments era of supporting computer science through ARPA to innovations that came out of Xerox PARC and then to the work done at Digital Equipment Corporation's Systems Research Center. Those are three critical aspects of the history of computing and while Taylor didn't write any of the innovative code or develop any of the tools that came out of those three research environments, he saw people and projects worth funding and made sure the brilliant scientists got what they needed to get things done. The 31 years in computing that his stops represented were some of the most formative years for the young computing industry and his ability to inspire the advances that began with Vannevar Bush's 1945 article called “As We May Think” then ended with the explosion of the Internet across personal computers.  Bob Taylor inherited a world where computing was waking up to large crusty but finally fully digitized mainframes stuck to its eyes in the morning and went to bed the year Corel bought WordPerfect because PCs needed applications, the year the Pentium 200 MHz was released, the year Palm Pilot and eBay were founded, the year AOL started to show articles from the New York Times, the year IBM opened a we web shopping mall and the year the Internet reached 36 million people. Excite and Yahoo went public. Sometimes big, sometimes small, all of these can be traced back to Bob Taylor - kinda' how we can trace all actors to Kevin Bacon. But more like if Kevin Bacon found talent and helped them get started, by paying them during the early years of their careers…  How did Taylor end up as the glue for the young and budding computing research industry? Going from tween to teenager during World War II, he went to Southern Methodist University in 1948, when he was 16. He jumped into the US Naval Reserves during the Korean War and then got his masters in psychology at the University of Texas at Austin using the GI Bill. Many of those pioneers in computing in the 60s went to school on the GI Bill. It was a big deal across every aspect of American life at the time - paving the way to home ownership, college educations, and new careers in the trades. From there, he bounced around, taking classes in whatever interested him, before taking a job at Martin Marietta, helping design the MGM-31 Pershing and ended up at NASA where he discovered the emerging computer industry.  Taylor was working on projects for the Apollo program when he met JCR Licklider, known as the Johnny Appleseed of computing. Lick, as his friends called him, had written an article called Man-Computer Symbiosis in 1960 and had laid out a plan for computing that influenced many. One such person, was Taylor. And so it was in 1962 he began and in 1965 that he succeeded in recruiting Taylor away from NASA to take his place running ARPAs Information Processing Techniques Office, or IPTO.  Taylor had funded Douglas Engelbart's research on computer interactivity at Stanford Research Institute while at NASA. He continued to do so when he got to ARPA and that project resulted in the invention of the computer mouse and the Mother of All Demos, one of the most inspirational moments and a turning point in the history of computing.  They also funded a project to develop an operating system called Multics. This would be a two million dollar project run by General Electric, MIT, and Bell Labs. Run through Project MAC at MIT there were just too many cooks in the kitchen. Later, some of those Bell Labs cats would just do their own thing. Ken Thompson had worked on Multics and took the best and worst into account when he wrote the first lines of Unix and the B programming language, then one of the most important languages of all time, C.  Interactive graphical computing and operating systems were great but IPTO, and so Bob Taylor and team, would fund straight out of the pentagon, the ability for one computer to process information on another computer. Which is to say they wanted to network computers. It took a few years, but eventually they brought in Larry Roberts, and by late 1968 they'd awarded an RFQ to build a network to a company called Bolt Beranek and Newman (BBN) who would build Interface Message Processors, or IMPs. The IMPS would connect a number of sites and route traffic and the first one went online at UCLA in 1969 with additional sites coming on frequently over the next few years. That system would become ARPANET, the commonly accepted precursor to the Internet.  There was another networking project going on at the time that was also getting funding from ARPA as well as the Air Force, PLATO out of the University of Illinois. PLATO was meant for teaching and had begun in 1960, but by then they were on version IV, running on a CDC Cyber and the time sharing system hosted a number of courses, as they referred to programs. These included actual courseware, games, convent with audio and video, message boards, instant messaging, custom touch screen plasma displays, and the ability to dial into the system over lines, making the system another early network.  Then things get weird. Taylor is sent to Vietnam as a civilian, although his rank equivalent would be a brigadier general. He helped develop the Military Assistance Command in Vietnam. Battlefield operations and reporting were entering the computing era. Only problem is, while Taylor was a war veteran and had been deep in the defense research industry for his entire career, Vietnam was an incredibly unpopular war and seeing it first hand and getting pulled into the theater of war, had him ready to leave. This combined with interpersonal problems with Larry Roberts who was running the ARPA project by then over Taylor being his boss even without a PhD or direct research experience. And so Taylor joined a project ARPA had funded at the University of Utah and left ARPA.  There, he worked with Ivan Sutherland, who wrote Sketchpad and is known as the Father of Computer Graphics, until he got another offer. This time, from Xerox to go to their new Palo Alto Research Center, or PARC. One rising star in the computer research world was pretty against the idea of a centralized mainframe driven time sharing system. This was Alan Kay. In many ways, Kay was like Lick. And unlike the time sharing projects of the day, the Licklider and Kay inspiration was for dedicated cycles on processors. This meant personal computers.  The Mansfield Amendment in 1973 banned general research by defense agencies. This meant that ARPA funding started to dry up and the scientists working on those projects needed a new place to fund their playtime. Taylor was able to pick the best of the scientists he'd helped fund at ARPA. He helped bring in people from Stanford Research Institute, where they had been working on the oNLineSystem, or NLS.  This new Computer Science Laboratory landed people like Charles Thacker, David Boggs, Butler Lampson, and Bob Sproul and would develop the Xerox Alto, the inspiration for the Macintosh. The Alto though contributed the very ideas of overlapping windows, icons, menus, cut and paste, word processing. In fact, Charles Simonyi from PARC would work on Bravo before moving to Microsoft to spearhead Microsoft Word. Bob Metcalfe on that team was instrumental in developing Ethernet so workstations could communicate with ARPANET all over the growing campus-connected environments. Metcalfe would leave to form 3COM.  SuperPaint would be developed there and Alvy Ray Smith would go on to co-found Pixar, continuing the work begun by Richard Shoup.  They developed the Laser Printer, some of the ideas that ended up in TCP/IP, and the their research into page layout languages would end up with Chuck Geschke, John Warnock and others founding Adobe.  Kay would bring us the philosophy behind the DynaBook which decades later would effectively become the iPad. He would also develop Smalltalk with Dan Ingalls and Adele Goldberg, ushering in the era of object oriented programming.  They would do pioneering work on VLSI semiconductors, ubiquitous computing, and anything else to prepare the world to mass produce the technologies that ARPA had been spearheading for all those years. Xerox famously did not mass produce those technologies. And nor could they have cornered the market on all of them. The coming waves were far too big for one company alone.  And so it was that PARC, unable to bring the future to the masses fast enough to impact earnings per share, got a new director in 1983 and William Spencer was yet another of three bosses that Taylor clashed with. Some resented that he didn't have a PhD in a world where everyone else did. Others resented the close relationship he maintained with the teams. Either way, Taylor left PARC in 1983 and many of the scientists left with him.  It's both a curse and a blessing to learn more and more about our heroes. Taylor was one of the finest minds in the history of computing. His tenure at PARC certainly saw the a lot of innovation and one of the most innovative teams to have ever been assembled. But as many of us that have been put into a position of leadership, it's easy to get caught up in the politics. I am ashamed every time I look back and see examples of building political capital at the expense of a project or letting an interpersonal problem get in the way of the greater good for a team. But also, we're all human and the people that I've interviewed seem to match the accounts I've read in other books.  And so Taylor's final stop was Digital Equipment Corporation where he was hired to form their Systems Research Center in Palo Alto. They brought us the AltaVista search engine, the Firefly computer, Modula-3 and a few other advances. Taylor retired in 1996 and DEC was acquired by Compaq in 1998 and when they were acquired by HP the SRC would get merged with other labs at HP.  From ARPA to Xerox to Digital, Bob Taylor certainly left his mark on computing. He had a knack of seeing the forest through the trees and inspired engineering feats the world is still wrestling with how to bring to fruition. Raw, pure science. He died in 2017. He worked with some of the most brilliant people in the world at ARPA. He inspired passion, and sometimes drama in what Stanford's Donald Knuth called “the greatest by far team of computer scientists assembled in one organization.”  In his final email to his friends and former coworkers, he said “You did what they said could not be done, you created things that they could not see or imagine.” The Internet, the Personal Computer, the tech that would go on to become Microsoft Office, object oriented programming, laser printers, tablets, ubiquitous computing devices. So, he isn't exactly understating what they accomplished in a false sense of humility. I guess you can't do that often if you're going to inspire the way he did.  So feel free to abandon the pretense as well, and go inspire some innovation. Heck, who knows where the next wave will come from. But if we aren't working on it, it certainly won't come. Thank you so much and have a lovely, lovely day. We are so lucky to have you join us on yet another episode. 

Eficiencia y algo más
E5 - Donald Knuth: La inusual forma de trabajar de una leyenda de la informática

Eficiencia y algo más

Play Episode Listen Later Dec 29, 2020 20:04


Donald Knuth es un prolífico informático, autor de la obra The Art of Computer Programming y creador de TeX. Su enfocada forma de trabajar le ha permitido quedar grabado en la historia de la informática e innumerables reconocimientos. En este capítulo se habla acerca de sus tremendos logros y qué podemos aprender de su manera de trabajar.

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

TapirCast
#68. Bilim Tarihi Serimize Bir Önsöz (Bilim Tarihi Serisi B2) - 08/11/2020

TapirCast

Play Episode Listen Later Nov 8, 2020 89:21


Bilim Tarihi serimizin yeni bölümü ile karşınızdayız. Bu bölümümüzün kaydı, aslında, pandemi sürecinden önce Tapir Lab.'da alınmış olup, hepimizin karşılaştığı problemlerden ötürü günümüze ötelenmesi gerekmiştir. Doç. Dr. Serhan Yarkan ve Halil Said Cankurtaran'ın yer aldığı TapirCast'in bu bölümünde, Bilim Tarihi serimizi hazırlamamızdaki motivasyon ve amaçlara değinilip, içeriğin oluşturulması ve aktarımı sürecinde izleyeceğimiz metotlar, yine bilim, teknoloji, mühendislik ve matematik alanlarında ortaya konulan gelişmelere değinilerek açıklanmıştır. Bölümümüzün normalden uzun olmasının sebebi, serimize bir önsöz olarak hazırlamış olmamızdır. Keyifli dinlemeler! Bölüm içerisinde Richard Hamming, C.E. Shannon, John Tukey, William Shockley, Santiago Ramòn y Cajal, Bernoulli, Herschel, Newton, Leibniz, Gauss, Heaviside, Faraday, Maxwell, Fraunhofer, Ramanujan, Darwin, Einstein, Niels Bohr, Donald Knuth, McLuhan, Baudrillard, James Murray ve daha pek çok bilim insanı ve düşünüre değinilmiştir. Richard Hamming, ``You and Your Research'': https://www.cs.virginia.edu/~robins/YouAndYourResearch.html Bell Labs.: https://en.wikipedia.org/wiki/Bell_Labs Santiago Ramòn y Cajal: https://www.nobelprize.org/prizes/medicine/1906/cajal/biographical/ İskenderiye'de öldürülen filozof, matematikçi, astronom - Hypatia: https://mathshistory.st-andrews.ac.uk/Biographies/Hypatia/ Tapir Lab. GitHub: @TapirLab, https://www.github.com/tapirlab Tapir Lab. Instagram: @tapirlab, https://www.instagram.com/tapirlab/ Tapir Lab. Twitter: @tapirlab, https://www.twitter.com/tapirlab Tapir Lab.: http://www.tapirlab.com

Geek Speak with Lyle Troxell
The Software Arts: Language

Geek Speak with Lyle Troxell

Play Episode Listen Later May 24, 2020 53:39


Warren Sack is back for a conversation of the Natural and Institutional Language from the French Encyclopédistes, touching on The Wealth of Nations, Babbage, Lovelace, Donald Knuth, Information Theory, Work vs Work, James Prescott Joule, Functions & Operations and much more. Learn why the true language of Software is not Physics.

Había una vez un algoritmo...
Verificación formal de software y ¿la programación es un arte? | E22

Había una vez un algoritmo...

Play Episode Listen Later May 17, 2020 29:42


Hoy trataremos el tema de la verificación formal de software desde la visión de Tony Hoare. Y posteriormente hablaremos del concepto de "arte" dentro de la programación según Donald Knuth.

Python Bytes
#178 Build a PyPI package from a Jupyter notebook

Python Bytes

Play Episode Listen Later Apr 22, 2020 38:18


This episode is brought to you by Digital Ocean: pythonbytes.fm/digitalocean YouTube is going strong over at pythonbytes.fm/youtube Michael #1: Python String Format Website by Lachlan Eagling Have you ever forgotten the arguments to datetime.str``f``time()? Quick: What’s the format for Wed April 15, 10:30am? I don’t know but the site says '%a %B %H, %M:%Sam' and it’s right! Brian #2: Pandas-Bokeh Suggested by Jack McKew “Pandas-Bokeh provides a Bokeh plotting backend for Pandas, GeoPandas and Pyspark DataFrames, similar to the already existing Visualization feature of Pandas. Importing the library adds a complementary plotting method plot_bokeh() on DataFrames and Series.” “With Pandas-Bokeh, creating stunning, interactive, HTML-based visualization is as easy as calling: df.plot_bokeh()" You can also switch the default plotting of pandas to Bokeh with pd.set_option('plotting.backend', 'pandas_bokeh') This interface looks a lot easier to me, instead of frames and plots and shows and such. Lots of options, and all collected in parameters to the plot call. Can also export a notebook or a standalone html file. Plus, the combined install of pip install pandas-bokeh pulls in everything you need. Michael #3: NBDev nbdev is a library that allows you to fully develop a library in Jupyter Notebooks, putting all your code, tests and documentation in one place. That is: you now have a true literate programming environment, as envisioned by Donald Knuth back in 1983! This seems to be a massive upgrade for notebooks and related tooling Creates Python packages out of a notebook Creates documentation from the notebook Solves the git perma-conflict issues with git pre-commit hooks Use #export to declare a cell should become a function in the package Manages the boilerplate issues for creating Python packages (setup.py, etc) Makes testing possible inside notebooks Navigate and edit your code in a standard text editor or IDE, and sync any changes automatically back into your notebooks (reverse basically) Follow getting started instructions. Docs render slightly better at nbdev.fast.ai Brian #4: Stop naming your python modules “utils” Sebastian Buczyński, @EnforcerPL Lots of projects, public and private, end up having a utils.py. “utils is arguably one of the worst names for a module because it is very blurry and imprecise. Such a name does not say what is the purpose of code inside. On the contrary, a utils module can as well contain almost anything. By naming a module utils, a software developer lays down perfect conditions for an incohesive code blob. Since the module name does not hint team members if something fits there or not, it is likely that unrelated code will eventually appear there, as more utils.” one occurrence of misbehavior invites more of them I have seen this in action. I’ve put 2-3 hard to classify methods, but used in lots of modules, into a utils.py, only to come back in a few months and see a couple dozen completely unrelated methods, now that the team has a junk drawer to throw things in. Excuses: It’s just one function There is no other place to put this code I need a place for company commons But Django does it Instead: Try naming based on role of the code or group functions by theme. If you see a utils.py crop up in a code review, request that it be renamed or split and renamed. Michael #5: Scalene A high-performance, high-precision CPU and memory profiler for Python It runs orders of magnitude faster than other profilers while delivering far more detailed information. Scalene is fast. It uses sampling instead of instrumentation or relying on Python's tracing facilities. Its overhead is typically no more than 10-20% (and often less). Scalene is precise. Unlike most other Python profilers, Scalene performs CPU profiling at the line level, pointing to the specific lines of code that are responsible for the execution time in your program. Scalene separates out time spent running in Python from time spent in native code (including libraries). Scalene profiles memory usage. In addition to tracking CPU usage, Scalene also points to the specific lines of code responsible for memory growth. It accomplishes this via an included specialized memory allocator. Requires special install, not just pip (see brew install instructions for the docs) Scalene profiles copying volume, making it easy to spot inadvertent copying, especially due to crossing Python/library boundaries (e.g., accidentally converting numpy arrays into Python arrays, and vice versa). See the performance comparison chart. Would be nice to have integrated in the editors (PyCharm and VS Code) Brian #6: From 1 to 10,000 test cases in under an hour: A beginner's guide to property-based testing Carolyn Stransky, @carolynstran Excellent intro to property based testing and hypothesis Starts with a unit test that uses example based testing. Before showing similar test using hypothesis, she talks about the different mindset of testing for properties instead of exact examples. Like not the exact sorted list you should but instead, the length should be the same the contents should contain the same things, for instance, using set for that assertion you could element-wise walk the list and make sure i

Josh on Narro
Computer Scientist Donald Knuth Can’t Stop Telling Stories | Quanta Magazine

Josh on Narro

Play Episode Listen Later Apr 16, 2020 13:34


For pioneering computer scientist Donald Knuth, good coding is synonymous with beautiful expression. https://www.quantamagazine.org/computer-scientist-donald-knuth-cant-stop-telling-stories-20200416/ Q&AVivian Cromwellcomputer sciencecomputershistory of scienceQ&AACM Grace Murray Hopper AwardNational Medal of ScienceA.M. Turing AwardThe Art of Computer ProgrammingSubscribe nowTeXliterate programming“the most pleasing curve”Phyllis [Astrid Benson Winkler]Vivian CromwellFantasia ApocalypticaThings a Computer Scientist Rarely Talks AboutMost recent newsletter

The CS-Ed Podcast
Episode 3: Amy Ko

The CS-Ed Podcast

Play Episode Listen Later Jan 7, 2020 24:29


In this episode, we talk with Amy Ko, an Associate Professor at the University of Washington Information School. She directs the Code & Cognition Lab and studies human aspects of programming. Our conversation focused on how to teach students to debug, a skill many of us undoubtedly struggle to get our students to do effectively. Amy suggests: step 1 is to have students articulate what is happening versus what should happen (current output versus correct output). Step 2 is brainstorm different ways (hypotheses) that might be causing the discrepancy and exploring each idea to see if it is the cause. If a student runs out of ideas before they find the bug, go back to step 1 and confirm they understand what should and should not be happening. When asked to share something awesome in computer science, Amy talked about her interest in computer science history and Donald Knuth. Knuth is one of the originators of many core algorithms in computer science. He also spent 10 years cataloging every mistake he made while working on the typesetting programming language LaTeX. So his interests were broad and he also wrote bugs! In Amy's Too Long; Didn't Listen (TL;DL) she emphasized that debugging is a primary skill and is something we should teach. And we are starting to find ways to teach this skill. *This interview has been edited to reflect Amy's blog post announcement titled "I'm trans! Call me Amy."

Lex Fridman Podcast
Donald Knuth: Algorithms, TeX, Life, and The Art of Computer Programming

Lex Fridman Podcast

Play Episode Listen Later Dec 30, 2019 106:13


Donald Knuth is one of the greatest and most impactful computer scientists and mathematicians ever. He is the recipient in 1974 of the Turing Award, considered the Nobel Prize of computing. He is the author of the multi-volume work, the magnum opus, The Art of Computer Programming. He made several key contributions to the rigorous analysis of the computational complexity of algorithms. He popularized asymptotic notation, that we all affectionately know as the big-O notation. He also created the TeX typesetting which most computer scientists, physicists, mathematicians, and scientists and engineers use to write technical papers and make them look

On-Call Nightmares Podcast
Episode 39 - Daniel Bentley - tilt.dev

On-Call Nightmares Podcast

Play Episode Listen Later Sep 25, 2019 33:05


This week I speak with Dan Bentley of tilt.dev! Dan is a software engineer who's currently fixing microservice development as CEO of Tilt ( https://tilt.dev ). Before that, he was at Google for 11 years and then Twitter, working on tools for devs and tools for non-developers. He's opened for The Who and has checks from Donald Knuth. Transcript: https://aka.ms/AA64hk6 https://tilt.dev https://twitter.com/dbentley

The juice and the squeeze
Episode 3: Join the resistance

The juice and the squeeze

Play Episode Listen Later Sep 24, 2019 43:18


After a brief diversion for f/u we have a quick chat about the importance of having a website if you're an academic. Taking time off from work (during the day, week, or year) seems VERY important for both happiness and productivity. But it's hard to do. Join the resistance and sharpen your saw (all credit to Julia's mom). We would all like to handle email the way Donald Knuth does but that's probably unrealistic. Theme music courtesy of The Bobby Dazzlers (https://thebobbydazzlers.bandcamp.com)

Devchat.tv Master Feed
JSJ 392: The Murky Past and Misty Future of JavaScript with Douglas Crockford

Devchat.tv Master Feed

Play Episode Listen Later Sep 17, 2019 73:10


Episode Summary Douglas is a language architect and helped with the development of JavaScript. He started working with JavaScript in 2000. He talks about his journey with the language, including his initial confusion and struggles, which led him to write his book JavaScript: The Good Parts. Douglas’ take on JavaScript is unique because he not only talks about what he likes, but what he doesn’t like. Charles and Douglas discuss some of the bad parts of JavaScript, many of which were mistakes because the language was designed and released in too little time. Other mistakes were copied intentionally from other languages because people are emotionally attached to the way things “have always been done”, even if there is a better way. Doug takes a minimalist approach to programming. They talk about his opinions on pairing back the standard library and bringing in what’s needed. Douglas believes that using every feature of the language in everything you make is going to get you into trouble. Charles and Douglas talk about how to identify what parts are useful and what parts are not. Douglas delves into some of the issues with the ‘this’ variable. He has experimented with getting rid of ‘this’ and found that it made things easier and programs smaller. More pointers on how to do functional programming can be found in his book How JavaScript Works  Charles and Douglas talk about how he decided which parts were good and bad. Douglas talks about how automatic semicolon insertion and ++ programming are terrible, and his experiments with getting rid of them. He explains the origin of JS Lint. After all, most of our time is not spent coding, it’s spent debugging and maintaining, so there’s no point in optimizing keystrokes. Douglas talks about his experience on the ECMAScript development committee and developing JavaScript. He believes that the most important features in ES6 were modules and proper tail calls. They discuss whether or not progression or digression is occurring within JavaScript. Douglas disagrees with all the ‘clutter’ that is being added and the prevalent logical fallacy that if more complexity is added in the language then the program will be simpler.  Charles asks Douglas about his plans for the future. His current priority is the next language. He talks about the things that JavaScript got right, but does not believe that it should not be the last language. He shares how he thinks that languages should progress. There should be a focus on security, and security should be factored into the language.  Douglas is working on an implementation for a new language he calls Misty. He talks about where he sees Misty being implemented. He talks about his Frontend Masters course on functional programming and other projects he’s working on. The show concludes with Douglas talking about the importance of teaching history in programming.  Panelists Charles Max Wood With special guest: Douglas Crockford Sponsors Sustain Our Software Sentry use the code “devchat” for 2 months free on Sentry’s small plan Views on Vue Links JavaScript: The Good Parts How JavaSript Works “This” variable ECMAScript C++ JS Lint ECMA TC39 Dojo Promise RxJS Drses Misty Tail call Frontend Masters course JavaScript the Good Parts Follow DevChatTV on Facebook and Twitter Picks Charles Max Wood: Superfans by Pat Flynn SEO course Agency Unlocked by Neil Patel Douglas Crockford: The Art of Computer Programming by Donald Knuth Game of Thrones Follow Douglas at crockford.com

JavaScript Jabber
JSJ 392: The Murky Past and Misty Future of JavaScript with Douglas Crockford

JavaScript Jabber

Play Episode Listen Later Sep 17, 2019 73:10


Episode Summary Douglas is a language architect and helped with the development of JavaScript. He started working with JavaScript in 2000. He talks about his journey with the language, including his initial confusion and struggles, which led him to write his book JavaScript: The Good Parts. Douglas’ take on JavaScript is unique because he not only talks about what he likes, but what he doesn’t like. Charles and Douglas discuss some of the bad parts of JavaScript, many of which were mistakes because the language was designed and released in too little time. Other mistakes were copied intentionally from other languages because people are emotionally attached to the way things “have always been done”, even if there is a better way. Doug takes a minimalist approach to programming. They talk about his opinions on pairing back the standard library and bringing in what’s needed. Douglas believes that using every feature of the language in everything you make is going to get you into trouble. Charles and Douglas talk about how to identify what parts are useful and what parts are not. Douglas delves into some of the issues with the ‘this’ variable. He has experimented with getting rid of ‘this’ and found that it made things easier and programs smaller. More pointers on how to do functional programming can be found in his book How JavaScript Works  Charles and Douglas talk about how he decided which parts were good and bad. Douglas talks about how automatic semicolon insertion and ++ programming are terrible, and his experiments with getting rid of them. He explains the origin of JS Lint. After all, most of our time is not spent coding, it’s spent debugging and maintaining, so there’s no point in optimizing keystrokes. Douglas talks about his experience on the ECMAScript development committee and developing JavaScript. He believes that the most important features in ES6 were modules and proper tail calls. They discuss whether or not progression or digression is occurring within JavaScript. Douglas disagrees with all the ‘clutter’ that is being added and the prevalent logical fallacy that if more complexity is added in the language then the program will be simpler.  Charles asks Douglas about his plans for the future. His current priority is the next language. He talks about the things that JavaScript got right, but does not believe that it should not be the last language. He shares how he thinks that languages should progress. There should be a focus on security, and security should be factored into the language.  Douglas is working on an implementation for a new language he calls Misty. He talks about where he sees Misty being implemented. He talks about his Frontend Masters course on functional programming and other projects he’s working on. The show concludes with Douglas talking about the importance of teaching history in programming.  Panelists Charles Max Wood With special guest: Douglas Crockford Sponsors Sustain Our Software Sentry use the code “devchat” for 2 months free on Sentry’s small plan Views on Vue Links JavaScript: The Good Parts How JavaSript Works “This” variable ECMAScript C++ JS Lint ECMA TC39 Dojo Promise RxJS Drses Misty Tail call Frontend Masters course JavaScript the Good Parts Follow DevChatTV on Facebook and Twitter Picks Charles Max Wood: Superfans by Pat Flynn SEO course Agency Unlocked by Neil Patel Douglas Crockford: The Art of Computer Programming by Donald Knuth Game of Thrones Follow Douglas at crockford.com

All JavaScript Podcasts by Devchat.tv
JSJ 392: The Murky Past and Misty Future of JavaScript with Douglas Crockford

All JavaScript Podcasts by Devchat.tv

Play Episode Listen Later Sep 17, 2019 73:10


Episode Summary Douglas is a language architect and helped with the development of JavaScript. He started working with JavaScript in 2000. He talks about his journey with the language, including his initial confusion and struggles, which led him to write his book JavaScript: The Good Parts. Douglas’ take on JavaScript is unique because he not only talks about what he likes, but what he doesn’t like. Charles and Douglas discuss some of the bad parts of JavaScript, many of which were mistakes because the language was designed and released in too little time. Other mistakes were copied intentionally from other languages because people are emotionally attached to the way things “have always been done”, even if there is a better way. Doug takes a minimalist approach to programming. They talk about his opinions on pairing back the standard library and bringing in what’s needed. Douglas believes that using every feature of the language in everything you make is going to get you into trouble. Charles and Douglas talk about how to identify what parts are useful and what parts are not. Douglas delves into some of the issues with the ‘this’ variable. He has experimented with getting rid of ‘this’ and found that it made things easier and programs smaller. More pointers on how to do functional programming can be found in his book How JavaScript Works  Charles and Douglas talk about how he decided which parts were good and bad. Douglas talks about how automatic semicolon insertion and ++ programming are terrible, and his experiments with getting rid of them. He explains the origin of JS Lint. After all, most of our time is not spent coding, it’s spent debugging and maintaining, so there’s no point in optimizing keystrokes. Douglas talks about his experience on the ECMAScript development committee and developing JavaScript. He believes that the most important features in ES6 were modules and proper tail calls. They discuss whether or not progression or digression is occurring within JavaScript. Douglas disagrees with all the ‘clutter’ that is being added and the prevalent logical fallacy that if more complexity is added in the language then the program will be simpler.  Charles asks Douglas about his plans for the future. His current priority is the next language. He talks about the things that JavaScript got right, but does not believe that it should not be the last language. He shares how he thinks that languages should progress. There should be a focus on security, and security should be factored into the language.  Douglas is working on an implementation for a new language he calls Misty. He talks about where he sees Misty being implemented. He talks about his Frontend Masters course on functional programming and other projects he’s working on. The show concludes with Douglas talking about the importance of teaching history in programming.  Panelists Charles Max Wood With special guest: Douglas Crockford Sponsors Sustain Our Software Sentry use the code “devchat” for 2 months free on Sentry’s small plan Views on Vue Links JavaScript: The Good Parts How JavaSript Works “This” variable ECMAScript C++ JS Lint ECMA TC39 Dojo Promise RxJS Drses Misty Tail call Frontend Masters course JavaScript the Good Parts Follow DevChatTV on Facebook and Twitter Picks Charles Max Wood: Superfans by Pat Flynn SEO course Agency Unlocked by Neil Patel Douglas Crockford: The Art of Computer Programming by Donald Knuth Game of Thrones Follow Douglas at crockford.com

Coder Radio
371: Absurd Abstractions

Coder Radio

Play Episode Listen Later Aug 19, 2019 39:22


It’s a Coder Radio special all about abstraction. What it is, why we need it, and what to do when it leaks. Plus your feedback, Mike’s next language challenge, and a functional ruby pick.

BSD Now
282: Open the Rsync

BSD Now

Play Episode Listen Later Jan 24, 2019 61:20


Project Trident 18.12 released, Spotifyd on NetBSD, OPNsense 18.7.10 is available, Ultra EPYC AMD Powered Sun Ultra 24 Workstation, OpenRsync, LLD porting to NetBSD, and more. ##Headlines ###AsiaBSDCon 2019 Call for Papers You have until Jan 30th to submit Full paper requirement is relaxed a bit this year (this year ONLY!) due to the short submission window. You don’t need all 10-12 pages, but it is still preferred. Send a message to secretary@asiabsdcon.org with your proposal. Could be either for a talk or a tutorial. Two days of tutorials/devsummit and two days of conference during Sakura season in Tokyo, Japan The conference is also looking for sponsors If accepted, flight and hotel is paid for by the conference ###Project Trident 18.12 Released Twitter account if you want to keep up on project news Screenshots Project Trident Community Telegram Channel DistroWatch Page LinuxActionNews Review RoboNuggie’s in depth review ###Building Spotifyd on NetBSD These are the steps I went through to build and run Spotifyd (this commit at the time of writing) on NetBSD AMD64. It’s a Spotify Connect client so it means I still need to control Spotify from another device (typically my phone), but the audio is played through my desktop… which is where my speakers and headphones are plugged in - it means I don’t have to unplug stuff and re-plug into my phone, work laptop, etc. This is 100% a “good enough for now solution” for me; I have had a quick play with the Go based microcontroller from spotcontrol and that allows a completely NetBSD only experience (although it is just an example application so doesn’t provide many features - great as a basis to build on though). ##News Roundup ###OPNsense 18.7.10 released 2019 means 19.1 is almost here. In the meantime accept this small incremental update with goodies such as Suricata 4.1, custom passwords for P12 certificate export as well as fresh fixes in the FreeBSD base. A lot of cleanups went into this update to make sure there will be a smooth transition to 19.1-RC for you early birds. We expect RC1 in 1-2 weeks and the final 19.1 on January 29. ###Introducing the Ultra EPYC AMD Powered Sun Ultra 24 Workstation A few weeks ago, I got an itch to build a workstation with AMD EPYC. There are a few constraints. First, I needed a higher-clock part. Second, I knew the whole build would be focused more on being an ultra high-end workstation rather than simply utilizing gaming components. With that, I decided it was time to hit on a bit of nostalgia for our readers. Mainly, I wanted to do an homage to Sun Microsystems. Sun made the server gear that the industry ran on for years, and as a fun fact, if you go behind the 1 Hacker Way sign at Facebook’s campus, they left the Sun Microsystems logo. Seeing that made me wonder if we could do an ultimate AMD EPYC build in a Sun Microsystems workstation. ###OpenRsync This is a clean-room implementation of rsync with a BSD (ISC) license. It is designed to be compatible with a modern rsync (3.1.3 is used for testing). It currently compiles and runs only on OpenBSD. This project is still very new and very fast-moving. It’s not ready for wide-spread testing. Or even narrow-spread beyond getting all of the bits to work. It’s not ready for strong attention. Or really any attention but by careful programming. Many have asked about portability. We’re just not there yet, folks. But don’t worry, the system is easily portable. The hard part for porters is matching OpenBSD’s pledge and unveil. ###The first report on LLD porting LLD is the link editor (linker) component of Clang toolchain. Its main advantage over GNU ld is much lower memory footprint, and linking speed. It is of specific interest to me since currently 8 GiB of memory are insufficient to link LLVM statically (which is the upstream default). The first goal of LLD porting is to ensure that LLD can produce working NetBSD executables, and be used to build LLVM itself. Then, it is desirable to look into trying to build additional NetBSD components, and eventually into replacing /usr/bin/ld entirely with lld. In this report, I would like to shortly summarize the issues I have found so far trying to use LLD on NetBSD. ###Ring in the new It’s the second week of 2019 already, which means I’m curious what Nate is going to do with his series This week in usability … reset the numbering from week 1? That series is a great read, to keep up with all the little things that change in KDE source each week — aside from the release notes. For the big ticket items of KDE on FreeBSD, you should read this blog instead. In ports this week (mostly KDE, some unrelated): KDE Plasma has been updated to the latest release, 5.14.5. KDE Applications 18.12.1 were released today, so we’re right on top of them. Marble was fixed for FreeBSD-running-on-Power9. Musescore caught up on 18 months of releases. Phonon updated to 4.10.1, along with its backends. And in development, Qt WebEngine 5.12 has been prepared in the incongruously-named plasma-5.13 branch in Area51; that does contain all the latest bits described above, as well. ##Beastie Bits NomadBSD 1.2-RC1 Released ZFS - The First Enterprise Blockchain Powersaving with DragonFly laptop NetBSD reaches 100% reproducable builds Potential Bhyve Web Interface? LibGDX proof of concept on OpenBSD - Video LiteCLI is a user-friendly CommandLine client for SQLite database In honor of Donald Knuth’s 81 birthday Stanford uploaded 111 lectures on Youtube Portland BSD Pizza Night - 2018-01-31 19:00 - Sweet Heart Pizza Stockholm BSD February meetup Polish BSD User Group: Jan 25 18:15 - 21:00 AsiaBSDcon 2019 CfP ##Feedback/Questions Greg - VLANs and jails Tara - ZFS on removable disks Casey - Interview with Kirk McKusick Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv

BSD Now
Episode 277: Nmap Level Up | BSD Now 277

BSD Now

Play Episode Listen Later Dec 24, 2018 76:25


The Open Source midlife crisis, Donald Knuth The Yoda of Silicon Valley, Certbot For OpenBSD's httpd, how to upgrade FreeBSD from 11 to 12, level up your nmap game, NetBSD desktop, and more. ##Headlines Open Source Confronts its midlife crisis Midlife is tough: the idealism of youth has faded, as has inevitably some of its fitness and vigor. At the same time, the responsibilities of adulthood have grown. Making things more challenging, while you are navigating the turbulence of teenagers, your own parents are likely entering life’s twilight, needing help in new ways from their adult children. By midlife, in addition to the singular joys of life, you have also likely experienced its terrible sorrows: death, heartbreak, betrayal. Taken together, the fading of youth, the growth in responsibility and the endurance of misfortune can lead to cynicism or (worse) drastic and poorly thought-out choices. Add in a little fear of mortality and some existential dread, and you have the stuff of which midlife crises are made… I raise this not because of my own adventures at midlife, but because it is clear to me that open source — now several decades old and fully adult — is going through its own midlife crisis. This has long been in the making: for years, I (and others) have been critical of service providers’ parasitic relationship with open source, as cloud service providers turn open source software into a service offering without giving back to the communities upon which they implicitly depend. At the same time, open source has been (rightfully) entirely unsympathetic to the proprietary software models that have been burned to the ground — but also seemingly oblivious as to the larger economic waves that have buoyed them. So it seemed like only a matter of time before the companies built around open source software would have to confront their own crisis of confidence: open source business models are really tough, selling software-as-a-service is one of the most natural of them, the cloud service providers are really good at it — and their commercial appetites seem boundless. And, like a new cherry red two-seater sports car next to a minivan in a suburban driveway, some open source companies are dealing with this crisis exceptionally poorly: they are trying to restrict the way that their open source software can be used. These companies want it both ways: they want the advantages of open source — the community, the positivity, the energy, the adoption, the downloads — but they also want to enjoy the fruits of proprietary software companies in software lock-in and its monopolistic rents. If this were entirely transparent (that is, if some bits were merely being made explicitly proprietary), it would be fine: we could accept these companies as essentially proprietary software companies, albeit with an open source loss-leader. But instead, these companies are trying to license their way into this self-contradictory world: continuing to claim to be entirely open source, but perverting the license under which portions of that source are available. Most gallingly, they are doing this by hijacking open source nomenclature. Of these, the laughably named commons clause is the worst offender (it is plainly designed to be confused with the purely virtuous creative commons), but others (including CockroachDB’s Community License, MongoDB’s Server Side Public License, and Confluent’s Community License) are little better. And in particular, as it apparently needs to be said: no, “community” is not the opposite of “open source” — please stop sullying its good name by attaching it to licenses that are deliberately not open source! But even if they were more aptly named (e.g. “the restricted clause” or “the controlled use license” or — perhaps most honest of all — “the please-don’t-put-me-out-of-business-during-the-next-reInvent-keynote clause”), these licenses suffer from a serious problem: they are almost certainly asserting rights that the copyright holder doesn’t in fact have. If I sell you a book that I wrote, I can restrict your right to read it aloud for an audience, or sell a translation, or write a sequel; these restrictions are rights afforded the copyright holder. I cannot, however, tell you that you can’t put the book on the same bookshelf as that of my rival, or that you can’t read the book while flying a particular airline I dislike, or that you aren’t allowed to read the book and also work for a company that competes with mine. (Lest you think that last example absurd, that’s almost verbatim the language in the new Confluent Community (sic) License.) I personally think that none of these licenses would withstand a court challenge, but I also don’t think it will come to that: because the vendors behind these licenses will surely fear that they wouldn’t survive litigation, they will deliberately avoid inviting such challenges. In some ways, this netherworld is even worse, as the license becomes a vessel for unverifiable fear of arbitrary liability. let me put this to you as directly as possible: cloud services providers are emphatically not going to license your proprietary software. I mean, you knew that, right? The whole premise with your proprietary license is that you are finding that there is no way to compete with the operational dominance of the cloud services providers; did you really believe that those same dominant cloud services providers can’t simply reimplement your LDAP integration or whatever? The cloud services providers are currently reproprietarizing all of computing — they are making their own CPUs for crying out loud! — reimplementing the bits of your software that they need in the name of the service that their customers want (and will pay for!) won’t even move the needle in terms of their effort. Worse than all of this (and the reason why this madness needs to stop): licenses that are vague with respect to permitted use are corporate toxin. Any company that has been through an acquisition can speak of the peril of the due diligence license audit: the acquiring entity is almost always deep pocketed and (not unrelatedly) risk averse; the last thing that any company wants is for a deal to go sideways because of concern over unbounded liability to some third-party knuckle-head. So companies that engage in license tomfoolery are doing worse than merely not solving their own problem: they are potentially poisoning the wellspring of their own community. in the end, open source will survive its midlife questioning just as people in midlife get through theirs: by returning to its core values and by finding rejuvenation in its communities. Indeed, we can all find solace in the fact that while life is finite, our values and our communities survive us — and that our engagement with them is our most important legacy. See the article for the rest ###Donald Knuth - The Yoda of Silicon Valley For half a century, the Stanford computer scientist Donald Knuth, who bears a slight resemblance to Yoda — albeit standing 6-foot-4 and wearing glasses — has reigned as the spirit-guide of the algorithmic realm. He is the author of “The Art of Computer Programming,” a continuing four-volume opus that is his life’s work. The first volume debuted in 1968, and the collected volumes (sold as a boxed set for about $250) were included by American Scientist in 2013 on its list of books that shaped the last century of science — alongside a special edition of “The Autobiography of Charles Darwin,” Tom Wolfe’s “The Right Stuff,” Rachel Carson’s “Silent Spring” and monographs by Albert Einstein, John von Neumann and Richard Feynman. With more than one million copies in print, “The Art of Computer Programming” is the Bible of its field. “Like an actual bible, it is long and comprehensive; no other book is as comprehensive,” said Peter Norvig, a director of research at Google. After 652 pages, volume one closes with a blurb on the back cover from Bill Gates: “You should definitely send me a résumé if you can read the whole thing.” The volume opens with an excerpt from “McCall’s Cookbook”: Here is your book, the one your thousands of letters have asked us to publish. It has taken us years to do, checking and rechecking countless recipes to bring you only the best, only the interesting, only the perfect. Inside are algorithms, the recipes that feed the digital age — although, as Dr. Knuth likes to point out, algorithms can also be found on Babylonian tablets from 3,800 years ago. He is an esteemed algorithmist; his name is attached to some of the field’s most important specimens, such as the Knuth-Morris-Pratt string-searching algorithm. Devised in 1970, it finds all occurrences of a given word or pattern of letters in a text — for instance, when you hit Command+F to search for a keyword in a document. Now 80, Dr. Knuth usually dresses like the youthful geek he was when he embarked on this odyssey: long-sleeved T-shirt under a short-sleeved T-shirt, with jeans, at least at this time of year. In those early days, he worked close to the machine, writing “in the raw,” tinkering with the zeros and ones. See the article for the rest ##News Roundup Let’s Encrypt: Certbot For OpenBSD’s httpd Intro Let’s Encrypt is “a free, automated, and open Certificate Authority”. Certbot is “an easy-to-use automatic client that fetches and deploys SSL/TLS certificates for your web server”, well known as “the official Let’s Encrypt client”. I remember well how excited I felt when I read Let’s Encrypt’s “Our First Certificate Is Now Live” in 2015. How wonderful the goal of them is; it’s to “give people the digital certificates they need in order to enable HTTPS (SSL/TLS) for websites, for free” “to create a more secure and privacy-respecting Web”! Since this year, they have begun to support even ACME v2 and Wildcard Certificate! Well, in OpenBSD as well as other operating systems, it’s easy and comfortable to have their big help 😊 Environment OS: OpenBSD 6.4 amd64 Web Server: OpenBSD’s httpd Certification: Let’s Encrypt with Certbot 0.27 Reference: OpenBSD’s httpd ###FreeBSD 12 released: Here is how to upgrade FreeBSD 11 to 12 The FreeBSD project announces the availability of FreeBSD 12.0-RELEASE. It is the first release of the stable/12 branch. The new version comes with updated software and features for a wild variety of architectures. The latest release provides performance improvements and better support for FreeBSD jails and more. One can benefit greatly using an upgraded version of FreeBSD. FreeBSD 12.0 supports amd64, i386, powerpc, powerpc64, powerpcspe, sparc64, armv6, armv7, and aarch64 architectures. One can run it on a standalone server or desktop system. Another option is to run it on Raspberry PI computer. FreeBSD 12 also runs on popular cloud service providers such as AWS EC2/Lightsail or Google compute VM. New features and highlights: OpenSSL version 1.1.1a (LTS) OpenSSH server 7.8p1 Unbound server 1.8.1 Clang and co 6.0.1 The FreeBSD installer supports EFI+GELI as an installation option VIMAGE FreeBSD kernel configuration option has been enabled by default. VIMAGE was the main reason I custom compiled FreeBSD for the last few years. No more custom compile for me. Graphics drivers for modern ATI/AMD and Intel graphics cards are now available in the FreeBSD ports collection ZFS has been updated to include new sysctl(s), vfs.zfs.arcminprefetchms and vfs.zfs.arcminprescientprefetchms, which improve performance of the zpool scrub subcommand The pf packet filter is now usable within a jail using vnet KDE updated to version 5.12.5 The NFS version 4.1 includes pNFS server support Perl 5.26.2 The default PAGER now defaults to less for most commands The dd utility has been updated to add the status=progress option to match GNU/Linux dd command to show progress bar while running dd FreeBSD now supports ext4 for read/write operation Python 2.7 much more ###Six Ways to Level Up Your nmap Game nmap is a network exploration tool and security / port scanner. If you’ve heard of it, and you’re like me, you’ve most likely used it like this: ie, you’ve pointed it at an IP address and observed the output which tells you the open ports on a host. I used nmap like this for years, but only recently grokked the manual to see what else it could do. Here’s a quick look and some of the more useful things I found out. Scan a Network Scan All Ports Get service versions Use -A for more data Find out what nmap is up to Script your own scans with NSE ###[NetBSD Desktop] Part 1: Manual NetBSD installation on GPT/UEFI NetBSD desktop pt.2: Set up wireless networking on NetBSD with wpasupplicant and dhcpcd Part 3: Simple stateful firewall with NPF Part 4: 4: The X Display Manager (XDM) Part 5: automounting with Berkeley am-utils ##Beastie Bits Call For Testing: ZFS on FreeBSD Project DragonFlyBSD 5.4.1 release within a week You Can’t Opt Out of the Patent System. That’s Why Patent Pandas Was Created! Announcing Yggdrasil Network v0.3 OpenBSD Network Engineer Job listing FreeBSD 12.0 Stable Version Released! LibreSSL 2.9.0 released Live stream test: Sgi Octane light bar repair / soldering! Configure a FreeBSD Email Server Using Postfix, Dovecot, MySQL, DAVICAL and SpamAssassin Berkeley smorgasbord FOSDEM BSD Devroom schedule ##Feedback/Questions Warren - Ep.273: OpenZFS on OS X cogoman - tarsnap security and using SSDs in raid Andrew - Portland BSD Pizza Night Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv

Inside Out Security
When IT, Data and Security Collide

Inside Out Security

Play Episode Listen Later Dec 24, 2018 27:57


The CIO is responsible for using IT to make the business more efficient. Meanwhile, the CISO is responsible for developing and executing a security program that’s aimed to protect enterprise systems and data from both internal and external threats. At the end of the day, the CISO makes security recommendations to the CIO has the final say. Perhaps it’s time that the CISO gets a seat at the table. Meanwhile, good Samaritans such as Chris Vickery and Troy Hunt help companies find leaked data and hopes the company seal the leak before cybercriminals find it. Other articles discussed: Donald Knuth, the Yoda of Computer Programming ISP blocks internet: on purpose or because it was law? Email’s evolution Earn a CPE with a live Varonis Cyber Attack Workshop Panelists: Cindy Ng, Kilian Englert, Mike Buckbee, Matt Radolec

Y Combinator
#84 - João Batalha and Luís Batalha

Y Combinator

Play Episode Listen Later Jul 6, 2018 74:10


João Batalha and Luís Batalha are cofounders of Fermat’s Library.Fermat’s Library is a platform for annotating papers. Each week they send out a paper annotated by their community. Some recent papers were Birds and Frogs by Freeman Dyson and Von Neumann's First Computer Program by Donald Knuth.They’ve also built a Chrome Extension call Librarian for the arXiv which allows you to get direct links to references, do BibTeX extraction and make comments on papers.You can find them at FermatsLibrary.com.Read the transcript on our blog.The YC podcast is hosted by Craig Cannon.

Don't Panic Geocast
Episode 172 - "Quantum rainfall" Earth with Ben Etherington

Don't Panic Geocast

Play Episode Listen Later Jun 8, 2018 63:08


This week our friend at The Orbital Mechanics podcast joins us to talk about observing the Earth from space… or something like that. Earth observing spacecraft GRACE Van Allen Probes GOES Network TRMM TERRA DSCOVR Gravity Probe B Earth Missions List Ben Etherington @orbitalpodcast @benetherington Fun Paper Friday We know music is mathematical, but Donald Knuth takes it to the next level on this week’s fun paper friday! Knuth, Donald E. “The complexity of songs.” Communications of the ACM 27.4 (1984): 344–346. Contact us: Show - Support us on Patreon! - www.dontpanicgeocast.com - SWUNG Slack - @dontpanicgeo - show@dontpanicgeocast.com John Leeman - www.johnrleeman.com - @geo_leeman Shannon Dulin - @ShannonDulin  

WIRED Business – Spoken Edition
A Short History of Technology Worship

WIRED Business – Spoken Edition

Play Episode Listen Later Feb 26, 2018 7:32


“Beware of bugs in the above code; I have only proved it correct, not tried it.” That was how Donald Knuth, author of The Art of Computer Programming (1968), expressed the difference between pristine mathematics and buggy reality. “When programming, you abstract away the entire physical world as much as possible, because it's messy. But then it comes back and bites you,” Paul Ford, cofounder of the platform-builder Postlight, told me.

BSD Now
222: How Netflix works

BSD Now

Play Episode Listen Later Nov 29, 2017 127:25


We take a look at two-faced Oracle, cover a FAMP installation, how Netflix works the complex stuff, and show you who the patron of yak shaving is. This episode was brought to you by Headlines Why is Oracle so two-faced over open source? (https://www.theregister.co.uk/2017/10/12/oracle_must_grow_up_on_open_source/) Oracle loves open source. Except when the database giant hates open source. Which, according to its recent lobbying of the US federal government, seems to be "most of the time". Yes, Oracle has recently joined the Cloud Native Computing Foundation (CNCF) to up its support for open-source Kubernetes and, yes, it has long supported (and contributed to) Linux. And, yes, Oracle has even gone so far as to (finally) open up Java development by putting it under a foundation's stewardship. Yet this same, seemingly open Oracle has actively hammered the US government to consider that "there is no math that can justify open source from a cost perspective as the cost of support plus the opportunity cost of forgoing features, functions, automation and security overwhelm any presumed cost savings." That punch to the face was delivered in a letter to Christopher Liddell, a former Microsoft CFO and now director of Trump's American Technology Council, by Kenneth Glueck, Oracle senior vice president. The US government had courted input on its IT modernisation programme. Others writing back to Liddell included AT&T, Cisco, Microsoft and VMware. In other words, based on its letter, what Oracle wants us to believe is that open source leads to greater costs and poorly secured, limply featured software. Nor is Oracle content to leave it there, also arguing that open source is exactly how the private sector does not function, seemingly forgetting that most of the leading infrastructure, big data, and mobile software today is open source. Details! Rather than take this counterproductive detour into self-serving silliness, Oracle would do better to follow Microsoft's path. Microsoft, too, used to Janus-face its way through open source, simultaneously supporting and bashing it. Only under chief executive Satya Nadella's reign did Microsoft realise it's OK to fully embrace open source, and its financial results have loved the commitment. Oracle has much to learn, and emulate, in Microsoft's approach. I love you, you're perfect. Now change Oracle has never been particularly warm and fuzzy about open source. As founder Larry Ellison might put it, Oracle is a profit-seeking corporation, not a peace-loving charity. To the extent that Oracle embraces open source, therefore it does so for financial reward, just like every other corporation. Few, however, are as blunt as Oracle about this fact of corporate open-source life. As Ellison told the Financial Times back in 2006: "If an open-source product gets good enough, we'll simply take it. So the great thing about open source is nobody owns it – a company like Oracle is free to take it for nothing, include it in our products and charge for support, and that's what we'll do. "So it is not disruptive at all – you have to find places to add value. Once open source gets good enough, competing with it would be insane... We don't have to fight open source, we have to exploit open source." "Exploit" sounds about right. While Oracle doesn't crack the top-10 corporate contributors to the Linux kernel, it does register a respectable number 12, which helps it influence the platform enough to feel comfortable building its IaaS offering on Linux (and Xen for virtualisation). Oracle has also managed to continue growing MySQL's clout in the industry while improving it as a product and business. As for Kubernetes, Oracle's decision to join the CNCF also came with P&L strings attached. "CNCF technologies such as Kubernetes, Prometheus, gRPC and OpenTracing are critical parts of both our own and our customers' development toolchains," said Mark Cavage, vice president of software development at Oracle. One can argue that Oracle has figured out the exploitation angle reasonably well. This, however, refers to the right kind of exploitation, the kind that even free software activist Richard Stallman can love (or, at least, tolerate). But when it comes to government lobbying, Oracle looks a lot more like Mr Hyde than Dr Jekyll. Lies, damned lies, and Oracle lobbying The current US president has many problems (OK, many, many problems), but his decision to follow the Obama administration's support for IT modernisation is commendable. Most recently, the Trump White House asked for feedback on how best to continue improving government IT. Oracle's response is high comedy in many respects. As TechDirt's Mike Masnick summarises, Oracle's "latest crusade is against open-source technology being used by the federal government – and against the government hiring people out of Silicon Valley to help create more modern systems. Instead, Oracle would apparently prefer the government just give it lots of money." Oracle is very good at making lots of money. As such, its request for even more isn't too surprising. What is surprising is the brazenness of its position. As Masnick opines: "The sheer contempt found in Oracle's submission on IT modernization is pretty stunning." Why? Because Oracle contradicts much that it publicly states in other forums about open source and innovation. More than this, Oracle contradicts much of what we now know is essential to competitive differentiation in an increasingly software and data-driven world. Take, for example, Oracle's contention that "significant IT development expertise is not... central to successful modernization efforts". What? In our "software is eating the world" existence Oracle clearly believes that CIOs are buyers, not doers: "The most important skill set of CIOs today is to critically compete and evaluate commercial alternatives to capture the benefits of innovation conducted at scale, and then to manage the implementation of those technologies efficiently." While there is some truth to Oracle's claim – every project shouldn't be a custom one-off that must be supported forever – it's crazy to think that a CIO – government or otherwise – is doing their job effectively by simply shovelling cash into vendors' bank accounts. Indeed, as Masnick points out: "If it weren't for Oracle's failures, there might not even be a USDS [the US Digital Service created in 2014 to modernise federal IT]. USDS really grew out of the emergency hiring of some top-notch internet engineers in response to the Healthcare.gov rollout debacle. And if you don't recall, a big part of that debacle was blamed on Oracle's technology." In short, blindly giving money to Oracle and other big vendors is the opposite of IT modernisation. In its letter to Liddell, Oracle proceeded to make the fantastic (by which I mean "silly and false") claim that "the fact is that the use of open-source software has been declining rapidly in the private sector". What?!? This is so incredibly untrue that Oracle should score points for being willing to say it out loud. Take a stroll through the most prominent software in big data (Hadoop, Spark, Kafka, etc.), mobile (Android), application development (Kubernetes, Docker), machine learning/AI (TensorFlow, MxNet), and compare it to Oracle's statement. One conclusion must be that Oracle believes its CIO audience is incredibly stupid. Oracle then tells a half-truth by declaring: "There is no math that can justify open source from a cost perspective." How so? Because "the cost of support plus the opportunity cost of forgoing features, functions, automation and security overwhelm any presumed cost savings." Which I guess is why Oracle doesn't use any open source like Linux, Kubernetes, etc. in its services. Oops. The Vendor Formerly Known As Satan The thing is, Oracle doesn't need to do this and, for its own good, shouldn't do this. After all, we already know how this plays out. We need only look at what happened with Microsoft. Remember when Microsoft wanted us to "get the facts" about Linux? Now it's a big-time contributor to Linux. Remember when it told us open source was anti-American and a cancer? Now it aggressively contributes to a huge variety of open-source projects, some of them homegrown in Redmond, and tells the world that "Microsoft loves open source." Of course, Microsoft loves open source for the same reason any corporation does: it drives revenue as developers look to build applications filled with open-source components on Azure. There's nothing wrong with that. Would Microsoft prefer government IT to purchase SQL Server instead of open-source-licensed PostgreSQL? Sure. But look for a single line in its response to the Trump executive order that signals "open source is bad". You won't find it. Why? Because Microsoft understands that open source is a friend, not foe, and has learned how to monetise it. Microsoft, in short, is no longer conflicted about open source. It can compete at the product level while embracing open source at the project level, which helps fuel its overall product and business strategy. Oracle isn't there yet, and is still stuck where Microsoft was a decade ago. It's time to grow up, Oracle. For a company that builds great software and understands that it increasingly needs to depend on open source to build that software, it's disingenuous at best to lobby the US government to put the freeze on open source. Oracle needs to learn from Microsoft, stop worrying and love the open-source bomb. It was a key ingredient in Microsoft's resurgence. Maybe it could help Oracle get a cloud clue, too. Install FAMP on FreeBSD (https://www.linuxsecrets.com/home/3164-install-famp-on-freebsd) The acronym FAMP refers to a set of free open source applications which are commonly used in Web server environments called Apache, MySQL and PHP on the FreeBSD operating system, which provides a server stack that provides web services, database and PHP. Prerequisites sudo Installed and working - Please read Apache PHP5 or PHP7 MySQL or MariaDB Install your favorite editor, ours is vi Note: You don't need to upgrade FreeBSD but make sure all patches have been installed and your port tree is up-2-date if you plan to update by ports. Install Ports portsnap fetch You must use sudo for each indivdual command during installations. Please see link above for installing sudo. Searching Available Apache Versions to Install pkg search apache Install Apache To install Apache 2.4 using pkg. The apache 2.4 user account managing Apache is www in FreeBSD. pkg install apache24 Confirmation yes prompt and hit y for yes to install Apache 2.4 This installs Apache and its dependencies. Enable Apache use sysrc to update services to be started at boot time, Command below adds "apache24enable="YES" to the /etc/rc.conf file. For sysrc commands please read ```sysrc apache24enable=yes Start Apache service apache24 start``` Visit web address by accessing your server's public IP address in your web browser How To find Your Server's Public IP Address If you do not know what your server's public IP address is, there are a number of ways that you can find it. Usually, this is the address you use to connect to your server through SSH. ifconfig vtnet0 | grep "inet " | awk '{ print $2 }' Now that you have the public IP address, you may use it in your web browser's address bar to access your web server. Install MySQL Now that we have our web server up and running, it is time to install MySQL, the relational database management system. The MySQL server will organize and provide access to databases where our server can store information. Install MySQL 5.7 using pkg by typing pkg install mysql57-server Enter y at the confirmation prompt. This installs the MySQL server and client packages. To enable MySQL server as a service, add mysqlenable="YES" to the /etc/rc.conf file. This sysrc command will do just that ```sysrc mysqlenable=yes Now start the MySQL server service mysql-server start Now run the security script that will remove some dangerous defaults and slightly restrict access to your database system. mysqlsecureinstallation``` Answer all questions to secure your newly installed MySQL database. Enter current password for root (enter for none): [RETURN] Your database system is now set up and we can move on. Install PHP5 or PHP70 pkg search php70 Install PHP70 you would do the following by typing pkg install php70-mysqli mod_php70 Note: In these instructions we are using php5.7 not php7.0. We will be coming out with php7.0 instructions with FPM. PHP is the component of our setup that will process code to display dynamic content. It can run scripts, connect to MySQL databases to get information, and hand the processed content over to the web server to display. We're going to install the modphp, php-mysql, and php-mysqli packages. To install PHP 5.7 with pkg, run this command ```pkg install modphp56 php56-mysql php56-mysqli Copy sample PHP configuration file into place. cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini Regenerate the system's cached information about your installed executable files rehash``` Before using PHP, you must configure it to work with Apache. Install PHP Modules (Optional) To enhance the functionality of PHP, we can optionally install some additional modules. To see the available options for PHP 5.6 modules and libraries, you can type this into your system pkg search php56 Get more information about each module you can look at the long description of the package by typing pkg search -f apache24 Optional Install Example pkg install php56-calendar Configure Apache to Use PHP Module Open the Apache configuration file vim /usr/local/etc/apache24/Includes/php.conf DirectoryIndex index.php index.html Next, we will configure Apache to process requested PHP files with the PHP processor. Add these lines to the end of the file: SetHandler application/x-httpd-php SetHandler application/x-httpd-php-source Now restart Apache to put the changes into effect service apache24 restart Test PHP Processing By default, the DocumentRoot is set to /usr/local/www/apache24/data. We can create the info.php file under that location by typing vim /usr/local/www/apache24/data/info.php Add following line to info.php and save it. Details on info.php info.php file gives you information about your server from the perspective of PHP. It' useful for debugging and to ensure that your settings are being applied correctly. If this was successful, then your PHP is working as expected. You probably want to remove info.php after testing because it could actually give information about your server to unauthorized users. Remove file by typing rm /usr/local/www/apache24/data/info.php Note: Make sure Apache / meaning the root of Apache is owned by user which should have been created during the Apache install is the owner of the /usr/local/www structure. That explains FAMP on FreeBSD. IXsystems IXsystems TrueNAS X10 Torture Test & Fail Over Systems In Action with the ZFS File System (https://www.youtube.com/watch?v=GG_NvKuh530) How Netflix works: what happens every time you hit Play (https://medium.com/refraction-tech-everything/how-netflix-works-the-hugely-simplified-complex-stuff-that-happens-every-time-you-hit-play-3a40c9be254b) Not long ago, House of Cards came back for the fifth season, finally ending a long wait for binge watchers across the world who are interested in an American politician's ruthless ascendance to presidency. For them, kicking off a marathon is as simple as reaching out for your device or remote, opening the Netflix app and hitting Play. Simple, fast and instantly gratifying. What isn't as simple is what goes into running Netflix, a service that streams around 250 million hours of video per day to around 98 million paying subscribers in 190 countries. At this scale, providing quality entertainment in a matter of a few seconds to every user is no joke. And as much as it means building top-notch infrastructure at a scale no other Internet service has done before, it also means that a lot of participants in the experience have to be negotiated with and kept satiated?—?from production companies supplying the content, to internet providers dealing with the network traffic Netflix brings upon them. This is, in short and in the most layman terms, how Netflix works. Let us just try to understand how Netflix is structured on the technological side with a simple example. Netflix literally ushered in a revolution around ten years ago by rewriting the applications that run the entire service to fit into a microservices architecture?—?which means that each application, or microservice's code and resources are its very own. It will not share any of it with any other app by nature. And when two applications do need to talk to each other, they use an application programming interface (API)?—?a tightly-controlled set of rules that both programs can handle. Developers can now make many changes, small or huge, to each application as long as they ensure that it plays well with the API. And since the one program knows the other's API properly, no change will break the exchange of information. Netflix estimates that it uses around 700 microservices to control each of the many parts of what makes up the entire Netflix service: one microservice stores what all shows you watched, one deducts the monthly fee from your credit card, one provides your device with the correct video files that it can play, one takes a look at your watching history and uses algorithms to guess a list of movies that you will like, and one will provide the names and images of these movies to be shown in a list on the main menu. And that's the tip of the iceberg. Netflix engineers can make changes to any part of the application and can introduce new changes rapidly while ensuring that nothing else in the entire service breaks down. They made a courageous decision to get rid of maintaining their own servers and move all of their stuff to the cloud?—?i.e. run everything on the servers of someone else who dealt with maintaining the hardware while Netflix engineers wrote hundreds of programs and deployed it on the servers rapidly. The someone else they chose for their cloud-based infrastructure is Amazon Web Services (AWS). Netflix works on thousands of devices, and each of them play a different format of video and sound files. Another set of AWS servers take this original film file, and convert it into hundreds of files, each meant to play the entire show or film on a particular type of device and a particular screen size or video quality. One file will work exclusively on the iPad, one on a full HD Android phone, one on a Sony TV that can play 4K video and Dolby sound, one on a Windows computer, and so on. Even more of these files can be made with varying video qualities so that they are easier to load on a poor network connection. This is a process known as transcoding. A special piece of code is also added to these files to lock them with what is called digital rights management or DRM?—?a technological measure which prevents piracy of films. The Netflix app or website determines what particular device you are using to watch, and fetches the exact file for that show meant to specially play on your particular device, with a particular video quality based on how fast your internet is at that moment. Here, instead of relying on AWS servers, they install their very own around the world. But it has only one purpose?—?to store content smartly and deliver it to users. Netflix strikes deals with internet service providers and provides them the red box you saw above at no cost. ISPs install these along with their servers. These Open Connect boxes download the Netflix library for their region from the main servers in the US?—?if there are multiple of them, each will rather store content that is more popular with Netflix users in a region to prioritise speed. So a rarely watched film might take time to load more than a Stranger Things episode. Now, when you will connect to Netflix, the closest Open Connect box to you will deliver the content you need, thus videos load faster than if your Netflix app tried to load it from the main servers in the US. In a nutshell… This is what happens when you hit that Play button: Hundreds of microservices, or tiny independent programs, work together to make one large Netflix service. Content legally acquired or licensed is converted into a size that fits your screen, and protected from being copied. Servers across the world make a copy of it and store it so that the closest one to you delivers it at max quality and speed. When you select a show, your Netflix app cherry picks which of these servers will it load the video from> You are now gripped by Frank Underwood's chilling tactics, given depression by BoJack Horseman's rollercoaster life, tickled by Dev in Master of None and made phobic to the future of technology by the stories in Black Mirror. And your lifespan decreases as your binge watching turns you into a couch potato. It looked so simple before, right? News Roundup Moving FreshPorts (http://dan.langille.org/2017/11/15/moving-freshports/) Today I moved the FreshPorts website from one server to another. My goal is for nobody to notice. In preparation for this move, I have: DNS TTL reduced to 60s Posted to Twitter Updated the status page Put the website put in offline mode: What was missed I turned off commit processing on the new server, but I did not do this on the old server. I should have: sudo svc -d /var/service/freshports That stops processing of incoming commits. No data is lost, but it keeps the two databases at the same spot in history. Commit processing could continue during the database dumping, but that does not affect the dump, which will be consistent regardless. The offline code Here is the basic stuff I used to put the website into offline mode. The main points are: header(“HTTP/1.1 503 Service Unavailable”); ErrorDocument 404 /index.php I move the DocumentRoot to a new directory, containing only index.php. Every error invokes index.php, which returns a 503 code. The dump The database dump just started (Sun Nov 5 17:07:22 UTC 2017). root@pg96:~ # /usr/bin/time pg_dump -h 206.127.23.226 -Fc -U dan freshports.org > freshports.org.9.6.dump That should take about 30 minutes. I have set a timer to remind me. Total time was: 1464.82 real 1324.96 user 37.22 sys The MD5 is: MD5 (freshports.org.9.6.dump) = 5249b45a93332b8344c9ce01245a05d5 It is now: Sun Nov 5 17:34:07 UTC 2017 The rsync The rsync should take about 10-20 minutes. I have already done an rsync of yesterday's dump file. The rsync today should copy over only the deltas (i.e. differences). The rsync started at about Sun Nov 5 17:36:05 UTC 2017 That took 2m9.091s The MD5 matches. The restore The restore should take about 30 minutes. I ran this test yesterday. It is now Sun Nov 5 17:40:03 UTC 2017. $ createdb -T template0 -E SQL_ASCII freshports.testing $ time pg_restore -j 16 -d freshports.testing freshports.org.9.6.dump Done. real 25m21.108s user 1m57.508s sys 0m15.172s It is now Sun Nov 5 18:06:22 UTC 2017. Insert break here About here, I took a 30 minute break to run an errand. It was worth it. Changing DNS I'm ready to change DNS now. It is Sun Nov 5 19:49:20 EST 2017 Done. And nearly immediately, traffic started. How many misses? During this process, XXXXX requests were declined: $ grep -c '" 503 ' /usr/websites/log/freshports.org-access.log XXXXX That's it, we're done Total elapsed time: 1 hour 48 minutes. There are still a number of things to follow up on, but that was the transfers. The new FreshPorts Server (http://dan.langille.org/2017/11/17/x8dtu-3/) *** Using bhyve on top of CEPH (https://lists.freebsd.org/pipermail/freebsd-virtualization/2017-November/005876.html) Hi, Just an info point. I'm preparing for a lecture tomorrow, and thought why not do an actual demo.... Like to be friends with Murphy :) So after I started the cluster: 5 jails with 7 OSDs This what I manually needed to do to boot a memory stick Start een Bhyve instance rbd --dest-pool rbddata --no-progress import memstick.img memstick rbd-ggate map rbddata/memstick ggate-devvice is available on /dev/ggate1 kldload vmm kldload nmdm kldload iftap kldload ifbridge kldload cpuctl sysctl net.link.tap.uponopen=1 ifconfig bridge0 create ifconfig bridge0 addm em0 up ifconfig ifconfig tap11 create ifconfig bridge0 addm tap11 ifconfig tap11 up load the GGate disk in bhyve bhyveload -c /dev/nmdm11A -m 2G -d /dev/ggate1 FB11 and boot a single from it. bhyve -H -P -A -c 1 -m 2G -l com1,/dev/nmdm11A -s 0:0,hostbridge -s 1:0,lpc -s 2:0,virtio-net,tap11 -s 4,ahci-hd,/dev/ggate1 FB11 & bhyvectl --vm=FB11 --get-stats Connect to the VM cu -l /dev/nmdm11B And that'll give you a bhyve VM running on an RBD image over ggate. In the installer I tested reading from the bootdisk: root@:/ # dd if=/dev/ada0 of=/dev/null bs=32M 21+1 records in 21+1 records out 734077952 bytes transferred in 5.306260 secs (138341865 bytes/sec) which is a nice 138Mb/sec. Hope the demonstration does work out tomorrow. --WjW *** Donald Knuth - The Patron Saint of Yak Shaves (http://yakshav.es/the-patron-saint-of-yakshaves/) Excerpts: In 2015, I gave a talk in which I called Donald Knuth the Patron Saint of Yak Shaves. The reason is that Donald Knuth achieved the most perfect and long-running yak shave: TeX. I figured this is worth repeating. How to achieve the ultimate Yak Shave The ultimate yak shave is the combination of improbable circumstance, the privilege to be able to shave at your hearts will and the will to follow things through to the end. Here's the way it was achieved with TeX. The recount is purely mine, inaccurate and obviously there for fun. I'll avoid the most boring facts that everyone always tells, such as why Knuth's checks have their own Wikipedia page. Community Shaving is Best Shaving Since the release of TeX, the community has been busy working on using it as a platform. If you ever downloaded the full TeX distribution, please bear in mind that you are downloading the amassed work of over 40 years, to make sure that each and every TeX document ever written builds. We're talking about documents here. But mostly, two big projects sprung out of that. The first is LaTeX by Leslie Lamport. Lamport is a very productive researcher, famous for research in formal methods through TLA+ and also known laying groundwork for many distributed algorithms. LaTeX is based on the idea of separating presentation and content. It is based around the idea of document classes, which then describe the way a certain document is laid out. Think Markdown, just much more complex. The second is ConTeXt, which is far more focused on fine grained layout control. The Moral of the Story Whenever you feel like “can't we just replace this whole thing, it can't be so hard” when handling TeX, don't forget how many years of work and especially knowledge were poured into that system. Typesetting isn't the most popular knowledge around programmers. Especially see it in the context of the space it is in: they can't remove legacy. Ever. That would break documents. TeX is also not a programming language. It might resemble one, but mostly, it should be approached as a typesetting system first. A lot of it's confusing lingo gets much better then. It's not programming lingo. By approaching TeX with an understanding for its history, a lot of things can be learned from it. And yes, a replacement would be great, but it would take ages. In any case, I hope I thoroughly convinced you why Donald Knuth is the Patron Saint of Yak Shaves. Extra Credits This comes out of a enjoyable discussion with [Arne from Lambda Island](https://lambdaisland.com/https://lambdaisland.com/, who listened and said “you should totally turn this into a talk”. Vincent's trip to EuroBSDCon 2017 (http://www.vincentdelft.be/post/post_20171016) My euroBSDCon 2017 Posted on 2017-10-16 09:43:00 from Vincent in Open Bsd Let me just share my feedback on those 2 days spent in Paris for the EuroBSDCon. My 1st BSDCon. I'm not a developer, contributor, ... Do not expect to improve your skills with OpenBSD with this text :-) I know, we are on October 16th, and the EuroBSDCon of Paris was 3 weeks ago :( I'm not quick !!! Sorry for that Arrival at 10h, I'm too late for the start of the key note. The few persons behind a desk welcome me by talking in Dutch, mainly because of my name. Indeed, Delft is a city in Netherlands, but also a well known university. I inform them that I'm from Belgium, and the discussion moves to the fact the Fosdem is located in Brussels. I receive my nice T-shirt white and blue, a bit like the marine T-shirts, but with the nice EuroBSDCon logo. I'm asking where are the different rooms reserved for the BSD event. We have 1 big on the 1st floor, 1 medium 1 level below, and 2 smalls 1 level above. All are really easy to access. In this entrance we have 4 or 5 tables with some persons representing their company. Those are mainly the big sponsors of the event providing details about their activity and business. I discuss a little bit with StormShield and Gandi. On other tables people are selling BSD t-shirts, and they will quickly be sold. "Is it done yet ?" The never ending story of pkg tools In the last Fosdem, I've already hear Antoine and Baptiste presenting the OpenBSD and FreeBSD battle, I decide to listen Marc Espie in the medium room called Karnak. Marc explains that he has rewritten completely the pkg_add command. He explains that, at contrario with other elements of OpenBSD, the packages tools must be backward compatible and stable on a longer period than 12 months (the support period for OpenBSD). On the funny side, he explains that he has his best idea inside his bath. Hackathons are also used to validate some ideas with other OpenBSD developers. All in all, he explains that the most time consuming part is to imagine a good solution. Coding it is quite straightforward. He adds that better an idea is, shorter the implementation will be. A Tale of six motherboards, three BSDs and coreboot After the lunch I decide to listen the talk about Coreboot. Indeed, 1 or 2 years ago I had listened the Libreboot project at Fosdem. Since they did several references to Coreboot, it's a perfect occasion to listen more carefully to this project. Piotr and Katazyba Kubaj explains us how to boot a machine without the native Bios. Indeed Coreboot can replace the bios, and de facto avoid several binaries imposed by the vendor. They explain that some motherboards are supporting their code. But they also show how difficult it is to flash a Bios and replace it by Coreboot. They even have destroyed a motherboard during the installation. Apparently because the power supply they were using was not stable enough with the 3v. It's really amazing to see that open source developers can go, by themselves, to such deep technical level. State of the DragonFly's graphics stack After this Coreboot talk, I decide to stay in the room to follow the presentation of Fran?ois Tigeot. Fran?ois is now one of the core developer of DrangonflyBSD, an amazing BSD system having his own filesystem called Hammer. Hammer offers several amazing features like snapshots, checksum data integrity, deduplication, ... Francois has spent his last years to integrate the video drivers developed for Linux inside DrangonflyBSD. He explains that instead of adapting this code for the video card to the kernel API of DrangonflyBSD, he has "simply" build an intermediate layer between the kernel of DragonflyBSD and the video drivers. This is not said in the talk, but this effort is very impressive. Indeed, this is more or less a linux emulator inside DragonflyBSD. Francois explains that he has started with Intel video driver (drm/i915), but now he is able to run drm/radeon quite well, but also drm/amdgpu and drm/nouveau. Discovering OpenBSD on AWS Then I move to the small room at the upper level to follow a presentation made by Laurent Bernaille on OpenBSD and AWS. First Laurent explains that he is re-using the work done by Antoine Jacoutot concerning the integration of OpenBSD inside AWS. But on top of that he has integrated several other Open Source solutions allowing him to build OpenBSD machines very quickly with one command. Moreover those machines will have the network config, the required packages, ... On top of the slides presented, he shows us, in a real demo, how this system works. Amazing presentation which shows that, by putting the correct tools together, a machine builds and configure other machines in one go. OpenBSD Testing Infrastructure Behind bluhm.genua.de Here Jan Klemkow explains us that he has setup a lab where he is able to run different OpenBSD architectures. The system has been designed to be able to install, on demand, a certain version of OpenBSD on the different available machines. On top of that a regression test script can be triggered. This provides reports showing what is working and what is not more working on the different machines. If I've well understood, Jan is willing to provide such lab to the core developers of OpenBSD in order to allow them to validate easily and quickly their code. Some more effort is needed to reach this goal, but with what exists today, Jan and his colleague are quite close. Since his company is using OpenBSD business, to his eyes this system is a "tit for tat" to the OpenBSD community. French story on cybercrime Then comes the second keynote of the day in the big auditorium. This talk is performed by the colonel of french gendarmerie. Mr Freyssinet, who is head of the Cyber crimes unit inside the Gendarmerie. Mr Freyssinet explains that the "bad guys" are more and more volatile across countries, and more and more organized. The small hacker in his room, alone, is no more the reality. As a consequence the different national police investigators are collaborating more inside an organization called Interpol. What is amazing in his talk is that Mr Freyssinet talks about "Crime as a service". Indeed, more and more hackers are selling their services to some "bad and temporary organizations". Social event It's now time for the famous social event on the river: la Seine. The organizers ask us to go, by small groups, to a station. There is a walk of 15 minutes inside Paris. Hopefully the weather is perfect. To identify them clearly several organizers takes a "beastie fork" in their hands and walk on the sidewalk generating some amazing reactions from some citizens and toursits. Some of them recognize the Freebsd logo and ask us some details. Amazing :-) We walk on small and big sidewalks until a small stair going under the street. There, we have a train station a bit like a metro station. 3 stations later they ask us to go out. We walk few minutes and come in front of a boat having a double deck: one inside, with nice tables and chairs and one on the roof. But the crew ask us to go up, on the second deck. There, we are welcome with a glass of wine. The tour Eiffel is just at few 100 meters from us. Every hour the Eiffel tower is blinking for 5 minutes with thousands of small lights. Brilliant :-) We see also the "statue de la libertee" (the small one) which is on a small island in the middle of the river. During the whole night the bar will be open with drinks and some appetizers, snacks, ... Such walking diner is perfect to talk with many different persons. I've discussed with several persons just using BSD, they are not, like me, deep and specialized developers. One was from Switzerland, another one from Austria, and another one from Netherlands. But I've also followed a discussion with Theo de Raadt, several persons of the FreeBSD foundation. Some are very technical guys, other just users, like me. But all with the same passion for one of the BSD system. Amazing evening. OpenBSD's small steps towards DTrace (a tale about DDB and CTF) On the second day, I decide to sleep enough in order to have enough resources to drive back to my home (3 hours by car). So I miss the 1st presentations, and arrive at the event around 10h30. Lot of persons are already present. Some faces are less "fresh" than others. I decide to listen to Dtrace in OpenBSD. After 10 minutes I am so lost into those too technical explainations, that I decide to open and look at my PC. My OpenBSD laptop is rarely leaving my home, so I've never had the need to have a screen locking system. In a crowded environment, this is better. So I was looking for a simple solution. I've looked at how to use xlock. I've combined it with the /ets/apm/suspend script, ... Always very easy to use OpenBSD :-) The OpenBSD web stack Then I decide to follow the presentation of Michael W Lucas. Well know person for his different books about "Absolute OpenBSD", Relayd", ... Michael talks about the httpd daemon inside OpenBSD. But he also present his integration with Carp, Relayd, PF, FastCGI, the rules based on LUA regexp (opposed to perl regexp), ... For sure he emphasis on the security aspect of those tools: privilege separation, chroot, ... OpenSMTPD, current state of affairs Then I follow the presentation of Gilles Chehade about the OpenSMTPD project. Amazing presentation that, on top of the technical challenges, shows how to manage such project across the years. Gilles is working on OpenSMTPD since 2007, thus 10 years !!!. He explains the different decisions they took to make the software as simple as possible to use, but as secure as possible, too: privilege separation, chroot, pledge, random malloc, ? . The development starts on BSD systems, but once quite well known they received lot of contributions from Linux developers. Hoisting: lessons learned integrating pledge into 500 programs After a small break, I decide to listen to Theo de Raadt, the founder of OpenBSD. In his own style, with trekking boots, shorts, backpack. Theo starts by saying that Pledge is the outcome of nightmares. Theo explains that the book called "Hacking blind" presenting the BROP has worried him since few years. That's why he developed Pledge as a tool killing a process as soon as possible when there is an unforeseen behavior of this program. For example, with Pledge a program which can only write to disk will be immediately killed if he tries to reach network. By implementing Pledge in the +-500 programs present in the "base", OpenBSD is becoming more secured and more robust. Conclusion My first EuroBSDCon was a great, interesting and cool event. I've discussed with several BSD enthusiasts. I'm using OpenBSD since 2010, but I'm not a developer, so I was worried to be "lost" in the middle of experts. In fact it was not the case. At EuroBSDCon you have many different type of enthusiasts BSD's users. What is nice with the EuroBSDCon is that the organizers foresee everything for you. You just have to sit and listen. They foresee even how to spend, in a funny and very cool attitude, the evening of Saturday. > The small draw back is that all of this has a cost. In my case the whole weekend cost me a bit more than 500euro. Based on what I've learned, what I've saw this is very acceptable price. Nearly all presentations I saw give me a valuable input for my daily job. For sure, the total price is also linked to my personal choice: hotel, parking. And I'm surely biased because I'm used to go to the Fosdem in Brussels which cost nothing (entrance) and is approximately 45 minutes of my home. But Fosdem is not the same atmosphere and presentations are less linked to my daily job. I do not regret my trip to EuroBSDCon and will surely plan other ones. Beastie Bits Important munitions lawyering (https://www.jwz.org/blog/2017/10/important-munitions-lawyering/) AsiaBSDCon 2018 CFP is now open, until December 15th (https://2018.asiabsdcon.org/) ZSTD Compression for ZFS by Allan Jude (https://www.youtube.com/watch?v=hWnWEitDPlM&feature=share) NetBSD on Allwinner SoCs Update (https://blog.netbsd.org/tnf/entry/netbsd_on_allwinner_socs_update) *** Feedback/Questions Tim - Creating Multi Boot USB sticks (http://dpaste.com/0FKTJK3#wrap) Nomen - ZFS Questions (http://dpaste.com/1HY5MFB) JJ - Questions (http://dpaste.com/3ZGNSK9#wrap) Lars - Hardening Diffie-Hellman (http://dpaste.com/3TRXXN4) ***

Brug Podcast
BRUG17: Donald Knuth, London en gentrification, nieuwe album Morrissey

Brug Podcast

Play Episode Listen Later Nov 25, 2017


We praten in deze aflevering over Donald Knuth, een hedendaagse digitale monnik met een bijzondere beloning voor wie fouten in zijn werk ontdekt. Daarna vertelt Bas over London en hoe het fenomeen gentrificatie zich daar manifesteert. Dit n.a.v. zijn trip naar London en een VPRO documentaire over ditzelfde fenomeen. We stippen nog een paar kleinere … Lees verder BRUG17: Donald Knuth, London en gentrification, nieuwe album Morrissey Het bericht BRUG17: Donald Knuth, London en gentrification, nieuwe album Morrissey verscheen eerst op Brug Podcast.

科技最前沿,论天文物理 人工智能 数码编程 大数据等

hello,这里是《科技最前沿》,喜爱科学的你来啦,我是你的老朋友微信公众号——丘孔语论。科技最前沿,主要从丘孔语论比较感兴趣的几个领域来谈论科学科技,可能涉及天文、物理、互联网/IT、人工智能/Ai、数码/手机、编程、大数据、商业大佬、创新创业创客、化学、医学、养生、心理学、灵性等领域;认识天地,开阔思维,重塑自我。原创 Linux中国 2017-04-25 17:39优化你最贵的资源。那就是你,而不是计算机。 选择一种语言/框架/架构来帮助你快速开发(比如 Python)。不要仅仅因为某些技术的快而选择它们。 当你遇到性能问题时,请找到瓶颈所在。 你的瓶颈很可能不是 CPU 或者 Python 本身。 如果 Python 成为你的瓶颈(你已经优化过你的算法),那么可以转向热门的 Cython 或者 C。 尽情享受可以快速做完事情的乐趣。 -- Nick Humrich本文导航-速度不再重要 …… 03%-速度是唯一重要的东西 …… 10%-一个微服务的案例 …… 16%-CPU 不是你的瓶颈 …… 22%-如果 CPU 时间是一个问题怎么办? …… 35%-那么,Python 更快一些吗? …… 39%-但是如果速度真的重要呢? …… 56%-优化 Python …… 78%编译自: https://medium.com/hacker-daily/yes-python-is-slow-and-i-dont-care-13763980b5a1作者: Nick Humrich译者: zhousiyu325为牺牲性能追求生产率而呐喊让我从关于 Python 中的 asyncio 这个标准库的讨论中休息一会,谈谈我最近正在思考的一些东西:Python 的速度。对不了解我的人说明一下,我是一个 Python 的粉丝,而且我在我能想到的所有地方都积极地使用 Python。人们对 Python 最大的抱怨之一就是它的速度比较慢,有些人甚至拒绝尝试使用 Python,因为它比其他语言速度慢。这里说说为什么我认为应该尝试使用 Python,尽管它是有点慢。速度不再重要过去的情形是,程序需要花费很长的时间来运行,CPU 比较贵,内存也很贵。程序的运行时间是一个很重要的指标。计算机非常的昂贵,计算机运行所需要的电也是相当贵的。对这些资源进行优化是因为一个永恒的商业法则:优化你最贵的资源。在过去,最贵的资源是计算机的运行时间。这就是导致计算机科学致力于研究不同算法的效率的原因。然而,这已经不再是正确的,因为现在硅芯片很便宜,确实很便宜。运行时间不再是你最贵的资源。公司最贵的资源现在是它的员工时间。或者换句话说,就是你。把事情做完比把它变快更加重要。实际上,这是相当的重要,我将把它再次放在这里,仿佛它是一个引文一样(给那些只是粗略浏览的人):把事情做完比快速地做事更加重要。你可能会说:“我的公司在意速度,我开发一个 web 应用程序,那么所有的响应时间必须少于 x 毫秒。”或者,“我们失去了客户,因为他们认为我们的 app 运行太慢了。”我并不是想说速度一点也不重要,我只是想说速度不再是最重要的东西;它不再是你最贵的资源。速度是唯一重要的东西当你在编程的背景下说 速度 时,你通常是说性能,也就是 CPU 周期。当你的 CEO 在编程的背景下说 速度 时,他指的是业务速度,最重要的指标是产品上市的时间。基本上,你的产品/web 程序是多么的快并不重要。它是用什么语言写的也不重要。甚至它需要花费多少钱也不重要。在一天结束时,让你的公司存活下来或者死去的唯一事物就是产品上市时间。我不只是说创业公司的想法 -- 你开始赚钱需要花费多久,更多的是“从想法到客户手中”的时间期限。企业能够存活下来的唯一方法就是比你的竞争对手更快地创新。如果在你的产品上市之前,你的竞争对手已经提前上市了,那么你想出了多少好的主意也将不再重要。你必须第一个上市,或者至少能跟上。一但你放慢了脚步,你就输了。企业能够存活下来的唯一方法就是比你的竞争对手更快地创新。一个微服务的案例像 Amazon、Google 和 Netflix 这样的公司明白快速前进的重要性。他们创建了一个业务系统,可以使用这个系统迅速地前进和快速的创新。微服务是针对他们的问题的解决方案。这篇文章不谈你是否应该使用微服务,但是至少要理解为什么 Amazon 和 Google 认为他们应该使用微服务。微服务本来就很慢。微服务的主要概念是用网络调用来打破边界。这意味着你正在把使用的函数调用(几个 cpu 周期)转变为一个网络调用。没有什么比这更影响性能了。和 CPU 相比较,网络调用真的很慢。但是这些大公司仍然选择使用微服务。我所知道的架构里面没有比微服务还要慢的了。微服务最大的弊端就是它的性能,但是最大的长处就是上市的时间。通过在较小的项目和代码库上建立团队,一个公司能够以更快的速度进行迭代和创新。这恰恰表明了,非常大的公司也很在意上市时间,而不仅仅只是只有创业公司。CPU 不是你的瓶颈如果你在写一个网络应用程序,如 web 服务器,很有可能的情况会是,CPU 时间并不是你的程序的瓶颈。当你的 web 服务器处理一个请求时,可能会进行几次网络调用,例如到数据库,或者像 Redis 这样的缓存服务器。虽然这些服务本身可能比较快速,但是对它们的网络调用却很慢。这里有一篇很好的关于特定操作的速度差异的博客文章[1]。在这篇文章里,作者把 CPU 周期时间缩放到更容易理解的人类时间。如果一个单独的 CPU 周期等同于 1 秒,那么一个从 California 到 New York 的网络调用将相当于 4 年。那就说明了网络调用是多少的慢。按一些粗略估计,我们可以假设在同一数据中心内的普通网络调用大约需要 3 毫秒。这相当于我们“人类比例” 3 个月。现在假设你的程序是高 CPU 密集型,这需要 100000 个 CPU 周期来对单一调用进行响应。这相当于刚刚超过 1 天。现在让我们假设你使用的是一种要慢 5 倍的语言,这将需要大约 5 天。很好,将那与我们 3 个月的网络调用时间相比,4 天的差异就显得并不是很重要了。如果有人为了一个包裹不得不至少等待 3 个月,我不认为额外的 4 天对他们来说真的很重要。上面所说的终极意思是,尽管 Python 速度慢,但是这并不重要。语言的速度(或者 CPU 时间)几乎从来不是问题。实际上谷歌曾经就这一概念做过一个研究,并且他们就此发表过一篇论文[2]。那篇论文论述了设计高吞吐量的系统。在结论里,他们说到:在高吞吐量的环境中使用解释性语言似乎是矛盾的,但是我们已经发现 CPU 时间几乎不是限制因素;语言的表达性是指,大多数程序是源程序,同时它们的大多数时间花费在 I/O 读写和本机的运行时代码上。而且,解释性语言无论是在语言层面的轻松实验还是在允许我们在很多机器上探索分布计算的方法都是很有帮助的,再次强调:CPU 时间几乎不是限制因素。如果 CPU 时间是一个问题怎么办?你可能会说,“前面说的情况真是太好了,但是我们确实有过一些问题,这些问题中 CPU 成为了我们的瓶颈,并造成了我们的 web 应用的速度十分缓慢”,或者“在服务器上 X 语言比 Y 语言需要更少的硬件资源来运行。”这些都可能是对的。关于 web 服务器有这样的美妙的事情:你可以几乎无限地负载均衡它们。换句话说,可以在 web 服务器上投入更多的硬件。当然,Python 可能会比其他语言要求更好的硬件资源,比如 c 语言。只是把硬件投入在 CPU 问题上。相比于你的时间,硬件就显得非常的便宜了。如果你在一年内节省了两周的生产力时间,那将远远多于所增加的硬件开销的回报。那么,Python 更快一些吗?这一篇文章里面,我一直在谈论最重要的是开发时间。所以问题依然存在:当就开发时间而言,Python 要比其他语言更快吗?按常规惯例来看,我、google[3] 还有[4]其他[5]几个人[6]可以告诉你 Python 是多么的高效[7]。它为你抽象出很多东西,帮助你关注那些你真正应该编写代码的地方,而不会被困在琐碎事情的杂草里,比如你是否应该使用一个向量或者一个数组。但你可能不喜欢只是听别人说的这些话,所以让我们来看一些更多的经验数据。在大多数情况下,关于 python 是否是更高效语言的争论可以归结为脚本语言(或动态语言)与静态类型语言两者的争论。我认为人们普遍接受的是静态类型语言的生产力较低,但是,这有一篇优秀的论文[8]解释了为什么不是这样。就 Python 而言,这里有一项研究[9],它调查了不同语言编写字符串处理的代码所需要花费的时间,供参考。在上述研究中,Python 的效率比 Java 高出 2 倍。有一些其他研究也显示相似的东西。 Rosetta Code 对编程语言的差异进行了深入的研究[10]。在论文中,他们把 python 与其他脚本语言/解释性语言相比较,得出结论:Python 更简洁,即使与函数式语言相比较(平均要短 1.2 到 1.6 倍)普遍的趋势似乎是 Python 中的代码行总是更少。代码行听起来可能像一个可怕的指标,但是包括上面已经提到的两项研究在内的多项研究[11]表明,每种语言中每行代码所需要花费的时间大约是一样的。因此,限制代码行数就可以提高生产效率。甚至 codinghorror(一名 C# 程序员)本人写了一篇关于 Python 是如何更有效率的文章[12]。我认为说 Python 比其他的很多语言更加的有效率是公正的。这主要是由于 Python 有大量的自带以及第三方库。这里是一篇讨论 Python 和其他语言间的差异的简单的文章[13]。如果你不知道为何 Python 是如此的小巧和高效,我邀请你借此机会学习一点 python,自己多实践。这儿是你的第一个程序:import __hello__但是如果速度真的重要呢?上述论点的语气可能会让人觉得优化与速度一点也不重要。但事实是,很多时候运行时性能真的很重要。一个例子是,你有一个 web 应用程序,其中有一个特定的端点需要用很长的时间来响应。你知道这个程序需要多快,并且知道程序需要改进多少。在我们的例子中,发生了两件事:我们注意到有一个端点执行缓慢。我们承认它是缓慢,因为我们有一个可以衡量是否足够快的标准,而它没达到那个标准。我们不必在应用程序中微调优化所有内容,只需要让其中每一个都“足够快”。如果一个端点花费了几秒钟来响应,你的用户可能会注意到,但是,他们并不会注意到你将响应时间由 35 毫秒降低到 25 毫秒。“足够好”就是你需要做到的所有事情。免责声明: 我应该说有一些应用程序,如实时投标程序,确实需要细微优化,每一毫秒都相当重要。但那只是例外,而不是规则。为了明白如何对端点进行优化,你的第一步将是配置代码,并尝试找出瓶颈在哪。毕竟:任何除了瓶颈之外的改进都是错觉。Any improvements made anywhere besides the bottleneck are an illusion. -- Gene Kim如果你的优化没有触及到瓶颈,你只是浪费你的时间,并没有解决实际问题。在你优化瓶颈之前,你不会得到任何重要的改进。如果你在不知道瓶颈是什么前就尝试优化,那么你最终只会在部分代码中玩耍。在测量和确定瓶颈之前优化代码被称为“过早优化”。人们常提及 Donald Knuth 说的话,但他声称这句话实际上是他从别人那里听来的:过早优化是万恶之源Premature optimization is the root of all evil。在谈到维护代码库时,来自 Donald Knuth 的更完整的引文是:在 97% 的时间里,我们应该忘记微不足道的效率:过早的优化是万恶之源。然而在关 键的 3%,我们不应该错过优化的机会。 —— Donald Knuth换句话说,他所说的是,在大多数时间你应该忘记对你的代码进行优化。它几乎总是足够好。在不是足够好的情况下,我们通常只需要触及 3% 的代码路径。比如因为你使用了 if 语句而不是函数,你的端点快了几纳秒,但这并不会使你赢得任何奖项。过早的优化包括调用某些更快的函数,或者甚至使用特定的数据结构,因为它通常更快。计算机科学认为,如果一个方法或者算法与另一个具有相同的渐近增长(或称为 Big-O),那么它们是等价的,即使在实践中要慢两倍。计算机是如此之快,算法随着数据/使用增加而造成的计算增长远远超过实际速度本身。换句话说,如果你有两个 O(log n) 的函数,但是一个要慢两倍,这实际上并不重要。随着数据规模的增大,它们都以同样的速度“慢下来”。这就是过早优化是万恶之源的原因;它浪费了我们的时间,几乎从来没有真正有助于我们的性能改进。就 Big-O 而言,你可以认为对你的程序而言,所有的语言都是 O(n),其中 n 是代码或者指令的行数。对于同样的指令,它们以同样的速率增长。对于渐进增长,一种语言的速度快慢并不重要,所有语言都是相同的。在这个逻辑下,你可以说,为你的应用程序选择一种语言仅仅是因为它的“快速”是过早优化的最终形式。你选择某些预期快速的东西,却没有测量,也不理解瓶颈将在哪里。为您的应用选择语言只是因为它的“快速”,是过早优化的最终形式。优化 Python我最喜欢 Python 的一点是,它可以让你一次优化一点点代码。假设你有一个 Python 的方法,你发现它是你的瓶颈。你对它优化过几次,可能遵循这里[14]和那里[15]的一些指导,现在,你很肯定 Python 本身就是你的瓶颈。Python 有调用 C 代码的能力,这意味着,你可以用 C 重写这个方法来减少性能问题。你可以一次重写一个这样的方法。这个过程允许你用任何可以编译为 C 兼容汇编程序的语言,编写良好优化后的瓶颈方法。这让你能够在大多数时间使用 Python 编写,只在必要的时候都才用较低级的语言来写代码。有一种叫做 Cython 的编程语言,它是 Python 的超集。它几乎是 Python 和 C 的合并,是一种渐进类型的语言。任何 Python 代码都是有效的 Cython 代码,Cython 代码可以编译成 C 代码。使用 Cython,你可以编写一个模块或者一个方法,并逐渐进步到越来越多的 C 类型和性能。你可以将 C 类型和 Python 的鸭子类型混在一起。使用 Cython,你可以获得混合后的完美组合,只在瓶颈处进行优化,同时在其他所有地方不失去 Python 的美丽。星战前夜的一幅截图:这是用 Python 编写的 space MMO 游戏。当您最终遇到 Python 的性能问题阻碍时,你不需要把你的整个代码库用另一种不同的语言来编写。你只需要用 Cython 重写几个函数,几乎就能得到你所需要的性能。这就是星战前夜[16]采取的策略。这是一个大型多玩家的电脑游戏,在整个架构中使用 Python 和 Cython。它们通过优化 C/Cython 中的瓶颈来实现游戏级别的性能。如果这个策略对他们有用,那么它应该对任何人都有帮助。或者,还有其他方法来优化你的 Python。例如,PyPy[17] 是一个 Python 的 JIT 实现,它通过使用 PyPy 替掉 CPython(这是 Python 的默认实现),为长时间运行的应用程序提供重要的运行时改进(如 web 服务器)。让我们回顾一下要点:优化你最贵的资源。那就是你,而不是计算机。选择一种语言/框架/架构来帮助你快速开发(比如 Python)。不要仅仅因为某些技术的快而选择它们。当你遇到性能问题时,请找到瓶颈所在。你的瓶颈很可能不是 CPU 或者 Python 本身。如果 Python 成为你的瓶颈(你已经优化过你的算法),那么可以转向热门的 Cython 或者 C。尽情享受可以快速做完事情的乐趣。我希望你喜欢阅读这篇文章,就像我喜欢写这篇文章一样。如果你想说谢谢,请为我点下赞。另外,如果某个时候你想和我讨论 Python,你可以在 twitter 上艾特我(@nhumrich),或者你可以在 Python slack channel[18] 找到我。作者简介:Nick Humrich -- 坚持采用持续交付的方法,并为之写了很多工具。同是还是一名 Python 黑客与技术狂热者,目前是一名 DevOps 工程师。

Sebastian Rahtz, a celebration of his work
TeX Live - Don Knuth remembers SPQR

Sebastian Rahtz, a celebration of his work

Play Episode Listen Later Nov 16, 2016 1:31


Anne Trefethen reads a special statement from founder Donald Knuth on Sebastian's contribution to TeX Live.

Sumpsnack
Sumpsnack 27 - Perfekt att börja måndagen med

Sumpsnack

Play Episode Listen Later Apr 26, 2016 25:37


Golfturister, Game of thrones-rutiner och lite diskussion om episod VII av Star wars. Extramaterial är underbart! Och så lite bra och dåliga spel. Länkar Game of thrones, sjätte säsongen A cast of kings - podcast om Game of thrones /filmcast Incomparableavsnitt om Star wars Incomparable om Nausicaä Kiki’s delivery service My neighbor Totoro Nausicaä-serien Spirited away Princess mononoke Star wars kontra The force awakens - scen för scen Bad taste Robert Rodriguez El Mariachi Primer Donald Knuth TeX Lost in la Mancha The man who killed Don Quixote Unravel Telltales Game of thrones-spel Shadow of Mordor Strongbad Sam & Max Brothers Josef Fares No man’s sky HA - high availability Titlar Jag har väldigt lite i huvudet Perfekt att börja måndagen med Moderna filmer ser helt fantastiska ut Sympati för de som betalar för hans filmer

Stanford Emeriti Council Autobiographical Reflections
Donald Knuth: Theory, Practice and Fun

Stanford Emeriti Council Autobiographical Reflections

Play Episode Listen Later Apr 25, 2016 70:48


Donald Knuth, Professor of the Art of Computer Programming, describes how his own experiences as a young student inspired him to become a professor. He speaks about the privilege of connecting with the best students and being part of the world's leading department of Computer Science when that subject was just beginning to take shape. Knuth talks about contributing to a revolution in the printing industry by making computers do new tricks, mentions some of his over 30 books and many papers, as well as his love of music and composing.

Teahour
#82 - 聊聊比特币背后的技术和 Blockchain

Teahour

Play Episode Listen Later Dec 26, 2015 131:19


本期节目由 思客教学 赞助,思客教学 “专注 IT 领域远程学徒式” 教育。 本期由 Terry 主持, 请到了他的最好基友 Jan, 和他聊聊比特币背后的技术, 分布式系统, 算法以及Blockchain. Intridea Peatio ethfans LMAX Disruptor archlinux bspwm plan9 ranger Is bitcoinn a good idea? Merkle tree Linked list Hash List Mixing 椭圆曲线签名算法 (ECDSA) Checksum RSA Zerocash Zero-knowledge proof The Byzantine Generals Problem Leslie Lamport LaTeX TeX Donald Knuth Lamport signature PoW’s pros and cons PoS’s pros and cons DAO and DAC scrypt Proof-of-stake Vitalik Buterin Ethereum gollum Nick Szabo’s Smart Contracts Idea Bitcoin Script Special Guest: Jan.

Ruby Rogues
204 RR Limerence with Dave Thomas

Ruby Rogues

Play Episode Listen Later Apr 22, 2015 74:39


02:37 - Dave Thomas Introduction Twitter Blog The Pragmatic Bookshelf 04:17 - How Dave Got Started in Programming 06:34 - Tools and Constraints “An Enthusiast’s Problem”? Is the focus on tools a form of cargo culting? Leadism Over Chosen Technologies and Its’ Effect on Innovation Switching Tools and Making Excuses 19:29 - Limerence Love and Limerence: The Experience of Being in Love by Dorothy Tennov Irrational Interest and Defensiveness 28:54 - Ruby = Happiness: Does it Hurt? 31:00 - Tools and Falling in Love with Tools Fear of Falling Behind; Fear of Irrelevancy Different Tools for Different Contexts 35:08 - When Do You Learn? When Do You Train? (Not Falling Behind) 38:01 - Choosing Similar Tools and Technologies vs Choosing Different Tools and Technologies Gulp => Grunt => Browserify Example Pragmatic Thinking and Learning: Refactor Your Wetware by Andy Hunt 43:36 - Relationships and Identities 46:08 - Looking Forward vs Looking Back (Knowing Your History) Resources, Curriculum: Structure and Interpretation of Computer Programs - 2nd Edition (MIT Electrical Engineering and Computer Science) by Harold Abelson (SICP) Smalltalk Best Practice Patterns by Kent Beck Types and Programming Languages by Benjamin C. Pierce    The Art of Computer Programming by Donald Knuth (Series) Communicating Sequential Processes (CSP) Brainstorming Example 01:01:48 - Is the rampant use of social media hindering the learning of big ideas? Self-Curation = Key 01:08:15 - How You Learn a Language / Decide You Like a Language Sudoku Solver Markdown Parser Picks Slack (Dave) Why Does E=mc2? (And Why Should We Care?) by Brian Cox and Jeff Forshaw (Dave) Philly Emerging Tech Conference  (Dave)  

All Ruby Podcasts by Devchat.tv
204 RR Limerence with Dave Thomas

All Ruby Podcasts by Devchat.tv

Play Episode Listen Later Apr 22, 2015 74:39


02:37 - Dave Thomas Introduction Twitter Blog The Pragmatic Bookshelf 04:17 - How Dave Got Started in Programming 06:34 - Tools and Constraints “An Enthusiast’s Problem”? Is the focus on tools a form of cargo culting? Leadism Over Chosen Technologies and Its’ Effect on Innovation Switching Tools and Making Excuses 19:29 - Limerence Love and Limerence: The Experience of Being in Love by Dorothy Tennov Irrational Interest and Defensiveness 28:54 - Ruby = Happiness: Does it Hurt? 31:00 - Tools and Falling in Love with Tools Fear of Falling Behind; Fear of Irrelevancy Different Tools for Different Contexts 35:08 - When Do You Learn? When Do You Train? (Not Falling Behind) 38:01 - Choosing Similar Tools and Technologies vs Choosing Different Tools and Technologies Gulp => Grunt => Browserify Example Pragmatic Thinking and Learning: Refactor Your Wetware by Andy Hunt 43:36 - Relationships and Identities 46:08 - Looking Forward vs Looking Back (Knowing Your History) Resources, Curriculum: Structure and Interpretation of Computer Programs - 2nd Edition (MIT Electrical Engineering and Computer Science) by Harold Abelson (SICP) Smalltalk Best Practice Patterns by Kent Beck Types and Programming Languages by Benjamin C. Pierce    The Art of Computer Programming by Donald Knuth (Series) Communicating Sequential Processes (CSP) Brainstorming Example 01:01:48 - Is the rampant use of social media hindering the learning of big ideas? Self-Curation = Key 01:08:15 - How You Learn a Language / Decide You Like a Language Sudoku Solver Markdown Parser Picks Slack (Dave) Why Does E=mc2? (And Why Should We Care?) by Brian Cox and Jeff Forshaw (Dave) Philly Emerging Tech Conference  (Dave)  

Devchat.tv Master Feed
204 RR Limerence with Dave Thomas

Devchat.tv Master Feed

Play Episode Listen Later Apr 22, 2015 74:39


02:37 - Dave Thomas Introduction Twitter Blog The Pragmatic Bookshelf 04:17 - How Dave Got Started in Programming 06:34 - Tools and Constraints “An Enthusiast’s Problem”? Is the focus on tools a form of cargo culting? Leadism Over Chosen Technologies and Its’ Effect on Innovation Switching Tools and Making Excuses 19:29 - Limerence Love and Limerence: The Experience of Being in Love by Dorothy Tennov Irrational Interest and Defensiveness 28:54 - Ruby = Happiness: Does it Hurt? 31:00 - Tools and Falling in Love with Tools Fear of Falling Behind; Fear of Irrelevancy Different Tools for Different Contexts 35:08 - When Do You Learn? When Do You Train? (Not Falling Behind) 38:01 - Choosing Similar Tools and Technologies vs Choosing Different Tools and Technologies Gulp => Grunt => Browserify Example Pragmatic Thinking and Learning: Refactor Your Wetware by Andy Hunt 43:36 - Relationships and Identities 46:08 - Looking Forward vs Looking Back (Knowing Your History) Resources, Curriculum: Structure and Interpretation of Computer Programs - 2nd Edition (MIT Electrical Engineering and Computer Science) by Harold Abelson (SICP) Smalltalk Best Practice Patterns by Kent Beck Types and Programming Languages by Benjamin C. Pierce    The Art of Computer Programming by Donald Knuth (Series) Communicating Sequential Processes (CSP) Brainstorming Example 01:01:48 - Is the rampant use of social media hindering the learning of big ideas? Self-Curation = Key 01:08:15 - How You Learn a Language / Decide You Like a Language Sudoku Solver Markdown Parser Picks Slack (Dave) Why Does E=mc2? (And Why Should We Care?) by Brian Cox and Jeff Forshaw (Dave) Philly Emerging Tech Conference  (Dave)  

Adventures in Angular
038 AiA Performance with Ben Nadel

Adventures in Angular

Play Episode Listen Later Apr 16, 2015 56:32


01:35 - Katya Eames Introduction Twitter [YouTube] Katya Eames: How to Teach Angular to Your Kids 01:52 - Ben Nadel Introduction Twitter GitHub Blog Adventures in Angular Episode 029: Angular At Work with Ben Nadel InVision @InVisionApp 04:47 - Performance Basecamp Nested Pages 08:04 - User Experience 10:01 - Fixing Performance Problems as a Team Engineering Validation “Premature optimization is the root of all evil -- Donald Knuth” DOM Manipulation ngRepeat Screen Experience 23:28 - Finding Performance Issues Chrome Developer Tools Firefox Firebug Utilizing Chrome Dev Tools and Creating the Videos on Ben’s Blog “Imposter Syndrome” Addy Osmani Paul Irish 29:27 - “Just-in-Time View Construction” 34:43 - ngIf 37:16 - Angular 2 Opinions [YouTube] Dave Smith: Angular + React = Speed Unit Directional Data Flow & Functionality Victor Savkin: Change Detection in Angular 2 [Egghead.io] John Lindquist: Angular 2: Template Syntax ES5, ES6    AtScript, TypeScript traceur-compiler Babel 46:01 - Moving to 2.0 Picks BrowserSync (John) [Egghead.io] Angular 2: Template Syntax (Joe) Win an InVision App T-Shirt! (Lukas) Adventures in Angular (Lukas) WELCOME TO NIGHT VALE (Katya) Being and Time (Harper Perennial Modern Thought) by Martin Heidegger (Ward) Angular Grid (Ward) Steelheart (The Reckoners) by Brandon Sanderson (Chuck) StarTech.com MUHSMF2M 2m 4 Position TRRS Headset Extension Cable (Ben) Any Given Sunday (Ben) News ng-vegas: May 7th and 8th, 2015! AngularU in the Bay Area in June

moving news performance team blog adventures videos imposter syndrome bay area ward utilizing babel impostors t shirts github user experience basecamp firefox premature creativeasin brandon sanderson angular your kids functionality typescript any given sunday martin heidegger invision eggheads firebug welcome to night vale es6 donald knuth chrome devtools paul irish startech addy osmani es5 invisionapp change detection ben nadel chrome developer tools steelheart the reckoners dom manipulation angular episode angular u browsersync atscript ngif xqm0k6yg18s koshkaeames ah9plt77cjm teach angular savkin ben nadel introduction angular at work unit directional data flow ngrepeat
All Angular Podcasts by Devchat.tv
038 AiA Performance with Ben Nadel

All Angular Podcasts by Devchat.tv

Play Episode Listen Later Apr 16, 2015 56:32


01:35 - Katya Eames Introduction Twitter [YouTube] Katya Eames: How to Teach Angular to Your Kids 01:52 - Ben Nadel Introduction Twitter GitHub Blog Adventures in Angular Episode 029: Angular At Work with Ben Nadel InVision @InVisionApp 04:47 - Performance Basecamp Nested Pages 08:04 - User Experience 10:01 - Fixing Performance Problems as a Team Engineering Validation “Premature optimization is the root of all evil -- Donald Knuth” DOM Manipulation ngRepeat Screen Experience 23:28 - Finding Performance Issues Chrome Developer Tools Firefox Firebug Utilizing Chrome Dev Tools and Creating the Videos on Ben’s Blog “Imposter Syndrome” Addy Osmani Paul Irish 29:27 - “Just-in-Time View Construction” 34:43 - ngIf 37:16 - Angular 2 Opinions [YouTube] Dave Smith: Angular + React = Speed Unit Directional Data Flow & Functionality Victor Savkin: Change Detection in Angular 2 [Egghead.io] John Lindquist: Angular 2: Template Syntax ES5, ES6    AtScript, TypeScript traceur-compiler Babel 46:01 - Moving to 2.0 Picks BrowserSync (John) [Egghead.io] Angular 2: Template Syntax (Joe) Win an InVision App T-Shirt! (Lukas) Adventures in Angular (Lukas) WELCOME TO NIGHT VALE (Katya) Being and Time (Harper Perennial Modern Thought) by Martin Heidegger (Ward) Angular Grid (Ward) Steelheart (The Reckoners) by Brandon Sanderson (Chuck) StarTech.com MUHSMF2M 2m 4 Position TRRS Headset Extension Cable (Ben) Any Given Sunday (Ben) News ng-vegas: May 7th and 8th, 2015! AngularU in the Bay Area in June

moving news performance team blog adventures videos imposter syndrome bay area ward utilizing babel impostors t shirts github user experience basecamp firefox premature creativeasin brandon sanderson angular your kids functionality typescript any given sunday martin heidegger invision eggheads firebug welcome to night vale es6 donald knuth chrome devtools paul irish startech addy osmani es5 invisionapp change detection ben nadel chrome developer tools steelheart the reckoners dom manipulation angular episode angular u browsersync atscript ngif xqm0k6yg18s koshkaeames ah9plt77cjm teach angular savkin ben nadel introduction angular at work unit directional data flow ngrepeat
Devchat.tv Master Feed
038 AiA Performance with Ben Nadel

Devchat.tv Master Feed

Play Episode Listen Later Apr 16, 2015 56:32


01:35 - Katya Eames Introduction Twitter [YouTube] Katya Eames: How to Teach Angular to Your Kids 01:52 - Ben Nadel Introduction Twitter GitHub Blog Adventures in Angular Episode 029: Angular At Work with Ben Nadel InVision @InVisionApp 04:47 - Performance Basecamp Nested Pages 08:04 - User Experience 10:01 - Fixing Performance Problems as a Team Engineering Validation “Premature optimization is the root of all evil -- Donald Knuth” DOM Manipulation ngRepeat Screen Experience 23:28 - Finding Performance Issues Chrome Developer Tools Firefox Firebug Utilizing Chrome Dev Tools and Creating the Videos on Ben’s Blog “Imposter Syndrome” Addy Osmani Paul Irish 29:27 - “Just-in-Time View Construction” 34:43 - ngIf 37:16 - Angular 2 Opinions [YouTube] Dave Smith: Angular + React = Speed Unit Directional Data Flow & Functionality Victor Savkin: Change Detection in Angular 2 [Egghead.io] John Lindquist: Angular 2: Template Syntax ES5, ES6    AtScript, TypeScript traceur-compiler Babel 46:01 - Moving to 2.0 Picks BrowserSync (John) [Egghead.io] Angular 2: Template Syntax (Joe) Win an InVision App T-Shirt! (Lukas) Adventures in Angular (Lukas) WELCOME TO NIGHT VALE (Katya) Being and Time (Harper Perennial Modern Thought) by Martin Heidegger (Ward) Angular Grid (Ward) Steelheart (The Reckoners) by Brandon Sanderson (Chuck) StarTech.com MUHSMF2M 2m 4 Position TRRS Headset Extension Cable (Ben) Any Given Sunday (Ben) News ng-vegas: May 7th and 8th, 2015! AngularU in the Bay Area in June

moving news performance team blog adventures videos imposter syndrome bay area ward utilizing babel impostors t shirts github user experience basecamp firefox premature creativeasin brandon sanderson angular your kids functionality typescript any given sunday martin heidegger invision eggheads firebug welcome to night vale es6 donald knuth chrome devtools paul irish startech addy osmani es5 invisionapp change detection ben nadel chrome developer tools steelheart the reckoners dom manipulation angular episode angular u browsersync atscript ngif xqm0k6yg18s koshkaeames ah9plt77cjm teach angular savkin ben nadel introduction angular at work unit directional data flow ngrepeat
IT 公论
Episode 134: 终究悲哀的电子邮件

IT 公论

Play Episode Listen Later Jan 5, 2015 95:37


2015 年开年第一期节目,我们只讨论一个话题:电子邮件。 每月三十元,支持李如一和 Rio 把《IT 公论》做成最好的科技播客。请访问 itgonglun.com/member。 2015 年的第一期《IT 公论》上线了,由于元旦假期的缘故,我们提前在 2014 年的最后一天录了这一期。因此,本期节目没有像往常那样以最近的新闻为基础展开讨论,我们用一整集谈了一个话题:电子邮件。 Gmail 在中国访问不畅并不是第一次,相信也不会是最后一次。您读到这封信时,或许 Gmail 已经比一周前更容易访问。或许您虽然身在中国,但从来就能自由访问 Gmail(不开 VPN)。或许您很早就发现虽然网页版 Gmail 很难打开,但在 iPhone 上用 Mail 处理 Gmail 邮件却全然无碍,而这招似乎最近也失灵了。(使用 Gmail 的会员若希望改用其它邮箱接收《IT 公论》会员通讯请发邮件到 itgonglun@ipn.li 告诉我们。) 或许您觉得我们用电子邮件来发送会员通讯的行为非常古旧,或许对您来说电子邮件 = 工作。有一件事不用「或许」:您一定曾经被垃圾邮件侵扰。但,或许您不知道,世界上每年发送的电子邮件里,有 90% 是垃圾邮件,而全球第一个发送商业垃圾邮件的人,不仅不认为那是错的,还在论坛上斥责反对自己发垃圾邮件的人是左棍。在他看来,垃圾邮件是言论自由的一部分。 李如一和 Rio 都对电邮有着暧昧的立场。李如一在他的朋友圈(三次元朋友圈,不是微信朋友圈)里以喜欢用电邮沟通闻名,虽然如今也没什么人和他发邮件了。Rio 常年用私人域名后缀的邮箱,也形成了一套令人叹为观止的电邮管理习惯,但他仍然时不时会跟李如一抱怨一下 email 有多反人类。事实上,我们在准备本期节目时使用的临时标题就叫「电邮吮吸」。 如果您在 1990 年代末就有了电子邮箱,已经可谓是资深的电邮用户了。但是《计算机程序设计艺术》的作者高德纳(Donald Knuth)是这么说的: 我从 1990 年 1 月 1 日起就没有电邮地址了,自那以后我成了一个幸福的人。我大约在 1975 年左右开始使用电邮,15 年的电邮人生不可谓不长。 关于电子邮件的历史从什么时候算起,各界并无定论。从字面意思上说,只要是通过电子手段传输的信息都可以称作电子邮件,过去也的确有人管传真叫「electronic mail」。不过,性状和我们今天知道的电邮大体一致的电子邮件始于 1970 年代。最早的电邮要求收发双方同时在线,或是使用同一服务商。就通讯的本质而言,Hotmail 邮箱只能给 Hotmail 邮箱发信,或是中国联通的用户只能给中国联通的用户打电话,都是荒唐怪状。而我们今天恰恰就处在这样的世界里。这也是我们选择用电邮发送会员通讯的理由之一:假如选择微信(或任何一家 IM 服务),不用微信的会员就收不到通讯了。 这里有「服务」和「协议」的区别。上文已经提到了一个不用电邮的人(笑),而你也完全可以说懂中文的《IT 公论》听众没有微信号的几率很可能小于没有电邮地址的几率。但我们这里谈的是权利,而非选择。使用电子邮件不需要接受任何商业公司的用户协议条款,和电子邮件相关的通讯协议也都是开放的,任何人都可以架设自己的电邮服务。假如腾讯倒闭,或是微信这一产品被终止,没有人能保证你一定可以轻易找回微信上的所有书信往来。 当然,如 Rio 所说,开放的系统一定会被玩坏。最典型的例子就是垃圾邮件。如果你时不时发现收不到我们的会员邮件,相信我,那真的是垃圾邮件的错。只可惜这个错在今天似乎已经无法矫正了。 电子邮件有两个重要的,但不大为人所知的特性: 电子邮件的内容是以明文传输的,就像寄信不用信封。电子邮件其实应该叫「电子明信片」。 你看到的发件人地址是可以随便填写的。如果大家记得上学时学的英文书信规范的话,一定记得除了在信封上填写收发件人地址外,在信纸上也要填写。电邮里显示的发件人地址对应的就是信纸上的发件人——你可以填任何地址或任何姓名。(这也是为什么你可以在 Gmail 网页版用任意电邮地址发信。) 第二点让伪造身份这一垃圾邮件的基础技能成为可能,明文传输意味着你的邮件内容可以被他人看到(如果你已经养成了使用 PGP 的习惯就不必听这一期了),而这又是一把双刃剑:出于隐私保护的考虑,你不希望别人能够阅读你的邮件。但假如你对██没有需求,若邮件内容完全加密,过滤垃圾邮件的程序又如何知道这封信里提到了██呢?(为避免被垃圾邮件过滤器误伤,本文此处不得不开始自我审查,隐去高风险词,不然恐怕又要劳烦各位去垃圾箱打捞这封通讯了。)从根本上说,保护隐私和反垃圾邮件是一对矛盾的需求。如果把所有邮件加密,隐私得到了保护,但垃圾邮件过滤程序也起不了作用了。 电子邮件技术经过数十年的发展,已经成为一个复杂的庞然大物。为了和垃圾邮件搏斗,各式标准与技术措施被一层层地叠加。时至今日,已经很少有人敢从底层入手,妄图真正地重新发明电邮。Gmail 很可能是电邮诞生以来最具革命性的尝试,但它依然建立在现存的电邮协议之上。至于近年来流行的 Mailbox 等电邮服务,更加只是从交互入手进行的表层改造。年久失修的电子邮件作为唯一一个全球网民人人都有的开放性身份 ID 具有不可替代的价值,但作为通讯工具的它,已经逐步被封闭而专有移动 IM 软件取代。不管怎么说,对于电子通讯系统而言,隐私、开放、和反垃圾,三者只能取其二。 最近我们读的一些文章 Paul Graham 说美国政府应该放更多外籍程序员进来,Chris Pepper 很愤怒。等 H-1B 签证的人都应该看看 「我不確定這種灌水卻又僵化的用語風潮是什麼時候開始的,根據我自己的成長經驗,起碼到我高中以前在台灣還不常見,反而是在中國大陸很興盛,中國的官方或官樣文章裡常有成串贅詞與廢話連篇的套語,像是喜歡在動詞前面加個「進行」等,這是他們特殊歷史文化背景下發展出來的(壞)習慣,台灣因為分治而得免。可惜的是,就在他們意識到這問題,繼而稍見起色之時,我們卻患上此病(但我不確定是否是「遭到感染」),十數年間到處流行,甚至眼看著就要病入骨髓了。」(嗯?我们有稍见起色吗?) 什么样的志愿才配得上 vision 一词? 相关链接 Spamhaus FastMail PGP 人物简介 李如一:字节社创始人。 Rio: Apple4us 程序员。

IT 公论
Episode 134: 终究悲哀的电子邮件

IT 公论

Play Episode Listen Later Jan 4, 2015 95:37


2015 年开年第一期节目,我们只讨论一个话题:电子邮件。 每月三十元,支持李如一和 Rio 把《IT 公论》做成最好的科技播客。请访问 itgonglun.com/member。 2015 年的第一期《IT 公论》上线了,由于元旦假期的缘故,我们提前在 2014 年的最后一天录了这一期。因此,本期节目没有像往常那样以最近的新闻为基础展开讨论,我们用一整集谈了一个话题:电子邮件。 Gmail 在中国访问不畅并不是第一次,相信也不会是最后一次。您读到这封信时,或许 Gmail 已经比一周前更容易访问。或许您虽然身在中国,但从来就能自由访问 Gmail(不开 VPN)。或许您很早就发现虽然网页版 Gmail 很难打开,但在 iPhone 上用 Mail 处理 Gmail 邮件却全然无碍,而这招似乎最近也失灵了。(使用 Gmail 的会员若希望改用其它邮箱接收《IT 公论》会员通讯请发邮件到 itgonglun@ipn.li 告诉我们。) 或许您觉得我们用电子邮件来发送会员通讯的行为非常古旧,或许对您来说电子邮件 = 工作。有一件事不用「或许」:您一定曾经被垃圾邮件侵扰。但,或许您不知道,世界上每年发送的电子邮件里,有 90% 是垃圾邮件,而全球第一个发送商业垃圾邮件的人,不仅不认为那是错的,还在论坛上斥责反对自己发垃圾邮件的人是左棍。在他看来,垃圾邮件是言论自由的一部分。 李如一和 Rio 都对电邮有着暧昧的立场。李如一在他的朋友圈(三次元朋友圈,不是微信朋友圈)里以喜欢用电邮沟通闻名,虽然如今也没什么人和他发邮件了。Rio 常年用私人域名后缀的邮箱,也形成了一套令人叹为观止的电邮管理习惯,但他仍然时不时会跟李如一抱怨一下 email 有多反人类。事实上,我们在准备本期节目时使用的临时标题就叫「电邮吮吸」。 如果您在 1990 年代末就有了电子邮箱,已经可谓是资深的电邮用户了。但是《计算机程序设计艺术》的作者高德纳(Donald Knuth)是这么说的: 我从 1990 年 1 月 1 日起就没有电邮地址了,自那以后我成了一个幸福的人。我大约在 1975 年左右开始使用电邮,15 年的电邮人生不可谓不长。 关于电子邮件的历史从什么时候算起,各界并无定论。从字面意思上说,只要是通过电子手段传输的信息都可以称作电子邮件,过去也的确有人管传真叫「electronic mail」。不过,性状和我们今天知道的电邮大体一致的电子邮件始于 1970 年代。最早的电邮要求收发双方同时在线,或是使用同一服务商。就通讯的本质而言,Hotmail 邮箱只能给 Hotmail 邮箱发信,或是中国联通的用户只能给中国联通的用户打电话,都是荒唐怪状。而我们今天恰恰就处在这样的世界里。这也是我们选择用电邮发送会员通讯的理由之一:假如选择微信(或任何一家 IM 服务),不用微信的会员就收不到通讯了。 这里有「服务」和「协议」的区别。上文已经提到了一个不用电邮的人(笑),而你也完全可以说懂中文的《IT 公论》听众没有微信号的几率很可能小于没有电邮地址的几率。但我们这里谈的是权利,而非选择。使用电子邮件不需要接受任何商业公司的用户协议条款,和电子邮件相关的通讯协议也都是开放的,任何人都可以架设自己的电邮服务。假如腾讯倒闭,或是微信这一产品被终止,没有人能保证你一定可以轻易找回微信上的所有书信往来。 当然,如 Rio 所说,开放的系统一定会被玩坏。最典型的例子就是垃圾邮件。如果你时不时发现收不到我们的会员邮件,相信我,那真的是垃圾邮件的错。只可惜这个错在今天似乎已经无法矫正了。 电子邮件有两个重要的,但不大为人所知的特性: 电子邮件的内容是以明文传输的,就像寄信不用信封。电子邮件其实应该叫「电子明信片」。 你看到的发件人地址是可以随便填写的。如果大家记得上学时学的英文书信规范的话,一定记得除了在信封上填写收发件人地址外,在信纸上也要填写。电邮里显示的发件人地址对应的就是信纸上的发件人——你可以填任何地址或任何姓名。(这也是为什么你可以在 Gmail 网页版用任意电邮地址发信。) 第二点让伪造身份这一垃圾邮件的基础技能成为可能,明文传输意味着你的邮件内容可以被他人看到(如果你已经养成了使用 PGP 的习惯就不必听这一期了),而这又是一把双刃剑:出于隐私保护的考虑,你不希望别人能够阅读你的邮件。但假如你对██没有需求,若邮件内容完全加密,过滤垃圾邮件的程序又如何知道这封信里提到了██呢?(为避免被垃圾邮件过滤器误伤,本文此处不得不开始自我审查,隐去高风险词,不然恐怕又要劳烦各位去垃圾箱打捞这封通讯了。)从根本上说,保护隐私和反垃圾邮件是一对矛盾的需求。如果把所有邮件加密,隐私得到了保护,但垃圾邮件过滤程序也起不了作用了。 电子邮件技术经过数十年的发展,已经成为一个复杂的庞然大物。为了和垃圾邮件搏斗,各式标准与技术措施被一层层地叠加。时至今日,已经很少有人敢从底层入手,妄图真正地重新发明电邮。Gmail 很可能是电邮诞生以来最具革命性的尝试,但它依然建立在现存的电邮协议之上。至于近年来流行的 Mailbox 等电邮服务,更加只是从交互入手进行的表层改造。年久失修的电子邮件作为唯一一个全球网民人人都有的开放性身份 ID 具有不可替代的价值,但作为通讯工具的它,已经逐步被封闭而专有移动 IM 软件取代。不管怎么说,对于电子通讯系统而言,隐私、开放、和反垃圾,三者只能取其二。 最近我们读的一些文章 Paul Graham 说美国政府应该放更多外籍程序员进来,Chris Pepper 很愤怒。等 H-1B 签证的人都应该看看 「我不確定這種灌水卻又僵化的用語風潮是什麼時候開始的,根據我自己的成長經驗,起碼到我高中以前在台灣還不常見,反而是在中國大陸很興盛,中國的官方或官樣文章裡常有成串贅詞與廢話連篇的套語,像是喜歡在動詞前面加個「進行」等,這是他們特殊歷史文化背景下發展出來的(壞)習慣,台灣因為分治而得免。可惜的是,就在他們意識到這問題,繼而稍見起色之時,我們卻患上此病(但我不確定是否是「遭到感染」),十數年間到處流行,甚至眼看著就要病入骨髓了。」(嗯?我们有稍见起色吗?) 什么样的志愿才配得上 vision 一词? 相关链接 Spamhaus FastMail PGP 人物简介 李如一:字节社创始人。 Rio: Apple4us 程序员。

IT 公论
Episode 119: 用 activism 的精神做电子出版标准化

IT 公论

Play Episode Listen Later Oct 20, 2014 61:20


台湾汪达数位出版的董福兴先生为了参加月底在美国西岸举行的 TPAC 2014 与 Books in Browser 两个关于电子出版标准的会议,在网上发起了筹集旅费的活动。他所关心的,是台湾人对中文阅读的格式需要(例如注音符号)能否写入 W3C 以及电子出版标准(EPUB),并被各家浏览器与阅读软件完善地支持。在成功筹到了款项准备出发的前夕,他来《IT 公论》与大家分享了台湾电子出版界的现状。 相关链接 董福兴:《如果你在乎中文》 TPAC 2014 Books in Browsers IDPF (International Digital Publishing Forum) OEBPS Håkon Wium Lie Bert Bos FirefoxOS 汉生病介绍 ATOK 日文输入法 LaTeX Donald Knuth Internet Archive Espresso Book Machine Print on demand 董福兴的 Twitter 董福兴的知乎 人物简介 李如一:字节社创始人。 董福兴:Wanderer 创始人。

Seminari di Informatica Umanistica
Programmare in formule: tipografia matematica di alta qualità in un ambiente di programmazione

Seminari di Informatica Umanistica

Play Episode Listen Later Mar 26, 2012 62:53


Marco Grandi e Vincenzo Gervasi - Secoli di tradizione tipografica hanno portato al progressivo perfezionamento della composizione di manoscritti di contenuto matematico. In questo tipo di manoscritti, la pagina stampata perde il suo carattere di sequenza lineare di parole in un linguaggio, e assume sempre più quello di tavolozza in cui formule e diagrammi (spesso, realizzati con simboli inventati per l'occasione) sono disposti seguendo logiche strutturali non lineari su tutta la pagina. L'alfabeto utilizzato per esprimere contenuti matematici, lungi dall'essere limitato a poche decine di simboli che poi vengono composti in parole, diventa amplissimo: la notazione matematica è molto più pittografica di quanto non siano i linguaggi naturali, e l'esatta disposizione, scala, stile usato per questi simboli diventa fondamentale per trasmettere il significato inteso in maniera efficiente -- e, perché no, esteticamente gradevole (all'occhio allenato). Paradossalmente, di questi concetti si è sempre fatto poco uso nel campo della programmazione. I programmi per calcolatore sono praticamente sempre scritti con un alfabeto ridottissimo (molti linguaggi non accettano neanche lettere accentate), e sono composti da lunghe sequenze di codici, a cui solo l'occasionale cambio di margine conferisce un po' di vivacità. Questa situazione non è passata inosservata, e molti ricercatori (primo fra tutti, Donald Knuth) hanno proposto di utilizzare il cosiddetto "literate programming": scrivere programmi come se si scrivesse un libro, o almeno un articolo scientifico. Questa idea si è però scontrata, fino ad oggi, con i limiti della tecnologia tradizionale. In questo seminario esploreremo il problema dell'uso della notazione tipografica matematica durante la programmazione, mostreremo quali vantaggi può portare alla comprensibilità dei programmi, e mostreremo alcuni sviluppi recenti in questo campo.

Typeradio Podcast
Petr van Blokland 2/4

Typeradio Podcast

Play Episode Listen Later Sep 18, 2005 14:17


Petr van Blokland: ‘Being a designer is a sort of a meta-profession’ & ‘Design is the most beautiful word’. short bio of Petr :: interview with Donald Knuth :: homepage of Donald Knuth :: File Download (14:17 min / 13.1 MB)