Open Komodo: an Open Source IDE for Open Languages for Open

Total Page:16

File Type:pdf, Size:1020Kb

Open Komodo: an Open Source IDE for Open Languages for Open Open Komodo: An Open Source IDE For Open Languages Own Your IDE Eric Promislow ActiveState Software Inc. OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 1 History • Perl for Windows • Active Python, Komodo Anti-Spam Digression • • • Refocus on Developer Tools OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 2 YAILWAD • Spent 1990s Competing with Java and Perl  Original Komodo Team in 2000 • • Visual Studio .Net Digression • • Back on Komodo in 2004 OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 3 ?Contradiction OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 4 Origins OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 5 Agenda • Ruby and Rails Support • OpenKomodo • Zooming In OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 6 Komodo Philosophy Balance of Helpfulness • • • Projects Are Optional OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 7 Ruby Support Ruby-Aware Auto-Indentation • • • Soft Characters • • Code Completion – Their Stuff – Your Stuff • OpenKomodo:• AbbreviationsOwn Your IDE (Snippets) Copenhagen, Denmark April 2, 2008 8 Complete Known Names OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 9 Walk Library Objects OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 10 Call Tips OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 11 Your Own Code OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 12 Troubleshoot OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 13 Rails Support: Goals Avoid the Command-Line for Routine • activities – Generate & Migrate – Test – Debug – Run – SCC OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 14 Useful Tools Firefox JavaScript Debugger • • HTTP Inspector • DOM Inspector • Unit Test Integration • Rx Toolkit OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 15 Visualizing Redirects: Before OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 16 Visualizing Redirects: After OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 17 Rails Support: Deploying • Specify Servers • Edit Remote Files • Remote Folders in Projects • One Size Doesn’t Fit All OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 18 The Komodo Family OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 19 The Komodo Family • Komodo IDE • Komodo Edit • OpenKomodo : MPL GPL LGPL OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 20 Why Open It • Unique in its underlying technology • Built with the same languages we support • Build a foundation, let many build on top • Mozilla: Open, Cross-Platform OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 21 Now That We’ve Open- Sourced It… OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 22 Use It • http://www.openkomodo.com OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 23 Extend It • Macros • Extensions • Hack the Source OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 24 Build Something • Komodo IDE • Snapdragon • Mozpad •? OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 25 How did we get here? • 1994: Netscape 1.0 Beta • 1995: IE 2.0 Released • Jan 1998: Netscape Open-Sources Client • What does this have to do with developer tools? OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 26 End Lock-In • It’s My Data • It’s My Code • No Proprietary Formats • Choice of Environments OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 27 Mozilla: Timing is Everything • Seamonkey and MAS too “90s” • Firefox and Thunderbird Follow Unix Philosophy OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 28 Built on Standards • XUL isn’t too foreign • JavaScript is everyone’s second language OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 29 Other Apps • Flock • Sunbird • Camino • Songbird • Joost • Hackety-Hack OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 30 Even Microsoft Buys In • Windows Application Framework – Based on XAML – XAML based on XUL OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 31 Is the Platform Irrelevant? • Where are the verticals? • Wait a generation… OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 32 How Developers Work • We’re Late Adopters • We Like Plain Text • Whiteboards vs. Electronic Communication OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 33 The Future of Programming • Was supposed to look like this… OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 34 OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 35 Programmers' Tools Matter • OpenKomodo is the right technology at the right time OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 36 Community Matters • Every platform needs one • Case Study: Visual Basic • "Support statement for Visual Basic 6.0 on … Vista" • Visual Studio .Net (7.0) Q & A OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 37 Openness Matters • Hard to grow a community without empowering people • Extension contest showed people could use it without large amounts of documentation OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 38 Documentation is a Challenge • Writing doesn't usually scratch an itch • Every non -private function is callable • The Sourceforge challenge OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 39 And Now For Something More Technical… OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 40 What Exactly Is Mozilla • XUL • JS • CSS OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 41 Mozilla Components • NSPR • Gecko • Necko • XPCOM • XPConnect • XBL OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 42 Komodo Under the Hood • Chrome - front-end -- src/chrome • PyXPCOM back -end -- src/ • Over 20 FOSS components in contrib/ • IDL files - src/* and sdk/ • Over 260 files OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 43 Interfaces & Implementations Search http://grok.openkomodo.com/source/xref/ http://lxr.mozilla.org/mozilla1.8/ OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 44 Write Macros Samples in Toolbox Subset of API in Help Experiment with JavaScript Shell • http://community.activestate.com/ komodo-extension/ komodo-developer-extension OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 45 OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 46 OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 47 Python or JavaScript? • JS code handles model and view • Python better suited for special cases OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 48 Python example: • t = ClipboardWrapper() • text = t.get() • paras = re.split(r'\r?\n\r?\n(?=.)', text) • import textwrap • lines = [textwrap.wrap(p) for p in paras] • t.put(eol.join(lines)) OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 49 Writing Extensions • Hello-world • Komodo "Komodo Extension Template" • Steeper Leaning Curve that Macros – Graphical UI Adds an Extra Dimension OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 50 Undo Slider OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 51 Getting Started OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 52 OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 53 UI expressed in XML • overlay id=%extension_name%Overlay ... – commandset id=allcommands • command id=Tasks:HelloWorld oncommand="alert('Hello world')" – menupopup id=popup_tools • Menuitem id=menu_%extension_name% label=%extension_nice_name% observes="Tasks:HelloWorld" class="menu-iconic-wide" OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 54 I18n OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 55 chrome.manifeset content undoslider • jar:undoslider.jar!/content/ xpcnativewrappers=yes • • overlay chrome://komodo/content/komodo.xul chrome://undoslider/content/overlay.xul • • skin undoslider classic/1.0 OpenKomodo:jar:undoslider.jar!/skin/ Own Your IDE Copenhagen, Denmark April 2, 2008 56 Monkeypatching your IDE OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 57 JavaScript • String.prototype.shuffle = function(s) { var a = s.split(''); a.sort(function() { return 0.5 - Math.random(); }); return a.join(''); } OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 58 JavaScript Cautions • Komodo doesn't modify JS classes • Avoids loading third -party libraries • Other extensions might OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 59 Namespaces • ko - global object • Be consistent • Declare everything OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 60 Monkeypatching via Hooks • Function addModifiedHandler(view) { gOrigH = view.onModifiedHandler; view.onModifiedHandler = function(…) { … if (typeof(gOrigH) == "function") { gOrigH(…); } } } OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 61 What about Ruby XPCOM? http://rbxpcom.mozdev.org/index.html • • Version 0.0.4 OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 62 Getting the source • http://www.openkomodo.com • SVN OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 63 Searching the source • http://grok.openkomodo.com/ source/xref OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 64 Resources • http://www.openkomodo.com • http://community.activestate.com • irc://moznet/#komodo • http://blogs.activestate.com/ericp • [email protected] OpenKomodo: Own Your IDE Copenhagen, Denmark April 2, 2008 65.
Recommended publications
  • Implementation of Calfem for Python
    IMPLEMENTATION OF CALFEM FOR PYTHON ANDREAS OTTOSSON Structural Master’s Dissertation Mechanics Detta är en tom sida! Department of Construction Sciences Structural Mechanics ISRN LUTVDG/TVSM--10/5167--SE (1-47) ISSN 0281-6679 IMPLEMENTATION OF CALFEM FOR PYTHON Master’s Dissertation by ANDREAS OTTOSSON Supervisors: Jonas Lindemann, PhD, Div. of Structural Mechanics Examiner: Ola Dahlblom, Professor, Div. of Structural Mechanics Copyright © 2010 by Structural Mechanics, LTH, Sweden. Printed by Wallin & Dalholm Digital AB, Lund, Sweden, August, 2010 (Pl). For information, address: Division of Structural Mechanics, LTH, Lund University, Box 118, SE-221 00 Lund, Sweden. Homepage: http://www.byggmek.lth.se Detta är en tom sida! Preface The work presented in this masters’s thesis was carried out during the period June 2009 to August 2010 at the Division of Structural Mechanics at the Faculty of Engineering, Lund University, Sweden. I would like to thank the staff of the Department of Structural Mechanics, es- pecially my supervisor Jonas Lindemann, for help during this work. I would also like to thank my Jennie, and both our families, for their support throughout my education. Lund, August 2010 Andreas Ottosson i Contents 1 Introduction 1 1.1Background.............................. 1 1.2WhyCALFEMforPython?..................... 1 1.3 Objective ............................... 1 2MATLAB 3 2.1Background.............................. 3 2.2 Objects ................................ 3 3 Python and NumPy 5 3.1Python................................ 5 3.1.1 Background.......................... 5 3.1.2 Influences ........................... 5 3.1.3 Objects ............................ 6 3.2NumPy................................ 6 3.2.1 Objects ............................ 7 3.2.2 Commonmatrixoperations................. 8 4 Integrated Development Environments 11 4.1MATLAB............................... 11 4.2PythonIDLE............................. 12 4.3IPython...............................
    [Show full text]
  • Python Programming
    Python Programming Wikibooks.org June 22, 2012 On the 28th of April 2012 the contents of the English as well as German Wikibooks and Wikipedia projects were licensed under Creative Commons Attribution-ShareAlike 3.0 Unported license. An URI to this license is given in the list of figures on page 149. If this document is a derived work from the contents of one of these projects and the content was still licensed by the project under this license at the time of derivation this document has to be licensed under the same, a similar or a compatible license, as stated in section 4b of the license. The list of contributors is included in chapter Contributors on page 143. The licenses GPL, LGPL and GFDL are included in chapter Licenses on page 153, since this book and/or parts of it may or may not be licensed under one or more of these licenses, and thus require inclusion of these licenses. The licenses of the figures are given in the list of figures on page 149. This PDF was generated by the LATEX typesetting software. The LATEX source code is included as an attachment (source.7z.txt) in this PDF file. To extract the source from the PDF file, we recommend the use of http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/ utility or clicking the paper clip attachment symbol on the lower left of your PDF Viewer, selecting Save Attachment. After extracting it from the PDF file you have to rename it to source.7z. To uncompress the resulting archive we recommend the use of http://www.7-zip.org/.
    [Show full text]
  • Run Python Program from Terminal
    Run Python Program From Terminal Crunchiest and representationalism Alfonzo intertwines while slim Archy belly-flopped her redactions also and recapping pleasingly. Swampy Sivert somebreakaway: gracelessness he spreads jauntily. his Seoul Somerville and consecutively. Parliamentary and autecologic Carlyle infuriates her screwer borates while Jessey belie On the script from python test cases, for some experience, you can do you are Now you will connect with a great for the main file format instead of wine before we are distributed in python idle to our latest tutorials. This way you can interpret python programs that you might want to reverse a step in terminals as an excellent idea. In python program or run the id and. This program from websites and terminal window that are welcome our programs. At this topic, we go ahead and find the zip file in the map concept. This run it runs on terminal and code. For mac users and terminal commands using ssh for working with the python interactive mode by entering the run python program from terminal by system that i made. Python programming language is run your python available on the results in terminals as and. Passionate about some of terminal looks like python programming task! Spyder and functions and schedule scripts in web development environment where you. Hopefully you from our programs are running untrusted python programming? These other python running the run your path you can open a script will end, and scp or directly download. Path of files recursively on windows background application makes use for? Create programs from. Food notifier example of your file, we can also effective bu the utilities folder you see the full path to install both locally and how can put it accepts two orders or terminal program from python? Debugging mode by running.
    [Show full text]
  • Php Editor Mac Freeware Download
    Php editor mac freeware download Davor's PHP Editor (DPHPEdit) is a free PHP IDE (Integrated Development Environment) which allows Project Creation and Management, Editing with. Notepad++ is a free and open source code editor for Windows. It comes with syntax highlighting for many languages including PHP, JavaScript, HTML, and BBEdit costs $, you can also download a free trial version. PHP editor for Mac OS X, Windows, macOS, and Linux features such as the PHP code builder, the PHP code assistant, and the PHP function list tool. Browse, upload, download, rename, and delete files and directories and much more. PHP Editor free download. Get the latest version now. PHP Editor. CodeLite is an open source, free, cross platform IDE specialized in C, C++, PHP and ) programming languages which runs best on all major Platforms (OSX, Windows and Linux). You can Download CodeLite for the following OSs. Aptana Studio (Windows, Linux, Mac OS X) (FREE) Built-in macro language; Plugins can be downloaded and installed from within jEdit using . EditPlus is a text editor, HTML editor, PHP editor and Java editor for Windows. Download For Mac For macOS or later Release notes - Other platforms Atom is a text editor that's modern, approachable, yet hackable to the core—a tool. Komodo Edit is a simple, polyglot editor that provides the basic functionality you need for programming. unit testing, collaboration, or integration with build systems, download Komodo IDE and start your day trial. (x86), Mac OS X. Download your free trial of Zend Studio - the leading PHP Editor for Zend Studio - Mac OS bit fdbbdea, Download.
    [Show full text]
  • BUG ET DEBUG DEBUG Des Scripts PHP Les Niveaux D’Erreur De PHP
    BUG ET DEBUG DEBUG des scripts PHP Les niveaux d’erreur de PHP Pour debug, il faut commencer par la configuration dans php.ini : display_errors = On error_reporting = E_ALL Ce dernier peut aussi être défini dans le code : error_reporting(E_ALL ^ E_NOTICE); Ou pour SPIP, dans mes_options.php : define('SPIP_ERREUR_REPORT',E_ALL ^ E_NOTICE); define('SPIP_ERREUR_REPORT_INCLUDE_PLUGINS', E_ALL ^ E_NOTICE); La méthode débrouille On ajoute du code de test pour voir quel chemin suit le script <?php echo « il est passe par ici » ?> die(‘ici’); Voir la valeur d’une variable ou d’une expression var_dump($ma_variable); Voir la pile d’appel debug_print_backtrace(); C’est intrusif et long On modifie le code « pour voir » On relance le script, et on recommence jusqu’à réussir à voir la bonne variable, ou le bon chemin et comprendre le problème Et on laisse des var_dump dans le code … Améliorer les affichages Des affichages plus riches avec XDEBUG XDEBUG S’installe comme une extension de php Compilée en .dll sous windows ou .so sous *nix (la compilation sous Mac OS nécessite l’installation de Xcode) http://devzone.zend.com/article/2803 Guide d’install pour MAMP+Mac OS http:// www.netbeans.org/kb/docs/php/configure-php- environment-mac-os.html#installEnableXdebug XDEBUG http://www.xdebug.org/ Librairie libre sous licence dérivée de PHP Librairie qui facilite le debug Amélioration des affichages de debug Debug interactif Profilage Couverture de code Un joli var_dump Configurable via php.ini : Longueur maxi des chaines affichées
    [Show full text]
  • PHP Beyond the Web Shell Scripts, Desktop Software, System Daemons and More
    PHP Beyond the web Shell scripts, desktop software, system daemons and more Rob Aley This book is for sale at http://leanpub.com/php This version was published on 2013-11-25 This is a Leanpub book. Leanpub empowers authors and publishers with the Lean Publishing process. Lean Publishing is the act of publishing an in-progress ebook using lightweight tools and many iterations to get reader feedback, pivot until you have the right book and build traction once you do. ©2012 - 2013 Rob Aley Tweet This Book! Please help Rob Aley by spreading the word about this book on Twitter! The suggested hashtag for this book is #phpbeyondtheweb. Find out what other people are saying about the book by clicking on this link to search for this hashtag on Twitter: https://twitter.com/search?q=#phpbeyondtheweb Contents Welcome ............................................ i About the author ...................................... i Acknowledgements ..................................... ii 1 Introduction ........................................ 1 1.1 “Use PHP? We’re not building a website, you know!”. ............... 1 1.2 Are you new to PHP? ................................. 2 1.3 Reader prerequisites. Or, what this book isn’t .................... 3 1.4 An important note for Windows and Mac users ................... 3 1.5 About the sample code ................................ 4 1.6 External resources ................................... 4 1.7 Book formats/versions available, and access to updates ............... 5 1.8 English. The Real English. .............................. 5 2 Getting away from the Web - the basics ......................... 6 2.1 PHP without a web server .............................. 6 2.2 PHP versions - what’s yours? ............................. 7 2.3 A few good reasons NOT to do it in PHP ...................... 8 2.4 Thinking about security ...............................
    [Show full text]
  • End-To-End Perl Solutions
    END-TO-END PERL SOLUTIONS: ACTIVEPERL AND KOMODO IDE FOR PERL MILLIONS OF DEVELOPERS TRUST PERL FOR COMPUTATIONAL AND INTEGRATION TASKS— SYSTEM ADMINISTRATION, SCRIPTING, RUNNING DATABASE APPLICATIONS, AND MORE As an open source programming language, Perl immedi- FAIL-SAFE ACTIVEPERL FOR BUSINESS AND ately reduces up-front project costs. However, Perl alone MISSION-CRITICAL APPLICATIONS may not help you meet your business goals. With ActiveState commercial-grade technical support and consulting you don’t need to depend on overworked Like most open source projects, Perl isn’t quality assured internal resources or public Perl communities to solve or commercially supported. So, it may not be safe for development issue. business or mission-critical applications that must run effectively daily, weekly, even hourly. Don’t let Perl be a ActivePerl Enterprise Edition is designed for busi- point of failure for your internal systems and cost your nesses with large Perl deployments in essential, mission- business in lost revenue. Or worse, don’t let it compro- critical applications that, when down, could cost your mise relationships with your customers. CA, Siemens and business in lost revenue and a damaged reputation. Boeing are just a few Fortune 1000 companies that trust Deploy Perl with confidence knowing you’re using the ActiveState for end-to-end development, management most secure, enterprise-grade builds for platforms like and distribution solutions for fail-safe Perl. WORLD’S BEST PERL DISTRIBUTION “ActiveState’s trusted version of Perl has allowed us ActivePerl is the industry-standard, commercial-grade to continuously raise the bar on quality as well as Perl distribution used by millions of developers around cut the cost of expanding our product matrix.” the world for easy Perl installation and quality-assured Lawrence Backman, VP at CA code.
    [Show full text]
  • 7 Reasons the Future of Tcl Is Bright by Clif Flynt ([email protected]) 7 Reasons the Future of Tcl Is Bright
    7 REASONS THE FUTURE OF TCL IS BRIGHT BY CLIF FLYNT ([email protected]) 7 REASONS THE FUTURE OF TCL IS BRIGHT The future is bright for Tcl! You’d be pardoned for his repertoire. He started shell programming in 1985, thinking otherwise. It’s not a sexy new language. In fact, picked up Perl in 1995 and finally Tcl in 1996. He’s been a it’s ranked outside the Top 50 in the TIOBE Index1. Tcl devotee ever since. But for the right projects - and there are lots of them - it’s With Clif’s extensive background, we asked him about a powerful tool that’s been stress-tested for many years the future of Tcl. Here’s seven reasons why the future and just gets the job done. of Tcl is bright. Tcl is not resting on its laurels. The simplicity of the Tcl language makes it perfect for Internet of Things IoT and 1: TCL IS STILL THE KING OF electronics design, including Electronic Design Automa- RAPID PROTOTYPING tion (EDA), chip design, and Field-Programmable Gate Clif is a big fan of Tcl for rapid prototypes that actually Array (FPGA) development, and for configuring chips after work. NBC Broadcasting studios uses Tcl/Tk to control manufacture. The same features that make Tcl dominant what you see. They went to GE Research (and others) in EDA and FPGA also make it great for DevOps, poten- with a half-baked design and some examples of the tially competing with Bash and Perl as the language of clipboards and tapes they were using.
    [Show full text]
  • Proceedings YAPC::Europe 2012 .Com Perl Software Development Services Table of Contents 
    Proceedings YAPC::Europe 2012 .com Perl Software Development Services Table of contents Foreword 5 FatPacker: understanding and appreciating the insanity 6 Vorbild::Beitrag::POD 8 CGI.pm MUST DIE - Together we shall annihilate CGI.pm! 9 CPANTS: Kwalitative website and its tools 10 Designing the Internet of Things: Arduino and Perl 11 Dancing with WebSockets 12 Dancer 2 - Official status: 14 Practical Dancer: moving away from CGI 16 Bringing Perl to a Younger Generation 18 Asynchronous programming FTW! 22 Mojolicious 24 Continuous deployment with Perl 36 Array programming for mere mortals 37 Ontology Aware Applications 42 Distributed Code Review in Perl - State of the Practice 48 address-sanitizer - A fast memory error detector 52 Exceptional Perl 6 55 The joy of breaking stuff 59 Macros in Rakudo 66 Why statement modifiers can harm maintainability! 70 A discussion on how to organize a Perl Mongers group 72 Building C/C++ libraries with Perl 74 8PSMET#1*O0OMJOF"DDPNNPEBUJPO3FTFSWBUJPOTBOETUJMMHSPXJOH 8FOFFE1FSM%FWFMPQFST .Z4RM%#"T 8FVTF1FSM 1VQQFU "QBDIF 4PGUXBSF%FWFMPQFST 4ZT"ENJOT .Z42- .FNDBDIF (JU -JOVY $JTDP 8FC%FTJHOFST 'SPOU&OE%FWFMPQFST +VOJQFSBOENPSF /FUXPSL&OHJOFFSTBOENPSFw /08)*3*/( (SFBUMPDBUJPOJOUIFDFOUFSPG"NTUFSEBN $PNQFUJUJWF4BMBSZ3FMPDBUJPO1BDLBHF *OUFSOBUJPOBM SFTVMUESJWFOEZOBNJDXPSLFOWJSPONFOU *OUFSFTUFE XXXCPPLJOHDPNKPCT Foreword 5 Welcome to YAPC::Europe 2012. This is the fourteenth European Perl conference! The Frankfurt 8PSMET#1*O0OMJOF"DDPNNPEBUJPO3FTFSWBUJPOTBOETUJMMHSPXJOH Perlmongers have great pleasure in hosting this event this year. We‘d like to welcome you here in Frankfurt. The city that is now the heart of the Perl community for at least days. We have attendees from more than 40 countries all over the world, so there is a rich mix of different cultures and different people.
    [Show full text]
  • Python Guide Documentation 0.0.1
    Python Guide Documentation 0.0.1 Kenneth Reitz 2015 09 13 Contents 1 Getting Started 3 1.1 Picking an Interpreter..........................................3 1.2 Installing Python on Mac OS X.....................................5 1.3 Installing Python on Windows......................................6 1.4 Installing Python on Linux........................................7 2 Writing Great Code 9 2.1 Structuring Your Project.........................................9 2.2 Code Style................................................ 15 2.3 Reading Great Code........................................... 24 2.4 Documentation.............................................. 24 2.5 Testing Your Code............................................ 26 2.6 Common Gotchas............................................ 30 2.7 Choosing a License............................................ 33 3 Scenario Guide 35 3.1 Network Applications.......................................... 35 3.2 Web Applications............................................ 36 3.3 HTML Scraping............................................. 41 3.4 Command Line Applications....................................... 42 3.5 GUI Applications............................................. 43 3.6 Databases................................................. 45 3.7 Networking................................................ 45 3.8 Systems Administration......................................... 46 3.9 Continuous Integration.......................................... 49 3.10 Speed..................................................
    [Show full text]
  • Copyrighted Material
    24_575872 bindex.qxd 5/27/05 6:28 PM Page 417 Index PHP, 53 • A • security, 41 abstract classes, 403–404 Security Sockets Layer (SSL), 41 abstraction, 387–388 application development accessing consistency in coding style, 376 methods, 395–396, 399–400 constants, 376 MySQL databases, 33–34 discussion lists, 378 MySQL from PHP scripts, 37 documentation, 378 properties, 395–396 PHP source code, 377 Account class (HTTP authentication application) planning, 19–22, 375 code, 66–68 readability of code, 376 comparePassword method, 69–70 resource planning, 21–22 constructor, 68–69 reusable code, 377 properties, 66 schedule, 21 selectAccount method, 69 separating page layout from function, 377 Account class (user login application) testing code incrementally, 376 comparePassword method, 112 application scripts constructor, 111 accessing MySQL, 37 Admin-OO.php createNewAccount method, 112–114 , 303–307 Admin.php getMessage method, 112 , 269–274 Auth-OO.php selectAccount method, 111 , 73–76 Catalog-oo.php accounts (MySQL) , 155–157 CompanyHome-OO.php creating, 35–36 , 294–300 CompanyHome.php modifying, 35 , 253–262 passwords, 35–36 error handling, 32–33 Login-OO.php permissions, 35 , 119–125, 293 login.php root, 35 , 92–100, 246–249 Orders-oo.php activating MySQL, 12–13 , 224–230 addCart method, 220 outside sources, 25–30 postMessage-OO.php AddField method, 327 , 361–363 postMessage.php addItem method, 214 , 339–342 postReply-OO.php addslashes function, 39COPYRIGHTED MATERIAL, 364–368 postReply.php Admin-OO.php script, 303–307 , 342–345 ProcessOrder.php
    [Show full text]
  • An Introduction to Ruby and Rails
    An Introduction to Ruby and Rails This paper was originally presented at the Southwest Fox conference in Gilbert, Arizona in October, 2010. http://www.swfox.net An Introduction to Ruby and Rails Rick Borup Information Technology Associates 701 Devonshire Dr, Suite 127 Champaign, IL 61820 Voice: (217) 359-0918 Fax: (217) 398-0413 Email: [email protected] Ruby is a powerful, object-oriented, open-source language with a clean and easily understandable syntax. Originally released to the public in 1995, wide-spread interest in the Ruby language really began to take off in 2003 with the release of the Ruby on Rails® framework. Also known as "RoR" or simply "Rails", Ruby on Rails is an open-source Web framework that makes it possible to quickly and easily create data-based Web applications. Together, the Ruby language and the Ruby on Rails framework can become an exciting and powerful addition to any developer's toolbox. This session introduces both the Ruby language and the Rails framework, focusing on their installation and use on a Windows® platform with a perspective geared toward experienced Visual FoxPro® developers. © 2010 Rick Borup Page 1 of 64 An Introduction to Ruby and Rails Table of Contents Introduction............................................................................................................................................................ 4 Installing Ruby and Rails on Windows......................................................................................................... 4 Installing Instant Rails
    [Show full text]