Natur Pur Native Apps Native

Total Page:16

File Type:pdf, Size:1020Kb

Natur Pur Native Apps Native 06/2018 Apps mit React Native und Nativescript entwickeln Programmieren Natur pur Native Apps Native 74 Die Javascript-Frameworks React Native und Nativescript versuchen eine Brücke zwischen Webapp-Entwick- lung und nativer App-Entwicklung zu bauen. Worin die Vorteile dieser Native Frameworks liegen, betrachtet der Artikel vor dem Hintergrund des klassischen App-Framework Meteor. Andreas Möller, Kristian Kißling www.linux-magazin.de schafft wegen der Code-Redundanz zu- sätzliche Fehlerquellen. Klassische Webapps nutzen hingegen HTML, CSS und Javascript und laufen plattformübergreifend im Browser jedes Systems. Allerdings beschränken die Plattformen den Zugriff auf das System mit Hilfe der so genannten Browser- Sandbox und geben APIs nur punktuell frei, was die Fähigkeiten von Webapps beschränkt. 2009 erschien dann Phone Gap (heute Apache Cordova). Mit ihm lassen sich Webapps besser an das System anbin- den. Unter Cordova laufen Apps in einer Webansicht auf dem System wie in einem Browser. Plugins erweitern den Zugriff © Leonid Tit, 123RF Tit, © Leonid auf das System für die Apps. Die beiden quelloffenen Javascript- intern über C oder C++ auf nativen Code E Meteor Frameworks React Native [1] und Nati- zugreifen, stützen sich Entwickler dafür vescript [2] erlauben es, mit Hilfe eige- beispielsweise auf das Java Native Inter- Ein Vertreter dafür ist das Javascript- ner IDEs mit Javascript native Apps für face (JNI, [6]). Die Entwicklungsumge- Framework Meteor [3]. Es hat sich von Android und I-OS zu entwickeln. Der bungen Android Studio [7] und Xcode einem Framework zum Entwickeln echt- Ansatz hat Vorteile gegenüber dem Weg [8] helfen ihnen dabei, die Anwendung zeitfähiger Webapps [9] zu einer Open- der klassischen Webapp-Entwicklung, zu programmieren und in die entspre- Source-Plattform entwickelt, die von sich den etwa das Javascript-Framework Me- chenden App-Stores zu bringen. behauptet der schnellste Weg zu sein, um teor [3] verfolgt, das auf Apache Cordova Dieser Weg hat allerdings einen Nach- Apps an den Start zu bringen. [4] und Webview setzt. teil: Das Installieren von Android Studio Tatsächlich fällt das Installieren und Er- ist recht aufwändig und Xcode läuft ex- zeugen einer Bootstrap-App über klusiv auf Apples Betriebssystem OS X. Ausgangslage curl https://install.meteor.com/ | sh U Wer zudem eine Android-App für I-OS meteor create example Native Apps für Android programmie- übernehmen möchte, muss den Code ren Entwickler traditionell mit Java oder unter Ojective-C oder Swift eins zu eins in der Shell unter Ubuntu 17.10 noch recht Kotlin, für I-OS ziehen sie Objective-C nachprogrammieren. Das erhöht jedoch leicht. Das Bauen der App für Android oder Swift [5] heran. Weil Android-Apps den Entwicklungsaufwand deutlich und mit dem Befehl »meteor add-platform Tabelle 1: Feature-Vergleich Framework IDE Cloudbuilds Natives UI Native Module Packen nativer Formate App-Store-Deployment Meteor 1.6.1 nein nein nein ja ja nein React Native 52.0 XDE 2.22.1 ja ja ja ja nein Nativescript 3.4.3 Sidekick 1.5.1 kostenpflichtig ja ja ja nein 06/2018 Programmieren reagierten die Beispiel-Apps von React Native ungefähr so träge wie native Apps unter einer älteren I-OS-Version. Will der Entwickler React-Native-Apps entwerfen, hilft ihm das Projekt Expo Native Apps Native [13] mit einer Reihe von Tools. Dazu zählt die Entwicklungsumgebung XDE, sie startet unter dem Namen Snack [14] 75 auch im Browser. Zugleich lässt sie sich nach dem Ausführen der Installationsan- weisungen aus Listing 1 über die Kom- mandozeile in der Shell bedienen. www.linux-magazin.de Die Zeilen 1 und 2 installieren die aktu- elle Version von Node 8 über Debians Paketmanager Apt. Nodes Paketmanager Npm holt dann in Zeile 3 Expo (»exp«) inklusive React Native auf das System, Abbildung 1: Cordova: Ohne Java und Android Studio läuft für Android-Entwickler unter Ubuntu nichts. bevor Zeile 4 die Boilerplate-Anwendung »react-test« einrichtet. Die Zeilen 5 und android« bricht aber bereits mit den Feh- damit eine Brücke zwischen Webapps 6 packen die App zum Laden via Smart- lermeldungen aus Abbildung 1 ab. Denn und plattformspezifischen Apps. phone – Abbildung 3 zeigt die Shell nach intern verwendet Meteor Cordova, das Das Framework React Native [1] über- dem Ausführen der Befehlskette samt ei- nach Java und Android Studio verlangt. lässt zur Laufzeit der Javascript-Engine nem QR-Code zur Installation. Ein Build für I-OS ist unter Ubuntu ohne- das zugrunde liegende System. Der Code Um die gepackte App über den QR-Code hin nicht möglich. läuft in einem eigenen Thread und greift auf ein Android-Gerät oder iPhone zu Immerhin darf der Benutzer beim Erzeu- über eine Brücke (Abbildung 2, [12]) befördern, muss der Nutzer zuvor aus gen der App zwischen Meteors eigenem auf native APIs und nativen Code des dem entsprechenden App-Store den Javascript-Framework Blaze, Angular Systems zu. So entsteht die grafische Be- gleichnamigen Expo-Client auf dem Gerät [10] sowie React [11] wählen. Beim De- nutzerschnittstelle nicht wie unter Me- installieren. Er startet den Client, scannt ployment unterstützt Meteor den Pro- teor über den DOM-Baum der Webview, den QR-Code und lädt anschließend die grammierer aber schon weniger. Zwar sondern über Aufrufe nativer UI-Widgets Boilerplate-App wie in Abbildung 4. paketiert »meteor build« Versionen für in Java oder Objective-C. Android und I-OS, anschließend braucht Löst der Benutzer umgekehrt beim Be- Listing 1: Expo unter Ubuntu 17.10 es jedoch einige Handarbeit, um die Apps dienen der gerenderten Elemente Events installieren in den jeweiligen App-Store zu befördern. aus, reicht das React-Native-System diese 01 curl -sL https://deb.nodesource.com/setup_8.x | sudo über die Brücke zurück und verwandelt -E bash - sie in ein Javascript-Event. Performance- E React Native 02 sudo apt-get install nodejs Einbußen, die beim Synchronisieren bei- 03 sudo npm install exp --global Native Frameworks wählen im Vergleich der Welten entstehen, wirkt React Native 04 exp init react-test dazu einen etwas anderen Ansatz. Sie mit einem virtuellen DOM entgegen. Das 05 cd react-test versprechen native Apps für Android und Vorbild dafür liefert das gleichnamige Ja- 06 exp start I-OS auf Javascript-Basis. Sie schlagen vascript-Framework React. Im Praxistest Listing 2: React-Native-Beispiel-App 01 import React from 'react'; 13 NetInfo.getConnectionInfo().then(info => alert(info.type+' 02 import { StyleSheet, Button, View, NetInfo } from 'react-native'; ('+info.effectiveType+')')); 03 14 } 04 export default class App extends React.Component { 15 } 05 render() { 16 06 return ( 17 const styles = StyleSheet.create({ 07 <View style={styles.container}> 18 container: { 08 <Button title="Connection Info" onPress= 19 flex: 1, {this.getConnectionInfo}/> 20 backgroundColor: '#ddd, 09 </View> 21 alignItems: 'center', 10 ); 22 justifyContent: 'center', 11 } 23 }, 12 getConnectionInfo() { 24 }); 06/2018 Programmieren Javascript-Engine Native Code Aufrufe UI-Widgets React-Native-App APIs Native Apps Native Events Custom Code 76 Abbildung 2: Eine Brücke verbindet die Javascript-Welt mit nativem Code. Überschreiten die Anforderungen an eine aus dem stati- App auch die Grenzen des mit React Na- schen Javascript- www.linux-magazin.de tive und Expo Realisierbaren, rüstet der Objekt »styles« an Benutzer nativen Code nach, um ihn die Komponente über Javascript in seiner App fernzusteu- »View«. Die An- ern. In diesem Fallback-Szenario muss gaben färben den er allerdings Android Studio und Xcode Hintergrund in ei- nachinstallieren. nem Grauton und platzieren den Beispiel einer App Knopf im Zen trum des Displays. Ne- Wie Entwickler React Native einsetzen, ben »NetInfo« bie- Abbildung 3: Expo bietet die App zum Laden im Expo-Client wie eine Website an. deutet Listing 2 an. Den Code speichert tet React Native die Datei »App.js« im Verzeichnis »re- noch eine Reihe weiterer systembezoge- Buildlog nach dem erfolgreichem Bau act-test«. Wie jede Anwendung unter Re- ner API-Objekte, die Expos so genanntes des Android-Pakets. Hinter den Kulissen act Native basiert auch Listing 2 auf dem SDK noch einmal erweitert. verwendet Expo Instanzen von Android Javascript-Framework React [11], Zeile 1 Der Befehl »exp start« in der letzten Zeile Studio oder Xcode aus ihrer Cloud. Wie importiert es. Zeile 2 holt dann die Kom- von Listing 1 startet unter anderem einen unter Meteor haben die Anbieter aber ponenten »Style«, »Button«, »View« und so genannten Watch-Prozess. Registriert die letzten Meter in den App-Stores nicht »NetInfo« aus React Native. der eine Änderung am Projektverzeich- vollständig automatisiert, hier fällt wie- Auch die Basisklasse App (Zeilen 4 bis nis, informiert er den ebenfalls gestar- der einige Handarbeit an. 16) bildet React Native als Komponente. teten Packager-Server. Er veranlasst ihn, Deren Render-Methode (Zeilen 5 bis 11) die aktualisierte App an verbundene E Nativescript erstellt mit dem XML-ähnlichen JSX-Code Expo-Clients auszuliefern. ein bereichsbezogenes User-Interface Wie die Beispiel-App »react-test« [18] Auch das Javascript-Framework Na- (Zeilen 7 bis 9). In Zeile 8 kapselt die demonstriert, darf ein Programmierer tivescript [2] verspricht native Apps Komponente »View« einen Button [15]. eine App jederzeit kostenlos unter sei- für Android und I-OS auf den Weg zu Den setzt Android zur Laufzeit mit einer nem Expo-Account im Cloudspeicher bringen. Wie React Native überlässt Instanz der Klasse »android.widget.But- des Projekts veröffentlichen. Dies stößt es auch Nativescript der jeweiligen Ja- ton« um [16]. Unter I-OS kommt dagegen er an, indem er in der XDE-IDE auf den vascript-Engine, den Code auszuführen. »UIButton« [17] zum Einsatz. Publish-Button klickt. Ergänzt er zudem Dabei kommen unter Android V8 und Die Zeilen 13 bis 15 speichern die Call- unter dem Projektver- unter I-OS JSC zum back-Funktion »getConnectionInfo()«, zeichnis die Konfigu- Einsatz. auf die der Wert des Attributs »onPress« rationsdatei »app.json« Auch Nativescript steu- verweist. Beim Knopfdruck ermittelt die passend um die Anga- ert nativen Code über gleichnamige Methode in Zeile 15 den ben »buildidentifier« eine Brücke [19] fern.
Recommended publications
  • THE FUTURE of SCREENS from James Stanton a Little Bit About Me
    THE FUTURE OF SCREENS From james stanton A little bit about me. Hi I am James (Mckenzie) Stanton Thinker / Designer / Engineer / Director / Executive / Artist / Human / Practitioner / Gardner / Builder / and much more... Born in Essex, United Kingdom and survived a few hair raising moments and learnt digital from the ground up. Ok enough of the pleasantries I have been working in the design field since 1999 from the Falmouth School of Art and onwards to the RCA, and many companies. Ok. less about me and more about what I have seen… Today we are going to cover - SCREENS CONCEPTS - DIGITAL TRANSFORMATION - WHY ASSETS LIBRARIES - CODE LIBRARIES - COST EFFECTIVE SOLUTION FOR IMPLEMENTATION I know, I know, I know. That's all good and well, but what does this all mean to a company like mine? We are about to see a massive change in consumer behavior so let's get ready. DIGITAL TRANSFORMATION AS A USP Getting this correct will change your company forever. DIGITAL TRANSFORMATION USP-01 Digital transformation (DT) – the use of technology to radically improve performance or reach of enterprises – is becoming a hot topic for companies across the globe. VERY DIGITAL CHANGING NOT VERY DIGITAL DIGITAL TRANSFORMATION USP-02 Companies face common pressures from customers, employees and competitors to begin or speed up their digital transformation. However they are transforming at different paces with different results. VERY DIGITAL CHANGING NOT VERY DIGITAL DIGITAL TRANSFORMATION USP-03 Successful digital transformation comes not from implementing new technologies but from transforming your organisation to take advantage of the possibilities that new technologies provide.
    [Show full text]
  • Wines by the Glass
    WINES BY THE GLASS SPARKLING 2013 Domaine Carneros, Brut 16 2012 Frank Family, Brut Rosé, Carneros 25 WHITE 2016 Albariño, Cave Dog, Stewart Ranch, Carneros 14 2014 Sauvignon Blanc / Sémillon, Tramuntana, 'Beyond the Mountains' 17 2014 Sauvignon Vert / Sémillon / Golden Chasselas / Green Hungarian, DeSante, 'The Old 15 Vines' 2013 Chardonnay, Massican, 'Gemina' 20 2015 Chardonnay, HdV, 'Le Debut', Hyde Vineyard, Carneros 19 2014 Chardonnay / Grenache Blanc / Ribolla Gialla / etc., Durant & Booth, Blanc 20 ROSÉ 2016 Cabernet Sauvignon / Petite Syrah, Wingspan, 'Saturn Return' 16 RED 2013 Pinot Noir, Mira, Stanly Ranch, Carneros 15 2014 St. Laurent, Forlorn Hope, 'Ost-Intrigen', Ricci Vineyard, Carneros 15 2014 Grenache / Charbono / Petite Sirah, Shypoke, 'Keep', Calistoga 17 2006 Cabernet Sauvignon, Notre Vin, 'L'Etrier' 24 2014 Cabernet Sauvignon, Paul Hobbs, 'Crossbarn' 26 2014 Cabernet Sauvignon, Clos du Val, 'Estate', Stags Leap District 25 DESSERT 2009 Fore Family, Late Harvest, (Sauvignon Blanc) 375 ml 20 2010 Far Niente 'Dolce' Late Harvest (Sauvignon Blanc, Semillon) 375 ml 25 2008 Philip Togni, 'Ca' Togni' (Black Hamburgh) 375 ml 25 2010 Gandona, 'Fraga do Arco', Touriga Nacional 25 PORT / SHERRY / MADEIRA NV Cockburn’s, 20 Year Tawny Port 500 ml 17 NV Ramos Pintos, Ruby Port 9 2009 Dow’s, Late Bottled Vintage 15 1977 Fonseca Vintage Port 38 NV Equipo Navazos, Fino, Bota #35 28 NV Equipo Navazos, Amontillado, #58 29 NV Equipo Navazos, Amontillado, 'Bota NO' #61 500 ml 34 NV Equipo Navazos, Manzanilla Pasada, 'Bota Punta' #60 500
    [Show full text]
  • SSC - Communication and Networking
    SSC - Communication and Networking SSC - Web applications and development Introduction to Java Servlet (I) Shan He School for Computational Science University of Birmingham Module 06-19321: SSC SSC - Communication and Networking Outline Outline of Topics What will we learn Web development Java servlet Java servlet: our first example SSC - Communication and Networking What will we learn What is web applications and development? I Java Servlet: basic concepts, configure, install and use servlet based web applications, basic implementation. I Session management and Servlet with JDBC I Model View Controller (MVC) for Java Servlet and Java Serve Pages I Advanced topics: Multithreaded Servlet SSC - Communication and Networking Web development What is web applications and development? I Web-based application: an application that uses a web browser as a client, e.g., google calendar or GMail. I Web development: work involved in developing a web site for the Internet or intranet, which include: I web design I web content development I client-side/server-side coding I Web development coding (platforms or languages): I Client side: HTML5, JavaScript, Ajax (Asynchronous JavaScript), Flash, JavaFX, etc. I Server side: PHP, Python, Node.js, Java servlet I Client-side/Server-side: Google Web Toolkit, Opa I Full stack web frameworks { built on the development platforms wtih a higher level set of functionality: Meteor, Yahoo! Mojito, MEAN SSC - Communication and Networking Java servlet What is Java servlet? I Java servlet: a Java platform technology \for
    [Show full text]
  • Scalability in Web Apis
    Worcester Polytechnic Institute Scalability in Web APIs Ryan Baker Mike Perrone Advised by: George T. Heineman 1 Worcester Polytechnic Institute 1 Introduction 2 Background 2.1 Problem Statement 2.2 Game Services and Tools 2.2.1 Graphics Engine 2.2.2 Map Editor 2.2.3 Friend Network 2.2.4 Achievements 2.2.5 Leaderboards 2.3 Our Service Definition 2.3.1 Leaderboards 2.4 Service Requirements 2.4.1 Administrative Ease 2.4.2 Security 2.4.3 Scalability 2.5 Internal Service Decisions 2.5.1 Application Framework 2.5.2 Cloud Computing 3 Methodology 3.1 Decisions of Design and Architecture 3.1.1 Leaderboards 3.1.2 API Documentation 3.1.3 Developer Console 3.1.4 Admin Console 3.1.5 Java Client Package 3.1.6 Logging 3.2 Decisions of Implementation 3.2.1 Enterprise vs Public 3.2.2 Front End Implementation 3.2.3 Cloud Computing Provider (AWS) 3.2.4 Web Application Framework Implementation (Flask) 3.2.5 Continuous Integration Service 3.2.6 API 3.2.7 Logging 3.2.8 Database Schema 4 Success Metrics 4.1 Resiliency 4.1.1 Simulated Traffic 4.1.2 Load Testing and Scalability 4.2 Design 4.2.1 Client Perspective 2 4.2.3 Admin Perspective 5 Conclusions & Future Work 5.1 Client Conclusions 5.2 Administrator Conclusions 5.3 The Future 6 References 7 Appendix A ­ Why we chose Leaderboards B ­ Facebook’s Game Development API C ­ Playtomic’s API D ­ Front End Tooling Decision E ­ API Documentation Tool F ­ Elastic Beanstalk 3 1 Introduction Game developers, especially those that make social games, undertake a large amount of work to create them.
    [Show full text]
  • N2O Most Powerful Erlang Web Framework @5HT How Do I Shot Web? Micro REST
    N2O Most Powerful Erlang Web Framework @5HT How do I shot Web? Micro REST Python Flask Ruby Sinatra PHP Silex Scala Scalatra Concurrency in Mind Ruby Celluloid PHP React PHP phpDaemon Java+Scala Play SPA Angular Meteor Ember Chaplin Brunch D3 Knockout React Backbone jQuery Functional DSL Scala Lift Erlang Nitrogen Haskell BlazeHtml OCaml Ocsigen F# WebSharper Clojure Laser Enlive Compojure Ring Hiccup ClojureScript Om http-kit aleph noir JVM Elixir Weber def action(_, conn) do {:render, [project: "simpleTodo"], []} end def add([body: body], _conn) do {:json, [response: "ok"], [{"Content-Type", "application/json"}]} end def wrong(_, _) do {:redirect, "/"} end Erlang ChicagoBoss DTL Engine Database Connectivity PubSub Ruby on Rails like Nitrogen N2O ~2000 LOC One Process per Connection Binary Page Construction Zero Bridge GProc Pub/Sub WebSockets, KVS DB Tuned Layers static and dynamic Routing Path cleaned Query Parser Session Cookies stored in ETS cached DTL Templates optimized Nitrogen DSL rendering HTML Elements binaries JavaScript Actions deferred Layers Performance components TCP conn (K) PHP5 FCGI Simple Script <?php ?> 5 Nitrogen No session, No DSL, DTL 1 N2O Sessions, DSL, DTL 7 N2O Sessions, no DSL, DTL 10 N2O No Sessions, no DSL, DTL 13 On same machine raw webserver performance measured with wrk: NGINX -- 60K Cowboy -- 30K Measuring Tools requests pages/sec latency (ms) wrk 15K 13628.86 18.88 ab 10K 5464.63 190 httperf 10K 3623.50 200 siege 1K 884.51 430 On same machine raw webserver performance measured with wrk: NGINX -- 60K Cowboy -- 30K Decreasing Latency From 2x to ∞ Deliver HTML ASAP Deferred JavaScript delivery after WebSocket connection established <script> TransitionProcess = '<0.7780.5>' </script> socket.send(["N2O",TransitionProcess]).
    [Show full text]
  • Andrew-Macnider-Resume-2018-Bz84.Pdf
    1600Andrew Fell Street Apt. 307, Macnider San Francisco, CA 94117 (415) 885-9517 • [email protected] • www.andrew-macnider.com Experience Kiip - www.kiip.me Frontend Engineer - Feb. ‘16 to present – Responsible for modernizing advertising platform FE stack from JavaScript/MooTools to React/Redux, currently in beta – Refactored visual marketing website https://table.kiip.me from Meteor to pure react; packaged for production utilizing webpack, babel – Developed client ad platform onboarding flows from prototype to production while collaborating closely with design team, utilizing JavaScript, MooTools, Tornado, Sass – Lead developer for multiple for multiple marketing homepage redesigns utilizing JavaScript, jQuery, MooTools, Sass, CSS Animations; responsible for cross-browser testing –Improve pure JavaScript mobile ad unit as needed e.g. adding keyboard events for connected-tv streaming devices – Create internal tools for better management of advertising campaigns and developer applications – Developing pixel-perfect marketing splash pages under tight deadlines – Producing and testing email marketing templates for cross-device and cross-client viewability Kiip - www.kiip.me Marketing Producer & Customer Happiness - Jan. ‘13 to Feb ‘16 - Created promotional content, conducted player interviews and coordinated PR strategy for Guinness World Records-sponsored mobile gaming championship event - Developed copy for website redesign, in coordination with marketing, design and executive teams - Writing clean, understandable documentation for Kiip
    [Show full text]
  • Comparison of Different Orthographies for Machine
    Comparison of Different Orthographies for Machine Translation of Under-Resourced Dravidian Languages Bharathi Raja Chakravarthi Insight Centre for Data Analytics, Data Science Institute, National University of Ireland Galway, IDA Business Park, Lower Dangan, Galway, Ireland https://bharathichezhiyan.github.io/bharathiraja/ [email protected] Mihael Arcan Insight Centre for Data Analytics, Data Science Institute, National University of Ireland Galway, IDA Business Park, Lower Dangan, Galway, Ireland [email protected] John P. McCrae Insight Centre for Data Analytics, Data Science Institute, National University of Ireland Galway, IDA Business Park, Lower Dangan, Galway, Ireland https://john.mccr.ae/ [email protected] Abstract Under-resourced languages are a significant challenge for statistical approaches to machine translation, and recently it has been shown that the usage of training data from closely-related languages can improve machine translation quality of these languages. While languages within the same language family share many properties, many under-resourced languages are written in their own native script, which makes taking advantage of these language similarities difficult. In this paper, we propose to alleviate the problem of different scripts by transcribing the native script into common representation i.e. the Latin script or the International Phonetic Alphabet (IPA). In particular, we compare the difference between coarse-grained transliteration to the Latin script and fine-grained IPA transliteration. We performed experiments on the language pairs English-Tamil, English-Telugu, and English-Kannada translation task. Our results show improvements in terms of the BLEU, METEOR and chrF scores from transliteration and we find that the transliteration into the Latin script outperforms the fine-grained IPA transcription.
    [Show full text]
  • Understanding the Factors That Impact the Popularity of Github Repositories
    Understanding the Factors that Impact the Popularity of GitHub Repositories Hudson Borges, Andre Hora, Marco Tulio Valente ASERG Group, Department of Computer Science (DCC) Federal University of Minas Gerais (UFMG), Brazil E-mail: fhsborges, hora, [email protected] Abstract—Software popularity is a valuable information to developers because they want to know whether their systems modern open source developers, who constantly want to know are attracting new users, whether the new releases are gaining if their systems are attracting new users, if new releases are acceptance, whether their systems are as popular as competitor gaining acceptance, or if they are meeting user’s expectations. In this paper, we describe a study on the popularity of software systems, etc. Unfortunately, we have few studies about the systems hosted at GitHub, which is the world’s largest collection popularity of GitHub systems. The exceptions are probably of open source software. GitHub provides an explicit way for an attempt to differentiate popular and unpopular Python users to manifest their satisfaction with a hosted repository: repositories using machine learning techniques [5] and a the stargazers button. In our study, we reveal the main factors study on the effect of project’s popularity on documentation that impact the number of stars of GitHub projects, including programming language and application domain. We also study quality [6]. By contrast, popularity is extensively studied on the impact of new features on project popularity. Finally, we other social platforms, like YouTube [7], [8] and Twitter [9], identify four main patterns of popularity growth, which are [10]. These studies are mainly conducted to guide content derived after clustering the time series representing the number generators on producing successful social media content.
    [Show full text]
  • Developing Dynamic Single Page Web Applications Using Meteor
    Asabeneh Shitahun Yetayeh Developing Dynamic Single Page Web Applications Using Meteor Comparing JavaScript Frameworks: Blaze and React Helsinki Metropolia University of Applied Sciences Bachelor of Engineering Information Technology Thesis 2.6.2017 Abstract Author Asabeneh Shitahun Yetayeh Title Developing Dynamic Single Page Web Applications Using Meteor Number of Pages 31 pages + 3 appendices Date 2 June, 2017 Degree Bachelor of Engineering Degree Programme Information Technology Specialisation option Software Engineering Instructors Patrick Ausderau, Lecturer Sonja Holappa, Lecturer This paper studies Meteor which is a JavaScript full-stack framework to develop inter- active single page web applications. Meteor allows building web applications entirely in JavaScript. Meteor uses Blaze, React or AngularJS as a view layer and Node.js and MongoDB as a back-end. The main purpose of this study is to compare the performance of Blaze and React. A multi-user Blaze and React web applications with similar HTML and CSS were developed. Both applications were deployed on Heroku’s web server and compared based on the size of the development community, the programming pattern, the available packages and the page loading speed. This study showed that React has a higher number of development community and available packages than Blaze. The speed test showed that React web application is faster and lighter than Blaze. Both Blaze and React have similar features and user interfaces. This paper concludes that Meteor with React is a better option to develop interactive single page applications because of higher popularity, smaller page size, faster page loading speed and more available packages. For next study, this paper recommends to integrate VueJS as Meteor view layer which will give developers more options to choose from and in return it will increase Meteor’s development community.
    [Show full text]
  • CS50 Seminar November 2016 Technology
    Meteor.js + ReactJS MongoDB + d3.js Flask API + Python Alan Xie ‘16 CS50 Seminar November 2016 Technology React allows us to focus on building components and automatically manages UI updates Meteor.js full-stack framework allows rapid prototyping with pre-built functionality and works with React + Node.js MongoDB provides JSON-format storage on the Meteor back-end and works with Python data science pipeline Build fast & deploy fast…but a few caveats on scale. Meteor is usually overkill. MongoDB documents might not be right for you. Setup Meteor automatically installs MongoDB. We can install React via the meteor or node package managers (along with fun things like jQuery and d3). $ meteor npm install --save react react-dom $ meteor add mizzao:jquery-ui https://github.com/alan-xie/cs50seminar- meteor-react Default boilerplate. No real content but all CSS lives here. Calls imports/startup/client. dump folder created by mongodump. Think of these files as being “imported” into main.html. imports/startupis called at startup. imports/ui/components is where we build things. Not accessible except via Meteor server methods. Accessible via client. Calls imports/startup/server. Robomongo Setup http://localhost:3000 Let’s look at code. /imports/ui/layouts/App.jsx /imports/ui/layouts/App.jsx /imports/ui/layouts/App.jsx /imports/startup/server/films.js /imports/ui/components/Actor_RevChart.jsx Next Steps Jupyter and the numpy/scipy/pandas/scikit-learn stack allow us to perform rigorous data processing and machine learning in Python Flask allows us to serve our machine learning as an API that interacts with Meteor via a server-side Meteor.method AWS allows us to easily deploy our Flask API and Meteor app (as well as our MongoDB instance) to appropriately provisioned servers with the required libraries Questions?.
    [Show full text]
  • Towards Left Duff S Mdbg Holt Winters Gai Incl Tax Drupal Fapi Icici
    jimportneoneo_clienterrorentitynotfoundrelatedtonoeneo_j_sdn neo_j_traversalcyperneo_jclientpy_neo_neo_jneo_jphpgraphesrelsjshelltraverserwritebatchtransactioneventhandlerbatchinsertereverymangraphenedbgraphdatabaseserviceneo_j_communityjconfigurationjserverstartnodenotintransactionexceptionrest_graphdbneographytransactionfailureexceptionrelationshipentityneo_j_ogmsdnwrappingneoserverbootstrappergraphrepositoryneo_j_graphdbnodeentityembeddedgraphdatabaseneo_jtemplate neo_j_spatialcypher_neo_jneo_j_cyphercypher_querynoe_jcypherneo_jrestclientpy_neoallshortestpathscypher_querieslinkuriousneoclipseexecutionresultbatch_importerwebadmingraphdatabasetimetreegraphawarerelatedtoviacypherqueryrecorelationshiptypespringrestgraphdatabaseflockdbneomodelneo_j_rbshortpathpersistable withindistancegraphdbneo_jneo_j_webadminmiddle_ground_betweenanormcypher materialised handaling hinted finds_nothingbulbsbulbflowrexprorexster cayleygremlintitandborient_dbaurelius tinkerpoptitan_cassandratitan_graph_dbtitan_graphorientdbtitan rexter enough_ram arangotinkerpop_gremlinpyorientlinkset arangodb_graphfoxxodocumentarangodborientjssails_orientdborientgraphexectedbaasbox spark_javarddrddsunpersist asigned aql fetchplanoriento bsonobjectpyspark_rddrddmatrixfactorizationmodelresultiterablemlibpushdownlineage transforamtionspark_rddpairrddreducebykeymappartitionstakeorderedrowmatrixpair_rddblockmanagerlinearregressionwithsgddstreamsencouter fieldtypes spark_dataframejavarddgroupbykeyorg_apache_spark_rddlabeledpointdatabricksaggregatebykeyjavasparkcontextsaveastextfilejavapairdstreamcombinebykeysparkcontext_textfilejavadstreammappartitionswithindexupdatestatebykeyreducebykeyandwindowrepartitioning
    [Show full text]
  • V I T a Robert A
    V I T A ROBERT A. HOUZE, JR. Professor Emeritus of Atmospheric Sciences, University of Washington Laboratory Fellow, Pacific Northwest National Laboratory Education 1967 B.S. Meteorology Texas A & M University 1969 S.M. Meteorology Massachusetts Institute of Technology 1972 Ph.D. Meteorology Massachusetts Institute of Technology Position history 1972-78 Assistant Professor, Atmospheric Sciences, University of Washington 1978-83 Associate Professor, Atmospheric Sciences, University of Washington 1983-2017 Professor of Atmospheric Sciences, University of Washington 2015- Joint appointment with the Pacific Northwest National Laboratory, as Laboratory Fellow 2017- Professor Emeritus of Atmospheric Sciences Guest appointments 1988-89 Guest Professor, Atmospheric Physics, Swiss Federal College of Technology, Zürich 2008 Guest Professor, Rosenstiel School of Marine and Atmospheric Science, Univ. of Miami Honors and Awards 2014 Symons Gold Medal of the Royal Meteorological Society 2006 Carl-Gustaf Rossby Research Medal, American Meteorological Society 2001 Highly Cited Researcher, Institute of Scientific Information 1989 Distinguished Authorship Award, National Oceanic and Atmospheric Administration 1982 Clarence Leroy Meisinger Award, American Meteorological Society 1982 Editor’s Award, American Meteorological Society Fellowships of Scientific Societies 2014 Fellow of the Royal Meteorological Society 2012 Fellow of the American Geophysical Union 2013 Fellow of the American Association for the Advancement of Science 1983 Fellow of the American
    [Show full text]