Some more tweaking.
1.1 --- a/books.html Sun Dec 18 03:44:26 2011 +0100
1.2 +++ b/books.html Sun Dec 18 15:57:15 2011 +0100
1.3 @@ -89,8 +89,10 @@
1.4
1.5 </div>
1.6 <div id="sidebar">
1.7 - <p>
1.8 - <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
1.9 + <p>
1.10 + <a href="resume.html">
1.11 + <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
1.12 + </a>
1.13 <br />I'm a programmer,<br />
1.14 a student of computer science,<br />
1.15 a music enthusiast.<br />
2.1 --- a/dark.css Sun Dec 18 03:44:26 2011 +0100
2.2 +++ b/dark.css Sun Dec 18 15:57:15 2011 +0100
2.3 @@ -1,1 +1,561 @@
2.4 -*{margin:0;padding:0;outline:0}html{background:#222}body{font:12px/1.4 Helvetica Neue,Arial,Helvetica,'Liberation Sans',FreeSans,sans-serif;color:#8d8d8d;margin:0;padding:0;background:#222;text-align:center}a,a:visited{text-decoration:none;color:#dedede}a:hover{color:#fff;border-bottom:1px dotted #438800}h1,h2,h3,h4{color:#FFF}h1{font-size:3.1em;letter-spacing:-2px;padding:15px 10px 5px 10px}h2{font-size:1.7em;color:#FFF;padding:20px 10px 5px 10px}h3{font-size:1.6em;font-weight:normal;padding:10px 10px 10px 5px}h4{color:#ababab;font-size:1.1em;padding:10px 5px 0 0}h5{font-size:1.0em;padding:0}p,dl{padding:5px 20px;margin:0}ul,ol{margin:5px 20px;padding:0 20px}ul{list-style:none}dt{color:#fafafa}dd{padding-left:25px}img{background:#1b1b1b;border:4px solid #262626;padding:0}img.float-right{margin:5px 0 5px 10px}img.float-left{margin:5px 10px 5px 0}canvas{border:4px solid #262626}#logo{border-style:none;position:relative;margin:0;padding:0;color:#f8f8f8;top:40px;left:25px;height:120px;width:670px}code{margin:5px 0;padding:15px;text-align:left;display:block;overflow:auto;font:500 1em/1.5em 'Lucida Console','Courier New',Monospace;background:#070707}acronym{cursor:help;border-bottom:1px dotted #5b5b5b}blockquote{margin:15px 10px;padding:10px 10px 10px 35px;background:#070707 url(quote.gif) no-repeat 10px 10px;border:1px solid #111;font-weight:normal;font-size:17px;line-height:1.6em;font-style:italic;font-family:Georgia,'Times New Roman',Times,serif;color:#808080}table{margin:15px 0;border-collapse:collapse}th{color:#fafafa;height:38px;padding-left:0;padding-right:12px;text-align:left}tr{color:#5b5b5b;height:15px}td{padding-left:0;padding-right:12px}form{margin:20px 10px;padding:15px 25px 25px 20px;background:#070707}form p{padding:12px 0 5px 0;margin:0}label{font-weight:bold;color:#fafafa}input,select,textarea{margin:5px 0;padding:5px;font:normal 1em Verdana,Tahoma,sans-serif;color:#6a6969;background:#0c0c0c}option{padding-right:.5em}#name,#email,#message{width:480px}input.button{font:bold 12px Arial,Verdana,Sans-serif;height:30px;padding:2px 3px;margin-top:8px;color:#48780e;background:#000;border-width:1px;border-style:solid;border-color:#1b1b1b}#wrap{position:relative;width:1020px;margin:0 auto;text-align:left}#content-wrap{clear:both;width:1020px;float:left;padding-top:15px;padding-bottom:50px}#header{position:relative;width:1020px;height:170px;margin:0;padding:0}#header h1#logo-text a{position:absolute;margin:0;padding:0;font:bold 65px 'Trebuchet MS',Tahoma,Helvetica,Arial,Sans-serif;letter-spacing:-1.5px;color:#f8f8f8;text-decoration:none;text-transform:none;top:70px;left:30px}#header h1#logo-text a:hover{background:0;margin-top:100px;padding-top:100px}#header img{position:relative;top:90px;left:22px;border:0}#header p#intro{position:absolute;margin:0;padding:0;font-family:'Trebuchet MS',Tahoma,Helvetica,Arial,Sans-serif;font-weight:bold;font-size:16px;line-height:1.5em;font-style:normal;text-transform:none;color:#5ad715;width:400px;top:145px;left:22px}#nav{position:absolute;margin:0;padding:0;height:50px;left:0;top:30px}#nav ul{float:left;list-style:none;height:50px;margin:0 0 0 10px;padding:0;display:inline}#nav ul li{display:inline;margin:0;padding:0}#nav ul li a{float:left;margin:0;padding:0 12px;font-weight:bold;font-size:1.25em;text-decoration:none;color:#c95723;color:#999;text-transform:uppercase}#nav ul li a:hover,#nav ul li a:active{color:#eee;background:0;border:0}#nav ul li#current a{color:#d33972}#subnav{position:absolute;margin:17px 280px;padding:0;height:50px;left:10px;top:30px}#subnav ul{float:left;list-style:none;height:50px;margin:0 0 0 10px;padding:0;display:inline}#subnav ul li{display:inline;margin:0;padding:0}#subnav ul li a{float:left;margin:0;padding:0 12px;font:bold 15px/50px 'Trebuchet MS',Helvetica,Arial,Geneva,sans-serif;text-decoration:none;color:#5ad715;text-transform:uppercase}#subnav ul li a:hover,#subnav ul li a:active{color:#eee;background:0;border:0}#subnav ul li#current a{color:#d33972}#main{float:left;width:670px;padding:0;margin:0 0 0 2px;display:inline}#main h2{padding:5px 22px;margin:15px 5px 0 0;color:#FFF}#main h2 a{color:#FFF;text-decoration:none;border:0}#main ul li{list-style:disc}#sidebar{float:right;width:300px;padding:0;margin:0 18px 0 0;display:inline;color:#5d5d5d}#random_quote{color:#c95723;font-style:italic}#sidebar ul.sidemenu{text-align:left;margin:20px 5px 20px 0;padding:0}#sidebar ul.sidemenu li{list-style:none;padding:8px 10px;margin:0}* html body #sidebar ul.sidemenu li{height:1%}#sidebar ul.sidemenu li a{text-decoration:none;border:0;color:#666;font-weight:bold;font-size:9pt}#sidebar ul.sidemenu li a span{color:#444;font-style:italic;font-weight:normal;font-size:8pt}#sidebar ul.sidemenu li a:hover,#sidebar ul.sidemenu li a:hover span{color:#fff}#sidebar ul.sidemenu ul{margin:0;padding:0}#sidebar ul.sidemenu ul li{border:0}#sidebar form#quick-search{padding:0;margin:20px 0 35px 0;border:0;width:290px;height:33px}#sidebar form#quick-search p{margin:0;padding:0}#sidebar form#quick-search input{float:left;border:0;background:transparent;color:#4e4e4e;margin:0}#sidebar form#quick-search .tbox{margin:5px 0 0 0;width:240px;display:inline}#search form#quick-search .btn{width:24px;height:24px}#sidebar form#quick-search label{display:none}#footer{clear:both;background:#222;color:#4e4e4e;width:100%;float:left}#footer a{color:#4e4e4e;border:0}#footer a:hover{color:#fafafa}#footer .rssfeed{background:url(images/rss.gif) no-repeat left 1px;padding-left:17px}#footer-left{float:left;width:70%}#footer-right{float:right;width:25%}.download a{color:#5ad715}.postmeta{padding:7px 5px;margin:5px 5px 5px 5px;font-size:1em;color:#545454;background:#222}.postmeta .date{margin:0 10px 0 5px}.postmeta a.comments{margin:0 10px 0 5px}.postmeta a.readmore{margin:0 10px 0 5px}.post-info{font-size:.95em;padding-top:3px;margin-left:5px;color:#444}.post-info a,.post-info a:visited{color:#ae275a}.float-left{float:left}.float-right{float:right}.align-left{text-align:left}.align-right{text-align:right}.no-border{border:0}.clearer{clear:both}.clear{display:inline-block}.clear:after{display:block;visibility:hidden;clear:both;height:0;content:"."}
2.5 \ No newline at end of file
2.6 +/*
2.7 +ME73.com stylesheet
2.8 +Author: Eugen Sawin <sawine@me73.com>
2.9 +*/
2.10 +
2.11 +* { margin: 0; padding: 0; outline: 0 }
2.12 +
2.13 +html { background: #222222; }
2.14 +
2.15 +body {
2.16 + /*font: 11px/165% 'Lucida Grande', Geneva, Verdana, Arial, Helvetica, sans-serif;*/
2.17 + font: 12px/1.4 Helvetica Neue, Arial, Helvetica, 'Liberation Sans', FreeSans, sans-serif;
2.18 + color: #8D8D8D;
2.19 + margin: 0;
2.20 + padding: 0;
2.21 + background: #222222;
2.22 + text-align: center;
2.23 +}
2.24 +
2.25 +/* Links */
2.26 +a, a:visited {
2.27 + text-decoration: none;
2.28 + color: #DEDEDE;
2.29 +}
2.30 +a:hover {
2.31 + color: #fff;
2.32 + border-bottom: 1px dotted #438800;
2.33 +}
2.34 +
2.35 +/* headers */
2.36 +h1, h2, h3, h4 {
2.37 + /*font-family: 'Trebuchet MS', Helvetica, Tahoma, Arial, Sans-serif;*/
2.38 + /*color: #0AEAEA;*/
2.39 + color: #FFF;
2.40 +}
2.41 +h1 {
2.42 + font-size: 3.1em;
2.43 + letter-spacing: -2px;
2.44 + padding: 15px 10px 5px 10px;
2.45 +}
2.46 +h2 {
2.47 + font-size: 1.7em;
2.48 + /*color: #895F30;*/
2.49 + color: #FFF;
2.50 + padding: 20px 10px 5px 10px;
2.51 +}
2.52 +h3 {
2.53 + font-size: 1.6em;
2.54 + font-weight: normal;
2.55 + padding: 10px 10px 10px 5px;
2.56 +}
2.57 +
2.58 +h4 {
2.59 + color: #AbAbAb;
2.60 + font-size: 1.1em;
2.61 + /*font-weight: bold;*/
2.62 + padding: 10px 5px 0px 0px;
2.63 +}
2.64 +
2.65 +h5 {
2.66 + font-size: 1.0em;
2.67 + padding: 0px 0px 0px 0px;
2.68 +}
2.69 +
2.70 +p, dl {
2.71 + padding: 5px 20px;
2.72 + margin: 0;
2.73 +}
2.74 +
2.75 +ul, ol {
2.76 + margin: 5px 20px;
2.77 + padding: 0px 20px;
2.78 +}
2.79 +ul {
2.80 + list-style-type: square;
2.81 +}
2.82 +
2.83 +dt {
2.84 + /*font-weight: bold;*/
2.85 + color: #FAFAFA;
2.86 +}
2.87 +dd {
2.88 + padding-left: 25px;
2.89 +}
2.90 +
2.91 +/* images */
2.92 +img {
2.93 + background: #1B1B1B;
2.94 + border: 4px solid #262626;
2.95 + padding: 0px;
2.96 +}
2.97 +
2.98 +img.float-right {
2.99 + margin: 5px 0px 5px 10px;
2.100 +}
2.101 +
2.102 +img.float-left {
2.103 + margin: 5px 10px 5px 0px;
2.104 +}
2.105 +
2.106 +canvas {
2.107 + border: 4px solid #262626;
2.108 +}
2.109 +
2.110 +#logo {
2.111 + border-style: none;
2.112 + position: relative;
2.113 + margin: 0;
2.114 + padding: 0;
2.115 + color: #F8F8F8;
2.116 + /* change the values of top and left to adjust the position of the logo*/
2.117 + top: 40px; left: 25px;
2.118 + height: 120px;
2.119 + width: 670px;
2.120 +}
2.121 +
2.122 +code {
2.123 + margin: 5px 0;
2.124 + padding: 15px;
2.125 + text-align: left;
2.126 + display: block;
2.127 + overflow: auto;
2.128 + font: 500 1em/1.5em 'Lucida Console', 'Courier New', Monospace;
2.129 + /* white-space: pre; */
2.130 + background: #070707;
2.131 +/*border: 1px solid #111; */
2.132 +}
2.133 +acronym {
2.134 + cursor: help;
2.135 + border-bottom: 1px dotted #5B5B5B;
2.136 +}
2.137 +blockquote {
2.138 + margin: 15px 10px;
2.139 + padding: 10px 10px 10px 35px;
2.140 + background: #070707 url(quote.gif) no-repeat 10px 10px;
2.141 + border: 1px solid #111;
2.142 + font-weight: normal;
2.143 + font-size: 17px;
2.144 + line-height: 1.6em;
2.145 + font-style: italic;
2.146 + font-family: Georgia, 'Times New Roman', Times, serif;
2.147 + color: #808080;
2.148 +}
2.149 +
2.150 +/* start - table */
2.151 +table {
2.152 + margin: 15px 0px;
2.153 + border-collapse: collapse;
2.154 +}
2.155 +th {
2.156 + color: #FAFAFA;
2.157 + height: 38px;
2.158 + padding-left: 0px;
2.159 + padding-right: 12px;
2.160 + text-align: left;
2.161 +}
2.162 +tr {
2.163 + color: #5b5b5b;
2.164 + height: 15px;
2.165 +}
2.166 +td {
2.167 + padding-left: 0px;
2.168 + padding-right: 12px;
2.169 +}
2.170 +/* end - table */
2.171 +
2.172 +
2.173 +/* form elements */
2.174 +form {
2.175 + margin: 20px 10px;
2.176 + padding: 15px 25px 25px 20px;
2.177 + background: #070707;
2.178 +/*border: 1px solid #111; */
2.179 +}
2.180 +form p {
2.181 + /*border-bottom: 1px solid #101010;*/
2.182 + padding: 12px 0 5px 0; margin: 0;
2.183 +}
2.184 +label {
2.185 + font-weight: bold;
2.186 + color: #FAFAFA;
2.187 +}
2.188 +input, select, textarea {
2.189 + margin: 5px 0;
2.190 + padding: 5px;
2.191 + font: normal 1em Verdana, Tahoma, sans-serif;
2.192 + color: #6A6969;
2.193 + background: #0C0C0C;
2.194 +/*border: 1px solid #1C1C1C;*/
2.195 +}
2.196 +option { padding-right: 0.5em; }
2.197 +
2.198 +#name, #email, #message{
2.199 + width: 480px;
2.200 +}
2.201 +input.button {
2.202 + font: bold 12px Arial, Verdana, Sans-serif;
2.203 + height: 30px;
2.204 + padding: 2px 3px;
2.205 + margin-top: 8px;
2.206 + color: #48780E;
2.207 + background: #000;
2.208 + border-width: 1px;
2.209 + border-style: solid;
2.210 + border-color: #1B1B1B;
2.211 +}
2.212 +
2.213 +
2.214 +/* ------------------------------------------
2.215 + LAYOUT
2.216 + ------------------------------------------- */
2.217 +#wrap {
2.218 + position: relative;
2.219 + width: 1020px;
2.220 + margin: 0 auto;
2.221 + text-align: left;
2.222 +}
2.223 +#content-wrap {
2.224 + clear: both;
2.225 + width: 1020px;
2.226 + float: left;
2.227 + padding-top: 15px;
2.228 + padding-bottom: 50px;
2.229 +}
2.230 +#header {
2.231 + position: relative;
2.232 + width: 1020px;
2.233 + height: 170px;
2.234 + margin: 0;
2.235 + padding: 0;
2.236 +}
2.237 +#header h1#logo-text a {
2.238 + position: absolute;
2.239 + margin: 0; padding: 0;
2.240 + font: bold 65px 'Trebuchet MS', Tahoma, Helvetica, Arial, Sans-serif;
2.241 + letter-spacing: -1.5px;
2.242 + color: #F8F8F8;
2.243 + text-decoration: none;
2.244 + text-transform: none;
2.245 +
2.246 + /* change the values of top and left to adjust the position of the logo*/
2.247 + top: 70px; left: 30px;
2.248 +}
2.249 +#header h1#logo-text a:hover {
2.250 + background: none;
2.251 + margin-top: 100px;
2.252 + padding-top: 100px;
2.253 +}
2.254 +#header img {
2.255 + position: relative;
2.256 + top: 90px;
2.257 + left: 22px;
2.258 + border: 0px;
2.259 +}
2.260 +
2.261 +#header p#intro {
2.262 + position: absolute;
2.263 + margin: 0;
2.264 + padding: 0;
2.265 + font-family: 'Trebuchet MS', Tahoma, Helvetica, Arial, Sans-serif;
2.266 + font-weight: bold;
2.267 + font-size: 16px;
2.268 + line-height: 1.5em;
2.269 + font-style: normal;
2.270 + text-transform: none;
2.271 + /*color: #6D7D2D;*/
2.272 + color: #5ad715;
2.273 + width: 400px;
2.274 +
2.275 + /* change the values of top and left to adjust the position */
2.276 + top: 145px;
2.277 + left: 22px;
2.278 +}
2.279 +
2.280 +/* Navigation */
2.281 +#nav {
2.282 + position: absolute;
2.283 + margin: 0;
2.284 + padding: 0;
2.285 + height: 50px;
2.286 + left: 0px;
2.287 + top: 30px;
2.288 +}
2.289 +#nav ul {
2.290 + float: left;
2.291 +
2.292 + height: 50px;
2.293 + margin: 0 0 0 10px;
2.294 + padding: 0;
2.295 + display: inline;
2.296 +}
2.297 +#nav ul li {
2.298 + display: inline;
2.299 + margin: 0;
2.300 + padding: 0;
2.301 +}
2.302 +#nav ul li a {
2.303 + float: left;
2.304 + margin: 0;
2.305 + padding: 0 12px;
2.306 + font-weight: bold;
2.307 + font-size: 1.25em;
2.308 + text-decoration: none;
2.309 + color: #c95723;
2.310 + color: #999;
2.311 + text-transform: uppercase;
2.312 +}
2.313 +#nav ul li a:hover,
2.314 +#nav ul li a:active {
2.315 + color: #eee;
2.316 + background: none;
2.317 + border: none;
2.318 +}
2.319 +#nav ul li#current a {
2.320 + color: #D33972;
2.321 +}
2.322 +
2.323 +#subnav{
2.324 + position: absolute;
2.325 + margin: 17px 280px;
2.326 + padding: 0;
2.327 + height: 50px;
2.328 + left: 10px;
2.329 + top: 30px;
2.330 +}
2.331 +
2.332 +#subnav ul {
2.333 + float: left;
2.334 +
2.335 + height: 50px;
2.336 + margin: 0 0 0 10px;
2.337 + padding: 0;
2.338 + display: inline;
2.339 +}
2.340 +#subnav ul li {
2.341 + display: inline;
2.342 + margin: 0;
2.343 + padding: 0;
2.344 +}
2.345 +#subnav ul li a {
2.346 + float: left;
2.347 + margin: 0;
2.348 + padding: 0 12px;
2.349 + font: bold 15px/50px 'Trebuchet MS', Helvetica, Arial, Geneva, sans-serif;
2.350 + text-decoration: none;
2.351 + color: #5ad715;
2.352 + text-transform: uppercase;
2.353 +}
2.354 +#subnav ul li a:hover,
2.355 +#subnav ul li a:active {
2.356 + color: #eee;
2.357 + background: none;
2.358 + border: none;
2.359 +}
2.360 +#subnav ul li#current a {
2.361 + color: #D33972;
2.362 +}
2.363 +
2.364 +/* Main Column */
2.365 +#main {
2.366 + float: left;
2.367 + width: 670px;
2.368 + padding: 0;
2.369 + margin: 0 0 0 2px;
2.370 + display: inline;
2.371 +}
2.372 +#main h2 {
2.373 + padding: 5px 22px;
2.374 + margin: 15px 5px 0px 0px;
2.375 + /*font: bold 2.4em 'Trebuchet MS', Helvetica, Arial, sans-serif; */
2.376 + /*color: #45D5E6;
2.377 + color: #00cccc;*/
2.378 + color: #FFF;
2.379 +}
2.380 +#main h2 a {
2.381 + /*color: #45D5E6;*/
2.382 + color: #FFF;
2.383 + text-decoration: none;
2.384 + border: none;
2.385 +}
2.386 +#main ul li {
2.387 + /*list-style-image: url(images/bullet.png);*/
2.388 + list-style-type: square;
2.389 +}
2.390 +
2.391 +/* Sidebar */
2.392 +#sidebar {
2.393 + float: right;
2.394 + width: 300px;
2.395 + padding: 0;
2.396 + margin: 0px 18px 0 0;
2.397 + display: inline;
2.398 + color: #5D5D5D;
2.399 +/*border: 4px solid #262626;*/
2.400 +}
2.401 +
2.402 +#random_quote {
2.403 + color: #c95723;
2.404 + font-style: italic;
2.405 +}
2.406 +
2.407 +#sidebar h2 {
2.408 + font-size: 2.3em;
2.409 + color: black;
2.410 +}
2.411 +
2.412 +#sidebar h3 {
2.413 +/*padding: 5px 12px;
2.414 + margin: 15px 5px 10px 0;
2.415 + font: bold 2.4em 'Trebuchet MS', Tahoma, Helvetica, Arial, sans-serif;
2.416 + color: #45D5E6;*/
2.417 +/*border-bottom: 1px solid #121212; */
2.418 +/*background-image: url(pattern.gif); */
2.419 +}
2.420 +#sidebar ul.sidemenu {
2.421 + text-align: left;
2.422 + margin: 20px 5px 20px 0px;
2.423 + padding: 0;
2.424 +/*border-top: 1px solid #111; */
2.425 +}
2.426 +#sidebar ul.sidemenu li {
2.427 + list-style: none;
2.428 + padding: 8px 10px;
2.429 + margin: 0;
2.430 +/*border-bottom: 1px solid #111;*/
2.431 +}
2.432 +* html body #sidebar ul.sidemenu li {
2.433 + height: 1%;
2.434 +}
2.435 +#sidebar ul.sidemenu li a {
2.436 + text-decoration: none;
2.437 + border: none;
2.438 + color: #666666;
2.439 + font-weight: bold;
2.440 + /*font-family: 'Trebuchet MS', Tahoma, Helvetica, Arial, Sans-serif;*/
2.441 + font-size: 9pt;
2.442 +}
2.443 +#sidebar ul.sidemenu li a span {
2.444 + color: #444;
2.445 + /*font-family: Georgia, 'Times New Roman', Times, serif;*/
2.446 + font-style: italic;
2.447 + font-weight: normal;
2.448 + font-size: 8pt;
2.449 +}
2.450 +#sidebar ul.sidemenu li a:hover,
2.451 +#sidebar ul.sidemenu li a:hover span {
2.452 + color: #fff;
2.453 +}
2.454 +#sidebar ul.sidemenu ul { margin: 0 0 0 0px; padding: 0; }
2.455 +#sidebar ul.sidemenu ul li { border: none; }
2.456 +
2.457 +/* header quick search */
2.458 +#sidebar form#quick-search {
2.459 + padding: 0;
2.460 + margin: 20px 0 35px 0;
2.461 + border: none;
2.462 + width: 290px; height: 33px;
2.463 +/*background: url(header-search.gif) no-repeat; */
2.464 +}
2.465 +#sidebar form#quick-search p {
2.466 + margin: 0;
2.467 + padding: 0;
2.468 +}
2.469 +#sidebar form#quick-search input {
2.470 + float: left;
2.471 + border: none;
2.472 + background: transparent;
2.473 + color: #4E4E4E;
2.474 + margin: 0;
2.475 +}
2.476 +#sidebar form#quick-search .tbox {
2.477 + margin: 5px 0 0 0px;
2.478 + width: 240px;
2.479 + display: inline;
2.480 +}
2.481 +#search form#quick-search .btn{
2.482 + width: 24px; height: 24px;
2.483 +}
2.484 +#sidebar form#quick-search label {
2.485 + display: none;
2.486 +}
2.487 +
2.488 +/* footer */
2.489 +#footer {
2.490 + clear: both;
2.491 + /*padding: 1em 0 2.5em 0;*/
2.492 + background: #222222;
2.493 + color: #4E4E4E;
2.494 + width: 100%;
2.495 + float: left;
2.496 +}
2.497 +#footer a {
2.498 + color: #4E4E4E;
2.499 + /*color: #0E909C;*/
2.500 + border: none;
2.501 +}
2.502 +#footer a:hover {
2.503 + color: #fafafa;
2.504 +}
2.505 +#footer .rssfeed {
2.506 + background: url(images/rss.gif) no-repeat left 1px;
2.507 + padding-left: 17px;
2.508 +}
2.509 +#footer-left {
2.510 + float: left;
2.511 + width: 70%;
2.512 +}
2.513 +#footer-right {
2.514 + float: right;
2.515 + width: 25%;
2.516 +}
2.517 +
2.518 +.download a
2.519 +{
2.520 + color: #5ad715;
2.521 +}
2.522 +
2.523 +/* postmeta */
2.524 +.postmeta {
2.525 + padding: 7px 5px;
2.526 + margin: 5px 5px 5px 5px;
2.527 + font-size: 1em;
2.528 + color: #545454;
2.529 + /*border: 1px solid #111; */
2.530 + background: #222222;
2.531 +}
2.532 +.postmeta .date{ margin: 0 10px 0 5px; }
2.533 +.postmeta a.comments { margin: 0 10px 0 5px; }
2.534 +.postmeta a.readmore { margin: 0 10px 0 5px; }
2.535 +
2.536 +.post-info { font-size: .95em; padding-top: 3px; margin-left: 5px; color: #444; }
2.537 +.post-info a, .post-info a:visited { color: #AE275A; }
2.538 +
2.539 +/* alignment classes */
2.540 +.float-left { float: left; }
2.541 +.float-right { float: right; }
2.542 +.align-left { text-align: left; }
2.543 +.align-right { text-align: right; }
2.544 +
2.545 +/* display and additional classes */
2.546 +.no-border {
2.547 + border: none;
2.548 +}
2.549 +
2.550 +.clearer {
2.551 + clear: both;
2.552 +}
2.553 +
2.554 +.clear {
2.555 + display:inline-block;
2.556 +}
2.557 +
2.558 +.clear:after {
2.559 + display:block;
2.560 + visibility:hidden;
2.561 + clear:both;
2.562 + height:0;
2.563 + content: ".";
2.564 +}
2.565 +
2.566 +
3.1 --- a/experiments.html Sun Dec 18 03:44:26 2011 +0100
3.2 +++ b/experiments.html Sun Dec 18 15:57:15 2011 +0100
3.3 @@ -51,8 +51,10 @@
3.4
3.5 </div>
3.6 <div id="sidebar">
3.7 - <p>
3.8 - <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
3.9 + <p>
3.10 + <a href="resume.html">
3.11 + <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
3.12 + </a>
3.13 <br />I'm a programmer,<br />
3.14 a student of computer science,<br />
3.15 a music enthusiast.<br />
4.1 --- a/factory/makefile Sun Dec 18 03:44:26 2011 +0100
4.2 +++ b/factory/makefile Sun Dec 18 15:57:15 2011 +0100
4.3 @@ -6,6 +6,8 @@
4.4
4.5 compile:
4.6 ./create_page -a $(FRAME)
4.7 - java -jar yuicompressor.jar $(VERSION)/script.js -o ../script.js --charset utf-8
4.8 - java -jar yuicompressor.jar $(VERSION)/dark.css -o ../dark.css --charset utf-8
4.9 + cp $(VERSION)/script.js ../
4.10 + cp $(VERSION)/dark.css ../
4.11 + #java -jar yuicompressor.jar $(VERSION)/script.js -o ../script.js --charset utf-8
4.12 + #java -jar yuicompressor.jar $(VERSION)/dark.css -o ../dark.css --charset utf-8
4.13
5.1 --- a/factory/v2012/dark.css Sun Dec 18 03:44:26 2011 +0100
5.2 +++ b/factory/v2012/dark.css Sun Dec 18 15:57:15 2011 +0100
5.3 @@ -71,7 +71,9 @@
5.4 margin: 5px 20px;
5.5 padding: 0px 20px;
5.6 }
5.7 -ul { list-style: none; }
5.8 +ul {
5.9 + list-style-type: square;
5.10 +}
5.11
5.12 dt {
5.13 /*font-weight: bold;*/
5.14 @@ -281,7 +283,7 @@
5.15 }
5.16 #nav ul {
5.17 float: left;
5.18 - list-style: none;
5.19 +
5.20 height: 50px;
5.21 margin: 0 0 0 10px;
5.22 padding: 0;
5.23 @@ -324,7 +326,7 @@
5.24
5.25 #subnav ul {
5.26 float: left;
5.27 - list-style: none;
5.28 +
5.29 height: 50px;
5.30 margin: 0 0 0 10px;
5.31 padding: 0;
5.32 @@ -378,7 +380,7 @@
5.33 }
5.34 #main ul li {
5.35 /*list-style-image: url(images/bullet.png);*/
5.36 - list-style: disc;
5.37 + list-style-type: square;
5.38 }
5.39
5.40 /* Sidebar */
5.41 @@ -392,11 +394,16 @@
5.42 /*border: 4px solid #262626;*/
5.43 }
5.44
5.45 -#random_quote {
5.46 +#random_quote {
5.47 color: #c95723;
5.48 font-style: italic;
5.49 }
5.50
5.51 +#sidebar h2 {
5.52 + font-size: 2.3em;
5.53 + color: black;
5.54 +}
5.55 +
5.56 #sidebar h3 {
5.57 /*padding: 5px 12px;
5.58 margin: 15px 5px 10px 0;
6.1 --- a/factory/v2012/frame.html Sun Dec 18 03:44:26 2011 +0100
6.2 +++ b/factory/v2012/frame.html Sun Dec 18 15:57:15 2011 +0100
6.3 @@ -36,8 +36,10 @@
6.4 /insert{content}
6.5 </div>
6.6 <div id="sidebar">
6.7 - <p>
6.8 - <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
6.9 + <p>
6.10 + <a href="resume.html">
6.11 + <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
6.12 + </a>
6.13 <br />I'm a programmer,<br />
6.14 a student of computer science,<br />
6.15 a music enthusiast.<br />
7.1 --- a/factory/v2012/howiwork.html Sun Dec 18 03:44:26 2011 +0100
7.2 +++ b/factory/v2012/howiwork.html Sun Dec 18 15:57:15 2011 +0100
7.3 @@ -34,7 +34,7 @@
7.4 The saviour of web frontends. Makes web development endurable.</li>
7.5 <li>
7.6 <h4>Go *</h4>
7.7 -Good idea, weird syntax. Doesn't go well with me.</li>
7.8 +Good idea, weird syntax. Doesn't go well with me. Might give it another go.</li>
7.9 <li>
7.10 <h4>Common Lisp **</h4>
7.11 The purity of programming love. Haven't seen the light yet.</li>
8.1 --- a/factory/v2012/links.html Sun Dec 18 03:44:26 2011 +0100
8.2 +++ b/factory/v2012/links.html Sun Dec 18 15:57:15 2011 +0100
8.3 @@ -24,7 +24,8 @@
8.4 <h2>Professional</h2>
8.5 <ul>
8.6 <li><h4><a href="http://www4.informatik.tu-muenchen.de/~schulz/">Dr. Stephan Schulz</a></h4>
8.7 -My advisor during my bachelor thesis and creator of the brainiac theorem prover called E.
8.8 +My advisor during my bachelor thesis and creator of the brainiac theorem prover called
8.9 +<a href="http://eprover.org">E</a>.
8.10 </li>
8.11 </ul>
8.12
8.13 @@ -33,15 +34,12 @@
8.14 <!--<li><h4><a href="http://www.tomrocket.com">Thomas Witt</a></h4>
8.15 A good friend and designer for the visual arts.
8.16 </li>-->
8.17 -<li><h4><a href="http://www.chris-koenig.de">Christian König</a></h4>
8.18 -A fellow student and companion in the quest for world domination.
8.19 +<li><h4><a href="http://www.chris-koenig.de">Christian König</a></h4>
8.20 +An ex-fellow student and companion in the quest for world domination.
8.21 </li>
8.22 <li><h4><a href="http://www.unidentify.com">Michael Chlebek</a></h4>
8.23 -A friend, programmer and amateuer photographer.
8.24 +An ex-fellow student and friendly programmer.
8.25 </li>
8.26 -<!--<li><h4><a href="http://thuber.net">Thomas Huber</a></h4>
8.27 -A fellow student of artificial intelligence.
8.28 -</li>-->
8.29 </ul>
8.30
8.31 <h2>Recursive</h2>
9.1 --- a/factory/v2012/linksend.html Sun Dec 18 03:44:26 2011 +0100
9.2 +++ b/factory/v2012/linksend.html Sun Dec 18 15:57:15 2011 +0100
9.3 @@ -13,6 +13,9 @@
9.4
9.5 <h2>The Bad</h2>
9.6 <ul>
9.7 +<li><h4><a href="https://twitter.com/notchnik">@notchnik</a></h4>
9.8 +The emptyness in 140 characters.
9.9 +</li>
9.10 <li><h4><a href="https://plus.google.com/101733701635400621767/">Google+ profile</a></h4>
9.11 Staying in touch with people by keeping them at a distance.
9.12 </li>
9.13 @@ -21,7 +24,8 @@
9.14 <h2>Professional</h2>
9.15 <ul>
9.16 <li><h4><a href="http://www4.informatik.tu-muenchen.de/~schulz/">Dr. Stephan Schulz</a></h4>
9.17 -My advisor during my bachelor thesis and creator of the brainiac theorem prover called E.
9.18 +My advisor during my bachelor thesis and creator of the brainiac theorem prover called
9.19 +<a href="http://eprover.org">E</a>.
9.20 </li>
9.21 </ul>
9.22
9.23 @@ -30,15 +34,12 @@
9.24 <!--<li><h4><a href="http://www.tomrocket.com">Thomas Witt</a></h4>
9.25 A good friend and designer for the visual arts.
9.26 </li>-->
9.27 -<li><h4><a href="http://www.chris-koenig.de">Christian König</a></h4>
9.28 -A fellow student and companion in the quest for world domination.
9.29 +<li><h4><a href="http://www.chris-koenig.de">Christian König</a></h4>
9.30 +An ex-fellow student and companion in the quest for world domination.
9.31 </li>
9.32 <li><h4><a href="http://www.unidentify.com">Michael Chlebek</a></h4>
9.33 -A friend, programmer and amateuer photographer.
9.34 +An ex-fellow student and friendly programmer.
9.35 </li>
9.36 -<!--<li><h4><a href="http://thuber.net">Thomas Huber</a></h4>
9.37 -A fellow student of artificial intelligence.
9.38 -</li>-->
9.39 </ul>
9.40
9.41 <h2>Recursive</h2>
10.1 --- a/factory/v2012/resume.html Sun Dec 18 03:44:26 2011 +0100
10.2 +++ b/factory/v2012/resume.html Sun Dec 18 15:57:15 2011 +0100
10.3 @@ -2,7 +2,7 @@
10.4 <h2>Employment</h2>
10.5 <ul>
10.6 <li>
10.7 -<h4>Software Engineer, Comsoft GmbH, 03/2010-09/2010</h4>
10.8 +<h4>Software Engineer, <a href="http://comsoft.aero">Comsoft GmbH</a>, 03/2010-09/2010</h4>
10.9 <ul>
10.10 <li>
10.11 Development of safety-critical back end systems for the ATC domain.
10.12 @@ -12,37 +12,37 @@
10.13 </li>
10.14 </ul>
10.15 </li>
10.16 -<li><h4>Working Student & Internship, Comsoft GmbH, 10/2008-02/2010</h4>
10.17 +<li><h4>Working Student & Internship, <a href="http://comsoft.aero">Comsoft GmbH</a>, 10/2008-02/2010</h4>
10.18 Development for safety-critical embedded systems.
10.19 </li>
10.20 <li>
10.21 -<h4>Student Assistant, University of Applied Sciences Offenburg, 10/2008-03/2009</h4>
10.22 +<h4>Student Assistant, <a href="http://fh-offenburg.de">University of Applied Sciences Offenburg</a>, 10/2008-03/2009</h4>
10.23 Assistance at a university course for object-oriented software development.
10.24 </li>
10.25 </ul>
10.26 <h2>Education</h2>
10.27 <ul>
10.28 <li>
10.29 -<h4>University of Freiburg, since 10/2010</h4>
10.30 +<h4><a href="http://uni-freiburg.de">University of Freiburg</a>, since 10/2010</h4>
10.31 M.Sc. in Applied Computer Science.<br />
10.32 Emphasis in Artificial Intelligence and Algorithm Theory.
10.33 </li>
10.34 <li>
10.35 -<h4>University of Applied Sciences Offenburg, 03/2007-02/2010</h4>
10.36 +<h4><a href="http://fh-offenburg.de">University of Applied Sciences Offenburg</a>, 03/2007-02/2010</h4>
10.37 B.Sc. in Applied Computer Science.<br />
10.38 Emphasis in Distributed Systems.
10.39 </li>
10.40 </ul>
10.41 <h2>Accompanying the Studies</h2>
10.42 <ul>
10.43 -<li><h4>Bachelor Thesis, Comsoft GmbH, 10/2009-04/2010</h4>
10.44 +<li><h4>Bachelor Thesis, <a href="http://comsoft.aero">Comsoft GmbH</a>, 10/2009-04/2010</h4>
10.45 "Flexible Modeling of Dynamic Air Space Constraints and its Application in Departure Flow Optimisation"
10.46 <div class="download"><a href="http://me73.com/downloads/campus_magazin_29.pdf">
10.47 Campus Mag (P. 36 / German)</a></div>
10.48 <div class="download"><a href="http://me73.com/downloads/discover_me_24.pdf">
10.49 Discover ME (P. 22 / German)</a></div>
10.50 </li>
10.51 -<li><h4>University Project, University of Applied Sciences Offenburg & Karlsruhe Institute of Technology, 2008</h4>
10.52 +<li><h4>University Project, <a href="http://fh-offenburg.de">University of Applied Sciences Offenburg</a> & <a href="http://kit.edu">Karlsruhe Institute of Technology</a>, 2008</h4>
10.53 Development of a client for 3D data streaming and visualisation.
10.54 </li>
10.55 </ul>
11.1 --- a/factory/v2012/script.js Sun Dec 18 03:44:26 2011 +0100
11.2 +++ b/factory/v2012/script.js Sun Dec 18 15:57:15 2011 +0100
11.3 @@ -1,5 +1,6 @@
11.4 var QUOTES_NUMBER = 39;
11.5 -var SERVER = "http://me73.com"
11.6 +var port = 8080;
11.7 +var SERVER = "http://" + window.location.hostname + ":" + port;
11.8
11.9 $(document).ready(function() {
11.10 var image = new Image();
11.11 @@ -31,28 +32,28 @@
11.12 click_events["logo"][0]["min_y"] = 0;
11.13 click_events["logo"][0]["max_y"] = menu_height;
11.14 click_events["logo"][0]["func"] = switch_page;
11.15 -click_events["logo"][0]["args"] = "personalwork.html";
11.16 +click_events["logo"][0]["args"] = new Array("personalwork.html");
11.17 click_events["logo"][1] = new Object();
11.18 click_events["logo"][1]["min_x"] = Math.round(menu_width/4) + 1;
11.19 click_events["logo"][1]["max_x"] = Math.round(menu_width/2);
11.20 click_events["logo"][1]["min_y"] = 0;
11.21 click_events["logo"][1]["max_y"] = menu_height;
11.22 click_events["logo"][1]["func"] = switch_page;
11.23 -click_events["logo"][1]["args"] = "howiwork.html";
11.24 +click_events["logo"][1]["args"] = new Array("howiwork.html");
11.25 click_events["logo"][2] = new Object();
11.26 click_events["logo"][2]["min_x"] = Math.round(menu_width/2) + 1;
11.27 click_events["logo"][2]["max_x"] = Math.round(menu_width/4*3);
11.28 click_events["logo"][2]["min_y"] = 0;
11.29 click_events["logo"][2]["max_y"] = menu_height;
11.30 click_events["logo"][2]["func"] = switch_page;
11.31 -click_events["logo"][2]["args"] = "books.html";
11.32 +click_events["logo"][2]["args"] = new Array("books.html");
11.33 click_events["logo"][3] = new Object();
11.34 click_events["logo"][3]["min_x"] = Math.round(menu_width/4*3) + 1;
11.35 click_events["logo"][3]["max_x"] = menu_width - 1;
11.36 click_events["logo"][3]["min_y"] = 0;
11.37 click_events["logo"][3]["max_y"] = menu_height;
11.38 click_events["logo"][3]["func"] = switch_page;
11.39 -click_events["logo"][3]["args"] = "links.html";
11.40 +click_events["logo"][3]["args"] = new Array("links.html", "linksend.html");
11.41
11.42 function handle_click(e) {
11.43 var offset = $("#logo").offset();
11.44 @@ -69,7 +70,7 @@
11.45 }
11.46
11.47 function switch_page(id, params) {
11.48 - var page = params["args"];
11.49 + var page = params["args"][0];
11.50 $("body").load(page);
11.51 document.location.href = page;
11.52 }
11.53 @@ -100,11 +101,18 @@
11.54 context.drawImage(event.target, 0, 0);
11.55 var white = new Colour(255, 255, 255);
11.56 for (var i in click_events["logo"]) {
11.57 - var p = click_events["logo"][i];
11.58 - var pos = document.location.href.lastIndexOf("/") + 1;
11.59 - if (p["args"] == document.location.href.substr(pos)) {
11.60 - color_area("logo", p["min_x"], p["max_x"], 70, p["max_y"], white);
11.61 - } else {
11.62 + var p = click_events["logo"][i];
11.63 + var pos = document.location.href.lastIndexOf("/") + 1;
11.64 + var page = document.location.href.substr(pos);
11.65 + var found = false;
11.66 + for (var j in p["args"]) {
11.67 + if (page == p["args"][j]) {
11.68 + color_area("logo", p["min_x"], p["max_x"], 70, p["max_y"], white);
11.69 + found = true;
11.70 + break;
11.71 + }
11.72 + }
11.73 + if (!found) {
11.74 color_area("logo", p["min_x"], p["max_x"], 0, 70, white);
11.75 }
11.76 }
11.77 @@ -163,25 +171,11 @@
11.78 function load_random_quote() {
11.79 var file = "/quotes/quote" + Math.floor(Math.random() * QUOTES_NUMBER + 1) + ".html";
11.80 $.ajax({url: SERVER + file,
11.81 - success: write_quote});
11.82 - return;
11.83 - var currentFile = self.location.hostname + self.location.pathname;
11.84 - var request = http_request_object();
11.85 - var url = "http://" + self.location.hostname + file;
11.86 - request.open("GET", url, false);
11.87 - request.setRequestHeader("User-Agent", navigator.userAgent);
11.88 - request.send(null)
11.89 -
11.90 - // if (oRequest.status == 200) alert(oRequest.responseText);
11.91 - // else alert("Error executing XMLHttpRequest call!");
11.92 - //document.write(url);
11.93 - //document.write(request.responseText);
11.94 - document.getElementById('random_quote').innerHTML = request.responseText;
11.95 + success: write_quote});
11.96 }
11.97
11.98 -function write_quote(data, status, xhr) {
11.99 - alert(data);
11.100 - $("random_quote").replaceWith(data);
11.101 +function write_quote(data, status, xhr) {
11.102 + $("#random_quote").html(data);
11.103 }
11.104
11.105 function load_footer()
12.1 --- a/howiwork.html Sun Dec 18 03:44:26 2011 +0100
12.2 +++ b/howiwork.html Sun Dec 18 15:57:15 2011 +0100
12.3 @@ -69,7 +69,7 @@
12.4 The saviour of web frontends. Makes web development endurable.</li>
12.5 <li>
12.6 <h4>Go *</h4>
12.7 -Good idea, weird syntax. Doesn't go well with me.</li>
12.8 +Good idea, weird syntax. Doesn't go well with me. Might give it another go.</li>
12.9 <li>
12.10 <h4>Common Lisp **</h4>
12.11 The purity of programming love. Haven't seen the light yet.</li>
12.12 @@ -112,8 +112,10 @@
12.13
12.14 </div>
12.15 <div id="sidebar">
12.16 - <p>
12.17 - <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
12.18 + <p>
12.19 + <a href="resume.html">
12.20 + <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
12.21 + </a>
12.22 <br />I'm a programmer,<br />
12.23 a student of computer science,<br />
12.24 a music enthusiast.<br />
13.1 --- a/index.html Sun Dec 18 03:44:26 2011 +0100
13.2 +++ b/index.html Sun Dec 18 15:57:15 2011 +0100
13.3 @@ -40,8 +40,10 @@
13.4
13.5 </div>
13.6 <div id="sidebar">
13.7 - <p>
13.8 - <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
13.9 + <p>
13.10 + <a href="resume.html">
13.11 + <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
13.12 + </a>
13.13 <br />I'm a programmer,<br />
13.14 a student of computer science,<br />
13.15 a music enthusiast.<br />
14.1 --- a/links.html Sun Dec 18 03:44:26 2011 +0100
14.2 +++ b/links.html Sun Dec 18 15:57:15 2011 +0100
14.3 @@ -59,7 +59,8 @@
14.4 <h2>Professional</h2>
14.5 <ul>
14.6 <li><h4><a href="http://www4.informatik.tu-muenchen.de/~schulz/">Dr. Stephan Schulz</a></h4>
14.7 -My advisor during my bachelor thesis and creator of the brainiac theorem prover called E.
14.8 +My advisor during my bachelor thesis and creator of the brainiac theorem prover called
14.9 +<a href="http://eprover.org">E</a>.
14.10 </li>
14.11 </ul>
14.12
14.13 @@ -68,15 +69,12 @@
14.14 <!--<li><h4><a href="http://www.tomrocket.com">Thomas Witt</a></h4>
14.15 A good friend and designer for the visual arts.
14.16 </li>-->
14.17 -<li><h4><a href="http://www.chris-koenig.de">Christian König</a></h4>
14.18 -A fellow student and companion in the quest for world domination.
14.19 +<li><h4><a href="http://www.chris-koenig.de">Christian König</a></h4>
14.20 +An ex-fellow student and companion in the quest for world domination.
14.21 </li>
14.22 <li><h4><a href="http://www.unidentify.com">Michael Chlebek</a></h4>
14.23 -A friend, programmer and amateuer photographer.
14.24 +An ex-fellow student and friendly programmer.
14.25 </li>
14.26 -<!--<li><h4><a href="http://thuber.net">Thomas Huber</a></h4>
14.27 -A fellow student of artificial intelligence.
14.28 -</li>-->
14.29 </ul>
14.30
14.31 <h2>Recursive</h2>
14.32 @@ -94,8 +92,10 @@
14.33
14.34 </div>
14.35 <div id="sidebar">
14.36 - <p>
14.37 - <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
14.38 + <p>
14.39 + <a href="resume.html">
14.40 + <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
14.41 + </a>
14.42 <br />I'm a programmer,<br />
14.43 a student of computer science,<br />
14.44 a music enthusiast.<br />
15.1 --- a/linksend.html Sun Dec 18 03:44:26 2011 +0100
15.2 +++ b/linksend.html Sun Dec 18 15:57:15 2011 +0100
15.3 @@ -48,6 +48,9 @@
15.4
15.5 <h2>The Bad</h2>
15.6 <ul>
15.7 +<li><h4><a href="https://twitter.com/notchnik">@notchnik</a></h4>
15.8 +The emptyness in 140 characters.
15.9 +</li>
15.10 <li><h4><a href="https://plus.google.com/101733701635400621767/">Google+ profile</a></h4>
15.11 Staying in touch with people by keeping them at a distance.
15.12 </li>
15.13 @@ -56,7 +59,8 @@
15.14 <h2>Professional</h2>
15.15 <ul>
15.16 <li><h4><a href="http://www4.informatik.tu-muenchen.de/~schulz/">Dr. Stephan Schulz</a></h4>
15.17 -My advisor during my bachelor thesis and creator of the brainiac theorem prover called E.
15.18 +My advisor during my bachelor thesis and creator of the brainiac theorem prover called
15.19 +<a href="http://eprover.org">E</a>.
15.20 </li>
15.21 </ul>
15.22
15.23 @@ -65,15 +69,12 @@
15.24 <!--<li><h4><a href="http://www.tomrocket.com">Thomas Witt</a></h4>
15.25 A good friend and designer for the visual arts.
15.26 </li>-->
15.27 -<li><h4><a href="http://www.chris-koenig.de">Christian König</a></h4>
15.28 -A fellow student and companion in the quest for world domination.
15.29 +<li><h4><a href="http://www.chris-koenig.de">Christian König</a></h4>
15.30 +An ex-fellow student and companion in the quest for world domination.
15.31 </li>
15.32 <li><h4><a href="http://www.unidentify.com">Michael Chlebek</a></h4>
15.33 -A friend, programmer and amateuer photographer.
15.34 +An ex-fellow student and friendly programmer.
15.35 </li>
15.36 -<!--<li><h4><a href="http://thuber.net">Thomas Huber</a></h4>
15.37 -A fellow student of artificial intelligence.
15.38 -</li>-->
15.39 </ul>
15.40
15.41 <h2>Recursive</h2>
15.42 @@ -86,8 +87,10 @@
15.43
15.44 </div>
15.45 <div id="sidebar">
15.46 - <p>
15.47 - <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
15.48 + <p>
15.49 + <a href="resume.html">
15.50 + <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
15.51 + </a>
15.52 <br />I'm a programmer,<br />
15.53 a student of computer science,<br />
15.54 a music enthusiast.<br />
16.1 --- a/personalwork.html Sun Dec 18 03:44:26 2011 +0100
16.2 +++ b/personalwork.html Sun Dec 18 15:57:15 2011 +0100
16.3 @@ -182,8 +182,10 @@
16.4
16.5 </div>
16.6 <div id="sidebar">
16.7 - <p>
16.8 - <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
16.9 + <p>
16.10 + <a href="resume.html">
16.11 + <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
16.12 + </a>
16.13 <br />I'm a programmer,<br />
16.14 a student of computer science,<br />
16.15 a music enthusiast.<br />
17.1 --- a/resume.html Sun Dec 18 03:44:26 2011 +0100
17.2 +++ b/resume.html Sun Dec 18 15:57:15 2011 +0100
17.3 @@ -37,7 +37,7 @@
17.4 <h2>Employment</h2>
17.5 <ul>
17.6 <li>
17.7 -<h4>Software Engineer, Comsoft GmbH, 03/2010-09/2010</h4>
17.8 +<h4>Software Engineer, <a href="http://comsoft.aero">Comsoft GmbH</a>, 03/2010-09/2010</h4>
17.9 <ul>
17.10 <li>
17.11 Development of safety-critical back end systems for the ATC domain.
17.12 @@ -47,37 +47,37 @@
17.13 </li>
17.14 </ul>
17.15 </li>
17.16 -<li><h4>Working Student & Internship, Comsoft GmbH, 10/2008-02/2010</h4>
17.17 +<li><h4>Working Student & Internship, <a href="http://comsoft.aero">Comsoft GmbH</a>, 10/2008-02/2010</h4>
17.18 Development for safety-critical embedded systems.
17.19 </li>
17.20 <li>
17.21 -<h4>Student Assistant, University of Applied Sciences Offenburg, 10/2008-03/2009</h4>
17.22 +<h4>Student Assistant, <a href="http://fh-offenburg.de">University of Applied Sciences Offenburg</a>, 10/2008-03/2009</h4>
17.23 Assistance at a university course for object-oriented software development.
17.24 </li>
17.25 </ul>
17.26 <h2>Education</h2>
17.27 <ul>
17.28 <li>
17.29 -<h4>University of Freiburg, since 10/2010</h4>
17.30 +<h4><a href="http://uni-freiburg.de">University of Freiburg</a>, since 10/2010</h4>
17.31 M.Sc. in Applied Computer Science.<br />
17.32 Emphasis in Artificial Intelligence and Algorithm Theory.
17.33 </li>
17.34 <li>
17.35 -<h4>University of Applied Sciences Offenburg, 03/2007-02/2010</h4>
17.36 +<h4><a href="http://fh-offenburg.de">University of Applied Sciences Offenburg</a>, 03/2007-02/2010</h4>
17.37 B.Sc. in Applied Computer Science.<br />
17.38 Emphasis in Distributed Systems.
17.39 </li>
17.40 </ul>
17.41 <h2>Accompanying the Studies</h2>
17.42 <ul>
17.43 -<li><h4>Bachelor Thesis, Comsoft GmbH, 10/2009-04/2010</h4>
17.44 +<li><h4>Bachelor Thesis, <a href="http://comsoft.aero">Comsoft GmbH</a>, 10/2009-04/2010</h4>
17.45 "Flexible Modeling of Dynamic Air Space Constraints and its Application in Departure Flow Optimisation"
17.46 <div class="download"><a href="http://me73.com/downloads/campus_magazin_29.pdf">
17.47 Campus Mag (P. 36 / German)</a></div>
17.48 <div class="download"><a href="http://me73.com/downloads/discover_me_24.pdf">
17.49 Discover ME (P. 22 / German)</a></div>
17.50 </li>
17.51 -<li><h4>University Project, University of Applied Sciences Offenburg & Karlsruhe Institute of Technology, 2008</h4>
17.52 +<li><h4>University Project, <a href="http://fh-offenburg.de">University of Applied Sciences Offenburg</a> & <a href="http://kit.edu">Karlsruhe Institute of Technology</a>, 2008</h4>
17.53 Development of a client for 3D data streaming and visualisation.
17.54 </li>
17.55 </ul>
17.56 @@ -86,8 +86,10 @@
17.57
17.58 </div>
17.59 <div id="sidebar">
17.60 - <p>
17.61 - <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
17.62 + <p>
17.63 + <a href="resume.html">
17.64 + <img src="images/me2.png" alt="me" class="float-left" height="70" width="70" />
17.65 + </a>
17.66 <br />I'm a programmer,<br />
17.67 a student of computer science,<br />
17.68 a music enthusiast.<br />
18.1 --- a/script.js Sun Dec 18 03:44:26 2011 +0100
18.2 +++ b/script.js Sun Dec 18 15:57:15 2011 +0100
18.3 @@ -1,1 +1,376 @@
18.4 -var QUOTES_NUMBER=39;var SERVER="http://me73.com";$(document).ready(function(){var a=new Image();a.onload=init_logo;a.src="images/logobase.png";$("#logo").click(handle_click);$("#logo").hover(function(){$(this).css("cursor","pointer")},function(){$(this).css("cursor","auto")})});$(document).keypress(function(a){if(a.which==13){a.preventDefault();update_logo()}});var menu_width=670;var menu_height=120;var click_events=new Array();click_events.logo=new Array();click_events.logo[0]=new Object();click_events.logo[0]["min_x"]=0;click_events.logo[0]["max_x"]=Math.round(menu_width/4);click_events.logo[0]["min_y"]=0;click_events.logo[0]["max_y"]=menu_height;click_events.logo[0]["func"]=switch_page;click_events.logo[0]["args"]="personalwork.html";click_events.logo[1]=new Object();click_events.logo[1]["min_x"]=Math.round(menu_width/4)+1;click_events.logo[1]["max_x"]=Math.round(menu_width/2);click_events.logo[1]["min_y"]=0;click_events.logo[1]["max_y"]=menu_height;click_events.logo[1]["func"]=switch_page;click_events.logo[1]["args"]="howiwork.html";click_events.logo[2]=new Object();click_events.logo[2]["min_x"]=Math.round(menu_width/2)+1;click_events.logo[2]["max_x"]=Math.round(menu_width/4*3);click_events.logo[2]["min_y"]=0;click_events.logo[2]["max_y"]=menu_height;click_events.logo[2]["func"]=switch_page;click_events.logo[2]["args"]="books.html";click_events.logo[3]=new Object();click_events.logo[3]["min_x"]=Math.round(menu_width/4*3)+1;click_events.logo[3]["max_x"]=menu_width-1;click_events.logo[3]["min_y"]=0;click_events.logo[3]["max_y"]=menu_height;click_events.logo[3]["func"]=switch_page;click_events.logo[3]["args"]="links.html";function handle_click(c){var f=$("#logo").offset();var a=c.pageX-f.left;var g=c.pageY-f.top;for(var b in click_events[c.target.id]){var d=click_events[c.target.id][b];if(d&&a>=d.min_x&&a<=d.max_x&&g>=d.min_y&&g<=d.max_y){d.func(c.target.id,d);break}}}function switch_page(c,b){var a=b.args;$("body").load(a);document.location.href=a}function color_area(c,l,b,j,m,a){var e=document.getElementById(c);var d=e.getContext("2d");var g=d.getImageData(0,0,menu_width,menu_height);var f=g.data;for(var i=j;i<=m;i+=1){for(var k=l;k<=b;k+=1){var h=getPixel(g,k,i);if(h.a>0){a.a=h.a;setPixel(g,k,i,a)}}}d.putImageData(g,0,0)}function init_logo(e){var b=document.getElementById("logo");var d=b.getContext("2d");var g=d.getImageData(0,0,menu_width,menu_height);b.width=menu_width;b.height=menu_height;d.drawImage(e.target,0,0);var a=new Colour(255,255,255);for(var c in click_events.logo){var f=click_events.logo[c];var h=document.location.href.lastIndexOf("/")+1;if(f.args==document.location.href.substr(h)){color_area("logo",f.min_x,f.max_x,70,f.max_y,a)}else{color_area("logo",f.min_x,f.max_x,0,70,a)}}}function update_logo(){var c=document.getElementById("logo");var d=c.getContext("2d");var e=d.getImageData(0,0,menu_width,menu_height);var h=e.data;var b=new Colour(255,255,255);for(var g=0;g<menu_height;g+=1){for(var a=0;a<menu_width;a+=1){var f=getPixel(e,a,g);if(f.a>0){setPixel(e,a,g,new Colour(90,215,21,f.a))}}}d.putImageData(e,0,0)}function Colour(f,e,c,d){this.r=f;this.g=e;this.b=c;this.a=d==undefined?255:d}Colour.prototype.equals=function(a){for(p in this){if(typeof(a[p])==undefined||this[p]!=a[p]){return false}}return true};function setPixel(d,a,e,b){var c=4*(a+e*d.width);d.data[c]=b.r;d.data[c+1]=b.g;d.data[c+2]=b.b;d.data[c+3]=b.a}function getPixel(j,d,k){var f=4*(d+k*j.width);var i=j.data[f];var h=j.data[f+1];var c=j.data[f+2];var e=j.data[f+3];return new Colour(i,h,c,e)}function load_random_quote(){var c="/quotes/quote"+Math.floor(Math.random()*QUOTES_NUMBER+1)+".html";$.ajax({url:SERVER+c,success:write_quote});return;var a=self.location.hostname+self.location.pathname;var d=http_request_object();var b="http://"+self.location.hostname+c;d.open("GET",b,false);d.setRequestHeader("User-Agent",navigator.userAgent);d.send(null);document.getElementById("random_quote").innerHTML=d.responseText}function write_quote(b,a,c){alert(b);$("random_quote").replaceWith(b)}function load_footer(){var c="/footer.html";var a=self.location.hostname+self.location.pathname;var d=http_request_object();var b="http://"+self.location.hostname+c;d.open("GET",b,false);d.setRequestHeader("User-Agent",navigator.userAgent);d.send(null);document.getElementById("footer").innerHTML=d.responseText}function Complex(b,a){this.real=b;this.imag=a}var MIN_C=new Complex(-2.2,-1.4);var MAX_C=new Complex(1,1.4);var min_c=MIN_C;var max_c=MAX_C;var MIN_ITER=100;var max_iter=MIN_ITER;var zoom=1;var resolution=3;var bailout=4;function Result(b,a){this.z=b;this.iter=a}function complex_quad(a){return new Complex(Math.pow(a.real,2)-Math.pow(a.imag,2),2*a.real*a.imag)}function complex_quad_value(a){return Math.pow(a.real,2)+Math.pow(a.imag,2)}function complex_add(b,a){return new Complex(b.real+a.real,b.imag+a.imag)}function complex_equal(b,a){return(b.real==a.real)&&(b.imag==a.imag)}function iterate(a,b){z_quad=complex_quad(a);return new Complex(z_quad.real+b.real,z_quad.imag+b.imag)}function test(g,d){var b=0;var f=new Complex(0,0);var e=new Complex(-1,0);var a=complex_quad_value(f);while(b<d&&!complex_equal(f,e)&&a<=bailout){e=f;f=iterate(f,g);a=complex_quad_value(f);b++}return new Result(a,b)}function draw(m,n,l,i,B){var a=document.getElementById("mandelbrot");if(a.getContext){zoom+=i;var t=a.getContext("2d");if(B!=0){resolution=Math.max(1,resolution+B)}if(m!=0){max_iter=Math.max(MIN_ITER,max_iter+m)}var d="rgb(255, 0, 0)";var e="rgb(255, 255, 255)";var s=a.width;var q=a.height;var u=Math.max(s,q);var E=Math.round(s/q);var z=new Complex(max_c.real-min_c.real,max_c.imag-min_c.imag);dx_min=z.real/100*(n+i);dx_max=z.real/100*(n-i);dy_min=z.imag/100*(l+i);dy_max=z.imag/100*(l-i);var v=new Complex(dx_min*E/2,dy_min);var D=new Complex(dx_max*E/2,dy_max);min_c=complex_add(min_c,v);max_c=complex_add(max_c,D);z=new Complex(max_c.real-min_c.real,max_c.imag-min_c.imag);for(var f=0;f<q;f+=resolution){for(var h=0;h<s;h+=resolution){var A=new Complex(min_c.real+z.real/u*h,min_c.imag+z.imag/u*f);var k=test(A,max_iter);var o=Math.min(255,Math.pow(Math.max(0,(k.iter-max_iter/20)),2));var w=Math.min(255,Math.pow(Math.max(0,(k.iter-max_iter/25)),2));var C=Math.min(255,Math.pow(Math.max(0,(k.iter-max_iter/20)),2));var j="rgb("+o+","+w+","+C+")";t.fillStyle=j;t.fillRect(h,f,resolution,resolution)}}}}function getEventOffsetX(a){if(a.offsetX!=null){return a.offsetX}var b=a.target||a.srcElement;setPageTopLeft(b);return(a.clientX-b.pageLeft)}function getEventOffsetY(a){if(a.offsetY!=null){return a.offsetY}var b=a.target||a.srcElement;setPageTopLeft(b);return(a.clientY-b.pageTop)}function setPageTopLeft(d){var c=0,b=0,a=d;while(d.offsetParent){b+=d.offsetLeft;c+=d.offsetTop;d=d.offsetParent}a.pageTop=c;a.pageLeft=b}function draw2(c){var b=0;var d=0;var a=(getEventOffsetX(c)-335)/167.5;var f=(getEventOffsetY(c)-140)/70;var e=0;draw(b,a,f,e,d)};
18.5 \ No newline at end of file
18.6 +var QUOTES_NUMBER = 39;
18.7 +var port = 8080;
18.8 +var SERVER = "http://" + window.location.hostname + ":" + port;
18.9 +
18.10 +$(document).ready(function() {
18.11 + var image = new Image();
18.12 + image.onload = init_logo;
18.13 + image.src = "images/logobase.png";
18.14 + $("#logo").click(handle_click);
18.15 + $("#logo").hover(function() {
18.16 + $(this).css("cursor", "pointer");
18.17 + }, function() {
18.18 + $(this).css("cursor", "auto");
18.19 + });
18.20 +});
18.21 +
18.22 +$(document).keypress( function(event) {
18.23 + if (event.which == 13) {
18.24 + event.preventDefault();
18.25 + update_logo();
18.26 + }
18.27 +});
18.28 +
18.29 +var menu_width = 670;
18.30 +var menu_height = 120;
18.31 +
18.32 +var click_events = new Array();
18.33 +click_events["logo"] = new Array();
18.34 +click_events["logo"][0] = new Object();
18.35 +click_events["logo"][0]["min_x"] = 0;
18.36 +click_events["logo"][0]["max_x"] = Math.round(menu_width/4);
18.37 +click_events["logo"][0]["min_y"] = 0;
18.38 +click_events["logo"][0]["max_y"] = menu_height;
18.39 +click_events["logo"][0]["func"] = switch_page;
18.40 +click_events["logo"][0]["args"] = new Array("personalwork.html");
18.41 +click_events["logo"][1] = new Object();
18.42 +click_events["logo"][1]["min_x"] = Math.round(menu_width/4) + 1;
18.43 +click_events["logo"][1]["max_x"] = Math.round(menu_width/2);
18.44 +click_events["logo"][1]["min_y"] = 0;
18.45 +click_events["logo"][1]["max_y"] = menu_height;
18.46 +click_events["logo"][1]["func"] = switch_page;
18.47 +click_events["logo"][1]["args"] = new Array("howiwork.html");
18.48 +click_events["logo"][2] = new Object();
18.49 +click_events["logo"][2]["min_x"] = Math.round(menu_width/2) + 1;
18.50 +click_events["logo"][2]["max_x"] = Math.round(menu_width/4*3);
18.51 +click_events["logo"][2]["min_y"] = 0;
18.52 +click_events["logo"][2]["max_y"] = menu_height;
18.53 +click_events["logo"][2]["func"] = switch_page;
18.54 +click_events["logo"][2]["args"] = new Array("books.html");
18.55 +click_events["logo"][3] = new Object();
18.56 +click_events["logo"][3]["min_x"] = Math.round(menu_width/4*3) + 1;
18.57 +click_events["logo"][3]["max_x"] = menu_width - 1;
18.58 +click_events["logo"][3]["min_y"] = 0;
18.59 +click_events["logo"][3]["max_y"] = menu_height;
18.60 +click_events["logo"][3]["func"] = switch_page;
18.61 +click_events["logo"][3]["args"] = new Array("links.html", "linksend.html");
18.62 +
18.63 +function handle_click(e) {
18.64 + var offset = $("#logo").offset();
18.65 + var x = e.pageX - offset.left;
18.66 + var y = e.pageY - offset.top;
18.67 + for (var i in click_events[e.target.id]) {
18.68 + var ces = click_events[e.target.id][i];
18.69 + if (ces && x >= ces["min_x"] && x <= ces["max_x"]
18.70 + && y >= ces["min_y"] && y <= ces["max_y"]) {
18.71 + ces["func"](e.target.id, ces);
18.72 + break;
18.73 + }
18.74 + }
18.75 +}
18.76 +
18.77 +function switch_page(id, params) {
18.78 + var page = params["args"][0];
18.79 + $("body").load(page);
18.80 + document.location.href = page;
18.81 +}
18.82 +
18.83 +function color_area(id, min_x, max_x, min_y, max_y, colour) {
18.84 + var canvas = document.getElementById(id);
18.85 + var context = canvas.getContext("2d");
18.86 + var image = context.getImageData(0, 0, menu_width, menu_height);
18.87 + var pixels = image.data;
18.88 + for (var y = min_y; y <= max_y; y += 1) {
18.89 + for (var x = min_x; x <= max_x; x += 1) {
18.90 + var pix_colour = getPixel(image, x, y);
18.91 + if (pix_colour.a > 0) {
18.92 + colour.a = pix_colour.a;
18.93 + setPixel(image, x, y, colour);
18.94 + }
18.95 + }
18.96 + }
18.97 + context.putImageData(image, 0, 0);
18.98 +}
18.99 +
18.100 +function init_logo(event) {
18.101 + var canvas = document.getElementById("logo");
18.102 + var context = canvas.getContext("2d");
18.103 + var image = context.getImageData(0, 0, menu_width, menu_height);
18.104 + canvas.width = menu_width;
18.105 + canvas.height = menu_height;
18.106 + context.drawImage(event.target, 0, 0);
18.107 + var white = new Colour(255, 255, 255);
18.108 + for (var i in click_events["logo"]) {
18.109 + var p = click_events["logo"][i];
18.110 + var pos = document.location.href.lastIndexOf("/") + 1;
18.111 + var page = document.location.href.substr(pos);
18.112 + var found = false;
18.113 + for (var j in p["args"]) {
18.114 + if (page == p["args"][j]) {
18.115 + color_area("logo", p["min_x"], p["max_x"], 70, p["max_y"], white);
18.116 + found = true;
18.117 + break;
18.118 + }
18.119 + }
18.120 + if (!found) {
18.121 + color_area("logo", p["min_x"], p["max_x"], 0, 70, white);
18.122 + }
18.123 + }
18.124 +}
18.125 +
18.126 +function update_logo() {
18.127 + var canvas = document.getElementById("logo");
18.128 + var context = canvas.getContext("2d");
18.129 + var image = context.getImageData(0, 0, menu_width, menu_height);
18.130 + var pixels = image.data;
18.131 + var white = new Colour(255, 255, 255);
18.132 + for (var y = 0; y < menu_height; y += 1) {
18.133 + for (var x = 0; x < menu_width; x += 1) {
18.134 + var pix_colour = getPixel(image, x, y);
18.135 + if (pix_colour.a > 0) {
18.136 + setPixel(image, x, y, new Colour(90, 215, 21, pix_colour.a));
18.137 + }
18.138 + }
18.139 + }
18.140 + context.putImageData(image, 0, 0);
18.141 +}
18.142 +
18.143 +function Colour(r, g, b, a) {
18.144 + this.r = r;
18.145 + this.g = g;
18.146 + this.b = b;
18.147 + this.a = a == undefined ? 255 : a;
18.148 +}
18.149 +Colour.prototype.equals = function(rhs) {
18.150 + for (p in this) {
18.151 + if (typeof(rhs[p]) == undefined
18.152 + || this[p] != rhs[p]) {
18.153 + return false;
18.154 + }
18.155 + }
18.156 + return true;
18.157 +}
18.158 +
18.159 +function setPixel(image, x, y, color) {
18.160 + var index = 4 * (x + y * image.width);
18.161 + image.data[index] = color.r;
18.162 + image.data[index + 1] = color.g;
18.163 + image.data[index + 2] = color.b;
18.164 + image.data[index + 3] = color.a;
18.165 +}
18.166 +
18.167 +function getPixel(image, x, y) {
18.168 + var index = 4 * (x + y * image.width);
18.169 + var r = image.data[index];
18.170 + var g = image.data[index + 1];
18.171 + var b = image.data[index + 2];
18.172 + var a = image.data[index + 3];
18.173 + return new Colour(r, g, b, a);
18.174 +}
18.175 +
18.176 +function load_random_quote() {
18.177 + var file = "/quotes/quote" + Math.floor(Math.random() * QUOTES_NUMBER + 1) + ".html";
18.178 + $.ajax({url: SERVER + file,
18.179 + success: write_quote});
18.180 +}
18.181 +
18.182 +function write_quote(data, status, xhr) {
18.183 + $("#random_quote").html(data);
18.184 +}
18.185 +
18.186 +function load_footer()
18.187 +{
18.188 + var file = "/footer.html";
18.189 + var currentFile = self.location.hostname + self.location.pathname;
18.190 + var request = http_request_object();
18.191 + var url = "http://" + self.location.hostname + file;
18.192 + request.open("GET", url, false);
18.193 + request.setRequestHeader("User-Agent", navigator.userAgent);
18.194 + request.send(null)
18.195 + // if (oRequest.status == 200) alert(oRequest.responseText);
18.196 + // else alert("Error executing XMLHttpRequest call!");
18.197 + //document.write(url);
18.198 + //document.write(request.responseText);
18.199 + document.getElementById('footer').innerHTML = request.responseText;
18.200 +}
18.201 +
18.202 +
18.203 +
18.204 +// Mandelbrot functions
18.205 +function Complex(real, imag)
18.206 +{
18.207 + this.real = real;
18.208 + this.imag = imag;
18.209 +}
18.210 +
18.211 +var MIN_C = new Complex(-2.2, -1.4);
18.212 +var MAX_C = new Complex(1.0, 1.4);
18.213 +var min_c = MIN_C;
18.214 +var max_c = MAX_C;
18.215 +var MIN_ITER = 100;
18.216 +var max_iter = MIN_ITER;
18.217 +var zoom = 1.0;
18.218 +var resolution = 3;
18.219 +var bailout = 4.0;
18.220 +
18.221 +function Result(z, iter)
18.222 +{
18.223 + this.z = z;
18.224 + this.iter = iter;
18.225 +}
18.226 +
18.227 +function complex_quad(c)
18.228 +{
18.229 + return new Complex(Math.pow(c.real, 2) - Math.pow(c.imag, 2),
18.230 + 2.0 * c.real * c.imag);
18.231 +}
18.232 +
18.233 +function complex_quad_value(c)
18.234 +{
18.235 + return Math.pow(c.real, 2) + Math.pow(c.imag, 2);
18.236 +}
18.237 +
18.238 +function complex_add(c1, c2)
18.239 +{
18.240 + return new Complex(c1.real + c2.real, c1.imag + c2.imag);
18.241 +}
18.242 +
18.243 +function complex_equal(c1, c2)
18.244 +{
18.245 + return (c1.real == c2.real) && (c1.imag == c2.imag);
18.246 +}
18.247 +
18.248 +function iterate(z, c)
18.249 +{
18.250 + z_quad = complex_quad(z);
18.251 + return new Complex(z_quad.real + c.real, z_quad.imag + c.imag);
18.252 +}
18.253 +
18.254 +function test(c, max_iter)
18.255 +{
18.256 + var iter = 0;
18.257 + var z = new Complex(0.0, 0.0);
18.258 + var last_z = new Complex(-1.0, 0.0);
18.259 + var quad_z = complex_quad_value(z);
18.260 +
18.261 + while (iter < max_iter
18.262 + && !complex_equal(z, last_z)
18.263 + && quad_z <= bailout)
18.264 + {
18.265 + last_z = z;
18.266 + z = iterate(z, c);
18.267 + quad_z = complex_quad_value(z);
18.268 + iter++;
18.269 + }
18.270 + return new Result(quad_z, iter);
18.271 +}
18.272 +
18.273 +function draw(diter, dx, dy, dz, dres)
18.274 +{
18.275 + var canvas = document.getElementById('mandelbrot');
18.276 +
18.277 + if (canvas.getContext)
18.278 + {
18.279 + zoom += dz;
18.280 + var ctx = canvas.getContext('2d');
18.281 +
18.282 + if (dres != 0)
18.283 + {
18.284 + resolution = Math.max(1, resolution + dres);
18.285 + }
18.286 +
18.287 + if (diter != 0)
18.288 + {
18.289 + max_iter = Math.max(MIN_ITER, max_iter + diter);
18.290 + }
18.291 +
18.292 + var red = "rgb(255, 0, 0)";
18.293 + var white = "rgb(255, 255, 255)";
18.294 + var width = canvas.width;
18.295 + var height = canvas.height;
18.296 + var dim = Math.max(width, height);
18.297 + var dim_ratio = Math.round(width / height);
18.298 + var diff_c = new Complex(max_c.real - min_c.real,
18.299 + max_c.imag - min_c.imag);
18.300 + dx_min = diff_c.real / 100 * (dx + dz);
18.301 + dx_max = diff_c.real / 100 * (dx - dz);
18.302 +
18.303 + dy_min = diff_c.imag / 100 * (dy + dz);
18.304 + dy_max = diff_c.imag / 100 * (dy - dz);
18.305 +
18.306 + var min_inc = new Complex(dx_min * dim_ratio / 2.0, dy_min);
18.307 + var max_inc = new Complex(dx_max * dim_ratio / 2.0, dy_max);
18.308 + min_c = complex_add(min_c, min_inc);
18.309 + max_c = complex_add(max_c, max_inc);
18.310 + diff_c = new Complex(max_c.real - min_c.real,
18.311 + max_c.imag - min_c.imag);
18.312 +
18.313 + for (var y = 0; y < height; y += resolution)
18.314 + {
18.315 + for (var x = 0; x < width; x += resolution)
18.316 + {
18.317 + var c = new Complex(min_c.real + diff_c.real / dim * x,
18.318 + min_c.imag + diff_c.imag / dim * y);
18.319 + var result = test(c, max_iter);
18.320 + var r = Math.min(255, Math.pow(Math.max(0,
18.321 + (result.iter - max_iter / 20.0)), 2));
18.322 + var g = Math.min(255, Math.pow(Math.max(0,
18.323 + (result.iter - max_iter / 25.0)), 2));
18.324 + var b = Math.min(255, Math.pow(Math.max(0,
18.325 + (result.iter - max_iter / 20.0)), 2));
18.326 + var colour = "rgb(" + r + "," + g + "," + b + ")";
18.327 + ctx.fillStyle = colour;
18.328 + ctx.fillRect(x, y, resolution, resolution);
18.329 + }
18.330 + }
18.331 + }
18.332 +}
18.333 +
18.334 +function getEventOffsetX(evt)
18.335 +{
18.336 + if (evt.offsetX != null)
18.337 + return evt.offsetX;
18.338 +
18.339 + var obj = evt.target || evt.srcElement;
18.340 + setPageTopLeft(obj);
18.341 + return (evt.clientX - obj.pageLeft);
18.342 +}
18.343 +
18.344 +function getEventOffsetY(evt)
18.345 +{
18.346 + if (evt.offsetY != null)
18.347 + return evt.offsetY;
18.348 +
18.349 + var obj = evt.target || evt.srcElement;
18.350 + setPageTopLeft(obj);
18.351 + return (evt.clientY - obj.pageTop);
18.352 +}
18.353 +
18.354 +function setPageTopLeft( o )
18.355 +{
18.356 + var top = 0,
18.357 + left = 0,
18.358 + obj = o;
18.359 +
18.360 + while (o.offsetParent)
18.361 + {
18.362 + left += o.offsetLeft ;
18.363 + top += o.offsetTop ;
18.364 + o = o.offsetParent ;
18.365 + };
18.366 +
18.367 + obj.pageTop = top;
18.368 + obj.pageLeft = left;
18.369 +}
18.370 +
18.371 +function draw2(evt)
18.372 +{
18.373 + var iter = 0;
18.374 + var res = 0;
18.375 + var x = (getEventOffsetX(evt) - 335) / 167.5;
18.376 + var y = (getEventOffsetY(evt) - 140) / 70;
18.377 + var z = 0;
18.378 + draw(iter, x, y, z, res);
18.379 +}
18.380 +
18.381 +