Esempio n. 1
0
from project_module import project_object, image_object, link_object, challenge_object

p = project_object('skyline', 'Skyline generator')
p.domain = 'http://www.aidansean.com/'
p.path = 'skyline'
p.preview_image    = image_object('%s/images/project.jpg'   %p.path, 150, 250)
p.preview_image_bw = image_object('%s/images/project_bw.jpg'%p.path, 150, 250)
p.folder_name = 'aidansean'
p.github_repo_name = 'skyline'
p.mathjax = False
p.tags = 'Maths,Toys'
p.technologies = 'canvas,CSS,HTML,JavaScript'
p.links.append(link_object(p.domain, 'skyline', 'Live page'))
p.introduction = 'One of the features I want on my webpage is the silhouette of a skyline to use as background image.  This project is aimed at allowing the user to draw a complex skyline, with the possibilty for animation.'
p.overview = '''The user can create individual "buildings" with many layers, and then arrange the buildings into a skyline to generate an image.  If possible, the user can animate the image (for example adding lights at night, allowing the sky to change to match the time of day.)

The design would take place on the canvas, with a suite of tools to allow the user to correctly determine the size of buildings, add arches, spires etc.  A second layer would allow the user to add windows, and a third layer would allow them to add other features.  These would then be saved to file and a script would read the file to render the images on screen.  The images would be rendered on a canvas that sits behind the main content of the page.  This project is largely a problem of geometry.'''

p.challenges.append(challenge_object('Initially I wanted to set the canvas as the background of the page.', 'There are methds of taking the content of a canvas and using it to draw images that can be used with the DOM.  I tried to use Javascript to change the source of the background image to match the canvas, but this lead to "flickering" effects, even when to canvases were used.  As a result this was not a viable option.', 'Abandoned'))

p.challenges.append(challenge_object('The user needs a simple and intuitive interface.', 'This project allows the user to draw wire frames for the buildings.  They can draw straight lines, circle arcs, and quadratic curves.  The interface is not perfect, but it is easy enough to quickly make buildings.  A grid is also provided so the user can keep track of sizes.', 'Resolved'))

p.challenges.append(challenge_object('This projects needs to be able to calculate interections and unions of polygons.', 'One of the hardest problems to solve is the interserction and union of two shapes, so that the user can make complex shapes.  This is a non-trivial problems of geometry and finding solutions online was not east.  I honest cannot remember if I completely solved this problem or not.', 'Resolved, to be revisited'))

p.challenges.append(challenge_object('This project would ideally respond to the client\'s time.', 'Animation and time dependence has not been implemented yet, but eventually the colour of the sky and weather would chance, lights would turn on and off, and vehicles would move.  This should be relatively simple to implement, once I find the time.', 'To do'))
Esempio n. 2
0
from project_module import project_object, image_object, link_object, challenge_object

p = project_object('i', 'i (greasemonkey)')
p.domain = 'http://www.aidansean.com/'
p.path = 'i'
p.preview_image_ = image_object('http://placekitten.com.s3.amazonaws.com/homepage-samples/408/287.jpg', 408, 287)
p.folder_name = 'greasemonkey'
p.github_repo_name = 'i'
p.mathjax = False
p.links.append(link_object(p.domain, 'indigo/', 'indigo page'))
p.introduction = 'One of the projects I wrote was an indico uri shortening service, called <em><a hhref="http://aidansean.com/projects/?p=191">i</a></em> (or indigo, depending on how ugly "<em>i</em>" looks in context) but I wanted to go a step further.  So I write a greasemonkey script so that I could get to indico pages without even loading the main page.  This takes up very few pixels on the screen, making it much faster to get to the meeting pages.'
p.overview = '''This is a rather simple script.  It simply redirects (in a new tab) to the <em>i</em> page, which redirects to indico.'''
Esempio n. 3
0
from project_module import project_object, image_object, link_object, challenge_object

p = project_object('boxer', 'Box filler')
p.domain = 'http://www.aidansean.com/'
p.path = 'boxer'
p.preview_image = image_object('%s/images/project.jpg' % p.path, 150, 250)
p.preview_image_bw = image_object('%s/images/project_bw.jpg' % p.path, 150,
                                  250)
p.folder_name = 'aidansean'
p.github_repo_name = 'boxer'
p.mathjax = True
p.tags = 'Frvilolous'
p.technologies = 'CSS,HTML,JavaScript'
p.links.append(link_object(p.domain, 'boxer/', 'Live page'))
p.introduction = 'This is a rather frivolous script I wrote to serve some sort of purpose, but I forget exactly what that purpose was.  I think it may have been to create a random sitemap using images from various pages.  It takes rectangular array of squares and fills it with squares (or boxes) of random sizes.  Then to make it look more attractive it fills each rectangle with a picture from <a href="http://www.placekitten.com">placekitten</a>.'
p.overview = '''The tool allows the user to create a plot in several steps.  Each entry can be styled quickly and simply, and bands can also be added around different groups of results.  The user can specify up to three uncertainties (for example, statistics, systematic, and theoretical) which can be asymmetric.  The output is an SVG document, giving a very clean and slick image that scales well.  Unfortunately this is not as well suited for creating bitmaps, and also relies on server side (PHP) scripting.'''

p.challenges.append(
    challenge_object(
        'The only real challenge here is to make sure none of the squares end up more than one box.',
        'This challenge is overcome by choosing a square at random which has not yet been used, then finding the largest possible box size starting from that square, \(n\).  A random number is thrown in the range \(1,n\) to determine the box size.  Each square which fits in this box has it status changed to "used".  This process is repeated until all squares are accounted for.',
        'Resolved'))
Esempio n. 4
0
from project_module import project_object, image_object, link_object, challenge_object

p = project_object('ScramBuildEggs', 'ScramBuildEggs')
p.domain = 'http://www.aidansean.com/'
p.path = ''
p.preview_image_ = image_object(
    'http://placekitten.com.s3.amazonaws.com/homepage-samples/408/287.jpg',
    408, 287)
p.github_repo_name = 'ScramBuildEggs'
p.mathjax = True
p.introduction = 'This project parses a build log and gives more untuitive output.'
p.overview = '''This is a script that parses the build log created by the CMSSW command "scram build" (hence the name!)  It takes the output, wraps it to a more readable width, splits errors by type and colours them, and also gives more useful output.  It's not complete yet, but it is already rather useful.'''