Func%onal Programming at LumiGuide

Size: px
Start display at page:

Download "Func%onal Programming at LumiGuide"

Transcription

1 Func%onal Programming at LumiGuide

2 Bas van Dijk? Sensor Sense (Nijmegen) Be?er (Zürich, Switzerland) ZuriHac! LumiGuide (Nijmegen)

3 I some%mes wear a suit ;)

4 LumiGuide

5 P-route Bicycle

6

7 Rack-independent sensors

8

9 1 sensor is able to simultaneously detect cycle rack spaces a minute

10 Detec%on of rack-free parking spaces

11 Detec%on of rack-free parking spaces

12 Outdoor signage Signage Indoor signage

13 Management SoZware

14 GHCJS & blaze-react (Simon Meier)

15 GHCJS & blaze-react (Simon Meier) data App state action = App { appinitialstate :: state, appinitialrequests :: [IO action], appapplyaction :: action -> Transition state action, apprender :: state -> Html action } type Transition state action = state -> (state, [IO action]) runapp :: App state action -> IO () data Html action = p :: Html action -> Html action input :: Html action (!) :: ( Attributable h action) => h -> Attribute action -> h onvaluechange :: (Text -> action) -> Attribute action

16 thea: Haskell binding to OpenCV-3.1 exposed-modules: OpenCV, OpenCV.Core, OpenCV.Core.Types, OpenCV.Core.Types.Mat, OpenCV.Core.Types.Mat.HMat, OpenCV.Core.Types.Mat.Repa, OpenCV.Core.ArrayOps, OpenCV.Unsafe, OpenCV.ImgProc.ImgFiltering, OpenCV.ImgProc.GeometricImgTransform, OpenCV.ImgProc.MiscImgTransform, OpenCV.ImgProc.Drawing, OpenCV.ImgProc.StructuralAnalysis, OpenCV.ImgProc.ObjectDetection, OpenCV.ImgProc.Types, OpenCV.ImgCodecs, OpenCV.HighGui, OpenCV.Video, OpenCV.JSON

17

18

19 imencode :: OutputFormat -> Mat -> Either CvException ByteString imencode format mat = unsafeperformio $ withmatptr mat $ \matptr -> withcstring ext $ \extptr -> alloca $ \(bufptrptr :: Ptr (Ptr CUChar)) -> alloca $ \(vecptrptr :: Ptr (Ptr ())) -> alloca $ \(c'bufsizeptr :: Ptr CInt) -> mask_ $ do ptrexception <- [cvexcept const int * const paramsptr = $vec-ptr:(int * params); std::vector<uchar> * vec = new std::vector<uchar>(); *$(void * * vecptrptr) = reinterpret_cast<void *>(vec); std::vector<int> params(paramsptr, paramsptr + $vec-len:params); cv::imencode( $(char * extptr), *$(Mat * matptr), *vec, params ); *$(int * c'bufsizeptr) = vec->size(); *$(unsigned char * * bufptrptr) = &((*vec)[0]); ] vecptr <- peek vecptrptr if ptrexception /= nullptr then do freevec vecptr Left <$> cvexceptionfromptr (pure ptrexception) else do bufsize <- peek c'bufsizeptr bufptr <- peek bufptrptr bs <- BU.unsafePackCStringFinalizer (castptr bufptr) (fromintegral bufsize) (freevec vecptr) pure $ Right bs where (ext :: String, params :: Vector CInt) = marshalloutputformat format freevec :: Ptr () -> IO () freevec vecptr = [C.exp void { delete reinterpret_cast< std::vector<uchar> * >($(void * vecptr)) } ]

20 imencode :: OutputFormat -> Mat -> Either CvException ByteString imencode format mat = unsafeperformio $ withmatptr mat $ \matptr -> withcstring ext $ \extptr -> alloca $ \(bufptrptr :: Ptr (Ptr CUChar)) -> alloca $ \(vecptrptr :: Ptr (Ptr ())) -> alloca $ \(c'bufsizeptr :: Ptr CInt) -> mask_ $ do ptrexception <- [cvexcept const int * const paramsptr = $vec-ptr:(int * params); std::vector<uchar> * vec = new std::vector<uchar>(); *$(void * * vecptrptr) = reinterpret_cast<void *>(vec); std::vector<int> params(paramsptr, paramsptr + $vec-len:params); cv::imencode( $(char * extptr), *$(Mat * matptr), *vec, params ); *$(int * c'bufsizeptr) = vec->size(); *$(unsigned char * * bufptrptr) = &((*vec)[0]); ] vecptr <- peek vecptrptr if ptrexception /= nullptr then do freevec vecptr Left <$> cvexceptionfromptr (pure ptrexception) else do bufsize <- peek c'bufsizeptr bufptr <- peek bufptrptr bs <- BU.unsafePackCStringFinalizer (castptr bufptr) (fromintegral bufsize) (freevec vecptr) pure $ Right bs where (ext :: String, params :: Vector CInt) = marshalloutputformat format data OutputFormat = OutputBmp OutputExr OutputHdr Bool OutputJpeg JpegParams OutputJpeg2000 OutputPng PngParams OutputPxm Bool OutputSunras OutputTiff OutputWebP Int freevec :: Ptr () -> IO () freevec vecptr = [C.exp void { delete reinterpret_cast< std::vector<uchar> * >($(void * vecptr)) } ]

21 imencode :: OutputFormat -> Mat -> Either CvException ByteString imencode format mat = unsafeperformio $ withmatptr mat $ \matptr -> withcstring ext $ \extptr -> alloca $ \(bufptrptr :: Ptr (Ptr CUChar)) -> alloca $ \(vecptrptr :: Ptr (Ptr ())) -> alloca $ \(c'bufsizeptr :: Ptr CInt) -> mask_ $ do ptrexception <- [cvexcept const int * const paramsptr = $vec-ptr:(int * params); std::vector<uchar> * vec = new std::vector<uchar>(); *$(void * * vecptrptr) = reinterpret_cast<void *>(vec); std::vector<int> params(paramsptr, paramsptr + $vec-len:params); cv::imencode( $(char * extptr), *$(Mat * matptr), *vec, params ); *$(int * c'bufsizeptr) = vec->size(); *$(unsigned char * * bufptrptr) = &((*vec)[0]); ] vecptr <- peek vecptrptr if ptrexception /= nullptr then do freevec vecptr Left <$> cvexceptionfromptr (pure ptrexception) else do bufsize <- peek c'bufsizeptr bufptr <- peek bufptrptr bs <- BU.unsafePackCStringFinalizer (castptr bufptr) (fromintegral bufsize) (freevec vecptr) pure $ Right bs where (ext :: String, params :: Vector CInt) = marshalloutputformat format freevec :: Ptr () -> IO () freevec vecptr = [C.exp void { delete reinterpret_cast< std::vector<uchar> * >($(void * vecptr)) } ]

