What...no blog?
While the thought of starting a blog has reared it head a few times in the past, I keep falling back on the realization that I like to talk much more than I like to type (Why not start a podcast then? I suppose I have steered clear of that idea simply because my criteria for verbal enjoyment is that there must be someone on the receiving end... even only if they are pretending to listen). With that in mind, don't expect a blog anytime soon... its not as if there is any shortage of blogs out there; the internet is choke full of blogs, most of which bring little to the table... plus what would I write? Most of my friends are computer illiterate, which means I would just end up rambling...and theres enough of that in the world as well.
That being said, feel free to browse around.
Lamb and what...?
To save you the trouble, here is a short clip which inspired us:
Me...
When I'm not hidden behind a computer screen I either causing some sort of debauchery with my friends, or playing sports...and if I get really bored, I play tricks on my dog.
I try and travel as much as I can, but there are only so many places you can visit when you only get 2 weeks off a year (I suppose that is one of the downsides of working for the man).
Site design
This site was built through a combination of CSS, Javascript, Flash & AJAX...so it goes without saying that if you have javascript disabled, well, things are gonna look pretty weird. It has been validated as XHTML 1.0 Strict and tested on Firefox 2, Internet Explorer 7 & Safari (If you use Internet Explorer 6, the site might look a bit wierd, but things should still work).
Contact
Like most people, I have been bitten by the myspace bug (though I have been able to curb the habit a bit...fighting the urge to check my page every fifteen minutes)...so you can find me on there as well.
Projects
Note: I would have a lot more interesting stuff from my time at school, but on the day I graduated (literally, the day I walked for my MS) my hard drive decided to take a crap on me and died. So I lost everything, including 5 years of coursework, pictures, contacts, etc.
Mr. ContactsSeptember 2007
I used the Animated Transitions library to fade and move between the four main screens. The first screen includes some custom made buttons, and well as a mouse over animation (using the Timing Framework). The second screen (Add Contact) utilizes the Layered Pane to incorporate user input validations on the fly (rather than waiting for the user to hit a Submit button). The last two screens screens (Browse & Search Contacts) animate sorting with a JTable.
You can give is a run for yourself (requires Java 1.6+)
or just check out the screencast.Wizard FrameworkJune 2006
Since most wizards are process oriented, and processes can encounter errors, each panel can flow in several different directions, thus abstract methods are used to determine which panel should be displayed next and whether the user can cancel the current process. Other abstract methods are implemented to streamline field validations, panel cleanup and panel initialization.
To spiffy things up a bit, I used SwingX's painter classes (as well as some others), and utilized a side panel which informs the user of the current step in the process.
You can give is a run for yourself (requires Java 1.5+)
or just check out the screencast.PanamaOctober 2005
I used this as an opportunity to play around with a few Java technologies:
- NIO (new I/O)
- Drag n' Drop
- Zip/Compression
- And some graphics (i.e. Reflections, GradientPaints, GlassPanes, etc) & animations inspired by some blogs I read.
I signed the jar since this application requires full system permissions, but if you don't trust me for any reason, I made this nifty little screen cast just for you:
You can give it a try yourself (requires Java 1.5+)
or you can download the jar for your own personal use.Note: you'll need to run two instances on the same machine just to see how it works, but the transfers fly by, so beware.
Update: I later found out that much of what I did by hand can be automated using SwingX, Timing Framework, & Animated Transitions. Oh well, you live & you learn I suppose.
Wind SimulatorMarch 2004
To get wind effect we incorporated several springs within each grass blade and applied an appropriate force in order to simulate the motion caused by blowing wind. You can also zoom in/out of the scene, during which two different Level of Detail (LoD) filters are applied to the grass field depending on the depth value of each individual grass blade. One LoD filter applied utilizes the concept of face merging on each individual grass blade, while the other involves texture maps to give the look and feel of a more realistic grass blade, without having to render them individually.
You can interact with the grass field, by rotating the field, zooming in/out, and use a navigation tool which allows you to specify the direction and speed of the wind.
For more information, check out a more detailed report.
Utah TeapotFebruary 2004
In hindsight, the UI for these controls is of terrible design; I suppose that when your in school time is truly of the essence, and using a dialog was much quicker (and dirtier) than creating custom buttons and controls, which would have looked much better embedded into the applet.
You can give it a try yourself, or just check out the screencast.
Note: If you feel like going through the hassle of changing your security permissions for applets, you can load different objects and give them a try (Or you can email me for the class files and use appletviewer).
Arash Nikkar
Objective
Self motivated software engineer with strong education and practical experience in desktop application development looking for a challenging position where my productivity, drive for knowledge, and hard work can be put to the test.
Education
- M.S. Computer Science, University of California, Santa Barbara (June 2004)
- B.S. Computer Engineering, University of California, Santa Barbara (June 2003)
- Graduated with Honors − GPA 3.78
- Enrolled in 5-year B.S./M.S. program at UCSB
- Participated in Education Abroad Program (EAP) at Lund University, Sweden during Fall term of 2002
Programming Experience
- Extensive Java programming knowledge
- C, C++, Ruby & Perl experience
- OODBMS & RDBMS knowledge − db4o & MySQL
- XML, HTML & CSS experience
- Ruby on Rails
- Java: Swing, Graphics2D & 3D, Custom GUI Components, JNI, Applets, Sockets, RMI, Reflection, JDBC, Threading
Programming Environments & Tools
- PCs & Macs
- Windows XX, Dos, Unix & OS X
- Apache Ant
- CVS / WinCVS
- IntelliJ IDEA & Netbeans
- Rational Rose
- JProbe
Graduate Lab Work
- Designed and implemented an Ad Hoc Peer To Peer Wireless Instant Messenger & ported it to a Handheld PC (Compaq iPAQ)
- Implemented T-AOMDV: Transport Aware Ad hoc On-Demand Multi-path Distance vector routing in ns-2.
- Implemented a Distributed Warehouse Inventory application with a Client Query Interface involving GUI programming, Applets, Sockets, Remote Method Invocation (RMI), Java Web Services Development Pack (JWSDP), Servlets, & Java Database Connectivity (JDBC w/ MySQL)
Work Experience
Software Engineer − Hulu, Los Angeles, CA
June 2004 to January 2008
Senior Software Engineer − Alfred Mann Foundation, Valencia, CA
June 2004 to January 2008
- Team & Project Lead: Lead up to six people during entire software cycle for 2 separate large scale projects (Requirements, Design, UML, Implementation, SQA, Validation, Delivery, & Support)
- Developed & maintained several large sophisticated Biomedical Applications (Core Java, Swing, OODBMS, XML, Threading)
- Designed & developed a powerful custom user tool for drawing stimulation patterns for implantable devices (Java Swing, Graphics2D, SwingX)
- Implemented a Stimulation Analysis Tool to verify stimulation output of implantable devices (Java, JNI, C, USBScope)
Lead Engineer & Architect − T9Space.com, San Diego, CA
August 2006 to August 2007
- Built web application incorporating user accounts & customizations, web scraping & SMS tools. (Ruby on Rails, Perl & HTML)
- Implemented custom html scraping tool & web proxy which removed unnecessary HTML and reduced web pages for viewing in mobile environments
- Setup and maintained server using Apache, Mod_Perl, MySQL, PHP, Ruby, Mongrel, etc.
Computer Science Teaching Assistant (TA) − University of California, Santa Barbara, CA
March 2004 to June 2004
- Lead lectures and discussions for Programming Methods course (Data Structures & Abstractions within Java)
- Adapted teaching skills to varying students' learning abilities.