LAMP and the REST Architecture Step by Step Analysis of Best Practice

Total Page:16

File Type:pdf, Size:1020Kb

LAMP and the REST Architecture Step by Step Analysis of Best Practice LAMP and the REST Architecture Step by step analysis of best practice Santiago Gala High Sierra Technology S.L.U. Minimalistic design using a Resource Oriented Architecture What is a Software Platform (Ray Ozzie ) ...a relevant and ubiquitous common service abstraction Creates value by leveraging participants (e- cosystem) Hardware developers (for OS level platforms) Software developers Content developers Purchasers Administrators Users Platform Evolution Early stage: not “good enough” solution differentiation, innovation, value flows Later: modular architecture, commoditiza- tion, cloning no premium, just speed to market and cost driven The platform effect - ossification, followed by cloning - is how Chris- tensen-style modularity comes to exist in the software industry. What begins as a value-laden proprietary platform becomes a replaceable component over time, and the most successful of these components finally define the units of exchange that power commodity networks. ( David Stutz ) Platform Evolution (II) Example: PostScript Adobe Apple LaserWriter Aldus Pagemaker Desktop Publishing Linotype imagesetters NeWS (Display PostScript) OS X standards (XSL-FO -> PDF, Scribus, OOo) Software Architecture ...an abstraction of the runtime elements of a software system during some phase of its oper- ation. A system may be composed of many lev- els of abstraction and many phases of opera- tion, each with its own software architecture. Roy Fielding (REST) What is Architecture? Way to partition a system in components Way for components to locate and co-operate with other components Way to make information flow through the sys- tem Way to evolve components independently Way to describe the above Elements of Architecture Components Abstract units of instructions and internal state that provides data transformation through a given interface Connectors Abstract mechanism that mediates communication, coordination or cooperation between components Data Element of information that is transferred from a com- ponent, or received by a component, via a connector Architecture characteristics Elements i.e. Components, Connectors, and Data Properties what can be achieved by combination of the above in a certain way. Quality attributes Styles An Architectural style is a coordinated set of architec- tural constraints that restricts the roles/features of ar- chitectural elements and the allowed relationships among those elements within any architecture that conforms to the style Architecture characteristics (II) Configuration Structure of architectural relationships amongst com- ponents, connectors and data during a period of the system runtime Patterns Software patterns, etc. Views Global Architecture aspects. Examples: temporal issues state and control approaches data representation transaction life cycle security safeguards peak demand and graceful degradation. Network App. Styles Process Oriented Information is “processed” by components Data Flow Oriented information flows in a component pipeline Resource (Document) Oriented components serve and receive documents Message Oriented components send and receive messages Data-flow styles ● Process is analized as information that moves between components ● Pipe and Filter (PF) ● Uniform P&F (UPF) Replication styles ● Proces is achieved by copying data to the com- ponent that is going to use it ● Replicated Repository (RR) ● Caché ($) Hierarchical ● Process is achieved by a configuration of com- ponents with diverse roles ● Client-Server (CS) ● Layered System, Layered CS (LS, LCS) ● Client-Stateless-Server (CSS) ● Client-Caché-Stateless-Server (C$SS) ● Remote Session (RS) ● Remote Data Access (RDA) Mobile Code ● Not just data, but code moves for the process- ing ● Virtual Machine (VM) ● Remote Evaluation (REV) ● Code on demand (COD) ● LCODC$SS ● Mobile Agent (MA) Peer-to-Peer ● No hierarchy of clients and servers between the processing nodes ● Event Based Integration (EBI) ● C2 (combines EBI with LCS) ● Distributed Objects (DO) ● Brokered Distributed Objects (BDO) P . y Style Compay rit son m i t m . r l y i y r y y i y . l t z t o t i t i r i i o c . i b y i f l l f i l i b t u i r n c b i i r m i s a l b e g b e l a i b e i o i v n a a f P t s p l a l b P t c e i i i s n t u r l a o t f m s e P u o e e f c i v x i o Style Derivation N U E S S E E C C R V P R PF +- + + + + + UPF PF - +- ++ + + ++ ++ + RR ++ + + $ RR + + + + CS + + + LS - + + + + LCS CS+LS - ++ + ++ + + CSS CS - ++ + + + + C$SS CSS+$ - + + ++ + + + + LC$SS LCS+C$SS - +- + +++ ++ ++ + + + + RS CS + - + + - RDA CS + - - + - VM +- + - + REV CS+VM + - +- + + - + - COD CS+VM + + + +- + + - LCODC$SS LC$SS+COD - ++ ++ +4+ + +-+ ++ + + + +- + + MA REV+COD + ++ +- ++ + + - + EBI + -- +- + + + + - - C2 - + + ++ + + ++ +- + +- DO - + + + + + - - BDO - - ++ + + ++ - + REST Representational State Transfer The Web Architectural Style client-server browser server stateless requests are selfcontained cache Protocol has provisions for caching uniform interface HTTP/verbs (GET, POST ...) layered system proxies, balancers, gateways code-on-demand applets, javascript Elements of REST Data Resource (Abstract Document) Resource Identifier (URL, URN) Representation (HTML, RSS, Atom) Representation metadata (media type, ... ) Resource metadata Control data Connectors client (libwww) server (libapr) caché resolver tunnel Components origin server (Apache, Tomcat, AOLServer,...) gateway (mod_proxy, mod_jk) proxy (Squid) user agent (Firefox, Safari, MSIE) Ye olde CRUD... Resource Oriented State Transfer Uniform Interface... HTTP verbs: PUT, GET, POST, DELETE CRUD verbs: CREATE, READ, UPDATE, DELETE ...but Document Oriented The concept of “site” is strong collection of resources headlines and logs are typical of publishing CRUD is too shallow for small grain objects, but right for big grain documents Different things, but related A platform usually brings an Architectural Style “natural” to it There are reinforcement loops: The Platform makes certain Architectures easier Style becomes ecosystem “culture” In a house construction example, wooden American houses do have distinct architec- ture style than brick European ones, or adobe Web Platforms LAMP/WAMP and LAP/WAP :-) driven by power developers and users J2EE driven by traditional EIS providers more oriented to intranet or complex services .NET (a second iteration clone of J2EE) tries to preserve the Client Server Windows ecosystem (VB.NET, ASP) driven by Microsoft constituents LAMP Linux, Apache, MySQL, Perl/PHP/Python WAMP variant, using Windows Variant: LAP or WAP (no Database) Dynamic Languages... High Level (abstract types, code is first order) Open Source (“grass roots”) Dynamically typed (“type goes with object”) ...with rich libraries scrape a web site in 200 LOC CPAN, PHP-lib or Python could become even stronger with parrot LAMP works Quality: “fitness for a given purpose” A quality Architectural style/Platform is fit for the requirements and constraints of the system deliver in changing spec environments statelessness lead to big scalability Loose Coupling Minimizing state Reactive Programming for Web Apps, J2EE/.NET follows LAMP Blosxom (and PyBlosxom) Rael Dornfest design and implementation The Zen of blogging Minimalistic blog software Microcontent rendering engine Extensible and simple to install and use Could it be the Zen of Content Manage- ment? Blosxom (and Pyblosxom) (II) Blosxom 2: The Zen of blogging 614 LOC, 17k core 413 LOC, 11k plugins A bit more in docs and samples Pyblosxom: a clone in python 1780LOC, 58K core more comments and plugins (150K total) Mombo Sam Ruby's blogging code blosxom derivative Started as a mix between perl, python, java and mod_rewrite Now it is python+procmail+mod_rewrite More sophisticated, enforces xhtml Less “platform-like” design still very small and powerful Size does matter (Code Size) The less lines of code less bugs less maintenance smaller learning curve Size does matter (Content Granularity) It is no longer the Web Document Content Management Unit -> Entry (Infolet) Rendering Unit -> Portlet PIM (Personal Information Manager) 90's, Contacts, Calendar, Email, Documents Lotus Organizer, Outlook, Notes PKM (Personal Knowledge Manager) 00's Calendar, Blogroll, Entries, Email, Bookmarks Blosxom, Groovy?, Chandler?, Dashboard? Services: del.icio.us, Technorati, Bloglines Size does matter (Platformwise) The less lines of code more visible are the design and architecture trade-offs easier to deploy and reuse Value shifts from platform vendor to platform user (trainer, deployer, customizer) Value shifts to services around *Blosxom Architecture CGI (gateway) or Static Generator (caché) Store (File System) Micro Pipeline: Parser Aggregator Renderer *Blosxom Components File system: hierarchical database resources flavours templates Title and meta info inside the file Could be substituted for real metainfo (Reiser, HFS+, ...) URLs can be mapped to make a dynamic site look static to make a static site as a caché of dynamic generated code *Blosxom Data URL maps to hierarchy of entries... symlinks and tags will work in 3.0 ...or temporal period... ...plus representation... Decouple “flavours” from resources (html, rss, atom) ... via templates with var interpolation) *Blosxom design Pipeline pattern (with plugins) Extension points for template selection head date story
Recommended publications
  • Learning to Program in Perl
    Learning to Program in Perl by Graham J Ellis Languages of the Web Learning to Program in Perl version 1.7 Written by Graham Ellis [email protected] Design by Lisa Ellis Well House Consultants, Ltd. 404, The Spa, Melksham, Wiltshire SN12 6QL England +44 (0) 1225 708 225 (phone) +44 (0) 1225 707 126 (fax) Find us on the World Wide Web at: http://www.wellho.net Or contact us at: [email protected] Copyright © 2003 by Well House Consultants, Ltd. Printed in Great Britain. Printing History May 1999 1.0 First Edition February 2000 1.1 Minor additions June 2000 1.2 Compliation of modules October 2000 1.3 Name change, revisions April 2002 1.4 Added modules September 2002 1.5 Added modules January 2003 1.6 Updated modules February 2003 1.7 Updated modules This manual was printed on 21 May 2003. Notice of Rights All rights reserved. No part of this manual, including interior design, may be reproduced or translated into any language in any form, or transmitted in any form or by any means electronic, mechanical, photocopying, recording or otherwise, without prior written permission of Well House Consultants except in the case of brief quotations embodied in critical articles and reviews. For more information on getting permission for reprints and excerpts, contact Graham Ellis at Well House Consultants. This manual is subject to the condition that it shall not, by way of trade or otherwise, be lent, sold, hired out or otherwise circulated without the publisher's prior consent, incomplete nor in any form of binding or cover other than in which it is published and without a similar condition including this condition being imposed on the subsequent receiver.
    [Show full text]
  • Hacker Public Radio
    hpr0001 :: Introduction to HPR hpr0002 :: Customization the Lost Reason hpr0003 :: Lost Haycon Audio Aired on 2007-12-31 and hosted by StankDawg Aired on 2008-01-01 and hosted by deepgeek Aired on 2008-01-02 and hosted by Morgellon StankDawg and Enigma talk about what HPR is and how someone can contribute deepgeek talks about Customization being the lost reason in switching from Morgellon and others traipse around in the woods geocaching at midnight windows to linux Customization docdroppers article hpr0004 :: Firefox Profiles hpr0005 :: Database 101 Part 1 hpr0006 :: Part 15 Broadcasting Aired on 2008-01-03 and hosted by Peter Aired on 2008-01-06 and hosted by StankDawg as part of the Database 101 series. Aired on 2008-01-08 and hosted by dosman Peter explains how to move firefox profiles from machine to machine 1st part of the Database 101 series with Stankdawg dosman and zach from the packetsniffers talk about Part 15 Broadcasting Part 15 broadcasting resources SSTRAN AMT3000 part 15 transmitter hpr0007 :: Orwell Rolled over in his grave hpr0009 :: This old Hack 4 hpr0008 :: Asus EePC Aired on 2008-01-09 and hosted by deepgeek Aired on 2008-01-10 and hosted by fawkesfyre as part of the This Old Hack series. Aired on 2008-01-10 and hosted by Mubix deepgeek reviews a film Part 4 of the series this old hack Mubix and Redanthrax discuss the EEpc hpr0010 :: The Linux Boot Process Part 1 hpr0011 :: dd_rhelp hpr0012 :: Xen Aired on 2008-01-13 and hosted by Dann as part of the The Linux Boot Process series.
    [Show full text]
  • Luigi Documentation Release 2.8.13
    Luigi Documentation Release 2.8.13 The Luigi Authors Apr 29, 2020 Contents 1 Background 3 2 Visualiser page 5 3 Dependency graph example 7 4 Philosophy 9 5 Who uses Luigi? 11 6 External links 15 7 Authors 17 8 Table of Contents 19 8.1 Example – Top Artists.......................................... 19 8.2 Building workflows........................................... 23 8.3 Tasks................................................... 28 8.4 Parameters................................................ 33 8.5 Running Luigi.............................................. 36 8.6 Using the Central Scheduler....................................... 38 8.7 Execution Model............................................. 41 8.8 Luigi Patterns............................................... 43 8.9 Configuration............................................... 48 8.10 Configure logging............................................ 60 8.11 Design and limitations.......................................... 61 9 API Reference 63 9.1 luigi package............................................... 63 9.2 Indices and tables............................................ 248 Python Module Index 249 Index 251 i ii Luigi Documentation, Release 2.8.13 Luigi is a Python (2.7, 3.6, 3.7 tested) package that helps you build complex pipelines of batch jobs. It handles dependency resolution, workflow management, visualization, handling failures, command line integration, and much more. Run pip install luigi to install the latest stable version from PyPI. Documentation for the latest release is hosted on readthedocs. Run pip install luigi[toml] to install Luigi with TOML-based configs support. For the bleeding edge code, pip install git+https://github.com/spotify/luigi.git. Bleeding edge documentation is also available. Contents 1 Luigi Documentation, Release 2.8.13 2 Contents CHAPTER 1 Background The purpose of Luigi is to address all the plumbing typically associated with long-running batch processes. You want to chain many tasks, automate them, and failures will happen.
    [Show full text]
  • 2016 8Th International Conference on Cyber Conflict: Cyber Power
    2016 8th International Conference on Cyber Conflict: Cyber Power N.Pissanidis, H.Rõigas, M.Veenendaal (Eds.) 31 MAY - 03 JUNE 2016, TALLINN, ESTONIA 2016 8TH International ConFerence on CYBER ConFlict: CYBER POWER Copyright © 2016 by NATO CCD COE Publications. All rights reserved. IEEE Catalog Number: CFP1626N-PRT ISBN (print): 978-9949-9544-8-3 ISBN (pdf): 978-9949-9544-9-0 CopyriGHT AND Reprint Permissions No part of this publication may be reprinted, reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording or otherwise, without the prior written permission of the NATO Cooperative Cyber Defence Centre of Excellence ([email protected]). This restriction does not apply to making digital or hard copies of this publication for internal use within NATO, and for personal or educational use when for non-profit or non-commercial purposes, providing that copies bear this notice and a full citation on the first page as follows: [Article author(s)], [full article title] 2016 8th International Conference on Cyber Conflict: Cyber Power N.Pissanidis, H.Rõigas, M.Veenendaal (Eds.) 2016 © NATO CCD COE Publications PrinteD copies OF THIS PUBlication are availaBLE From: NATO CCD COE Publications Filtri tee 12, 10132 Tallinn, Estonia Phone: +372 717 6800 Fax: +372 717 6308 E-mail: [email protected] Web: www.ccdcoe.org Head of publishing: Jaanika Rannu Layout: Jaakko Matsalu LEGAL NOTICE: This publication contains opinions of the respective authors only. They do not necessarily reflect the policy or the opinion of NATO CCD COE, NATO, or any agency or any government.
    [Show full text]
  • [PDF] Beginning Raku
    Beginning Raku Arne Sommer Version 1.00, 22.12.2019 Table of Contents Introduction. 1 The Little Print . 1 Reading Tips . 2 Content . 3 1. About Raku. 5 1.1. Rakudo. 5 1.2. Running Raku in the browser . 6 1.3. REPL. 6 1.4. One Liners . 8 1.5. Running Programs . 9 1.6. Error messages . 9 1.7. use v6. 10 1.8. Documentation . 10 1.9. More Information. 13 1.10. Speed . 13 2. Variables, Operators, Values and Procedures. 15 2.1. Output with say and print . 15 2.2. Variables . 15 2.3. Comments. 17 2.4. Non-destructive operators . 18 2.5. Numerical Operators . 19 2.6. Operator Precedence . 20 2.7. Values . 22 2.8. Variable Names . 24 2.9. constant. 26 2.10. Sigilless variables . 26 2.11. True and False. 27 2.12. // . 29 3. The Type System. 31 3.1. Strong Typing . 31 3.2. ^mro (Method Resolution Order) . 33 3.3. Everything is an Object . 34 3.4. Special Values . 36 3.5. :D (Defined Adverb) . 38 3.6. Type Conversion . 39 3.7. Comparison Operators . 42 4. Control Flow . 47 4.1. Blocks. 47 4.2. Ranges (A Short Introduction). 47 4.3. loop . 48 4.4. for . 49 4.5. Infinite Loops. 53 4.6. while . 53 4.7. until . 54 4.8. repeat while . 55 4.9. repeat until. 55 4.10. Loop Summary . 56 4.11. if . ..
    [Show full text]
  • Files: Cpan/Test-Harness/* Copyright: Copyright (C) 2007-2011
    Files: cpan/Test-Harness/* Copyright: Copyright (c) 2007-2011, Andy Armstrong <[email protected]>. All rights reserved. License: GPL-1+ or Artistic Comment: This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. Files: cpan/Test-Harness/lib/TAP/Parser.pm Copyright: Copyright 2006-2008 Curtis "Ovid" Poe, all rights reserved. License: GPL-1+ or Artistic Comment: This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. Files: cpan/Test-Harness/lib/TAP/Parser/YAMLish/Reader.pm Copyright: Copyright 2007-2011 Andy Armstrong. Portions copyright 2006-2008 Adam Kennedy. License: GPL-1+ or Artistic Comment: This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. Files: cpan/Test-Simple/* Copyright: Copyright 2001-2008 by Michael G Schwern <[email protected]>. License: GPL-1+ or Artistic Comment: This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. Files: cpan/Test-Simple/lib/Test/Builder.pm Copyright: Copyright 2002-2008 by chromatic <[email protected]> and Michael G Schwern E<[email protected]>. License: GPL-1+ or Artistic 801 Comment: This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. Files: cpan/Test-Simple/lib/Test/Builder/Tester/Color.pm Copyright: Copyright Mark Fowler <[email protected]> 2002. License: GPL-1+ or Artistic Comment: This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
    [Show full text]
  • A Java Virtual Machine Extended to Run Parrot Bytecode
    A JAVA VIRTUAL MACHINE EXTENDED TO RUN PARROT BYTECODE A thesis submitted to the University of Manchester for the degree of Master of Science in the Faculty of Engineering and Physical Sciences 2006 By Martin Dahl School of Computer Science Contents Abstract 8 Declaration 9 Copyright 10 Acknowledgements 11 1 Introduction 12 1.1 Objectives and Motivation . 13 1.2 Related Work . 13 1.2.1 Parrot . 14 1.2.2 Pugs . 14 1.2.3 PearColator . 14 1.3 Organisation of the Thesis . 15 2 The Parrot Project 16 2.1 Perl 6 . 17 2.1.1 Design . 17 2.1.2 Perl 6 Internals . 18 2.1.3 Pugs . 19 2.1.4 Parrot Perl 6 Compiler . 19 2.2 Virtual Machine . 20 2.2.1 Design . 20 2.2.2 Architecture . 21 2.2.3 Registers . 22 2.2.4 Instruction Set . 23 2.2.5 Parrot Assembly Language and Intermediate Representation 24 2 2.3 Parrot Magic Cookies . 24 2.3.1 Core PMCs . 24 2.3.2 Other PMCs . 27 2.4 Compiler suite . 27 2.4.1 Perl 6 . 27 2.4.2 Other languages . 27 2.5 Summary . 28 3 Parrot Bytecode Format 30 3.1 Header . 31 3.2 Bytecode Format 1 . 33 3.2.1 Directory Segment . 34 3.2.2 Constant Table Segment . 35 3.2.3 Bytecode Segment . 38 3.2.4 Debug Segment . 38 3.2.5 Fixup Segment . 39 3.3 Summary . 40 4 Parakeet 41 4.1 Overview . 42 4.2 Jikes RVM . 43 4.3 PearColator .
    [Show full text]
  • Learning Perl Through Examples Part 2 L1110@BUMC 2/22/2017
    www.perl.org Learning Perl Through Examples Part 2 L1110@BUMC 2/22/2017 Yun Shen, Programmer Analyst [email protected] IS&T Research Computing Services Spring 2017 Tutorial Resource Before we start, please take a note - all the codes and www.perl.org supporting documents are accessible through: • http://rcs.bu.edu/examples/perl/tutorials/ Yun Shen, Programmer Analyst [email protected] IS&T Research Computing Services Spring 2017 Sign In Sheet We prepared sign-in sheet for each one to sign www.perl.org We do this for internal management and quality control So please SIGN IN if you haven’t done so Yun Shen, Programmer Analyst [email protected] IS&T Research Computing Services Spring 2017 Evaluation One last piece of information before we start: www.perl.org • DON’T FORGET TO GO TO: • http://rcs.bu.edu/survey/tutorial_evaluation.html Leave your feedback for this tutorial (both good and bad as long as it is honest are welcome. Thank you) Yun Shen, Programmer Analyst [email protected] IS&T Research Computing Services Spring 2017 Today’s Topic • Basics on creating your code www.perl.org • About Today’s Example • Learn Through Example 1 – fanconi_example_io.pl • Learn Through Example 2 – fanconi_example_str_process.pl • Learn Through Example 3 – fanconi_example_gene_anno.pl • Extra Examples (if time permit) Yun Shen, Programmer Analyst [email protected] IS&T Research Computing Services Spring 2017 www.perl.org Basics on creating your code How to combine specs, tools, modules and knowledge. Yun Shen, Programmer Analyst [email protected] IS&T Research Computing
    [Show full text]
  • Freelance Graphics
    REST - The Web Style Koranteng Ofosu-Amaah Lotus Software, IBM Working the Web REST - The Web Style Buzzwords (Marketing) Case Studies (Reflection) Leaky Abstractions (Architecture) Layer Stripping (Complexity) Glue Layer People (Composition) View Source Imperative (Comprehension) Life on the Web The Low End Theory (Strategy) Why Specs Matter (Scaling) Technical Arteriosclerosis (Hygiene) Jokes (Relief after yesterday's events) Spaghetti Westerns (B-Movies) Bedtime Stories and Folktales (It's Friday) Why this presentation? 10 years since the Web became Good Enough (TM) - Historical Insight 10 years of Moore's Law in the Datacenter In times of retrenchment, companies fall back on things that "just work" The Web Style works - Google/eBay/Amazon The Web Style scales - businesses run on it Technology Adoption and Systems Design Leverage is key for success We should aggresively leverage the web Who am I? 10 years at Lotus Currently working on Forms Freelance Graphics - eSuite - K-station - WebSphere Portal - ODC editors - Forms in Workplace Opinionated, "ecletic", "all over the place" Verbose: writes "novel-length diatribes" of late there's a blog - Koranteng's Toli toli : n. 1. A juicy piece of news. 2. The latest word or gossip. 3.The talk of the town, typically a salacious or risque tale of intrigue, corruption or foolishness. Remembers the day job (Hi there managers) Self image: mild-mannered Clark Kent type First Questions Do you exist if you're not "on the web"? Are any of our products and services not web-native or delivered via the web? Other than the Green Terminals of course Even those mainframe people are dying to "get on the web" What is the Web in WebSphere? Everyone got the web religion circa 1995 How did you get on the web? Why was the web so successful? What does it mean to be "on the web"? When was the last time you read about the web architecture? Word to the wise: Don't fight the web A quote Oliver Hass, a 28 year-old chemist and graduate student from Oldenberg, Germany, wrote me recently about what the President's trip looked like to him.
    [Show full text]
  • An Introduction to Raku
    Perl6 An Introduction Perl6 Raku An Introduction The nuts and bolts ● Spec tests ○ Complete test suite for the language. ○ Anything that passes the suite is Raku. The nuts and bolts ● Spec tests ○ Complete test suite for the language. ○ Anything that passes the suite is Raku. ● Rakudo ○ Compiler, compiles Raku to be run on a number of target VM’s (92% written in Raku) The nuts and bolts ● Spec tests ○ Complete test suite for the language. ○ Anything that passes the suite is Raku. ● Rakudo ○ Compiler, compiles Raku to be run on a number of target VM’s (92% written in Raku) ● MoarVM ○ Short for "Metamodel On A Runtime" ○ Threaded, garbage collected VM optimised for Raku The nuts and bolts ● Spec tests ○ Complete test suite for the language. ○ Anything that passes the suite is Raku. ● Rakudo ○ Compiler, compiles Raku to be run on a number of target VM’s (92% written in Raku) ● MoarVM ○ Short for "Metamodel On A Runtime" ○ Threaded, garbage collected VM optimised for Raku ● JVM ○ The Java Virtual machine. The nuts and bolts ● Spec tests ○ Complete test suite for the language. ○ Anything that passes the suite is Raku. ● Rakudo ○ Compiler, compiles Raku to be run on a number of target VM’s (92% written in Raku) ● MoarVM ○ Short for "Metamodel On A Runtime" ○ Threaded, garbage collected VM optimised for Raku ● JVM ○ The Java Virtual machine. ● Rakudo JS (Experimental) ○ Compiles your Raku to a Javascript file that can run in a browser Multiple Programming Paradigms What’s your poison? Multiple Programming Paradigms What’s your poison? ● Functional
    [Show full text]
  • Introduction Points
    Introduction Points Ahmia.fi - Clearnet search engine for Tor Hidden Services (allows you to add new sites to its database) TORLINKS Directory for .onion sites, moderated. Core.onion - Simple onion bootstrapping Deepsearch - Another search engine. DuckDuckGo - A Hidden Service that searches the clearnet. TORCH - Tor Search Engine. Claims to index around 1.1 Million pages. Welcome, We've been expecting you! - Links to basic encryption guides. Onion Mail - SMTP/IMAP/POP3. ***@onionmail.in address. URSSMail - Anonymous and, most important, SECURE! Located in 3 different servers from across the globe. Hidden Wiki Mirror - Good mirror of the Hidden Wiki, in the case of downtime. Where's pedophilia? I WANT IT! Keep calm and see this. Enter at your own risk. Site with gore content is well below. Discover it! Financial Services Currencies, banks, money markets, clearing houses, exchangers. The Green Machine Forum type marketplace for CCs, Paypals, etc.... Some very good vendors here!!!! Paypal-Coins - Buy a paypal account and receive the balance in your bitcoin wallet. Acrimonious2 - Oldest escrowprovider in onionland. BitBond - 5% return per week on Bitcoin Bonds. OnionBC Anonymous Bitcoin eWallet, mixing service and Escrow system. Nice site with many features. The PaypalDome Live Paypal accounts with good balances - buy some, and fix your financial situation for awhile. EasyCoin - Bitcoin Wallet with free Bitcoin Mixer. WeBuyBitcoins - Sell your Bitcoins for Cash (USD), ACH, WU/MG, LR, PayPal and more. Cheap Euros - 20€ Counterfeit bills. Unbeatable prices!! OnionWallet - Anonymous Bitcoin Wallet and Bitcoin Laundry. BestPal BestPal is your Best Pal, if you need money fast. Sells stolen PP accounts.
    [Show full text]
  • Hierarchical Categorisation of Web Tags for Delicious
    HIERARCHICAL CATEGORISATION OF WEB TAGS FOR DELICIOUS J. Parra-Arnau, A. Perego, E. Ferrari, J. Forné and D. Rebollo-Monedero1 INTRODUCTION In the scenario of social bookmarking, a user browsing the Web bookmarks web pages and assigns free-text labels (i.e., tags) to them according to their personal preferences. The benefits of social tagging are clear – tags enhance Web content browsing and search. However, since these tags may be publicly available to any Internet user, a privacy attacker may collect this information and extract an accurate snapshot of users’ interests or user profiles, containing sensitive information, such as health-related information, political preferences, salary or religion. In order to hinder attackers in their efforts to profile users, this report focuses on the practical aspects of capturing user interests from their tagging activity. More accurately, we study how to categorise a collection of tags posted by users in one of the most popular bookmarking services, Delicious (http://delicious.com). METHODOLOGY As frequently done in collaborative tagging sites, the profile of a user is modelled as a tag cloud, that is, a visual representation where tags are weighted according to their frequency of use. Note that tag clouds are in essence equivalent to normalized histograms of tags. Nevertheless, the representation of a user profile as a cloud, or equivalently as a normalized histogram, of all the tags submitted by users is clearly an inappropriate approach; not only because of the intractability of the profile, but also because it makes it difficult to have a quick overview of the user interests. For example, for users posting the tags “welfare”, “Dubya” and “Katrina” it would be preferable to have a higher level of abstraction that enables us to conclude, directly from the inspection of the user profile, that these users are interested in politics.
    [Show full text]