22 imencode :: OutputFormat -> Mat -> Either CvException ByteString imencode format mat = unsafeperformio $ withmatptr mat $ \matptr -> withcstring ext $ \extptr -> alloca $ \(bufptrptr :: Ptr (Ptr CUChar)) -> alloca $ \(vecptrptr :: Ptr (Ptr ())) -> alloca $ \(c'bufsizeptr :: Ptr CInt) -> mask_ $ do ptrexception <- [cvexcept const int * const paramsptr = $vec-ptr:(int * params); std::vector<uchar> * vec = new std::vector<uchar>(); *$(void * * vecptrptr) = reinterpret_cast<void *>(vec); std::vector<int> params(paramsptr, paramsptr + $vec-len:params); cv::imencode( $(char * extptr), *$(Mat * matptr), *vec, params ); *$(int * c'bufsizeptr) = vec->size(); *$(unsigned char * * bufptrptr) = &((*vec)[0]); ] vecptr <- peek vecptrptr if ptrexception /= nullptr then do freevec vecptr Left <$> cvexceptionfromptr (pure ptrexception) else do bufsize <- peek c'bufsizeptr bufptr <- peek bufptrptr bs <- BU.unsafePackCStringFinalizer (castptr bufptr) (fromintegral bufsize) (freevec vecptr) pure $ Right bs where (ext :: String, params :: Vector CInt) = marshalloutputformat format freevec :: Ptr () -> IO () freevec vecptr = [C.exp void { delete reinterpret_cast< std::vector<uchar> * >($(void * vecptr)) } ]

23 imencode :: OutputFormat -> Mat -> Either CvException ByteString imencode format mat = unsafeperformio $ withmatptr mat $ \matptr -> withcstring ext $ \extptr -> alloca $ \(bufptrptr :: Ptr (Ptr CUChar)) -> alloca $ \(vecptrptr :: Ptr (Ptr ())) -> alloca $ \(c'bufsizeptr :: Ptr CInt) -> mask_ $ do ptrexception <- [cvexcept const int * const paramsptr = $vec-ptr:(int * params); std::vector<uchar> * vec = new std::vector<uchar>(); *$(void * * vecptrptr) = reinterpret_cast<void *>(vec); std::vector<int> params(paramsptr, paramsptr + $vec-len:params); cv::imencode( $(char * extptr), *$(Mat * matptr), *vec, params ); *$(int * c'bufsizeptr) = vec->size(); *$(unsigned char * * bufptrptr) = &((*vec)[0]); ] vecptr <- peek vecptrptr if ptrexception /= nullptr then do freevec vecptr Left <$> cvexceptionfromptr (pure ptrexception) else do bufsize <- peek c'bufsizeptr bufptr <- peek bufptrptr bs <- BU.unsafePackCStringFinalizer (castptr bufptr) (fromintegral bufsize) (freevec vecptr) pure $ Right bs where (ext :: String, params :: Vector CInt) = marshalloutputformat format freevec :: Ptr () -> IO () freevec vecptr = [C.exp void { delete reinterpret_cast< std::vector<uchar> * >($(void * vecptr)) } ]

24 imencode :: OutputFormat -> Mat -> Either CvException ByteString imencode format mat = unsafeperformio $ withmatptr mat $ \matptr -> withcstring ext $ \extptr -> inline-c (Francesco Mazzoli, Mathieu Boespflug FP Complete) alloca $ \(bufptrptr :: Ptr (Ptr CUChar)) -> alloca $ \(vecptrptr :: Ptr (Ptr ())) -> alloca $ \(c'bufsizeptr :: Ptr CInt) -> mask_ $ do ptrexception <- [cvexcept const int * const paramsptr = $vec-ptr:(int * params); std::vector<uchar> * vec = new std::vector<uchar>(); *$(void * * vecptrptr) = reinterpret_cast<void *>(vec); std::vector<int> params(paramsptr, paramsptr + $vec-len:params); cv::imencode( $(char * extptr), *$(Mat * matptr), *vec, params ); *$(int * c'bufsizeptr) = vec->size(); *$(unsigned char * * bufptrptr) = &((*vec)[0]); ] vecptr <- peek vecptrptr if ptrexception /= nullptr then do freevec vecptr Left <$> cvexceptionfromptr (pure ptrexception) else do bufsize <- peek c'bufsizeptr bufptr <- peek bufptrptr bs <- BU.unsafePackCStringFinalizer (castptr bufptr) (fromintegral bufsize) (freevec vecptr) pure $ Right bs where (ext :: String, params :: Vector CInt) = marshalloutputformat format freevec :: Ptr () -> IO () freevec vecptr = [C.exp void { delete reinterpret_cast< std::vector<uchar> * >($(void * vecptr)) } ]

