# Long story short
I am software engineer with seven years of experience. I got my first computer many years ago and it was truly awesome, world's bestselling personal computer - Commodore 64.
As a teenager I was interested in playing & writing games and demoscene. This naturally lead me to computer science, however during my first job my interest evolved towards web design, rich UI applications and data presentation layer.
I love to work with well designed, clean and testable code and I have really good time doing awesome things, as it was never easier to develop front-end!
Protocols and storage PostgreSQL, MySQL, JSON, AJAX
Web servers Apache, Nginx, Lighty
Testing Qunit, Jasmine, Karma, PhantomJS, BrowserStack
Visualisation HTML Canvas, SVG, FusionCharts, HighCharts, D3, Raphael.js, Processing.js, OpenGL
Graphics and design Gimp, InkScape, SketchUp, Balsamiq, Pencil
Source control SVN, Git, Perforce
Task management Redmine, Jira GreenHopper
Operating systems Linux, FreeBSD, Windows 7
# Cool things
# Snapshot Serengeti
I made these wireframes in my own free time as a proposition of mobile friendly version of Snapshot Serengeti page. It is one of the awesome projects hosted by Zooniverse. A lot of people spend hours everyday traveling to work and back home, so it is crucial to let them do science on the go! ;-) I am not an author of original project, which is pretty good by the way! I have only optimized navigation and rearranged layout to be more responsive.
I have create these wireframes for Chronos weekend project. It was pretty interesting initiative, as originally we planned to deliver awesome piece of software and replace corporate holiday tracking system - software equivalent of torture chamber ;-) I suggested to do use angular.js and follow modern work flow with grunt and bower. Eventually we could give something back to the community and open-source it, however team lost motivation unexpectedly before any work started ;-)
I have used wireframe toolkit from eleqtriq.com. It is really nice!
# Force based diagram
Implementation of force based algorithm. Physics! I love physics! ;-) Position of nodes in the graph depends on the resultant force - set of forces reduced to single vector. There are three main forces computed for each node in each step:
- repulsion based on Coulomb's law, as all nodes carry the same charge
- resilience of spring connecting nodes based on the Hooke's law
- gravity force which pulls up nodes, so single nodes or separated groups stay fairly close to the center of mass
Initial position is random - far from optimum in terms of energy. Such a state is very unstable and once simulation starts diagram stabilizes. At the end of simulation graph is in it's local minimum state of energy, which might not be global minimum (perfect state), but often is good enough. Energy minimum means that all spring driven forces are in balance with repulsion electric forces. Physically nodes are not moving anymore and kinetic energy is zero or almost zero. Another important thing is friction dampening. it wastes energy, so simulation stops, otherwise it would keep moving forever - it is called perpetum mobile ;-)
Each node has a mass, size and color depending on it's value read from data set. In other words bigger value - bigger mass and size of bubble. Relation between nodes is expressed by length of spring, closer relation - shorter spring.
# RC model flying
This is presentation about my hobby - RC helicopters. It was very interactive session which attracted wide audience. Agenda was unnecessary, as we jumped straight into Q&A almost immediately ;-)
HTML invitation is available on my GitHub:https://github.com/pjackowski/presentations
# Password security presentation
This is presentation about security I created for my colleagues in Amdocs. Password security is very important, but often disregarded. In general information security does not seem to be important topic for typical developer unfortunately. I decided to share my experience and prepared few slides (actually 137 ;) in my free time. It was pretty cool event, as this was my first bigger "public" talk since I finished studies. I have learned a lot and refreshed my knowledge. I think it was awesome!
HTML invitation and slides are available on my GitHub:https://github.com/pjackowski/presentations
# Introduction to Webstorm
This is presentation about JetBrains Webstorm, excellent IDE for front-end developers. I truly believe that one has to master own tools before can archive real magic. Webstorm is my tool of choice and I really love it! ;-)
HTML invitation and script are available on my GitHub:https://github.com/pjackowski/presentations
# Reports (v5)
This is the last version of report I developed for Bluemetrix in early 2012.
- single page application written in jQuery/jQuery Standard UI, HTML and CSS
- Python/Django on the back-end side
- lightweight MVC architecture, jQuery inheritance
- jQuery.tmpl templates
- JSON/AJAX/REST communication protocol
- PostgreSQL as persistent data storage
- data visualization in FusionCharts and DataTables
- Qunit, crossbrowser testing by BrowserStack
# Reports (v3)
Large UI project developed in OpenLaszlo (mixture od XML and JS compiled to Flash binary) in 2007-2009 for Bluemetrix. Application offered access to various reports written in Python and Django. Interface was fully localised and three languages were supported: Japanese, Finnish and Norwegian.
- single page application written in OpenLaszlo
- Python/Django on the back end side
- MVC architecture enforced by OpenLaszlo
- XML/AJAX/REST communication protocol
- PostgreSQL as persistent data storage
- FusionCharts as data visualisation layer
# Visualization of porous materials
Program generates 3D porous (granulated) material with fixed location of pores. Pores position is calculated by physics engine with collision detection.
# Basic 3D engine
Engine creates 3D landscapes covered with textures and renders simple objects. It loads necessary data such as textures or height maps from uncompressed files. Parameters of scene can be changed by command line parameters. To be honest it is not very powerful software, but that time (2003-2005) I was really proud of it. I planned expand engine into RTS (real time strategy) game. However it never happened. Instead I managed to reuse big chunks as foundation for my final university project (see "Visualization of porous materials" above).
# Telescope 3D model
3D telescope model designed in SolidWorks. This is very accurate model (up to millimeters) of telescope bought ages ago. Project was fully interactive and composed of many movable parts. Constrains define position and way how parts move and respond to forces.
# Twitter search
Quick demo how to use Twitter search API. Implemented ages ago in Backbone. Nothing really interesting. Keep scrolling ;-)
Yet another tetris-like game, written in C++ and OpenGL many, many years ago. To be honest writing this game was more exciting than playing ;-)
# Gauss function visualisation
Visualization of Gaussian function. The graph shows characteristic, symmetric "bell curve" depending on the parameters.
# Particle engine
Very small application which demonstrates particle system powered by OpenGL.
# Racing Horses webpage
Proposition of web page made for a customer, unfortunately never released, as client changed mind. Surprisingly it looks quite fresh and clean, despite fact that demo was made in 2007.
# Car & Van Solutions webpage
Quick proposition of web page made for customer, never finished, as client changed mind.
# Internet Topology Generator
PHP scripts create visualizations of network topology with BRITE (Boston University Representative Internet Topology gEnerator).
# Homepage (v1)
Old background of my homepage. I found this photo of skeleton statuette few years ago and decided to improve it a bit and turn into nice background. Author of original photography is unknown. If you recognize your work and if it makes you upset, please contact my lawyer. You can make loadz of monies! ;-)
# Homepage (v2)
# Databases visualizer
PHP scripts display database structure in SVG. Pretty cool considering fact that SVG standard was not so friendly that time.
Implementation of polynomial interpolating algorithm (screenshot on the LHS). Program finds best continuous function resolving specified points entered by user. Second program (screenshot on the RHS) provides fuzzy arithmetic operations, such as addition, subtraction or product. User can enter data through interface (4 coordinates for both fuzzy numbers) and evaluate result of operation on the chart.
# Sedimentation process simulation
This application evaluates sedimentation velocity of particles. Code written in C++, GUI based on Visual Component Library (VCL). User can enter parameters, such as: diameter of particles, material type (fine/coarse sand), water temperature (density and viscosity depends on it) and observe how quickly solution stabilizes. To be honest UI pretty sucks, but from time perspective I think this project was quite interesting, as I really love physics and math, despite fact I understand so little ;-)
# Simple stock monitor
Page gathers information from various sources. It makes easy to take a quick look and see what happened recently on the markets. Charts includes important indices, interesting stocks, currencies and commodities in various time frames. Page was designed to be very simple and fast, so it does not give thousand of options and does not require complicated setup. However small changes are possible in the control panel at the bottom of the page.
I am interested in many things, mostly related with technology or science, but I also like hiking and bike riding.
# RC models
I have few radio controlled helis. Smaller models came in RTF (ready to fly) packages, but the biggest: 6-channel CopterX-450 were built from kit with mechanical parts only. Electronic equipment was chosen and bought separately. It is very precise, powerful flying machine and it works in the same was as real helicopters, therefore it is not easy to fly. Chinook is actually a toy, stable and friendly. It does not really fly like real heli. Lama V4 is proper 4-channel helicopter with two main rotors, which also makes it very good as first indoor model.
I built below depron plane from scratch in autumn 2012. It is cheap and simple model, but I have spent about 4 weeks to cut, glue and assemble it. Partially, because this was my first fixed-wing model, but mostly because plans I downloaded were incomplete. They covered only shapes and sizes of all foam elements, so I had to find the way to put all pieces together. At the moment I am planning to build second one, bigger and more powerful with plenty of electronics installed on board such as AP (Autopilot), OSD (On Screen Display with telemetry), GPS, etc.
My cats, all three were rehomed or found homeless. The smaller black & white is unfortunately missing since 2011.
# Open source
I am translation maintainer and coordinator of Polish translation of open source game: The Battle for Wesnoth. It is a turn-based, strategy game with a fantasy theme. Wesnoth has many different campaigns and scenarios waiting to be played. It is very mature and stable project being under development for couple years. Thousands of volunteers created hundreds of beautifully animated units, at least two dozens of balanced races and factions. The world of Wesnoth is absolutely huge and only limited by your creativity. You can make new units, maps and write your own scenarios or even entire campaigns! Game can be played either in single player or multiplayer mode on one machine or over network. There are 16 main line campaigns available and countless single scenarios.
# Citizen science, because science is awesome!
The Zooniverse is home to the internet's largest, most popular and most successful citizen science projects. Create account, pick a project, start classifying data and help scientists. You can keep track of your all contributions on The Zooniverse page. So far I classified couple thousand samples and I was involved in below projects:
From my perspective crowd science is very interesting concept and I am really glad to see it emerging and being more and more popular. I always loved open source and many people would love it too, however not everybody has essential skills or want to spend even more time coding. Zooniverse gives opportunity to learn actual science and take a break from day-to-day coding practice.
# The Andromeda Project
Primary purpose of The Andromeda Project is to identify thousands of star clusters in the Andromeda Galaxy and hidden galaxies that lie behind. Images are taken with the Hubble Space Telescope as part of the Panchromatic Hubble Andromeda Treasury project. M31 Andromeda is the closest spiral galaxy to our own Milky Way and researchers would like to take this unique opportunity to examine distribution of clusters in detail. In my opinion the best thing is fact that majority of identified clusters were never classified in any catalogue before! Every volunteer has great chance to participate in this unique project and have significant impact on astronomical knowledge database.
# Galaxy Zoo
Galaxy Zoo is large-scale galaxy research project. Volunneers are classifying millions of galaxies found in the Sloan Digital Sky Survey. Scientists would like to understand how galaxies formed and you might help to classify them according to their shapes. Most of the time you find either elliptical or spiral galaxies, but there are also many irregular, disturbed and merging galaxies. Mergers are truly awesome! If you are quick, you may even be the first person to see objects you are asked to classify!
# Planet Hunters
Planet Hunters is all about hunting... extraterrestrial planets. NASA's Kepler spacecraft is one of the most powerful tools in the hunt for extrasolar planets. Unfortunately it has suffered a mechanical failure in 2013, when one more of the reaction wheels stabilizing spacecraft stopped working. Despite fact that instrument might be no longer useful, computers are sifting through the large amount of data already collected. Planet Hunters are betting that there will be planets which can only be found via the remarkable human ability for pattern recognition.
# Snapshot Serengeti
Snapshot Serengeti is providing a powerful new window into the dynamics of Africa’s most elusive wildlife species. They need your help to classify all the different animals caught in millions of camera trap images collected in Serengeti National Park. Main purpose of project is to understand how various kinds of species can coexist. I find it pretty interesting, mostly because I love animals. This is unique opportuinity to understand their behaviour and learn a lot. Not all pictures are so easy to classify, as you migh think. Sometimes individual spicies are so similar or only fragments are visible.
# Space Warps
Space Warps is something for fanboys of Albert Einstein! ;-) Massive galaxies warp space-time around themselves, bending light rays so that we can see around them. When it happens to sit right in front of a background galaxy, the magnification factor can be up to x10 or even more, giving us a zoomed-in view of the distant universe, just at that particular point. Lenses can help us investigate young galaxies more than halfway across the universe, as they formed stars and started to take on the familiar shapes we see nearby. Observations of the distorted background galaxy can also give us useful information about the object that is behaving as a gravitational lens. These gravitational lenses are very rare and difficult to find. Pick your targets and engage!
# Planet Four
Planet Four project is a must for everybody interested in Mars and great opportunity to explore surface of Red Planet. Using HiRISE data from the Mars Reconnaissance Orbiter, volunteers are studying wind patterns on the Martian surface. Main purpose of project is to identify and measure features left by geysers of carbon dioxide bursting trough ground layer and carrying eroded, loose material. Scientists would like to understand Mars’ climate and see how these features form, evolve, disappear and reform.
# Cell Slider
Cell Slider joins efforts of thousands of volunteers donating their time to cancer research. Collaborative force helps to discover cancer breakthroughs for future generations. Each classification made brings us a step closer to beating cancer. The more time you can give, the faster we will get there!
I designed and completed below workbench project in 2011. I was not able to find exactly, what I was looking for, so I started thinking about DIY. Once I had rough sketch and I knew what kind of wood was available in local shops, I was ready to create 3D model in Google SketchUp.
It was very interesting project and first furniture I have ever made, therefore I have learned a lot. Bench is very stable and stiff, however I had to add diagonal slats in order to support legs.
I find this table very handy, especially when I solder or do smaller works. Workbench is equipped with 2x40W fluorescent lamps, which give plenty of light. Drawer works smoothly, as it is mounted on ball bearing sliders. The only bad thing about drawer is it's size, it is always too small! ;-) Hey, but I can add second one any time I want, as modularity was part of original plan. Top shelf and board with hooks are also extremely helpful, everything according to my requirements. That is the best of all DIY projects - only thing that limits you is your imagination!
# Project Euler
Project Euler named after Leonhard Euler, is a website dedicated to a series of computational problems intended to be solved with computer programs. The project attracts adults and students interested in mathematics and computer programming. It includes over 400 problems, with a new one added every Saturday. Problems are of varying difficulty but each is solvable in less than a minute using an efficient algorithm on a modestly powered computer. Since its creation in 2001 by Colin Hughes, Project Euler has gained notability and popularity worldwide and currently has about two hundred and sixty thousand users from all over the world. (Wiki)