The Tclhttpd Web Server

Total Page:16

File Type:pdf, Size:1020Kb

The Tclhttpd Web Server The TclHttpd Web Server Brent Welch <[email protected]> Scriptics Corporation Abstract • Static pages. As a "normal" web server, you can serve static documents that describe your This paper describes TclHttpd, a web server built application. entirely in Tcl. The web server can be used as a • Domain handlers. You can arrange for all stand-alone server or it can be embedded into URL requests in a section of your web site to applications to web-enable them. TclHttpd provides be handled by your application. This is a very a Tcl+HTML template facility that is useful for general interface where you interpret what the maintaining site-wide look and feel, and an appli- URL means and what sort of pages to return cation-direct URL that invokes a Tcl procedure in to each request. For example, an application. This paper describes the architec- http://www.scriptics.com/resource is ture of the application and relates our experience implemented this way. The URL past using the system to host www.scriptics.com. /resource selects an index in a simple data- base, and the server returns a page describing the pages under that index. Introduction • Application-Direct URLs. This is a domain TclHttpd started out as about 175 lines of Tcl that handler that maps URLs onto Tcl procedures. could serve up HTML pages and images. The Tcl The form query data that is part of the HTTP GET or POST request is automatically socket and I/O commands make this easy. Of course, there are lots of features in web servers like mapped onto the parameters of the applica- Apache or Netscape that were not present in the tion-direct procedure. The procedure simply first prototype. Steve Uhler took my prototype, computes the page as its return value. This is refined the HTTP handling, and aimed to keep the an elegant and efficient alternative to the CGI basic server under 250 lines. I went the other direc- interface. For example, in TclHttpd the URLs tion, setting up a modular architecture, adding in under /status report various statistics about features found in other web servers, and adding the web server’s operation. some interesting ways to connect TclHttpd to Tcl • Document handlers. You can define a Tcl pro- applications. cedure that handles all files of a particular type. For example, the server has a handler Today TclHttpd is used both as a general-purpose for CGI scripts, HTML files, image maps, Web server, and as a framework for building server and HTML+Tcl template files. applications. It implements www.scriptics.com, • HTML+Tcl Templates. These are web pages including the Tcl Resource Center and Scriptics’ that mix Tcl and HTML markup. The server electronic commerce facilities. It is also built into replaces the Tcl using the subst command several commercial applications such as license and returns the result. The server can cache servers and mail spam filters. the result in a regular HTML file to avoid the overhead of template processing on future requests. Templates are a great way to main- Integrating with TclHttpd tain common look and feel to a family of web TclHttpd is interesting because, as a Tcl script, it is pages, as well as to implement more easy to add to your application. Suddenly your advanced dynamic HTML features like self- application has an interface that is accessible to checking forms. Web browsers in your company’s intranet or the global Internet. The Web server provides several ways you can connect it to your application: TclHttpd Architecture Domain Handlers Figure 1 shows the basic components of the server. You can implement new kinds of domains that pro- At the core is the Httpd module, which implements vide your own interpretation of a URL. This is the the server side of the HTTP protocol. This module most flexible interface available to extend the web manages network requests, dispatches them to the server. You provide a callback that is invoked to Url module, and provides routines used to return handle every request in a domain, or subtree, of the the results to requests. The Url module divides the URL hierarchy. The callback interprets the URL, web site into domains, which are subtrees of the using routines from the Httpd module. URL hierarchy provided by the server. The idea is Example 1 defines a simple domain that always that different domains may have completely differ- returns the same page to every request. The domain ent implementations. For example, the Document is registered with the Url_PrefixInstall com- domain maps its URLs into files and directories on mand. The arguments to Url_PrefixInstall are your hard disk, while the Application-Direct the URL prefix and a callback that is called to han- domain maps URLs into Tcl procedure calls within dle all URLs that match that prefix. In the example, your application. The CGI domain maps URLs onto all URLs that have the prefix /simple are dis- other programs that compute web pages. patched to the SimpleDomain procedure. File Other System Applications Your Application Templates Application Direct CGI Documents Url Httpd TclHttpd Figure 1 The dotted box represents one application that embeds TclHttpd. Document templates and Application Direct URLs provide direct connections from an HTTP request to your applica- tion. Example 1A simple URL domain. Url_PrefixInstall /simple [list SimpleDomain /simple] proc SimpleDomain {prefix sock suffix} { upvar #0 Httpd$sock data # Generate page header set html "<title>A simple page</title>\n" append html "<h1>$prefix$suffix</h1>\n" append html "<h1>Date and Time</h1>\n" append html [clock format [clock seconds]] # Display query data if {[info exist data(query)]} { append html "<h1>Query Data</h1>\n" append html "<table>\n" foreach {name value} [Url_DecodeQuery $data(query)] { append html "<tr><td>$name</td>\n" append html "<td>$value</td></tr>\n" } append html "</table>\n" } Httpd_ReturnData $sock text/html $html } The SimpleDomain handler illustrates several prop- cedure is used to decode the data into a list of names erties of domain handlers. The sock and suffix and values. arguments to SimpleDomain are appended by Finally, once the page has been computed, the Url_Dispatch when it invokes the domain handler. Httpd_ReturnData procedure is used to return the The suffix parameter is the part of the URL after page to the client. This takes care of the HTTP pro- the prefix. The prefix is passed in as part of the tocol as well as returning the data. There are three callback definition so the domain handler can recre- related procedures, Httpd_ReturnFile, ate the complete URL. For example, if the server Httpd_Error, and Httpd_Redirect. receives a request for the url /simple/page, then the prefix is /simple, the suffix is /page. The sock parameter is a handle on the socket con- Application Direct URLs nection to the remote client. This variable is also The Application Direct domain implementation used to name a state variable that the Httpd module maintains about the connection. The name of the provides the simplest way to extend the web server. It hides the details associated with query data, state array is Httpd$sock, and SimpleDomain uses decoding URL paths, and returning results. All you upvar to get a more convenient name for this array do is define Tcl procedures that correspond to (i.e., data): URLs. Their arguments are automatically matched upvar #0 Httpd$sock data up to the query data. The Tcl procedures compute a The only module in the server that uses the socket string that is the result data, which is usually handle directly is the Httpd module. The rest of the HTML. That’s all there is to it. code treats $sock as an opaque handle, and uses the upvar trick to map that handle into a locally acces- The Direct_Url procedure defines a URL prefix sible array. and a corresponding Tcl command prefix. Any URL that begins with the URL prefix will be han- An important element of the state array is the query dled by a corresponding Tcl procedure that starts data, . This is the information that data(query) with the Tcl command prefix. This is shown in comes from HTML forms. The query data arrives in Example 2: an encoded format, and the Url_DecodeQuery pro- Example 2Application Direct URLs Direct_Url /demo Demo proc Demo {} { return "<html><head><title>Demo page</title></head>\n\ <body><h1>Demo page</h1>\n\ <a href=/demo/time>What time is it?</a>\n\ <form action=/demo/echo>\n\ Data: <input type=text name=data>\n\ <br>\n\ <input type=submit name=echo value=’Echo Data’>\n\ </form>\n\ </body></html>" } proc Demo/time {{format "%H:%M:%S"}} { return [clock format [clock seconds] -format $format] } proc Demo/echo {args} { # Compute a page that echos the query data set html "<head><title>Echo</title></head>\n" append html "<body><table>\n" foreach {name value} $args { append html "<tr><td>$name</td><td>$value</td></tr>\n" } append html "</tr></table>\n" return $html } Example 2 defines /demo as an Application Direct Using Query Data URL domain that is implemented by procedures The /demo/echo procedure creates a table that that begin with Demo. There are just three URLs defined: shows its query data. Its args parameter gets filled in with a name-value list of all query data. You can /demo have named parameters, named parameters with /demo/time default values, and the args parameter in your /demo/echo application-direct URL procedures. The server The /demo page displays a hypertext link to the automatically matches up incoming form values /demo/time page, and a simple form that will be with the procedure declaration.
Recommended publications
  • A Reference Architecture for Web Servers
    A Reference Architecture for Web Servers Ahmed E. Hassan and Richard C. Holt Software Architecture Group (SWAG) Dept. of Computer Science University of Waterloo Waterloo, Ontario N2L 3G1 CANADA +1 (519) 888-4567 x 4671 {aeehassa, holt}@plg.uwaterloo.ca ABSTRACT document increases with the size and the complexity of the software system. Recently, a number of tools have A reference software architecture for a domain defines been developed to decrease this cost by helping to ex- the fundamental components of the domain and the tract the architecture of a software system [7, 16, 20, relations between them. Research has shown the bene- 21]. Using these tools, reverse engineering researchers fits of having a reference architecture for product de- have developed semi-automated processes to extract the velopment, software reuse, and maintenance. Many product’s architecture from available artifacts such as mature domains, such as compilers and operating sys- the product's source code and any available documenta- tems, have well-known reference architectures. tion. In this paper, we present a process to derive a reference The reference architecture [4] for a domain is an archi- architecture for a domain. We used this process to de- tecture template for all the software systems in the do- rive a reference architecture for web servers, which is a main. It defines the fundamental components of the relatively new domain. The paper presents the map- domain and the relations between these components. ping of this reference architecture to the architectures of The architecture for a particular product is an instance three open source web servers: Apache (80KLOC), of the reference architecture.
    [Show full text]
  • Server: Apache
    Modern Trends in Network Fingerprinting SecTor [11.21.07] Jay Graver Ryan Poppa // Fingerprinting Topics Why, What, Who & How? Tools in action Why Tools Break Tools EOL New Approaches New Tool // Why Fingerprint? WhiteHat needs accurate identification of hosts in a PenTest report BlackHat reconnaissance SysAdmins track down and identify new services or hosts when they appear on their network // What is a Fingerprint? Looking at something common … 192.168.2.187:8004 192.168.2.187 [152] 48 54 54 50 2f 31 2e 31 20 32 30 30 20 4f 4b 0d HTTP/1.1 200 OK. 0a 43 6f 6e 6e 65 63 74 69 6f 6e 3a 20 63 6c 6f .Connection: clo 73 65 0d 0a 41 6c 6c 6f 77 3a 20 4f 50 54 49 4f se..Allow: OPTIO 4e 53 2c 20 47 45 54 2c 20 48 45 41 44 2c 20 50 NS, GET, HEAD, P 4f 53 54 0d 0a 43 6f 6e 74 65 6e 74 2d 4c 65 6e OST..Content‐Len 67 74 68 3a 20 30 0d 0a 44 61 74 65 3a 20 46 72 gth: 0..Date: Fr 69 2c 20 30 32 20 4e 6f 76 20 32 30 30 37 20 32 i, 02 Nov 2007 2 32 3a 32 35 3a 31 38 20 47 4d 54 0d 0a 53 65 72 2:25:18 GMT..Ser 76 65 72 3a 20 6c 69 67 68 74 74 70 64 2f 31 2e ver: lighttpd/1. 34 2e 31 35 0d 0a 0d 0a 4.15...
    [Show full text]
  • Next Generation Web Scanning Presentation
    Next generation web scanning New Zealand: A case study First presented at KIWICON III 2009 By Andrew Horton aka urbanadventurer NZ Web Recon Goal: To scan all of New Zealand's web-space to see what's there. Requirements: – Targets – Scanning – Analysis Sounds easy, right? urbanadventurer (Andrew Horton) www.morningstarsecurity.com Targets urbanadventurer (Andrew Horton) www.morningstarsecurity.com Targets What does 'NZ web-space' mean? It could mean: •Geographically within NZ regardless of the TLD •The .nz TLD hosted anywhere •All of the above For this scan it means, IPs geographically within NZ urbanadventurer (Andrew Horton) www.morningstarsecurity.com Finding Targets We need creative methods to find targets urbanadventurer (Andrew Horton) www.morningstarsecurity.com DNS Zone Transfer urbanadventurer (Andrew Horton) www.morningstarsecurity.com Find IP addresses on IRC and by resolving lots of NZ websites 58.*.*.* 60.*.*.* 65.*.*.* 91.*.*.* 110.*.*.* 111.*.*.* 113.*.*.* 114.*.*.* 115.*.*.* 116.*.*.* 117.*.*.* 118.*.*.* 119.*.*.* 120.*.*.* 121.*.*.* 122.*.*.* 123.*.*.* 124.*.*.* 125.*.*.* 130.*.*.* 131.*.*.* 132.*.*.* 138.*.*.* 139.*.*.* 143.*.*.* 144.*.*.* 146.*.*.* 150.*.*.* 153.*.*.* 156.*.*.* 161.*.*.* 162.*.*.* 163.*.*.* 165.*.*.* 166.*.*.* 167.*.*.* 192.*.*.* 198.*.*.* 202.*.*.* 203.*.*.* 210.*.*.* 218.*.*.* 219.*.*.* 222.*.*.* 729,580,500 IPs. More than we want to try. urbanadventurer (Andrew Horton) www.morningstarsecurity.com IP address blocks in the IANA IPv4 Address Space Registry Prefix Designation Date Whois Status [1] -----
    [Show full text]
  • Learning Management System Technologies and Software Solutions for Online Teaching: Tools and Applications
    Learning Management System Technologies and Software Solutions for Online Teaching: Tools and Applications Yefim Kats Ellis University, USA & Rivier College, USA InformatIon scIence reference Hershey • New York Director of Editorial Content: Kristin Klinger Director of Book Publications: Julia Mosemann Acquisitions Editor: Lindsay Johnston Development Editor: Elizabeth Ardner Typesetter: Gregory Snader Production Editor: Jamie Snavely Cover Design: Lisa Tosheff Printed at: Yurchak Printing Inc. Published in the United States of America by Information Science Reference (an imprint of IGI Global) 701 E. Chocolate Avenue Hershey PA 17033 Tel: 717-533-8845 Fax: 717-533-8661 E-mail: [email protected] Web site: http://www.igi-global.com/reference Copyright © 2010 by IGI Global. All rights reserved. No part of this publication may be reproduced, stored or distributed in any form or by any means, electronic or mechanical, including photocopying, without written permission from the publisher. Product or company names used in this set are for identification purposes only. Inclusion of the names of the products or companies does not indicate a claim of ownership by IGI Global of the trademark or registered trademark. Library of Congress Cataloging-in-Publication Data Learning management system technologies and software solutions for online teaching : tools and applications / Yefim Kats, editor. p. cm. Includes bibliographical references and index. Summary: "This book gives a general coverage of learning management systems followed by a comparative analysis of the particular LMS products, review of technologies supporting different aspect of educational process, and, the best practices and methodologies for LMS-supported course delivery"--Provided by publisher. ISBN 978-1-61520-853-1 (hardcover) -- ISBN 978-1-61520-854-8 (ebook) 1.
    [Show full text]
  • Comparison of Web Server Software from Wikipedia, the Free Encyclopedia
    Create account Log in Article Talk Read Edit ViewM ohrisetory Search Comparison of web server software From Wikipedia, the free encyclopedia Main page This article is a comparison of web server software. Contents Featured content Contents [hide] Current events 1 Overview Random article 2 Features Donate to Wikipedia 3 Operating system support Wikimedia Shop 4 See also Interaction 5 References Help 6 External links About Wikipedia Community portal Recent changes Overview [edit] Contact page Tools Server Developed by Software license Last stable version Latest release date What links here AOLserver NaviSoft Mozilla 4.5.2 2012-09-19 Related changes Apache HTTP Server Apache Software Foundation Apache 2.4.10 2014-07-21 Upload file Special pages Apache Tomcat Apache Software Foundation Apache 7.0.53 2014-03-30 Permanent link Boa Paul Phillips GPL 0.94.13 2002-07-30 Page information Caudium The Caudium Group GPL 1.4.18 2012-02-24 Wikidata item Cite this page Cherokee HTTP Server Álvaro López Ortega GPL 1.2.103 2013-04-21 Hiawatha HTTP Server Hugo Leisink GPLv2 9.6 2014-06-01 Print/export Create a book HFS Rejetto GPL 2.2f 2009-02-17 Download as PDF IBM HTTP Server IBM Non-free proprietary 8.5.5 2013-06-14 Printable version Internet Information Services Microsoft Non-free proprietary 8.5 2013-09-09 Languages Jetty Eclipse Foundation Apache 9.1.4 2014-04-01 Čeština Jexus Bing Liu Non-free proprietary 5.5.2 2014-04-27 Galego Nederlands lighttpd Jan Kneschke (Incremental) BSD variant 1.4.35 2014-03-12 Português LiteSpeed Web Server LiteSpeed Technologies Non-free proprietary 4.2.3 2013-05-22 Русский Mongoose Cesanta Software GPLv2 / commercial 5.5 2014-10-28 中文 Edit links Monkey HTTP Server Monkey Software LGPLv2 1.5.1 2014-06-10 NaviServer Various Mozilla 1.1 4.99.6 2014-06-29 NCSA HTTPd Robert McCool Non-free proprietary 1.5.2a 1996 Nginx NGINX, Inc.
    [Show full text]
  • Linux WWW HOWTO Linux WWW HOWTO
    Linux WWW HOWTO Linux WWW HOWTO Table of Contents Linux WWW HOWTO .....................................................................................................................................1 by Mr. Poet, poet@linuxports.com..........................................................................................................1 1.Introduction...........................................................................................................................................1 2.Setting up WWW client software (Antiquated)....................................................................................1 3.Lynx......................................................................................................................................................1 4.Emacs−W3............................................................................................................................................1 5.Netscape Navigator/Communicator......................................................................................................1 6.Setting up WWW server systems.........................................................................................................2 7.Apache..................................................................................................................................................2 8.Web Server Add−ons............................................................................................................................2 9.Intranet Section.....................................................................................................................................2
    [Show full text]
  • Fortiweb 4.0 MR4 CLI Reference, 1St Edition
    CLI Reference for FortiWeb™ 4.0 MR4 Courtney Schwartz Contributors: George Csaba Martijn Duijm Patricia Siertsema Idan Soen Shiji Li Hao Xu Shiqiang Xu Forrest Zhang Contents Introduction ............................................................................................24 Scope ............................................................................................................................. 24 Conventions .................................................................................................................. 25 IP addresses............................................................................................................. 25 Cautions, notes, & tips.............................................................................................. 25 Typographic conventions.......................................................................................... 25 Command syntax...................................................................................................... 26 What’s new .............................................................................................28 Documentation changes .............................................................................................. 32 Using the CLI ..........................................................................................34 Connecting to the CLI................................................................................................... 34 Connecting to the CLI using a local console............................................................
    [Show full text]
  • Webdav a Network Protocol for Remote Collaborative Authoring on the Web E
    WebDAV A network protocol for remote collaborative authoring on the Web E. James Whitehead, Jr.† & Yaron Y. Goland‡ †Dept. of Info. and Computer Science, U.C. Irvine, USA, [email protected] ‡Microsoft Corporation, Redmond, WA, USA, [email protected] Abstract. Collaborative authoring tools generate network effects, where each tool’s value depends not just on the tool itself, but on the number of other people who also have compatible tools. We hypothesize that the best way to generate network effects and to add collaborative authoring capability to existing tools is to focus on the network protocol. This paper explores a protocol-centric approach to collaborative authoring by examining the requirements and functionality of the WebDAV protocol. Key features of the protocol are non- connection-oriented concurrency control, providing an upward migration path for existing non-collaborative applications, support for remote manipulation of the namespace of documents, and simultaneous satisfaction of a wide range of functional requirements. Introduction Despite many compelling research examples of collaborative authoring, so far their impact on actual authoring practice has been limited. While BSCW (Bentley et al., 1997) and HYPER-G (Maurer, 1996) have developed communities of use, electronic mail remains the dominant technology used for collaborative authoring, mainly due to its ubiquity. In order to perform collaborative authoring, all collaborators need to use compatible authoring tools—typically all collaborators use the same tools, tailor- made to support collaboration. To collaborate using PREP (Neuwirth et al., 1994), all collaborators need to use PREP, likewise for GROVE (Ellis et al., 1989) and DUPLEX (Pacull et al., 1994).
    [Show full text]
  • An Introduction to HTTP Fingerprinting Table of Contents
    An Introduction to HTTP fingerprinting Saumil Shah [email protected] 30th November, 2003 Table of Contents 1. Abstract 2. Theory of Fingerprinting 3. Banner Grabbing 4. Applications of HTTP Fingerprinting 5. Obfuscating the server banner string 6. Protocol Behaviour 6.1 HTTP Header field ordering 6.2 HTTP DELETE 6.3 Improper HTTP version response 6.3 Improper protocol response 6.5 Summary of test results 6.6 Choosing the right tests 7. Statistical and Fuzzy analysis 7.1 Assumptions 7.2 Terms and Definitions 7.3 Analysis Logic 8. httprint - the advanced HTTP fingerprinting engine 8.1 httprint signatures 8.2 httprint command line and GUI interfaces 8.3 Running httprint 8.4 The significance of confidence ratings 8.5 httprint Reports 8.6 Customising httprint 9. Trying to defeat HTTP Fingerprinting 10. Conclusion 11. References 1. Abstract HTTP Fingerprinting is a relatively new topic of discussion in the context of application security. One of the biggest challenges of maintaining a high level of network security is to have a complete and accurate inventory of networked assets. Web servers and web applications have now become a part of the scope of a network security assessment exercise. In this paper, we present techniques to identify various types of HTTP servers. We shall discuss some of the problems faced in inventorying HTTP servers and how we can overcome them. We shall also introduce and describe a tool, httprint, which is built using the concepts discussed in this paper. 2. Theory of Fingerprinting A fingerprint is defined as: 1. The impression of a fingertip on any surface; also: an ink impression of the lines upon the fingertip taken for the purpose of identification.
    [Show full text]
  • Software Libre Vs Software Propietario Ventajas Y Desventajas
    Software libre vs software propietario Ventajas y desventajas Culebro Ju´arez, Montserrat. G´omezHerrera, Wendy Guadalupe. Torres S´anchez, Susana. M´exico,Mayo 2006. ii ´Indice general Agradecimientos. VII Pr´ologo. IX Introducci´on. 1 1. Conceptos fundamentales sobre software. 3 1.1. Definici´onde software. 3 1.2. Definici´onde software libre. 3 1.3. Definici´onde software propietario. 4 1.3.1. Software propietario. 4 1.3.2. Objeciones al t´ermino “propietario”. 5 1.3.3. Software privativo. 5 1.3.4. Objeciones al t´ermino “privativo”. 5 1.3.5. Software no libre. 5 1.3.6. Objeciones al t´ermino “no libre”. 5 1.3.7. Software privado. 5 1.3.8. Objeciones al t´ermino “privado”. 6 1.3.9. Software con propietario. 6 1.3.10. Objeciones al t´ermino “con propietario”. 6 1.4. Software semilibre. 6 1.5. Freeware. 6 1.6. Shareware. 7 1.7. Abandonware. 7 1.8. Warez. 7 2. Visi´onhist´oricadel software. 9 2.1. La importancia del software. 9 2.2. Incursi´onde los hackers. 10 2.3. La cultura Unix. 10 2.4. GNU. 11 2.5. Libertad y costo. 12 2.6. Linux. 12 2.7. Open Source (c´odigoabierto). 14 2.8. El papel del software libre en el crecimiento de Internet. 14 2.9. Formatos abiertos. 15 2.10. Visi´onhist´oricadel Software propietario (Microsoft). 15 iii 3. Copyright, copyleft y patentes. 17 3.1. Copyright. 17 3.1.1. Derecho de autor y Copyright. 17 3.1.2. El contrato de copyright.
    [Show full text]
  • Migration from Windows to Linux for a Small Engineering Firm "A&G Associates"
    Rochester Institute of Technology RIT Scholar Works Theses 2004 Migration from Windows to Linux for a small engineering firm "A&G Associates" Trimbak Vohra Follow this and additional works at: https://scholarworks.rit.edu/theses Recommended Citation Vohra, Trimbak, "Migration from Windows to Linux for a small engineering firm A&G" Associates"" (2004). Thesis. Rochester Institute of Technology. Accessed from This Thesis is brought to you for free and open access by RIT Scholar Works. It has been accepted for inclusion in Theses by an authorized administrator of RIT Scholar Works. For more information, please contact [email protected]. Migration from Windows to Linux for a Small Engineering Firm "A&G Associates" (H ' _T ^^L. WBBmBmBBBBmb- Windows Linux by Trimbak Vohra Thesis submitted in partial fulfillment of the requirements for the degree of Master of Science in Information Technology Rochester Institute of Technology B. Thomas Golisano College of Computing and Information Sciences Date: December 2, 2004 12/B2/28B2 14:46 5854752181 RIT INFORMATION TECH PAGE 02 Rochester Institute of Teehnology B. Thomas Golisano College of Computing and Information Sciences Master of Science in Information Technology Thesis Approval Form Student Name: Trimbak Vohra Thesis Title: Migration from Windows to Unux for a Small Engineeriog Firm "A&G Associates" Thesis Committee Name Signature Date Luther Troell luther IrQell, Ph.D ttL ",j7/Uy Chair G. L. Barido Prof. ~~orge Barido ? - Dec:. -cl7' Committee Member Thomas Oxford Mr. Thomas OxfocQ \ 2. L~( Q~ Committee Member Thesis Reproduction Permission Form Rochester Institute of Technology B. Thomas Golisano College of Computing and Information Sciences Master of Science in Information Technology Migration from Windows to Linux for a Small Engineering Firm "A&G Associates" I,Trimbak Vohra, hereby grant permission to the Wallace Library of the Rochester Institute of Technology to reproduce my thesis in whole or in part.
    [Show full text]
  • Alark Joshi Dept
    Alark Joshi Dept. of Diagnostic Radiology, Yale University Voice: (203) 737-5995 300 Cedar Street, TAC N138 E-mail: [email protected] New Haven, CT 06511 Website: www.cs.umbc.edu/˜alark1/ August 12th, 2008 RESEARCH INTERESTS Computer Graphics and Visualization. Primary interests and areas of expertise include volume visualiza- tion, non-photorealistic rendering and time-varying data visualization. EDUCATION February 2008 - Present Postdoctoral Associate. Department of Diagnostic Radiology, Yale University. “Novel visualization techniques for neurosurgical planning and stereotactic navigation” Advisor: Dr. Xenophon Papademetris. November 2007 Ph.D. Computer Science. University of Maryland Baltimore County. “Art-inspired techniques for visualizing time-varying data” Advisor: Dr. Penny Rheingans. December 2003 M. S. Computer Science. State University of New York at Stony Brook. “Innovative painterly rendering techniques using graphics hardware” Advisor: Dr. Klaus Mueller. July 2001 M.S. Computer Science. University of Minnesota Duluth. “Interactive Visualization of Models of Hyperbolic Geometry” Advisor: Dr. Douglas Dunham. June 1999 B.E. Engineering/Computer Science, University of Pune, India. EMPLOYMENT HISTORY 02/08 - Present Postdoctoral Associate Department of Diagnostic Radiology, Yale University - Working on identifying visualization techniques for visualizing vascular data. - Developing novel interaction techniques for neurosurgical planning and navigation. - Developing visualization and software tools for BioImage Suite, an open
    [Show full text]