25 imencode :: OutputFormat -> Mat -> Either CvException ByteString imencode format mat = unsafeperformio $ withmatptr mat $ \matptr -> withcstring ext $ \extptr -> alloca $ \(bufptrptr :: Ptr (Ptr CUChar)) -> alloca $ \(vecptrptr :: Ptr (Ptr ())) -> alloca $ \(c'bufsizeptr :: Ptr CInt) -> mask_ $ do ptrexception <- [cvexcept const int * const paramsptr = $vec-ptr:(int * params); std::vector<uchar> * vec = new std::vector<uchar>(); *$(void * * vecptrptr) = reinterpret_cast<void *>(vec); std::vector<int> params(paramsptr, paramsptr + $vec-len:params); cv::imencode( $(char * extptr), *$(Mat * matptr), *vec, params ); *$(int * c'bufsizeptr) = vec->size(); *$(unsigned char * * bufptrptr) = &((*vec)[0]); ] vecptr <- peek vecptrptr if ptrexception /= nullptr then do freevec vecptr Left <$> cvexceptionfromptr (pure ptrexception) else do bufsize <- peek c'bufsizeptr bufptr <- peek bufptrptr bs <- BU.unsafePackCStringFinalizer (castptr bufptr) (fromintegral bufsize) (freevec vecptr) pure $ Right bs where (ext :: String, params :: Vector CInt) = marshalloutputformat format cvexcept :: QuasiQuoter cvexcept = C.block { quoteexp = \s -> quoteexp C.block (cvexceptwrap s) } cvexceptwrap :: String -> String cvexceptwrap s = "Exception * {\n\ \ try\n\ \ {\n " <> s <> "\n\ \ return NULL;\n\ \ }\n\ \ catch (const cv::exception & e)\n\ \ {\n\ \ return new cv::exception(e);\n\ \ }\n\ \}" freevec :: Ptr () -> IO () freevec vecptr = [C.exp void { delete reinterpret_cast< std::vector<uchar> * >($(void * vecptr)) } ]

26 imencode :: OutputFormat -> Mat -> Either CvException ByteString imencode format mat = unsafeperformio $ withmatptr mat $ \matptr -> withcstring ext $ \extptr -> alloca $ \(bufptrptr :: Ptr (Ptr CUChar)) -> alloca $ \(vecptrptr :: Ptr (Ptr ())) -> alloca $ \(c'bufsizeptr :: Ptr CInt) -> mask_ $ do ptrexception <- [cvexcept const int * const paramsptr = $vec-ptr:(int * params); std::vector<uchar> * vec = new std::vector<uchar>(); *$(void * * vecptrptr) = reinterpret_cast<void *>(vec); std::vector<int> params(paramsptr, paramsptr + $vec-len:params); cv::imencode( $(char * extptr), *$(Mat * matptr), *vec, params ); *$(int * c'bufsizeptr) = vec->size(); *$(unsigned char * * bufptrptr) = &((*vec)[0]); ] vecptr <- peek vecptrptr if ptrexception /= nullptr then do freevec vecptr Left <$> cvexceptionfromptr (pure ptrexception) else do bufsize <- peek c'bufsizeptr bufptr <- peek bufptrptr bs <- BU.unsafePackCStringFinalizer (castptr bufptr) (fromintegral bufsize) (freevec vecptr) pure $ Right bs where (ext :: String, params :: Vector CInt) = marshalloutputformat format freevec :: Ptr () -> IO () freevec vecptr = [C.exp void { delete reinterpret_cast< std::vector<uchar> * >($(void * vecptr)) } ]

