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.

23fc4556be14017796d38579dd4778ab?s=128

Mike MacCana

April 19, 2012
Tweet

Transcript

  1. SOFTWARE BECAUSE YOU NEEDED MORE JARGON AT WORK FOR LAWYERS

  2. How software is.... 1. Made 2. Combined with other software

    3. Networked
  3. To make software, first write a recipe. The recipe is

    called source code.
  4. 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++
  5. 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.
  6. CONGRATULATIONS. YOU’RE A PROGRAMMER A WORLD OF GLAMOR AND EXCITEMENT

    BECKONS
  7. 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
  8. Software relies on other software Operating System Libraries Applications

  9. For example... Windows MS Visual C Word Android Java VM

    Google Maps Mac OS X KHTML Safari
  10. OS X OpenGL KeyNote Linux Rails RiskManager Ruby Or this

    Presentation... or RiskManager.
  11. BUT HOW DID OUR PROGRAM CONNECT TO THE NETWORK? MAKING

    COMPUTERS TALK TO OTHER COMPUTERS.
  12. ✤ 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
  13. ✤ 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
  14. ✤ 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
  15. ✤ 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
  16. Both the internet and your office work this way. THE

    COMPUTERS HAVE IP ADDRESSES, THE PROGRAMS HAVE PORTS.
  17. Questions and Answers

  18. SECRET SQUIRREL SECTION FOR PEOPLE THAT ASK TOUGH QUESTIONS

  19. Proprietary Software ✤ Distribute the result, but keep the recipe

    secret. ✤ Internet Explorer, Microsoft Office ✤ Used when the software itself is sold
  20. 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.
  21. Application VMs Windows Linux Java / Ruby / Python /

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

    Hardware Virtual Hardware Operating System Libraries Applications (or
  23. 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.
  24. THANKS. Mike MacCana mike.maccana@gmail.com www.linkedin.com/in/mikemaccana