Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Software Development for Lawyers

Software Development for Lawyers

A presentation to UK law firm Norton Rose covering software development concepts, including source code, libraries, licensing, and networking.

Mike MacCana

April 19, 2012
Tweet

More Decks by Mike MacCana

Other Decks in Technology

Transcript

  1. Writing source Code ✤ Written in a language - a

    way of telling a computer what to do. ✤ Popular programming languages are: Python, Ruby, VB, Java, C#, C, and C++
  2. Turning source into programs ✤ In order to use the

    recipe, we need to bake it. This is called compiling. ✤ Compiling turns the source code into a finished program, that the computer can run.
  3. GEE, THAT SEEMED EASY ✤ We used libraries to take

    care of the work ✤ Libraries are pre-built components that make things easier for programmers. Mac OS X Python Facebook Library Our Test Program
  4. BUT HOW DID OUR PROGRAM CONNECT TO THE NETWORK? MAKING

    COMPUTERS TALK TO OTHER COMPUTERS.
  5. ✤ Each computer has an IP address ✤ Each program

    has a port number... Server computer 10.0.0.3 25: Mail server 80: Web server 22: File server Connecting to other programs over a network
  6. ✤ Programs on other computers connect to the port for

    the application they want, on the address of the other computer Server computer 10.0.0.3 25: Mail server 80: Web server 22: SFTP server Client computer Address: 10.0.0.1 Outlook Client computer Address: 10.0.0.2 IE / Firefox Connecting to other programs over a network
  7. ✤ Firewalls stop particular network activities, and allow others ✤

    Example: most offices ban the ports used for Skype Server computer 10.0.0.3 25: Mail server 80: Web server 22: SFTP server Client computer Address: 10.0.0.1 Outlook Client computer Address: 10.0.0.2 IE / Firefox Firewall Firewalls
  8. ✤ Sometimes computers aren’t closely connected to each other ✤

    Routers are used to direct the traffic. Google Your home computer Routers Home Router ISP Router Google’s Router
  9. Both the internet and your office work this way. THE

    COMPUTERS HAVE IP ADDRESSES, THE PROGRAMS HAVE PORTS.
  10. Proprietary Software ✤ Distribute the result, but keep the recipe

    secret. ✤ Internet Explorer, Microsoft Office ✤ Used when the software itself is sold
  11. Open Source Software ✤ Meets Open Source Definition - opensource.org

    ✤ Source is available, but author still retains copyright ✤ License may specify that modified copies of the work are kept available ✤ Firefox, Java, Linux, parts of Mac OS ✤ Used when support services are sold (eg, IBM, Red Hat), it helps get products to market faster (Apple), or other reasons.
  12. Application VMs Windows Linux Java / Ruby / Python /

    .net & mono / Flash Any apps that run on the VMs below. Mac OS X
  13. Hardware VMs Virtual Hardware Operating System Libraries Applications (or Hypervisor

    Hardware Virtual Hardware Operating System Libraries Applications (or
  14. Bugs! ✤ Could be broken hardware ✤ But most of

    the time it’s human error ✤ The person making the program ✤ The person using the program ✤ Common problem: certain user inputs aren’t checked by the program.