Introducing 

Prezi AI.

Your new presentation assistant.

Refine, enhance, and tailor your content, source relevant images, and edit visuals quicker than ever before.

Loading…
Transcript

But SWT alone can't handle it all

Testing

JNA

Building of

open -source

Angry IP Scanner

Network scanning

cross-platform

fast and friendly network scanner

Searching of addresses

with specific properties

extensible

Network inventory

or creating

cross-platform

desktop apps

user-friendly

Purposes of scanning

Anton Keks, @antonkeks

Maintenance

Offensive

Defensive

Timeline

v 3.x

v 2.x

plugins

pull-requests

contributors wanted :-)

but...

- first CVS commit

wow, people actually

download it!

plugins, new features

downloads

of 3.x and counting...

Problems with Windows

development continues...

Started as a toy project

jpcap / winpcap

there are still too many

Windows users

github.com/angryziber/ipscan

Full rewrite in Java

still C++, still Win32

9 000 000

Demand grows...

Featured in books, magazines, CDs, etc

Uploaded to web

Mostly rewritten

OS fingerprinting

1 000 000 downloads

C++ w/ MFC

2001

GPL

v 1.x

2005

now

future

2002

1998

PicoContainer

JNA

SWT

rocksaw

i18n

Better productivity

(than C++)

"Write once,

run anywhere"

LibraryLoader

Lots of experience

CODE

Unit tests

Open-source

pingers

Java

Fairly good and

easy network API

JNI / JNA

if needed

Executors

build/packaging

Plugins

ant

deb

rpm

Available on most

machines already

Multithreading

built-in

launch4j

nsis

GUI

(in Java)

from Eclipse project

Swing

SWT

themes

+ already included in the JRE

+ full native look and feel

future-proof

- non-native look

what user expects

+- slightly unusual API

- feels slow

esp in 2005

- need to distribute with the app

human

HIG

interface

Packaging

or how users run your software

guidelines

.exe

App bundle

menus

.deb

.rpm

Launch4j - to the rescue

.dmg

.zip

ipscan.exe

java -jar ipscan.exe

dpkg-deb

rpmbuild

shortcuts

alien

button order

vs

32-bit

64-bit

Like HTML, good UI needs to be

HELL

crafted by hand

binary

packages

9

ant

handles them all

(size does matter)

Dependency Injection

Plugins

picocontainer

holds all code together

.jar

even GUI components

50kb

manages plugins

Feeder

Exporter

Raw Sockets

Fetcher

for low-level network operations

IP

UDP

ICMP

TCP

Pinger

rocksaw

- JNI

iphlpapi.dll

WinXP+

Java

Native

Access

Finally, no native code!

Learn more about creating dynamic, engaging presentations with Prezi