27 extern "C" { Exception * inline_c_opencv_imgcodecs_2_25828b73bb33f9d b33554fcb1f7f72415 ( int * params_inline_c_0, void ** vecptrptr_inline_c_1, long params_inline_c_2, char * extptr_inline_c_3, Mat * matptr_inline_c_4, int * cbufsizeptr_27_inline_c_5, unsigned char ** bufptrptr_inline_c_6 ) { try { const int * const paramsptr = params_inline_c_0; std::vector<uchar> * vec = new std::vector<uchar>(); *vecptrptr_inline_c_1 = reinterpret_cast<void *>(vec); std::vector<int> params(paramsptr, paramsptr + params_inline_c_2); cv::imencode( extptr_inline_c_3, *matptr_inline_c_4, *vec, params ); *cbufsizeptr_27_inline_c_5 = vec->size(); *bufptrptr_inline_c_6 = &((*vec)[0]); return NULL; } catch (const cv::exception & e) { return new cv::exception(e); } }

28

29 Nix Nix: a purely, func%onal, lazy and dynamically typed programming language nixpkgs: a git repository of Nix expressions for Linux & Mac OS X packages NixOS: Nix-based Linux distribu%on Hydra: Nix-based con%nuous build system nixops: deploy sets of NixOS machines

30 $ ls /nix/store 0006h2k02xc3hjy7ddr0xk3b4mxzv2vx-gsl-1.16.tar.gz.drv 006cjanl30r789cis6qww6hh3ja2ri2w-engineers.nix 008gllqbf452a044bwnwgylaf7a9dlyf-perl-Text-Glob s4z7vx9zs78bk6zjfc2jw30mlj6vg-python2.7-setuptools fqvhziw9zj7b3a4qi624y93sklk4b-namespace-clean-0.25.tar.gz.drv 00b8q75g8lw8flvsnmcsjanxpc1afl80-nodejs-isarray drv 00bnnx5ypgkk5g38wk37y9s1vjbgmagr-python-memcached-1.51.tar.gz.drv 00g8fmql256da1d2ks587d33k1qlndnk-String-ToIdentifier-EN-0.11.tar.gz 00gm250lj5wwqlq7q8gyfskcgccvmp79-topgit-0.9.tar.gz.drv

31 LumiOS NixOS extended with our own modules Configures everything: All facility servers All central servers All support servers All the worksta%ons of our engineers (virtualbox, hyperv and real hardware)

32 Development $ nix-build A lumi.facility.client /nix/store/z2mfz8h4dpcbrlmknpkqfmrjg9ni48l7-lumi-facility-client $ nix-shell A lumi.facility.client

33 Hydra Con%nuous build system let pkgs = import./default.nix; workstation = hardware : (import (import <lumi/nixpkgs.nix> + /nixos) { configuration = import <lumi/os/workstation/hydra> hardware; }).system; in { central = pkgs.lumi.central; facility.client = pkgs.lumi.facility.client; facility.server = pkgs.lumi.facility.localserver; facility.install-cd-hydra = pkgs.lumi.facility.install-cd-hydra; pris-gateway = pkgs.lumi.pris-gateway; sensors-logger = pkgs.lumi.sensors-logger; py-vision-playground = pkgs.lumi.py-vision-playground; hs-vision-playground = pkgs.lumi.hs-vision-playground; command-poller = pkgs.lumi.command-poller; tender-slurper = pkgs.lumi.tender-slurper; thea thea-profiled = pkgs.haskellpackages.thea; = pkgs.profiledhaskellpackages.thea; workstation.virtualbox workstation.hyperv workstation.real = workstation <lumi/os/workstation/hardware/virtualbox.nix>; = workstation <lumi/os/workstation/hardware/hyperv.nix>; = workstation <lumi/os/workstation/hardware/real.nix>; }

34

35 nixops: deploying NixOS machines nixops create \ -state state.nixops \ --deployment stalling-net \ <stalling-net.nix>' \ <stalling-net-hardware.nix>'

36 stalling-net.nix let facility = namespace: in { network.description = "Stalling network"; zeus = import <lumi/os/central>; hera = { imports = [ <lumi/os/support> ]; support.pgmaster = "zeus"; }; nijmegen-verloren-toren = facility 1; utrecht-lange-koestraat = facility 2; utrecht-zadelstraat = facility 3; utrecht-vredenburg = facility 4; utrecht-westplein = facility 5; utrecht-stadhuis = facility 10; Logical configura%on utrecht-jaarbeursplein = { config,... }: { imports = [ <lumi/os/pris-gateway> ]; services.lumi.pris-gateway-poster.facilityservice = facilityservice config.networking.hostname; }; denhaag-stadhuis = facility 13; amsterdam-sportpark-ijburg = facility 14; }

37 stalling-net-hardware.nix let hetzner = mainip: ; facility = nic: ipaddress: defaultgateway: ; in { zeus = {imports = [ (hetzner ") <lumi/os/central/hardware.nix> ];}; hera = {imports = [ (hetzner ") <lumi/os/support/hardware.nix> ];}; } # nic ipaddress defaultgateway nijmegen-verloren-toren = facility "eno1" " " " "; utrecht-lange-koestraat = facility "eno1" " " " "; utrecht-zadelstraat = facility "eno1" " " " "; utrecht-vredenburg = facility "eno1" " " " "; utrecht-westplein = {imports=[(facility "eno1" " " " ") (router-rebooter " ")];}; utrecht-jaarbeursplein = facility "enp3s0" " " " "; utrecht-stadhuis = facility "eno1" " " " "; amsterdam-sportpark-ijburg = facility "enp0s25" " " " "; denhaag-stadhuis = facility "enp3s0" " " " "; Physical configura%on

38 Deploy the network configura%on nixops deploy \ -state state.nixops \ --deployment stalling-net Provisions machines and other resources Copies Nix closures Ac%vates new configura%on

39 Have fun parking your bike!

40 Please ask me something?

CORBA Programming with TAOX11. The C++11 CORBA Implementation

CORBA Programming with TAOX11. The C++11 CORBA Implementation CORBA Programming with TAOX11 The C++11 CORBA Implementation TAOX11: the CORBA Implementation by Remedy IT TAOX11 simplifies development of CORBA based applications IDL to C++11 language mapping is easy

More information

IOS110. Virtualization 5/27/2014 1

IOS110. Virtualization 5/27/2014 1 IOS110 Virtualization 5/27/2014 1 Agenda What is Virtualization? Types of Virtualization. Advantages and Disadvantages. Virtualization software Hyper V What is Virtualization? Virtualization Refers to

More information

Reading and Writing PCD Files The PCD File Format The Grabber Interface Writing a Custom Grabber PCL :: I/O. Suat Gedikli, Nico Blodow

Reading and Writing PCD Files The PCD File Format The Grabber Interface Writing a Custom Grabber PCL :: I/O. Suat Gedikli, Nico Blodow PCL :: I/O Suat Gedikli, Nico Blodow July 1, 2011 Outline 1. Reading and Writing PCD Files 2. The PCD File Format 3. The Grabber Interface 4. Writing a Custom Grabber global functions in the namespace

More information

Server Virtualization with Windows Server Hyper-V and System Center

Server Virtualization with Windows Server Hyper-V and System Center Course 20409B: Server Virtualization with Windows Server Hyper-V and System Center Course Details Course Outline Module 1: Evaluating the Environment for Virtualization This module provides an overview

More information

Installing Java (Windows) and Writing your First Program

Installing Java (Windows) and Writing your First Program Appendix Installing Java (Windows) and Writing your First Program We will be running Java from the command line and writing Java code in Notepad++ (or similar). The first step is to ensure you have installed

More information

Functional Programming in C++11

Functional Programming in C++11 Functional Programming in C++11 science + computing ag IT-Dienstleistungen und Software für anspruchsvolle Rechnernetze Tübingen München Berlin Düsseldorf An Overview Programming in a functional style

More information

Arduino Internet Connectivity: Maintenance Manual Julian Ryan Draft No. 7 April 24, 2015

Arduino Internet Connectivity: Maintenance Manual Julian Ryan Draft No. 7 April 24, 2015 Arduino Internet Connectivity: Maintenance Manual Julian Ryan Draft No. 7 April 24, 2015 CEN 4935 Senior Software Engineering Project Instructor: Dr. Janusz Zalewski Software Engineering Program Florida

More information

Keil C51 Cross Compiler

Keil C51 Cross Compiler Keil C51 Cross Compiler ANSI C Compiler Generates fast compact code for the 8051 and it s derivatives Advantages of C over Assembler Do not need to know the microcontroller instruction set Register allocation

More information

Last not not Last Last Next! Next! Line Line Forms Forms Here Here Last In, First Out Last In, First Out not Last Next! Call stack: Worst line ever!

Last not not Last Last Next! Next! Line Line Forms Forms Here Here Last In, First Out Last In, First Out not Last Next! Call stack: Worst line ever! ECE 551 C++ Programming, Data structures, and Algorithms Abstract Data Type: Stack Last In First Out (LIFO) 1 2 2 1 4 3 1 3 4 Stacks in Programming Worst line ever! 5 3 1 5 Stacks are not useful for waiting

More information

Retour vers le futur des bibliothèques de squelettes algorithmiques et DSL

Retour vers le futur des bibliothèques de squelettes algorithmiques et DSL Retour vers le futur des bibliothèques de squelettes algorithmiques et DSL Sylvain Jubertie [email protected] Journée LaMHA - 26/11/2015 Squelettes algorithmiques 2 / 29 Squelettes algorithmiques

More information

JAVA Program For Processing SMS Messages

JAVA Program For Processing SMS Messages JAVA Program For Processing SMS Messages Krishna Akkulu The paper describes the Java program implemented for the MultiModem GPRS wireless modem. The MultiModem offers standards-based quad-band GSM/GPRS

More information

IBM Watson Ecosystem. Getting Started Guide

IBM Watson Ecosystem. Getting Started Guide IBM Watson Ecosystem Getting Started Guide Version 1.1 July 2014 1 Table of Contents: I. Prefix Overview II. Getting Started A. Prerequisite Learning III. Watson Experience Manager A. Assign User Roles

More information

Help on the Embedded Software Block

Help on the Embedded Software Block Help on the Embedded Software Block Powersim Inc. 1. Introduction The Embedded Software Block is a block that allows users to model embedded devices such as microcontrollers, DSP, or other devices. It

More information

First Java Programs. V. Paúl Pauca. CSC 111D Fall, 2015. Department of Computer Science Wake Forest University. Introduction to Computer Science

First Java Programs. V. Paúl Pauca. CSC 111D Fall, 2015. Department of Computer Science Wake Forest University. Introduction to Computer Science First Java Programs V. Paúl Pauca Department of Computer Science Wake Forest University CSC 111D Fall, 2015 Hello World revisited / 8/23/15 The f i r s t o b l i g a t o r y Java program @author Paul Pauca

More information

Object Oriented Software Design II

Object Oriented Software Design II Object Oriented Software Design II Real Application Design Christian Nastasi http://retis.sssup.it/~lipari http://retis.sssup.it/~chris/cpp Scuola Superiore Sant Anna Pisa April 25, 2012 C. Nastasi (Scuola

More information

System Requirements for Microsoft Dynamics SL 2015

System Requirements for Microsoft Dynamics SL 2015 System for Microsoft Dynamics SL 2015 Overview This document contains the minimum client hardware requirements, server recommendations and Terminal Server minimum hardware requirements supported by the

More information

Software documentation systems

Software documentation systems Software documentation systems Basic introduction to various user-oriented and developer-oriented software documentation systems. Ondrej Holotnak Ondrej Jombik Software documentation systems: Basic introduction

More information

Datacenter Operating Systems

Datacenter Operating Systems Datacenter Operating Systems CSE451 Simon Peter With thanks to Timothy Roscoe (ETH Zurich) Autumn 2015 This Lecture What s a datacenter Why datacenters Types of datacenters Hyperscale datacenters Major

More information

Mobile Labs Plugin for IBM Urban Code Deploy

Mobile Labs Plugin for IBM Urban Code Deploy Mobile Labs Plugin for IBM Urban Code Deploy Thank you for deciding to use the Mobile Labs plugin to IBM Urban Code Deploy. With the plugin, you will be able to automate the processes of installing or

More information

Customize Mobile Apps with MicroStrategy SDK: Custom Security, Plugins, and Extensions

Customize Mobile Apps with MicroStrategy SDK: Custom Security, Plugins, and Extensions Customize Mobile Apps with MicroStrategy SDK: Custom Security, Plugins, and Extensions MicroStrategy Mobile SDK 1 Agenda MicroStrategy Mobile SDK Overview Requirements & Setup Custom App Delegate Custom

More information

Android and OpenCV Tutorial

Android and OpenCV Tutorial Android and OpenCV Tutorial Computer Vision Lab Tutorial 26 September 2013 Lorenz Meier, Amaël Delaunoy, Kalin Kolev Institute of Visual Computing Tutorial Content Strengths / Weaknesses of Android Java

More information

Overview of Web Services API

Overview of Web Services API 1 CHAPTER The Cisco IP Interoperability and Collaboration System (IPICS) 4.5(x) application programming interface (API) provides a web services-based API that enables the management and control of various

More information

1 Abstract Data Types Information Hiding

1 Abstract Data Types Information Hiding 1 1 Abstract Data Types Information Hiding 1.1 Data Types Data types are an integral part of every programming language. ANSI-C has int, double and char to name just a few. Programmers are rarely content

More information

Version control with Subversion

Version control with Subversion Version control with Subversion Davor Cubranic Grad Seminar October 6, 2011 With searching comes loss And the presence of absence: My Thesis not found. Version Control A tool for managing changes to a

More information

The full setup includes the server itself, the server control panel, Firebird Database Server, and three sample applications with source code.

The full setup includes the server itself, the server control panel, Firebird Database Server, and three sample applications with source code. Content Introduction... 2 Data Access Server Control Panel... 2 Running the Sample Client Applications... 4 Sample Applications Code... 7 Server Side Objects... 8 Sample Usage of Server Side Objects...

More information

Sample CSE8A midterm Multiple Choice (circle one)

Sample CSE8A midterm Multiple Choice (circle one) Sample midterm Multiple Choice (circle one) (2 pts) Evaluate the following Boolean expressions and indicate whether short-circuiting happened during evaluation: Assume variables with the following names

More information

TCP/IP Networking, Part 2: Web-Based Control

TCP/IP Networking, Part 2: Web-Based Control TCP/IP Networking, Part 2: Web-Based Control Microchip TCP/IP Stack HTTP2 Module 2007 Microchip Technology Incorporated. All Rights Reserved. Building Embedded Web Applications Slide 1 Welcome to the next

More information

Government Girls Polytechnic, Bilaspur

Government Girls Polytechnic, Bilaspur Government Girls Polytechnic, Bilaspur Name of the Lab: Internet & Web Technology Lab Title of the Practical : Dynamic Web Page Design Lab Class: CSE 6 th Semester Teachers Assessment:20 End Semester Examination:50

More information

Linux Kernel Rootkit : Virtual Terminal Key Logger

Linux Kernel Rootkit : Virtual Terminal Key Logger Linux Kernel Rootkit : Virtual Terminal Key Logger Jeena Kleenankandy Roll No. P140066CS Depatment of Computer Science and Engineering National Institute of Technology Calicut jeena [email protected]

More information

NETFORT LANGUARDIAN INSTALLING LANGUARDIAN ON MICROSOFT HYPER V

NETFORT LANGUARDIAN INSTALLING LANGUARDIAN ON MICROSOFT HYPER V NETFORT LANGUARDIAN INSTALLING LANGUARDIAN ON MICROSOFT HYPER V Instructions apply to installs on Windows Server 2012 R2 Before you begin When deployed in a Hyper V environment, LANGuardian will capture

More information

Working With Virtual Hosts on Pramati Server

Working With Virtual Hosts on Pramati Server Working With Virtual Hosts on Pramati Server 13 Overview Virtual hosting allows a single machine to be addressed by different names. There are two ways for configuring Virtual Hosts. They are: Domain Name

More information

Channel Access Client Programming. Andrew Johnson Computer Scientist, AES-SSG

Channel Access Client Programming. Andrew Johnson Computer Scientist, AES-SSG Channel Access Client Programming Andrew Johnson Computer Scientist, AES-SSG Channel Access The main programming interface for writing Channel Access clients is the library that comes with EPICS base Written

More information

Drupal CMS for marketing sites

Drupal CMS for marketing sites Drupal CMS for marketing sites Intro Sample sites: End to End flow Folder Structure Project setup Content Folder Data Store (Drupal CMS) Importing/Exporting Content Database Migrations Backend Config Unit

More information

Using NixOS for declarative deployment and testing

Using NixOS for declarative deployment and testing Using NixOS for declarative deployment and testing Sander van der Burg Eelco Dolstra Delft University of Technology, EEMCS, Department of Software Technology February 5, 2010 Linux distributions There

More information

Server Virtualization with Windows Server Hyper-V and System Center

Server Virtualization with Windows Server Hyper-V and System Center Server Virtualization with Windows Server Hyper-V and System Center About this Course This five day course will provide you with the knowledge and skills required to design and implement Microsoft Server

More information

PetaLinux SDK User Guide. Application Development Guide

PetaLinux SDK User Guide. Application Development Guide PetaLinux SDK User Guide Application Development Guide Notice of Disclaimer The information disclosed to you hereunder (the "Materials") is provided solely for the selection and use of Xilinx products.

More information

Iotivity Programmer s Guide Soft Sensor Manager for Android

Iotivity Programmer s Guide Soft Sensor Manager for Android Iotivity Programmer s Guide Soft Sensor Manager for Android 1 CONTENTS 2 Introduction... 3 3 Terminology... 3 3.1 Physical Sensor Application... 3 3.2 Soft Sensor (= Logical Sensor, Virtual Sensor)...

More information

Computer Systems II. Unix system calls. fork( ) wait( ) exit( ) How To Create New Processes? Creating and Executing Processes

Computer Systems II. Unix system calls. fork( ) wait( ) exit( ) How To Create New Processes? Creating and Executing Processes Computer Systems II Creating and Executing Processes 1 Unix system calls fork( ) wait( ) exit( ) 2 How To Create New Processes? Underlying mechanism - A process runs fork to create a child process - Parent

More information

The C Programming Language course syllabus associate level

The C Programming Language course syllabus associate level TECHNOLOGIES The C Programming Language course syllabus associate level Course description The course fully covers the basics of programming in the C programming language and demonstrates fundamental programming

More information

Virtualization Technologies

Virtualization Technologies 12 January 2010 Virtualization Technologies Alex Landau ([email protected]) IBM Haifa Research Lab What is virtualization? Virtualization is way to run multiple operating systems and user applications on

More information

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts

More information

Hardware and Software Requirements for Installing California.pro

Hardware and Software Requirements for Installing California.pro Hardware and Requirements for Installing California.pro This document lists the hardware and software requirements to install and run California.pro. Workstation with SQL Server Recommended: 64-Bit Windows

More information

I/O Virtualization The Next Virtualization Frontier

I/O Virtualization The Next Virtualization Frontier I/O Virtualization The Next Virtualization Frontier Dennis Martin President Demartek Demartek Company Overview Industry analysis with on-site test lab Lab includes servers, networking and storage infrastructure

More information

APS PACKAGE LISTEQ CLOUD DESKTOP Specification

APS PACKAGE LISTEQ CLOUD DESKTOP Specification 1. INTRODUCTION The LISTEQ Cloud Desktop software is delivered by LISTEQ to Hosting/Service Providers and Telcos (Service Providers). For the integration, provisioning, user settings, control and billing,

More information

DHCP Server Port-Based Address Allocation

DHCP Server Port-Based Address Allocation The feature provides port-based address allocation support on the Cisco IOS Dynamic Host Configuration Protocol (DHCP) server for the Ethernet platform. The DHCP server provides address assignment support

More information

Data Management Applications with Drupal as Your Framework

Data Management Applications with Drupal as Your Framework Data Management Applications with Drupal as Your Framework John Romine UC Irvine, School of Engineering UCCSC, IR37, August 2013 [email protected] What is Drupal? Open-source content management system PHP,

More information

For the next three questions, consider the class declaration: Member function implementations put inline to save space.

For the next three questions, consider the class declaration: Member function implementations put inline to save space. Instructions: This homework assignment focuses on basic facts regarding classes in C++. Submit your answers via the Curator System as OQ4. For the next three questions, consider the class declaration:

More information

3F6 - Software Engineering and Design. Handout 10 Distributed Systems I With Markup. Steve Young

3F6 - Software Engineering and Design. Handout 10 Distributed Systems I With Markup. Steve Young 3F6 - Software Engineering and Design Handout 10 Distributed Systems I With Markup Steve Young Contents 1. Distributed systems 2. Client-server architecture 3. CORBA 4. Interface Definition Language (IDL)

More information

Platform as a Service and Container Clouds

Platform as a Service and Container Clouds John Rofrano Senior Technical Staff Member, Cloud Automation Services, IBM Research [email protected] or [email protected] Platform as a Service and Container Clouds using IBM Bluemix and Docker for Cloud

More information

Functional Programming. Functional Programming Languages. Chapter 14. Introduction

Functional Programming. Functional Programming Languages. Chapter 14. Introduction Functional Programming Languages Chapter 14 Introduction Functional programming paradigm History Features and concepts Examples: Lisp ML 1 2 Functional Programming Functional Programming Languages The

More information

Continuous Integration Part 2

Continuous Integration Part 2 1 Continuous Integration Part 2 This blog post is a follow up to my blog post Continuous Integration (CI), in which I described how to execute test cases in Code Tester (CT) in a CI environment. What I

More information

CSI33 Data Structures

CSI33 Data Structures Outline Department of Mathematics and Computer Science Bronx Community College November 25, 2015 Outline Outline 1 Chapter 12: C++ Templates Outline Chapter 12: C++ Templates 1 Chapter 12: C++ Templates

More information

Server Virtualization with Windows Server Hyper-V and System Center

Server Virtualization with Windows Server Hyper-V and System Center Course 20409 Server Virtualization with Windows Server Hyper-V and System Center Length: Language(s): Audience(s): 5 Days English IT Professionals Level: 300 Technology: Windows Server 2012 Type: Delivery

More information

Webapps Vulnerability Report

Webapps Vulnerability Report Tuesday, May 1, 2012 Webapps Vulnerability Report Introduction This report provides detailed information of every vulnerability that was found and successfully exploited by CORE Impact Professional during

More information

How To Write A Distributed Deployment System On Nix (Programming)

How To Write A Distributed Deployment System On Nix (Programming) Delft University of Technology, EEMCS, Department of Software Technology Philips Healthcare, Philips Informatics Infrastructure (PII), Best February 2, 2012 Service Oriented Computing The Service Oriented

More information

Telit AppZone Programming Tips

Telit AppZone Programming Tips Telit AppZone Programming Tips Table of Contents Basic Operations... 2 1. Print messages to UART... 2 2. Working with processes... 3 3. File System... 4 4. Timers... 5 5. SMS... 6 6. AT Commands... 7 7.

More information

Application-Level Debugging and Profiling: Gaps in the Tool Ecosystem. Dr Rosemary Francis, Ellexus

Application-Level Debugging and Profiling: Gaps in the Tool Ecosystem. Dr Rosemary Francis, Ellexus Application-Level Debugging and Profiling: Gaps in the Tool Ecosystem Dr Rosemary Francis, Ellexus For years instruction-level debuggers and profilers have improved in leaps and bounds. Similarly, system-level

More information

Operating Systems Virtualization mechanisms

Operating Systems Virtualization mechanisms Operating Systems Virtualization mechanisms René Serral-Gracià Xavier Martorell-Bofill 1 1 Universitat Politècnica de Catalunya (UPC) May 26, 2014 Contents 1 Introduction 2 Hardware Virtualization mechanisms

More information

Resco CRM Server Guide. How to integrate Resco CRM with other back-end systems using web services

Resco CRM Server Guide. How to integrate Resco CRM with other back-end systems using web services Resco CRM Server Guide How to integrate Resco CRM with other back-end systems using web services Integrating Resco CRM with other back-end systems using web services (Data, Metadata) This document consists

More information

Deploying Dedicated Virtual Desktops in Hosted Environments

Deploying Dedicated Virtual Desktops in Hosted Environments Deploying Dedicated Virtual Desktops in Hosted Environments Citrix XenDesktop 5.6 for Windows Server 2008 R2 Deploying Dedicated Desktops in Hosted Environments Hosted Server VDI enables CSPs to provide

More information

Deploying Dedicated Virtual Desktops in Hosted Environments

Deploying Dedicated Virtual Desktops in Hosted Environments Deploying Dedicated Virtual Desktops in Hosted Environments Technical Preview Release Citrix XenDesktop 5.6 for Windows Server 2008 R2 Deploying Dedicated Desktops in Hosted Environments Hosted Server

More information

The Nix project. Sander van der Burg. June 24, 2013. Delft University of Technology, EEMCS, Department of Software Technology

The Nix project. Sander van der Burg. June 24, 2013. Delft University of Technology, EEMCS, Department of Software Technology Delft University of Technology, EEMCS, Department of Software Technology June 24, 2013 Software deployment Software deployment Software deployment All of the activities that make a software system available

More information

3.5. cmsg Developer s Guide. Data Acquisition Group JEFFERSON LAB. Version

3.5. cmsg Developer s Guide. Data Acquisition Group JEFFERSON LAB. Version Version 3.5 JEFFERSON LAB Data Acquisition Group cmsg Developer s Guide J E F F E R S O N L A B D A T A A C Q U I S I T I O N G R O U P cmsg Developer s Guide Elliott Wolin [email protected] Carl Timmer [email protected]

More information

Virtualization Support - Real Backups of Virtual Environments

Virtualization Support - Real Backups of Virtual Environments Virtualization Support Real Backups of Virtual Environments Contents Virtualization Challenges 3 The Benefits of Agentless Backup 4 Backup and Recovery Built for Virtualized Environments 4 Agentless in

More information

Anh Quach, Matthew Rajman, Bienvenido Rodriguez, Brian Rodriguez, Michael Roefs, Ahmed Shaikh

Anh Quach, Matthew Rajman, Bienvenido Rodriguez, Brian Rodriguez, Michael Roefs, Ahmed Shaikh Anh Quach, Matthew Rajman, Bienvenido Rodriguez, Brian Rodriguez, Michael Roefs, Ahmed Shaikh Introduction History, Advantages, Common Uses OS-Level Virtualization Hypervisors Type 1 vs. type 2 hypervisors

More information

Virtuozzo Virtualization SDK

Virtuozzo Virtualization SDK Virtuozzo Virtualization SDK Programmer's Guide February 18, 2016 Copyright 1999-2016 Parallels IP Holdings GmbH and its affiliates. All rights reserved. Parallels IP Holdings GmbH Vordergasse 59 8200

More information

C++ INTERVIEW QUESTIONS

C++ INTERVIEW QUESTIONS C++ INTERVIEW QUESTIONS http://www.tutorialspoint.com/cplusplus/cpp_interview_questions.htm Copyright tutorialspoint.com Dear readers, these C++ Interview Questions have been designed specially to get

More information

Specific Simple Network Management Tools

Specific Simple Network Management Tools Specific Simple Network Management Tools Jürgen Schönwälder University of Osnabrück Albrechtstr. 28 49069 Osnabrück, Germany Tel.: +49 541 969 2483 Email: Web:

More information

Deep Freeze and Microsoft System Center Configuration Manager 2012 Integration

Deep Freeze and Microsoft System Center Configuration Manager 2012 Integration 1 Deep Freeze and Microsoft System Center Configuration Manager 2012 Integration Technical Paper Last modified: May 2015 Web: www.faronics.com Email: [email protected] Phone: 800-943-6422 or 604-637-3333

More information

WCF and Windows Activation Service(WAS)

WCF and Windows Activation Service(WAS) WCF and Windows Activation Service(WAS) We have writing WCF services for the last year or so and many have remarked that these can be a pain because of the hosting requirements. In fact I think some wonder

More information

Deploying Windows Streaming Media Servers NLB Cluster and metasan

Deploying Windows Streaming Media Servers NLB Cluster and metasan Deploying Windows Streaming Media Servers NLB Cluster and metasan Introduction...................................................... 2 Objectives.......................................................

More information

Installing & Using KVM with Virtual Machine Manager COSC 495

Installing & Using KVM with Virtual Machine Manager COSC 495 Installing & Using KVM with Virtual Machine Manager COSC 495 1 Abstract:. There are many different hypervisors and virtualization software available for use. One commonly use hypervisor in the Linux system

More information

Implementing a WCF Service in the Real World

Implementing a WCF Service in the Real World Implementing a WCF Service in the Real World In the previous chapter, we created a basic WCF service. The WCF service we created, HelloWorldService, has only one method, called GetMessage. Because this

More information

CSCE 665: Lab Basics. Virtual Machine. Guofei Gu

CSCE 665: Lab Basics. Virtual Machine. Guofei Gu CSCE 665: Lab Basics Guofei Gu Virtual Machine Virtual Machine: a so?ware implementacon of a programmable machine(client), where the so?ware implementacon is constrained within another computer(host) at

More information

deploying meteor with meteor up

deploying meteor with meteor up deploying meteor with meteor up reference http://code.krister.ee/hosting-multiple-instances-of-meteor-on-digitalocean/ https://rtcamp.com/tutorials/nodejs/node-js-npm-install-ubuntu/ https://gentlenode.com/journal/meteor-19-deploying-your-applications-in-asnap-with-meteor-up-mup/41

More information

Development Techniques for Native/Hybrid Tizen Apps. Presented by Kirill Kruchinkin

Development Techniques for Native/Hybrid Tizen Apps. Presented by Kirill Kruchinkin Development Techniques for Native/Hybrid Tizen Apps Presented by Kirill Kruchinkin Agenda Introduction and Definitions Practices Case Studies 2 Introduction & Definitions 2 App Types Browser Apps Installable

More information

Services Provider License Agreement Cloud Platform Suite & Guest

Services Provider License Agreement Cloud Platform Suite & Guest Services Provider License Agreement Cloud Platform Suite & Guest Frequently Asked Questions (FAQ) Last modified February 2014 Table of Contents Q1. What is the Cloud Platform Suite?... 2 Q2. What is the

More information

CONFIGURING MNLB FOR LOAD BALANCING EXCHANGE 2013 CU2 CAS SERVERS FOR HIGH AVAILABILITY

CONFIGURING MNLB FOR LOAD BALANCING EXCHANGE 2013 CU2 CAS SERVERS FOR HIGH AVAILABILITY CONFIGURING MNLB FOR LOAD BALANCING EXCHANGE 2013 CU2 CAS SERVERS FOR HIGH AVAILABILITY INFRASTRUCTURE CONFIGURATION 2 CAS Servers Virtual Machines running on Hyper-V Windows Server 2013 R2 Generation

More information

Module 5 Introduction to Processes and Controls

Module 5 Introduction to Processes and Controls IT Terminology 1. General IT Environment The general IT environment is the umbrella over the following IT processes: 1. Operating Systems 2. Physical and Logical Security 3. Program Changes 4. System Development

More information

Configuring Data Masking

Configuring Data Masking Configuring Data Masking Intellicus Web-based Reporting Suite Version 4.5 Enterprise Professional Smart Developer Smart Viewer Intellicus Technologies [email protected] www.intellicus.com Copyright 2009

More information

Eylean server deployment guide

Eylean server deployment guide Eylean server deployment guide Contents 1 Minimum software and hardware requirements... 2 2 Setting up the server using Eylean.Server.Setup.exe wizard... 2 3 Manual setup with Windows authentication -

More information

9/26/2011. What is Virtualization? What are the different types of virtualization.

9/26/2011. What is Virtualization? What are the different types of virtualization. CSE 501 Monday, September 26, 2011 Kevin Cleary [email protected] What is Virtualization? What are the different types of virtualization. Practical Uses Popular virtualization products Demo Question,

More information

Chapter 15 Functional Programming Languages

Chapter 15 Functional Programming Languages Chapter 15 Functional Programming Languages Introduction - The design of the imperative languages is based directly on the von Neumann architecture Efficiency (at least at first) is the primary concern,

More information

Web Development using PHP (WD_PHP) Duration 1.5 months

Web Development using PHP (WD_PHP) Duration 1.5 months Duration 1.5 months Our program is a practical knowledge oriented program aimed at learning the techniques of web development using PHP, HTML, CSS & JavaScript. It has some unique features which are as

More information

Creating Mobile Applications on Top of SAP, Part 1

Creating Mobile Applications on Top of SAP, Part 1 Creating Mobile Applications on Top of SAP, Part 1 Applies to: SAP ERP 6.0, NetWeaver > 7.10. For more information, visit the Mobile homepage. Summary This tutorial is starting point for a series of tutorials

More information

Compiler Construction

Compiler Construction Compiler Construction Lecture 1 - An Overview 2003 Robert M. Siegfried All rights reserved A few basic definitions Translate - v, a.to turn into one s own language or another. b. to transform or turn from

More information

Informatica e Sistemi in Tempo Reale

Informatica e Sistemi in Tempo Reale Informatica e Sistemi in Tempo Reale Introduction to C programming Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa October 25, 2010 G. Lipari (Scuola Superiore Sant Anna)

More information