<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4356626401899215423</id><updated>2024-09-02T02:02:10.395+02:00</updated><category term="computer"/><category term="Programmering"/><category term="software"/><category term="projekter"/><category term="general"/><category term="OAS"/><category term="OpenApplicationServer"/><category term="Studie"/><category term="hverdag"/><category term="julekalender"/><category term="kodning"/><category term="Design"/><category term="everyday"/><category term="fordybningsuge"/><category term="linux"/><category term="piger"/><category term="ASP.Net"/><category term="CeBIT"/><category term="Events"/><category term="Personlig"/><category term="Rune RK"/><category term="Web2.0"/><category term="browser"/><category term="clubbing"/><category term="musik"/><category term="opfindelser"/><category term="personal"/><category term="web"/><category term=".Net"/><category term="14b"/><category term="ANNEHARENPIKISKUFFEN"/><category term="Cron"/><category term="DIKU"/><category term="DiMS"/><category term="Frederiksberg"/><category term="IP"/><category term="JSON"/><category term="Kontor"/><category term="Latitude"/><category term="MOSAIC Extractor"/><category term="Mig"/><category term="OOPD"/><category term="Open office"/><category term="Politik"/><category term="Reading"/><category term="Rejse"/><category term="Søster"/><category term="USB"/><category term="Weeknd"/><category term="YQL"/><category term="apache"/><category term="archlinux"/><category term="bachelor"/><category term="chrome"/><category term="development"/><category term="ferie"/><category term="firma"/><category term="first year project"/><category term="google"/><category term="jQuery"/><category term="kaare"/><category term="license"/><category term="links"/><category term="markulator"/><category term="me"/><category term="medier"/><category term="multi medie"/><category term="netbeans"/><category term="projects"/><category term="t-shirt"/><category term="test"/><category term="university"/><title type='text'>Nicolais Personal blog</title><subtitle type='html'>A blog from a software developer</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://chillems.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://chillems.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/14514844185260924975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>61</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4356626401899215423.post-3246764949497772798</id><published>2016-02-15T22:58:00.001+01:00</published><updated>2016-02-15T23:08:33.095+01:00</updated><title type='text'>Weeklies 2 - Documentation</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
So I spend this weekend writing up some documentation for the flexbillet-api. I have done no research what-so-ever, and this makes for a nice point!&lt;br /&gt;
&lt;br /&gt;
While not-researching, I actually wrote some documentation. My thoughts kept coming back to &quot;there must be a tool to automate some of this&quot;, but instead of exploring, or even start writing something up, I just did it. And there it is:&amp;nbsp;https://github.com/nwillems/node-flexbillet-api&lt;br /&gt;
&lt;br /&gt;
So why was the documentation important? 1. It would suck to put something out there, and then have nobody able to use it, 2. The feels - giving something back, and then proudly publishing to NPM. Yes its on NPM, this little gem(ahem..),&amp;nbsp;https://www.npmjs.com/package/flexbillet-api&lt;br /&gt;
&lt;br /&gt;
This is my first published module on NPM and it feels really great. Thinking about it, it seems completely unreasonable, but it feels good.&lt;br /&gt;
&lt;br /&gt;
So the actual documentation, if you look at the commit history I did quite some iterations. Recently I&#39;ve been introduced to squashing commits, but this time I felt that it would defeat the purpose. It sort-of documents the documentation process. The documentation is split in three parts: Installation, Simple usage and reference docs.&lt;br /&gt;
&lt;br /&gt;
The installation is easy, it is also the shortest part, it also makes a lot of assumptions, you should be somewhat familiar with the terminal and the node ecosystem, or at least be able to translate it.&lt;br /&gt;
&lt;br /&gt;
The &quot;simple usage&quot; is the most straight forward part, also the hardest part for me to write, simply put it should boil down the module to a single piece of code that shows you that it works, something you could copy-paste and have working within 5-minutes. I think it succeeds in that.&lt;br /&gt;
&lt;br /&gt;
Finally the &quot;reference doc&quot; should be a comprehensive list of the methods provided and their expected behaviour. This is the time-consuming part to write, first ensure that the method is tested(and fails), then implement it correctly, then have the test produce output, now add the inputs and outputs to the documentation, factor out common objects(See Generally defined objects), and lastly contemplate wether you should start an effort to structure the returned output differently, or maybe make it more of an exploration for the user...&lt;br /&gt;
&lt;br /&gt;
And this is where I leave you, with a list of next weeks topic - testing.&lt;br /&gt;
&lt;br /&gt;
EDIT: This post should have had a GIANT kudos to the NPM people,&amp;nbsp;https://docs.npmjs.com/ is an awesome site, I never thought it would be so easy to publish something to NPM. Awesome job guys!&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://chillems.blogspot.com/feeds/3246764949497772798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4356626401899215423/3246764949497772798' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/3246764949497772798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/3246764949497772798'/><link rel='alternate' type='text/html' href='http://chillems.blogspot.com/2016/02/weeklies-2-documentation.html' title='Weeklies 2 - Documentation'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/14514844185260924975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4356626401899215423.post-670547634725266805</id><published>2016-02-07T23:25:00.003+01:00</published><updated>2016-02-15T22:59:51.160+01:00</updated><title type='text'>Weeklies 1 - Writing a wrapper API</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
At the moment I&#39;m trying to get moving on a small project, it&#39;s called DigiKreds(Yes, like DigiMon, but instead of monsters it&#39;s for local Scouts organisations, in danish &quot;Kreds&quot;).&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
The first thing to note, is that we recently got access to a new system for handling trip-invitations and payment(https://flexbillet.dk/). And I got access to their API description, ya great customer service.&lt;br /&gt;
&lt;br /&gt;
First of all, my language of choice is Javascript, so its going to be a node module. Second, I would like the interaction to be as clean as possible, meaning that you should configure the module once and then use the methods provided. And speaking about methods, the API is sort of REST, which is nice. But then again, this is no advanced system, thank you developers :-).&lt;br /&gt;
&lt;br /&gt;
So I got off to writing some code, which was the goal. Wee, lets hope I can push myself to do something similar during next week, and suddenly &quot;a wild language binding appeared&quot;. For now the code is just a bunch of failing tests and no actual outside world calls, so its nowhere near being public, but in a short few iterations its going to be.&lt;br /&gt;
&lt;br /&gt;
While looking into this, I started my internal monologue about RPC vs REST. There are certainly cases where RPC makes more sense, or at least its easier to implement. Just thinking about the classic calculator example, do you &lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;POST&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt; to the add-resource, or how? Please feel free to leave a comment on this topic, I&#39;m eager to learn.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Weekly 2: &lt;a href=&quot;http://chillems.blogspot.dk/2016/02/weeklies-2-documentation.html&quot; target=&quot;_blank&quot;&gt;documentation&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
EDIT: Remove sign-of and add link to following article&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://chillems.blogspot.com/feeds/670547634725266805/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4356626401899215423/670547634725266805' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/670547634725266805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/670547634725266805'/><link rel='alternate' type='text/html' href='http://chillems.blogspot.com/2016/02/weeklies-1-writing-wrapper-api.html' title='Weeklies 1 - Writing a wrapper API'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/14514844185260924975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4356626401899215423.post-5236549278084369002</id><published>2014-04-29T13:36:00.000+02:00</published><updated>2014-04-29T13:37:23.998+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="archlinux"/><category scheme="http://www.blogger.com/atom/ns#" term="computer"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><title type='text'>Notes on installing Archlinux</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
This blog post is a collection of notes, for installing a modern Archlinux system.&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Networking&lt;/h3&gt;
&lt;div&gt;
I had a minor problem with the networking. It simply required restarting the dhcpd service for the given interface:&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; systemctl restart dhcpd@enp2s0.service&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Partitioning&lt;/h3&gt;
&lt;div&gt;
The system has a 250G drive(Shows as 232G), and is GPT with the following scheme:&lt;/div&gt;
&lt;div&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; dir=&quot;ltr&quot; style=&quot;border-collapse: collapse; border: 1px solid #ccc; font-family: arial,sans,sans-serif; font-size: 13px; table-layout: fixed;&quot;&gt;&lt;colgroup&gt;&lt;col width=&quot;120&quot;&gt;&lt;/col&gt;&lt;col width=&quot;120&quot;&gt;&lt;/col&gt;&lt;col width=&quot;120&quot;&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;&lt;td style=&quot;direction: ltr; padding: 0px 3px; vertical-align: bottom;&quot;&gt;Size&lt;/td&gt;&lt;td style=&quot;direction: ltr; padding: 0px 3px; vertical-align: bottom;&quot;&gt;Type&lt;/td&gt;&lt;td style=&quot;direction: ltr; padding: 0px 3px; vertical-align: bottom;&quot;&gt;Mount point&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;&lt;td style=&quot;direction: ltr; padding: 0px 3px; vertical-align: bottom;&quot;&gt;200M&lt;/td&gt;&lt;td style=&quot;direction: ltr; padding: 0px 3px; vertical-align: bottom;&quot;&gt;EFI System&lt;/td&gt;&lt;td style=&quot;padding: 0px 3px 0px 3px; vertical-align: bottom;&quot;&gt;...?&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;&lt;td style=&quot;direction: ltr; padding: 0px 3px; vertical-align: bottom;&quot;&gt;50G&lt;/td&gt;&lt;td style=&quot;direction: ltr; padding: 0px 3px; vertical-align: bottom;&quot;&gt;Linux&lt;/td&gt;&lt;td style=&quot;direction: ltr; padding: 0px 3px; vertical-align: bottom;&quot;&gt;/&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;&lt;td style=&quot;direction: ltr; padding: 0px 3px; vertical-align: bottom;&quot;&gt;80G&lt;/td&gt;&lt;td style=&quot;direction: ltr; padding: 0px 3px; vertical-align: bottom;&quot;&gt;Linux&lt;/td&gt;&lt;td style=&quot;direction: ltr; padding: 0px 3px; vertical-align: bottom;&quot;&gt;/var&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;&lt;td style=&quot;direction: ltr; padding: 0px 3px; vertical-align: bottom;&quot;&gt;102G&lt;/td&gt;&lt;td style=&quot;direction: ltr; padding: 0px 3px; vertical-align: bottom;&quot;&gt;Linux&lt;/td&gt;&lt;td style=&quot;direction: ltr; padding: 0px 3px; vertical-align: bottom;&quot;&gt;/home&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div&gt;
Suggestions found at:&amp;nbsp;https://wiki.archlinux.org/index.php/partitioning&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Base package installation&lt;/h3&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;pacstrap -i /mnt base base-devel&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Needs to remove reiserfsprogs(maybe also xfsprogs,jfsutils) after installation.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Maybe stupid question but why libldap, libsasl and openssl ? openssl is pretty basic yes, but why in the base system?&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Generating /etc/fstab&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Should /boot come before /var and /home or does is at all matter to spend time mounting boot when using UEFI? Of course it should be mounted when doing sysupgrades, but otherwise?&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;More updates to come!&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://chillems.blogspot.com/feeds/5236549278084369002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4356626401899215423/5236549278084369002' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/5236549278084369002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/5236549278084369002'/><link rel='alternate' type='text/html' href='http://chillems.blogspot.com/2014/04/notes-on-installing-archlinux.html' title='Notes on installing Archlinux'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/14514844185260924975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4356626401899215423.post-1767660447509061771</id><published>2013-12-29T19:22:00.000+01:00</published><updated>2013-12-29T19:22:07.445+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apache"/><category scheme="http://www.blogger.com/atom/ns#" term="bachelor"/><category scheme="http://www.blogger.com/atom/ns#" term="browser"/><category scheme="http://www.blogger.com/atom/ns#" term="computer"/><title type='text'>The toughest job aka creating server/client certificates</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
The reason why is pretty unimportant, and frankly I don&#39;t know what I did to have it working. But suddenly it did.&lt;br /&gt;
&lt;br /&gt;
The task is to have an apache server use SSL with client-certificates for authorization. No problem, you just create your own CA, issue a server certificate, issue a client certificate and convert to PKCS12-format for consumption in your favorite browser, right? Not so fast!&lt;br /&gt;
&lt;br /&gt;
So I made a gist walking through the steps:&amp;nbsp;&lt;a href=&quot;https://gist.github.com/nwillems/8172932&quot;&gt;https://gist.github.com/nwillems/8172932&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
My starting point was this:&amp;nbsp;&lt;a href=&quot;https://code.google.com/p/migrid/wiki/ServerInstallNotes#Certificates_-_Manually&quot;&gt;https://code.google.com/p/migrid/wiki/ServerInstallNotes#Certificates_-_Manually&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
And intermediary process has been a lot of googleing seeing all sorts of procedures to accomplish something similar, and then not yet. Some resources has been:&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;a href=&quot;http://lakm.us/logit/2013/01/https-server-client-certificate-pair-1-generate-openssl/&quot;&gt;http://lakm.us/logit/2013/01/https-server-client-certificate-pair-1-generate-openssl/&lt;/a&gt;&amp;nbsp;final resource&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://gagravarr.org/writing/openssl-certs/ca.shtml&quot;&gt;http://gagravarr.org/writing/openssl-certs/ca.shtml&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://gagravarr.org/writing/openssl-certs/general.shtml#cert-convert&quot;&gt;http://gagravarr.org/writing/openssl-certs/general.shtml#cert-convert&lt;/a&gt;&amp;nbsp;- didn&#39;t really work, but pointed in the right direction.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
That pretty much sums it up - have fun authenticating with your new certificates.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
Have a happy new years :-)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
/Willems&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://chillems.blogspot.com/feeds/1767660447509061771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4356626401899215423/1767660447509061771' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/1767660447509061771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/1767660447509061771'/><link rel='alternate' type='text/html' href='http://chillems.blogspot.com/2013/12/the-toughest-job-aka-creating.html' title='The toughest job aka creating server/client certificates'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/14514844185260924975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4356626401899215423.post-5324027844575880705</id><published>2013-05-03T00:58:00.002+02:00</published><updated>2013-05-03T00:58:32.093+02:00</updated><title type='text'>An app idea, pre configured cooking timer</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Today I was making coffee and I had this idea about an app.&lt;br /&gt;
&lt;br /&gt;
Because making coffee is a &quot;long&quot; process, you most often don&#39;t want to stand and wait for it to finish. So what if you could just once record the time it takes, and then next time you make coffee you just press the &quot;I&#39;m making coffee&quot;-button, and your phone will beep when coffee is ready.&lt;br /&gt;
&lt;br /&gt;
For my coffee &quot;machine&quot;[0] it takes about 11 minutes, another thing is the coffee machine at work and a third thing could be boiling an egg.&lt;br /&gt;
&lt;br /&gt;
It could replace your good old cooking timer[1], and save you the trouble of turning it too little to make a loud and clear ring.&lt;br /&gt;
&lt;br /&gt;
Letting the ideas flow, I thought you could make it such that a picture of what you are &quot;timing&quot; would be a sufficient lookup. Such that the flow would be something like, take a picture of coffee maker, stop timer when coffee is done, next time you make coffee you just snap a picture of the coffee maker and voila it starts the timer. I&#39;m no image-recognition guy, so I have no idea if this is feasible on a regular smartphone, but sure seems like a nicer way, instead of having to either type or scroll through a list.&lt;br /&gt;
&lt;br /&gt;
The idea is&amp;nbsp;of course&amp;nbsp;up for grabs, if anyone feel for making such a thing. I would be proud if you mentioned this post.&lt;br /&gt;
&lt;br /&gt;
/Willems&lt;br /&gt;
&lt;br /&gt;
[0]=One like this:&amp;nbsp;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0_ZdeXoyWhyWIWEJOEBTVuVSz8mSOnUJGLIFRmhl_TOFm_ijUjvoklsQ2C-_AT7wvuRD77of9l5B7gyWRkBd_8eX8b4HswDCgDxjiWHiU9qyWAyMFk9FydZJ0hYpKf_cqUq257UaYhKs3/s1600/NewMokaExpressLarge.jpg&quot;&gt;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0_ZdeXoyWhyWIWEJOEBTVuVSz8mSOnUJGLIFRmhl_TOFm_ijUjvoklsQ2C-_AT7wvuRD77of9l5B7gyWRkBd_8eX8b4HswDCgDxjiWHiU9qyWAyMFk9FydZJ0hYpKf_cqUq257UaYhKs3/s1600/NewMokaExpressLarge.jpg&lt;/a&gt;&lt;br /&gt;
[1]=&amp;nbsp;http://img.alibaba.com/img/pb/080/061/279/279061080_599.jpg&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://chillems.blogspot.com/feeds/5324027844575880705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4356626401899215423/5324027844575880705' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/5324027844575880705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/5324027844575880705'/><link rel='alternate' type='text/html' href='http://chillems.blogspot.com/2013/05/an-app-idea-pre-configured-cooking-timer.html' title='An app idea, pre configured cooking timer'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/14514844185260924975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4356626401899215423.post-7723423221430713705</id><published>2013-04-23T14:30:00.002+02:00</published><updated>2013-04-23T14:31:29.559+02:00</updated><title type='text'>Managing a project on Github.</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
A short post on managing code via Github. They probably have a thousand articles and this has been written a million times before, but I&#39;ll write it to remind my self, and &amp;nbsp;as a nifty reference for my group in &quot;Company project&quot;(I guess there will be some sort of post about that).&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
The post is a work in progress, so feel free to add tips &amp;amp; tricks, corrections and whatnot in the comments, or drop me an email or a message on G+.&lt;br /&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
The Project&lt;/h2&gt;
&lt;div&gt;
The current project, and the one I&#39;ll refer in this post, is a LaTeX project for the report, that we are supposed to write. It contains 5 sections at the moment and a single appendix(there are more to come), its a total of 9 pages and growing.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The overhead of the below described process is probably growing over our heads before we know - but it makes things more manageable and adds structure to the process - which can probably help us.&lt;/div&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
The Meats&lt;/h2&gt;
When developing with Github you have a bunch of useful features, what is mainly explored in this post is the pull-request(shortened to PR) feature.&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Branches&lt;/h3&gt;
The master branch is supposed to be a stable version of whatever you are doing, in our case it is supposed to be a&amp;nbsp;compile-able&amp;nbsp;report that we can ship off to our mentor at any point in time.&lt;br /&gt;
&lt;br /&gt;
To&amp;nbsp;achieve that&amp;nbsp;goal, branches come in very handy. When you write something new, or change an existing part, a branch helps you keep your changes in one place. Thereby not polluting the master-branch with your unfinished or non compile-able work.&lt;br /&gt;
&lt;br /&gt;
The part about keeping master clean, could very well be achieved with tags - this would require close coordination between team members about when what happens, when to make a tag, how many commits and so on. With the branches approach, you can keep your changes isolated and do not have to worry about what the rest of the world is doing to the code base.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;In conclusion&amp;nbsp;&lt;/b&gt;branches helps you keep sets of changes isolated from the rest of your project, without the coordination efforts required when working in the same branch.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Commands&lt;/b&gt;: create a new branch &lt;span style=&quot;background-color: #cccccc;&quot;&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;git branch &amp;lt;branch-name&amp;gt;&lt;/span&gt;&lt;/span&gt;, switch to a branch: &lt;span style=&quot;background-color: #cccccc; font-family: Courier New, Courier, monospace;&quot;&gt;git checkout &amp;lt;branch-name&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Merging&lt;/h3&gt;
When you&#39;ve create a set of changes, and you are ready for the world to know that you have something, you create a PR. Actually, if you go to the&amp;nbsp;Github project page right after pushing your latest changes, there should be a button allowing you to create a pull request.&lt;br /&gt;
&lt;br /&gt;
Put in a short name and a description of what has been done, and the world is ready to check it out. This process doesn&#39;t seem more fit than sending an email to the team, telling them that the branch is now ready for review/merging.&lt;br /&gt;
&lt;br /&gt;
But of course its smarter, why else would I write a post about it. Your changes are nicely lined up, in a separate tab of the PR&#39;s view in Github, that&#39;s a first. Secondly, when you hover your mouse over a changed line, a little speech balloon pops up to the left of the change, if you click this you can comment on that specific change. This allows the team to review your changes, and possibly rule out spelling mistakes, faulty environments, forgetfulness and the likes.&lt;br /&gt;
&lt;br /&gt;
And when the team says go, you can press the green merge button and your changes are merged into master(if you choose master as your target). Also the green button won&#39;t appear if your changes are in conflict with other changes in the project(More about this later).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;In conclusion &lt;/b&gt;pull requests are a nice way of making sure that the team knows what is changed, and that every part of your project is keeping up to some agreed upon standard.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Commands&lt;/b&gt;: Only Github UI action relevant.&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Conclusion&lt;/h3&gt;
&lt;div&gt;
For me this is a very natural way of working with a project, that being a report in LaTeX or a codebase of several thousand lines. Keeping track of changes, makes the team aware of whats going on, thereby not leaving anyone behind and unknowing of the projects current status.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
The Nifties&lt;/h2&gt;
&lt;div&gt;
When you experience a yellow button, and your pull request cannot be merged, it is often caused by other PR&#39;s being merged into master, and therefore conflicting with yours. This can be solved by rebasing your changes on top of master(For a reference, see&amp;nbsp;&lt;a href=&quot;http://git-scm.com/book/en/Git-Branching-Rebasing&quot;&gt;http://git-scm.com/book/en/Git-Branching-Rebasing&lt;/a&gt;).&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;background-color: #cccccc;&quot;&gt;git checkout &amp;lt;your-branch&amp;gt;;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;background-color: #cccccc;&quot;&gt;git rebase master&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span style=&quot;background-color: #cccccc;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Thats all for now, if you have anymore nifty tricks please add them in the comments.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://chillems.blogspot.com/feeds/7723423221430713705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4356626401899215423/7723423221430713705' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/7723423221430713705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/7723423221430713705'/><link rel='alternate' type='text/html' href='http://chillems.blogspot.com/2013/04/managing-project-on-github.html' title='Managing a project on Github.'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/14514844185260924975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4356626401899215423.post-2148186930157922931</id><published>2012-08-09T11:27:00.002+02:00</published><updated>2012-08-09T11:27:17.127+02:00</updated><title type='text'>Pacman short usage</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Finding pkgs:&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; pacman -Ss &lt;package -name=&quot;-name&quot; keyword=&quot;keyword&quot; or=&quot;or&quot;&gt; | less&lt;/package&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Removing pkg:&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; pacman -Rnsu &lt;package&gt;&lt;/package&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Install&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; pacman -S &lt;package&gt;&lt;/package&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Do YOU need more short commands? Put them in the comments and I&#39;ll follow up.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;PS: I know this is written from the blogger interface - my own is broken :(&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chillems.blogspot.com/feeds/2148186930157922931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4356626401899215423/2148186930157922931' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/2148186930157922931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/2148186930157922931'/><link rel='alternate' type='text/html' href='http://chillems.blogspot.com/2012/08/pacman-short-usage.html' title='Pacman short usage'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/14514844185260924975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4356626401899215423.post-749590349065367691</id><published>2012-07-10T14:51:00.003+02:00</published><updated>2012-07-10T15:11:34.573+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="projects"/><title type='text'>Google blog editor - now finished</title><content type='html'>&lt;p&gt;So you have been waiting? I guess not. But I&#39;m happy to announce that, my own Google blogger frontend is now finished. It is created completely without any server-side code, and relies completely on client-side scripts. It is implemented with the Google API, jQuery, wymeditor, soyutils and bootstrap. If you just wanna go, have a look at: &lt;a href=&quot;http://nwillems.dk/blogging&quot; title=&quot;http://nwillems.dk/blogging&quot; rel=&quot;&quot;&gt;http://nwillems.dk/blogging&lt;/a&gt;, you can log-in with your Google Account&lt;/p&gt;&lt;p&gt;Actually, why this post is so important to write, is because it is the first one written from the site. Yeah - that&#39;s about it.&lt;/p&gt;&lt;p&gt;All I can tell you is that the above mentioned tools, really do rock! So check them out. And if you like, check out the code for blogging at:&amp;nbsp;&lt;a href=&quot;https://github.com/nwillems/gBlogging-interface&quot;&gt;https://github.com/nwillems/gBlogging-interface&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Have a great summer&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://chillems.blogspot.com/feeds/749590349065367691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4356626401899215423/749590349065367691' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/749590349065367691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/749590349065367691'/><link rel='alternate' type='text/html' href='http://chillems.blogspot.com/2012/07/google-blog-editor-now-finished.html' title='Google blog editor - now finished'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/14514844185260924975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4356626401899215423.post-2746791217696079935</id><published>2012-04-17T11:36:00.001+02:00</published><updated>2014-08-28T16:49:15.042+02:00</updated><title type='text'>LaTeX lists</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
After hitting it off with LaTeX for a while now, I have gathered a collection of normal goto places(the ones that show up first in my google searches). And I would like to share them with you, therefore the following list.&lt;br /&gt;
But first a word on the sites, they are not complete references, nor static structures to support your work, rather they are dynamic places where you can search information on specific problems and find like-minded people.&lt;br /&gt;
&lt;br /&gt;
I present to you, The list:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;a href=&quot;http://texblog.org/2008/10/16/lists-enumerate-itemize-description-and-how-to-change-them/&quot;&gt;http://texblog.org/2008/10/16/lists-enumerate-itemize-description-and-how-to-change-them/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://en.wikibooks.org/wiki/LaTeX&quot;&gt;http://en.wikibooks.org/wiki/LaTeX&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/tagged/latex&quot;&gt;http://stackoverflow.com/questions/tagged/latex&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://imf.au.dk/system/latex/bog/&quot;&gt;http://imf.au.dk/system/latex/bog/&lt;/a&gt;&amp;nbsp;(Danish)&lt;/li&gt;
&lt;li&gt;Comprehensive Tex Archive Network&amp;nbsp;&lt;a href=&quot;http://www.ctan.org/&quot;&gt;http://www.ctan.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.howtotex.com/&quot;&gt;http://www.howtotex.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.artofproblemsolving.com/Wiki/index.php/LaTeX:Symbols&quot;&gt;http://www.artofproblemsolving.com/Wiki/index.php/LaTeX:Symbols&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Last but not least - your memory.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
If you have some nice resources yourself - please add them in the comments and I&#39;ll add them to the post in a &quot;Externals&quot; list.&lt;br /&gt;
That&#39;s about it. Have a great day.&lt;/div&gt;
&lt;div&gt;
PS: This is another ugly post, I&#39;m sorry, the blog editor is still in the making.&lt;br /&gt;
&lt;br /&gt;
Changelog:&lt;br /&gt;
0 - initial&lt;br /&gt;
1 - Added comment on adding links in comments&lt;br /&gt;
2 - Added ctan to list&lt;br /&gt;
3 - Added &quot;how to tex&quot; to list&lt;br /&gt;
4 - (28/08 2014) Added AoPS math symbols&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://chillems.blogspot.com/feeds/2746791217696079935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4356626401899215423/2746791217696079935' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/2746791217696079935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/2746791217696079935'/><link rel='alternate' type='text/html' href='http://chillems.blogspot.com/2012/04/latex-lists.html' title='LaTeX lists'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/14514844185260924975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4356626401899215423.post-4453014008696051943</id><published>2012-02-17T13:38:00.001+01:00</published><updated>2012-02-17T13:38:18.078+01:00</updated><title type='text'>The way to code, these days</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Hi&lt;br /&gt;
&lt;br /&gt;
Recently I&#39;ve been developing the blogger editor thingy. And I have discovered some nice tools to help me out.&lt;br /&gt;
Since I decided to make it completely client-side, everything(dynamic) needs to be done using JS.&lt;br /&gt;
&lt;br /&gt;
Therefore I went out on the interwebs and found:&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;a href=&quot;http://code.google.com/closure/compiler/&quot;&gt;http://code.google.com/closure/compiler/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://code.google.com/closure/templates/&quot;&gt;http://code.google.com/closure/templates/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.wymeditor.org/&quot;&gt;http://www.wymeditor.org/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
In the following posts, I will try to highlight their use in the project. So this is just a teaser.&lt;/div&gt;
&lt;div&gt;
Bonus library:&amp;nbsp;&lt;a href=&quot;http://twitter.github.com/bootstrap/&quot;&gt;http://twitter.github.com/bootstrap/&lt;/a&gt;&amp;nbsp;- I might redo the project with this library, so have patience.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Happy coding&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chillems.blogspot.com/feeds/4453014008696051943/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4356626401899215423/4453014008696051943' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/4453014008696051943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/4453014008696051943'/><link rel='alternate' type='text/html' href='http://chillems.blogspot.com/2012/02/way-to-code-these-days.html' title='The way to code, these days'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/14514844185260924975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4356626401899215423.post-4015387734238997395</id><published>2011-10-11T18:12:00.002+02:00</published><updated>2011-10-11T18:18:26.673+02:00</updated><title type='text'>Blogger WYSIWYG editor - A bit of complaints</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;p&gt;
As some might have noticed, I blogged a little lately. And found some problems with the editor for blogger. Maybe I should go write a wrapper for the editor.
&lt;/p&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;
&lt;h3&gt;To the actual problem.&lt;/h3&gt;
&lt;p&gt;
How on earth do you expect me to respect an editor for HTML that instead of treating a double line break as a new paragraph just makes another line break. HTML has fine markup to make things just a bit semantic, why ruin them?&lt;br /&gt;
The editor start by inserting a div-element, fine enough, but no paragraph element. And where did headings go? I can chose between 5 different text sizes, and yes you guessed correct, it doesn&#39;t use the heading-tags.&lt;br /&gt;
Another thing I noticed, while writing this post, when putting angle-brackets into the editor, while in compose-view, switching to HTML-view, and back again, it converted my angle-brackets to real html code instead of maintining the brackets as &amp;amp;lt; and &amp;amp;gt; that made me sad, said another way, the composer, doesn&#39;t convert characters to HTML-entities, if needed.&lt;br /&gt;
&lt;/p&gt;
&lt;h3&gt;My solution:&lt;/h3&gt;
&lt;p&gt;
As a good person, instead of just rambling about how things are wrong. I hereby suggest some improvements, that I&amp;nbsp;believe will be enough.&lt;/p&gt;
&lt;p&gt;
When pressing the enter button, a line break(&amp;lt;br /&amp;gt;)&amp;nbsp;should be inserted. Then a check&amp;nbsp;should occur, checking to see if the text before the cursor is a line break. If it is a line break, &amp;nbsp;then replace, the old and the new line break with paragraph-end followed by paragraph-start. This would cause the first occurence of a double line break to break HTML-validity. This is simply solved by assuming paragraphs, and the clean post would looks something like the following:&lt;/p&gt;

&lt;pre class=&quot;code&quot;&gt;
&amp;lt;div ...=&quot;&quot;&amp;gt;
&amp;lt;p&amp;gt;
|Cursor|
&amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/pre&gt;

&lt;p&gt;
Furthermore, it should convert characters that needs it to their respective HTML entities, the only place, where this would cause problems is in between pre-tags, but that is a rare case, and probably could be fixed by having a boolean value expressing whether you are inside pre tags or not.&lt;/p&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://chillems.blogspot.com/feeds/4015387734238997395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4356626401899215423/4015387734238997395' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/4015387734238997395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/4015387734238997395'/><link rel='alternate' type='text/html' href='http://chillems.blogspot.com/2011/10/blogger-wysiwyg-editor.html' title='Blogger WYSIWYG editor - A bit of complaints'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/14514844185260924975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4356626401899215423.post-505064573387843144</id><published>2011-10-11T16:48:00.000+02:00</published><updated>2011-10-11T16:48:13.797+02:00</updated><title type='text'>Developing software - thoughts</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;p&gt;
Go on shoot me, for writing something you already know.&lt;br /&gt;
But this just came to me.&amp;nbsp;As a computer science student I often think about improving the world, with software and computers of course!
The theme has been spinning around my head lately, and I&#39;m really empty for ideas. So thinking to myself,
perfect time to pick up some of these old projects that never went flying. But then it struck me, as lightning from a clear blue sky.
&lt;/p&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;
&lt;p&gt;
My motivation for making software, has always been to make something that I would like better than existing products. Like as in working with.&lt;br /&gt;
&lt;b&gt;Example&lt;/b&gt;: a database system, that has SQL support(over HTTP-probably) and maybe RESTfull also, but is more like a document oriented database, not dependent on a fields existence. And instead of returning traditional row oriented data, maybe XML, or even better JSON data, since this document store should be object oriented.
&lt;/p&gt;&lt;p&gt;
Alright, this might seem complicated, it is - if you were to develop the whole thing yourself. A good datastore, not dependent on fields, and containing objects(probably related to different parent records), not easy(at least from my point of view). A server wrapping this datastore library, furthermore containing SQL optimizer and parser, REST supporting stuff, JSON/XML serializer, and some sort of effective request handling. Daunting task, and this is only my 5 minute overview of the example.
&lt;/p&gt;&lt;p&gt;
Back from the example - what struck me was, that developing software can be more simple than that. SHOULD be more simple than that. The philosophy of doing everything yourself in the first go, is absurd, probably unreachable! &lt;b&gt;The solution is&lt;/b&gt;: Use existing libraries to get the base functionality, and then use your favorite language to wire things together. When more speed is required, find bottlenecks and write the library/program yourself, integrate it tightly with your existing wire-code, and when it works, generalize so you can provide the functionality to your other projects.
&lt;/p&gt;&lt;p&gt;
Then Repeat the bottleneck-finding-rewrite-code-process until software is completely written by yourself, release to manufacturing, sell product and support, profit!, sell company, PROFIT!&lt;br /&gt;
Well allright, you might not be writing for money, then just give your code and libraries to the community, such that I can read your code and make it myself afterwards :-)&lt;/p&gt;
&lt;p&gt;
PS.: Coming up, complaint about Google bloggers wysiwyg editor.
&lt;/p&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://chillems.blogspot.com/feeds/505064573387843144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4356626401899215423/505064573387843144' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/505064573387843144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/505064573387843144'/><link rel='alternate' type='text/html' href='http://chillems.blogspot.com/2011/10/developing-software-thoughts.html' title='Developing software - thoughts'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/14514844185260924975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4356626401899215423.post-7048639956185212832</id><published>2011-10-09T13:57:00.000+02:00</published><updated>2011-10-11T16:47:55.086+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="computer"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="personal"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><title type='text'>Restoring your initramfs</title><content type='html'>&lt;p&gt;So a couple of days ago I ran a system upgrade on my arch-box(also my primary laptop), it told me that I needed to upgrade to 3.0 kernel. Cool I thought and went through. And after fixing some driver problems, I accidentally crashed my initramfs - no booting for me. I guess you know the problem, since your here,  so read on and get the answer.&lt;br /&gt;
&lt;/p&gt;&lt;p&gt;I must say, this article wouldn&#39;t have been, if it weren&#39;t for the Archlinux wiki and the IRC channel. Thanks to falconindy, Hattara-pilvi, brain0. Andd thanks to d_garbage for finding them in his logs.&lt;/p&gt;&lt;br /&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;
&lt;h3&gt;How you doing?&lt;/h3&gt;&lt;p&gt;Once again I had some problems with my wireless driver, so I followed normal procedure. Copy old driver .so-file to new kernel folder. Everything was all dandy, so I rebooted and BAM! no wireless networks for me.&lt;br /&gt;
&lt;/p&gt;&lt;p&gt;After fixing things and such, i recreated my initramfs, with mkinitcpio. Rebooted and wham bam thank you mam, &quot;You have junk in your initramfs&quot; - sorry to those of you who misses the original text, but I forgot to write it down.&lt;br /&gt;
&lt;/p&gt;&lt;p&gt;So how am I going to rescue my computer? Well the obvious answer is recreate your initramfs. But how are you going to do this, when it doesn&#39;t even get to some console/tty.&lt;/p&gt;&lt;p&gt;Here&#39;s a short list with each step, explanations later:&lt;br /&gt;
&lt;ol&gt;  &lt;li&gt;Make a bootable device with arch&lt;/li&gt;
  &lt;li&gt;Mount the necessary partitions&lt;/li&gt;
  &lt;li&gt;Run mkinitcpio&lt;/li&gt;
&lt;/ol&gt;&lt;/p&gt;&lt;br /&gt;
&lt;h3&gt;Bootable device - USB&lt;/h3&gt;&lt;pre class=&quot;code&quot;&gt;# Naive way
dd if=image.iso of=\\?\Device\Name\Windows\Way\ugh
# More sophisticated, but slow. And --progress is specific for &quot;dd for windows&quot;
dd if=iamge.iso of=\\?\Device\Name\Windows\Way\ugh --progress
# Faster, more sophisticated, same comment as above
dd if=iamge.iso of=\\?\Device\Name\Windows\Way\ugh bs=4M --progress
&lt;/pre&gt;&lt;p&gt;Sadly my only available machine was a windows-box(But I trained it well). Reading the arch-wiki[1] I found out about &quot;dd for windows&quot;[2]. Made my bootable USB, but when booting from it, it said it didn&#39;t have isolinux.bin.&lt;/p&gt;&lt;p&gt;I was just about writing my query to google, booted it again to get the correct error message, and wham it started correctly. &lt;b&gt;Morale, try more than once when you boot from USB&#39;s&lt;/b&gt;.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;When you see the Arch menu - just choose install. This will get you to a console where you can do more than what is needed.&lt;/p&gt;&lt;br /&gt;
&lt;h3&gt;Mounting partitions&lt;/h3&gt;&lt;p&gt;I&#39;m not saying my setup is complicated, it just has some quirks :-)&lt;/p&gt;&lt;p&gt;The necessary partitions in this case is /(root) /dev /sys and /proc and in my case boot is on another device/partition, so that also needed some mounting. Also remeber that /dev, /sys and /proc should be bind mounts[3]&lt;/p&gt;&lt;p&gt;Remember that you don&#39;t need no sudo, since you already are logged in as root in the arch install.&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;mount /dev/sdb2 /mnt
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc #TBH I&#39;m not sure i used this
mount --bind /sys /mnt/sys
mount /dev/sda1 /mnt/boot
&lt;/pre&gt;&lt;br /&gt;
&lt;h3&gt;(Re)Running mkinitcpio&lt;/h3&gt;&lt;p&gt;You have two options when it comes to this, either chroot, or don&#39;t. I chose to chroot, it seemed easier.&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;chroot /mnt
&lt;/pre&gt;&lt;p&gt;When running mkinitcpio - remember to specify a preset&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;mkinitcpio -p linux
# Below commands are untested, and used when not chrooting(as far as I understand)
mkinitcpio -b /mnt -p linux
&lt;/pre&gt;&lt;br /&gt;
&lt;p&gt;If all succeeds, you should have a running system by now. Try rebooting(remember to remove the CD/USB - I know stupid warning, but it helps), if all works, celebrate. If it didn&#39;t work, please go to the nice and very friendly Archlinux IRC channel on freenode.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;Footnotes&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;= https://wiki.archlinux.org/index.php/Install_from_a_USB_flash_drive&lt;/li&gt;
&lt;li&gt;= http://www.chrysocome.net/dd (On the wiki page its under the cygwin section)&lt;/li&gt;
&lt;li&gt;= I&#39;m sorry I can&#39;t explain what it(bind mount) means, but feel free to leave a comment.&lt;/li&gt;
&lt;/ol&gt;</content><link rel='replies' type='application/atom+xml' href='http://chillems.blogspot.com/feeds/7048639956185212832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4356626401899215423/7048639956185212832' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/7048639956185212832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/7048639956185212832'/><link rel='alternate' type='text/html' href='http://chillems.blogspot.com/2011/10/restoring-your-initramfs.html' title='Restoring your initramfs'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/14514844185260924975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4356626401899215423.post-4564916331487599572</id><published>2011-02-28T19:43:00.000+01:00</published><updated>2011-02-28T19:43:36.894+01:00</updated><title type='text'>Percent internet users affect the fertility rate</title><content type='html'>At the moment I&#39;m playing with Google Public Data Explorer - so I tried making a graph for Fertility rate, Life expectancy at birth and Internet users. And it shows that the percent of internet users has an effect on fertility rate. See for your self below:&lt;br /&gt;
&lt;br /&gt;
&lt;iframe frameborder=&quot;0&quot; height=&quot;487&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://www.google.com/publicdata/explore/embed?ds=d5bncppjof8f9_&amp;amp;ctype=b&amp;amp;strail=true&amp;amp;nselm=h&amp;amp;ccm=uni&amp;amp;met_s=it_net_user_p2&amp;amp;met_y=sp_dyn_tfrt_in&amp;amp;scale_y=lin&amp;amp;ind_y=false&amp;amp;met_x=sp_dyn_le00_in&amp;amp;scale_x=lin&amp;amp;ind_x=false&amp;amp;idim=country:DNK:ROM:RUS&amp;amp;ifdim=country&amp;amp;pit=1199145600000&amp;amp;hl=en&amp;amp;dl=en_US&amp;amp;iconSize=0.16779363689824023&amp;amp;icfg=ROM:-58:-70:2003%7CDNK:61:-16:2003%7CRUS:::2003&amp;amp;uniSize=0.035&quot; width=&quot;600&quot;&gt;&lt;/iframe&gt;</content><link rel='replies' type='application/atom+xml' href='http://chillems.blogspot.com/feeds/4564916331487599572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4356626401899215423/4564916331487599572' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/4564916331487599572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/4564916331487599572'/><link rel='alternate' type='text/html' href='http://chillems.blogspot.com/2011/02/percent-internet-users-affect-fertility.html' title='Percent internet users affect the fertility rate'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/14514844185260924975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4356626401899215423.post-8609302984307536671</id><published>2011-01-11T23:46:00.005+01:00</published><updated>2011-01-11T23:57:01.365+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="computer"/><category scheme="http://www.blogger.com/atom/ns#" term="Cron"/><category scheme="http://www.blogger.com/atom/ns#" term="kodning"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><category scheme="http://www.blogger.com/atom/ns#" term="web"/><title type='text'>Step one of my website</title><content type='html'>This post focuses on the initial step I took to have my new website up and running. The domain part.&lt;br /&gt;&lt;br /&gt;
What is assumed here is a little understanding of Linux and a some drive towards getting things done.&lt;br /&gt;
&lt;br /&gt;
First I had to find out how my provider(GratisDNS) would like the data -&amp;nbsp;luckily&amp;nbsp;for me it turned out that I only have to provide very few parameters in a URL String and then it would automigaclly read the IP from where I sent it. All set with the information, now on to creating a little script.&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
Knowing that I had to call a &quot;simple&quot; URL, and by reading on the forums(very supportive forum over at GratisDNS), I found that using &lt;i&gt;curl &lt;/i&gt;is by far the easiest. So my script looks like this:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;&lt;pre&gt;curl -s &quot;https://ssl.gratisdns.dk/ddns.phtml?..params..&quot;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
curl is a nice little program, that can request a server by HTTP[1]. The &quot;-s&quot; option makes it run silent and then theres the URL, remember the double quotes around the URL. That all there is to making the script - remeber to save it in a location where the user you are planning to run it as, has execute-rights.&lt;br /&gt;
&lt;br /&gt;
To the crontab - this is the&amp;nbsp;abstract&amp;nbsp;part. First we need to gain an understanding of the software. I do this by asking: What does it do? it schedules another piece of software to run. What software? Anything that you can run on a command line. So that should give a basic understanding.&lt;br /&gt;
&lt;br /&gt;
How do we do it then? we utilize the &lt;i&gt;crontab&lt;/i&gt; command it has three options L(ist), E(dit) and R(emove) so you wan&#39;t to edit the crontab - cool &quot;crontab -e&quot; opens up your editor and you are ready to rumble.&lt;br /&gt;
&lt;br /&gt;
I have taken the liberty to borrow some of this nice graphic from&amp;nbsp;&lt;a href=&quot;http://www.crontabrocks.org/&quot;&gt;http://www.crontabrocks.org/&lt;/a&gt;:&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;&lt;pre&gt;______________________ 1. Minute - Minutes after the hour (0-59)
|  ____________________ 2. Hour - 24-hour format (0-23).
| |  __________________ 3. Day - Day of the month (1-31)
| | |  ________________ 4. Month - Month of the year (1-12)
| | | |  ______________ 5. Weekday - Day of the week. (0-6, where 0 indicates Sunday)
| | | | |
* * * * * /some/script/or/command
&lt;/pre&gt;&lt;/div&gt;To explain it, the first part(the star-ish one) is the scheduling part, the other part is your command - this could be anything, in our case a shell script.&lt;br /&gt;
&lt;br /&gt;
The interesting part is the first one, the scheduling. First of all there is a special value, identified as an asterisk(*), this tells cron to do it every-something. And as stated by the descriptive labels, each of the starts represents a time unit.&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;The minute(s) within the hour&lt;/li&gt;
&lt;li&gt;The hour(s)&amp;nbsp;within the day - 24 hour clock, zero based.&lt;/li&gt;
&lt;li&gt;The day(s) within the month&lt;/li&gt;
&lt;li&gt;The month(s) within the year&lt;/li&gt;
&lt;li&gt;The day(s) within the week, better known as weekday.&lt;/li&gt;
&lt;/ol&gt;&lt;div&gt;Specifying a value for any of them would result in the command being executed every time there&#39;s a match.&lt;/div&gt;&lt;div&gt;For example one could write:&lt;/div&gt;&lt;div&gt;0 0 1 * * /path/to/script --parameter&lt;/div&gt;&lt;div&gt;This would be run on the first day of every month the zeroth minute of the zeroth hour.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;So by playing around with cron and getting to know the format, I decided that my script should run hourly, or more precise, it should run on the 30&#39;th minute of every hour. So the cron expression looks like this:&lt;/div&gt;&lt;div&gt;30 * * * * /home/nwillems/gratisdns_ddns.sh&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
I belive that hourly is fine, and then setting it to that minute seems like a bit odd, instead of just setting it to the zeroth minute. I was wondering though, if I should make it run half hourly, then the cron expression would look like this:&lt;br /&gt;
0,30 * * * *&amp;nbsp;/home/nwillems/gratisdns_ddns.sh&lt;br /&gt;
&lt;br /&gt;
What with the coma, you ask? That is cron&#39;s way of defining a list of time-unit. So for example &quot;0 0,12 * * *&quot; would mean something running each half a day(midnight and noon).&lt;br /&gt;
&lt;br /&gt;
That really was all that needed to be done - and off you go with your own &quot;custom&quot; made Dynamic DNS.&lt;br /&gt;
&lt;br /&gt;
If anyone cares out there - I found a special little article, I found it quite amusing reading:&amp;nbsp;&lt;a href=&quot;http://gizmodo.com/5716226/so-you-wanted-to-be-a-computer-programer&quot;&gt;http://gizmodo.com/5716226/so-you-wanted-to-be-a-computer-programer&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
/* EDIT _Fixed pre environment around needed places */&lt;br /&gt;
&lt;br /&gt;
[1]=If your interested you should go read the man page -&amp;nbsp;&lt;a href=&quot;http://curl.haxx.se/docs/manpage.html&quot;&gt;http://curl.haxx.se/docs/manpage.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://chillems.blogspot.com/feeds/8609302984307536671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4356626401899215423/8609302984307536671' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/8609302984307536671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/8609302984307536671'/><link rel='alternate' type='text/html' href='http://chillems.blogspot.com/2011/01/step-one-of-my-website.html' title='Step one of my website'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/14514844185260924975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4356626401899215423.post-1550072932245627336</id><published>2010-12-29T06:49:00.000+01:00</published><updated>2010-12-29T06:49:33.365+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Design"/><category scheme="http://www.blogger.com/atom/ns#" term="jQuery"/><category scheme="http://www.blogger.com/atom/ns#" term="JSON"/><category scheme="http://www.blogger.com/atom/ns#" term="Latitude"/><category scheme="http://www.blogger.com/atom/ns#" term="personal"/><category scheme="http://www.blogger.com/atom/ns#" term="web"/><category scheme="http://www.blogger.com/atom/ns#" term="YQL"/><title type='text'>My personal website</title><content type='html'>Last couple of days, I have been working on my website(&lt;a href=&quot;http://nwillems.dk/&quot;&gt;http://nwillems.dk&lt;/a&gt;). As a little&amp;nbsp;Christmas&amp;nbsp;project, I decided to fix my website. So here is the steps I took to make it.&lt;br /&gt;
&lt;br /&gt;
For a while, I have been running my &quot;old&quot; computer as a server. Its running Ubuntu Server Edition, and doing good. I have had a DynDNS hooked up to my router so I could access my home from anywhere.&lt;br /&gt;
&lt;br /&gt;
In this post I will just describe what I have done, not any code. That I will show off in the next couple of posts.&lt;br /&gt;
&lt;br /&gt;
But then I found out that my DNS provider(&lt;a href=&quot;http://web.gratisdns.dk/&quot;&gt;GratisDNS&lt;/a&gt;) is offering a service similar. Eager to try it, I worked it out with a little cron job and all, very nice. All it took was the cron job to run half hourly and then pointing to a script with a simple curl command.&lt;br /&gt;
&lt;br /&gt;
Next up, making something&amp;nbsp;useful. At work I have been playing around with &lt;a href=&quot;http://jquery.com/&quot;&gt;jQuery&lt;/a&gt; and &lt;a href=&quot;http://www.blueprintcss.org/&quot;&gt;Blueprint&lt;/a&gt;, so these tools was the obvious choice. The former site on the server just displayed a dumb map of my latitude, and for a long time I have wanted to do something cooler. Also I would like to incorporate this blog into the site.&lt;br /&gt;
&lt;br /&gt;
So the requirements suddenly grew, to this:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Show a little personal information&lt;/li&gt;
&lt;li&gt;Show latitude - in some cool way&lt;/li&gt;
&lt;li&gt;Make blog available&lt;/li&gt;
&lt;li&gt;Show off - probably just links to projects i work on/in.&lt;/li&gt;
&lt;/ol&gt;&lt;div&gt;Layout was done quick and easy with blueprint, three columns with some fancy headings. Adding the content is a bit harder, since I&#39;m no writer, its still on the todo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;I had been&amp;nbsp;struggling&amp;nbsp;with the latitude public location badge JSON, so I started of with my blog. I found a nifty little article[1] about making a feed widget with jQuery, and found something I have to write more about, &lt;a href=&quot;http://developer.yahoo.com/yql/&quot;&gt;YQL&lt;/a&gt;(Yahoo! Query Language). This smart feature provided by Yahoo! is so nice, and I almost instantly had my blog feed on the site.&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Almost blown away by awesomeness, I&amp;nbsp;immediately&amp;nbsp;attacked on the latitude public location badge. Thinking, since jQuery tells me that JSON has no problem with cross-site security, i can just fetch it as I do with my browser through jQuery. But NO!, and I still don&#39;t know why, after ½ a days work on the irritating latitude thingy. I decided to use my new best friend YQL, and boom shagalang, it was there. Then I extracted the latitude and&amp;nbsp;longitude&amp;nbsp;from the response and added to the map.&lt;br /&gt;
&lt;br /&gt;
And voila - I now have a decent website.&lt;br /&gt;
&lt;br /&gt;
Merry Christmas and a Happy New year.&lt;br /&gt;
&lt;br /&gt;
[1] =&amp;nbsp;&lt;a href=&quot;http://tutorialzine.com/2010/02/feed-widget-jquery-css-yql/&quot;&gt;http://tutorialzine.com/2010/02/feed-widget-jquery-css-yql/&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://chillems.blogspot.com/feeds/1550072932245627336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4356626401899215423/1550072932245627336' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/1550072932245627336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/1550072932245627336'/><link rel='alternate' type='text/html' href='http://chillems.blogspot.com/2010/12/my-personal-website.html' title='My personal website'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/14514844185260924975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4356626401899215423.post-4459501109880987418</id><published>2010-10-21T21:40:00.000+02:00</published><updated>2010-10-21T21:40:06.742+02:00</updated><title type='text'>Installing debian from USB-stick</title><content type='html'>So to &quot;steal&quot; the title of another very&amp;nbsp;helpful&amp;nbsp;blog post, thats very mature, huh?&lt;br /&gt;
&lt;br /&gt;
No actually I&#39;m in the middle of doing it, so I thought if I link to the post it will get better ratings on google. So here it is:&amp;nbsp;&lt;a href=&quot;http://h0bbel.p0ggel.org/installing-debian-from-a-usb-stick&quot;&gt;http://h0bbel.p0ggel.org/installing-debian-from-a-usb-stick&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Just one note about it. When using dd for windows - at least on my Windows 7 laptop - don&#39;t have your explorer(the file browser thingy) open, it &quot;locks&quot; the usb device, So before starting close Explorer windows and happy copying.</content><link rel='replies' type='application/atom+xml' href='http://chillems.blogspot.com/feeds/4459501109880987418/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4356626401899215423/4459501109880987418' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/4459501109880987418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/4459501109880987418'/><link rel='alternate' type='text/html' href='http://chillems.blogspot.com/2010/10/installing-debian-from-usb-stick.html' title='Installing debian from USB-stick'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/14514844185260924975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4356626401899215423.post-9058671093488974230</id><published>2010-09-24T23:15:00.001+02:00</published><updated>2012-02-01T23:30:43.598+01:00</updated><title type='text'>UnitTesting - Mocking for MyBatis</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Since I&#39;ve recently dived into developing with MyBatis, I also started doing unit-test for my library.&lt;br /&gt;
&lt;br /&gt;
I was ignored by two facts&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;The test ran really slow. Like 1 sec pr. test&lt;/li&gt;
&lt;li&gt;My data changed during the day - testing in a shared test-environment&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
So I sat down and read some of the MyBatis source code for the classes I use. And found out I just needed to create two Mock classes and I would be good. So I did, following is the code, some of the methods for implementation was removed since they only throw a &quot;UnsupportedOperationException&quot;:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-large;&quot;&gt;MockSqlSession&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;code&quot;&gt;
&lt;pre&gt;package com.zylinc.zydata.mybatis.mocking;

import org.apache.ibatis.session.SqlSession;

/**
 *
 * @author Nicolai Willems
 */
class MockSqlSession implements SqlSession {

    public void close() {
        // Do nothing
        // Maybee destruct object
        // Naah who cares??
    }

    public &lt;t&gt; T getMapper(Class&lt;t&gt; type) {
        String mockClass, interfaceName, packageName, mockClassName;
        Class typeToInstantiate;
        T result = null;

        interfaceName = type.getName();
        int lastIndex = interfaceName.lastIndexOf(&#39;.&#39;)+1; // Plus one to get of the &#39;.&#39; again
        packageName = interfaceName.substring(0, lastIndex);
        mockClassName = interfaceName.substring(lastIndex);

        if(mockClassName.startsWith(&quot;I&quot;)){
            mockClassName = mockClassName.substring(1);
        }

        mockClassName = &quot;Mock&quot;+mockClassName;

        mockClass = packageName+mockClassName;
        try{
            typeToInstantiate = Class.forName(mockClass);
            result = (T)typeToInstantiate.newInstance();
        }catch(ClassNotFoundException e){
            System.out.println(&quot;Class not found: &quot;+e.getMessage());
            System.out.println(&quot;Cause was: &quot;+e.getCause().toString());
            e.printStackTrace(System.out);
        }catch(InstantiationException e){
            System.out.println(&quot;Class instantiation failed: &quot;+e.getMessage());
            System.out.println(&quot;Cause was: &quot;+e.getCause().toString());
            e.printStackTrace(System.out);
        }catch(IllegalAccessException e){
            System.out.println(&quot;Illegal Access exception: &quot;+e.getMessage());
            System.out.println(&quot;Cause was: &quot;+e.getCause().toString());
            e.printStackTrace(System.out);
        }
        return result;
    }
}

&lt;/t&gt;&lt;/t&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-large;&quot;&gt;MockSqlSessionFactory&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-large;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
For readability I have removed all of the other openSession-methods, since they just do &quot;return this.openSession();&quot;&lt;/div&gt;
&lt;div class=&quot;code&quot;&gt;
&lt;pre&gt;package com.zylinc.zydata.mybatis.mocking;

import org.apache.ibatis.session.Configuration;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;

/**
 *
 * @author Nicolai Willems
 */
public class MockSqlSessionFactory implements SqlSessionFactory {

    private Configuration configuration;

    public SqlSession openSession() {
        return new MockSqlSession();
    }

    public Configuration getConfiguration() {
        return this.configuration;
        //throw new UnsupportedOperationException(&quot;Not supported yet.&quot;);
    }

}
&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
If you have any questions felle free to contact me, either in the comments field or on the MyBatis user list.&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chillems.blogspot.com/feeds/9058671093488974230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4356626401899215423/9058671093488974230' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/9058671093488974230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/9058671093488974230'/><link rel='alternate' type='text/html' href='http://chillems.blogspot.com/2010/09/unittesting-mocking-for-mybatis.html' title='UnitTesting - Mocking for MyBatis'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/14514844185260924975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4356626401899215423.post-5502812896385565495</id><published>2010-09-22T23:57:00.001+02:00</published><updated>2010-09-24T23:53:00.175+02:00</updated><title type='text'>MyBatis - how to do it simple</title><content type='html'>As I wrote yesterday I&#39;m working with software development. Currently I&#39;m working on a common database layer for our portals.&lt;br /&gt;
&lt;br /&gt;
I found that many of the current frameworks for ORM(Object-Relational-Mapping) like Hibernate and openJPA&amp;nbsp;doesn&#39;t&amp;nbsp;support &quot;custom&quot; SQL. That basically means that your database should 100% reflect your application model or you should have views instead of actual tables, this would be&amp;nbsp;livable&amp;nbsp;for me since I don&#39;t need to do any updates on the data I&#39;m retrieving, but that might be an issue later on, and as you probably guessed I don&#39;t have any views available, I have &lt;i&gt;Stored Procedures&lt;/i&gt;. And that where the custom SQL comes in, none of them supports this feature and that left our current application a coding mess of SQL commands in strings and parameter binding on SP&#39;s with JDBC directly in code, not abstracted and generalized for use by other apps/portals.&lt;br /&gt;
&lt;br /&gt;
So is this just a whiner post or what? Absolutely not. I&#39;m going to show you how you simply can make use of your current SP&#39;s in your Java code. I recommend everyone looking for this kind of functionality to take a look at MyBatis and read their user guide[1], it contains tons of information you never thought you would use.&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-large;&quot;&gt;Configuration&lt;/span&gt;&lt;br /&gt;
First you need to configure MyBatis to access your database. A simple XML Configuration file is needed, and if you want some flexibility you use a *.properties file togheter with the XML file.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;&lt;pre&gt;&amp;lt;!-- DOCTYPE LEFT OUT --&amp;gt;
&amp;lt;configuration&amp;gt;
  &amp;lt;environments default=&quot;yourcrazyenvironmentname&quot;&amp;gt;
    &amp;lt;environment id=&quot;yourcrazyenvironmentname&quot;&amp;gt;
      &amp;lt;transactionManager type=&quot;JDBC&quot; /&amp;gt;
      &amp;lt;dataSource type=&quot;POOLED&quot;&amp;gt;
        &amp;lt;property name=&quot;driver&quot; value=&quot;${driver}&quot; /&amp;gt;
        &amp;lt;property name=&quot;url&quot; value=&quot;${url}&quot; /&amp;gt;
        &amp;lt;property name=&quot;username&quot; value=&quot;${username}&quot; /&amp;gt;
        &amp;lt;property name=&quot;password&quot; value=&quot;${password}&quot; /&amp;gt;
      &amp;lt;/dataSource&amp;gt;
    &amp;lt;/environment&amp;gt;
  &amp;lt;/environments&amp;gt;
  &amp;lt;mappers&amp;gt;
    &amp;lt;mapper resource=&quot;path/to/your/insane/file/for/mapper.xml&quot; /&amp;gt;
  &amp;lt;/mappers&amp;gt;
&amp;lt;/configuration&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
The above configuration makes room for the earlier mentioned properties file, you can however hardcode the values in your myBatisConfiguration, just replace the values encapsulated by ${...} and their encapsulation with your own values.&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-large;&quot;&gt;Mapping&lt;/span&gt;&lt;br /&gt;
The you create your mapper file. This is one of the simplest yet most challenging tasks when starting out MyBatis. Sadly I&#39;m no creative soul, so I won&#39;t start making examples here, instead I will refer to the excellent section in the user guide about this part of the process.&lt;br /&gt;
&lt;br /&gt;
Mappings is basically a piece of XML code where the body-content of the tag is a piece of SQL code. This is interesting from the ORM perspective but from a coding perspective the next part is much more fun&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-large;&quot;&gt;The interface&lt;/span&gt;&lt;br /&gt;
This is where you make your application go typesafe, forget about the other mentioned method in the book, this is the shit. For me an interface might look like:&lt;br /&gt;
&lt;div class=&quot;code&quot;&gt;&lt;pre&gt;package dk.nwillems.data.mappings

import ...;

public interface ExampleMapper{
    public Collection&lt;crazydatatype&gt; getCrazyDataType();
    public Collection&lt;crazydatatype&gt; getCrazyDataTypeEasyFilter(String param);
}
&lt;/crazydatatype&gt;&lt;/crazydatatype&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
This looks straight forward. but if you would like a function called&lt;br /&gt;
&lt;blockquote&gt;getCrazyataTypeAdvancedFilter(String param1, String param2);&lt;/blockquote&gt;That wouldn&#39;t work. why you ask? This sounds like the holy grail of ORM, sadly its not. To make the above piece of code work, assuming that you have multiple parameters for your SP or query, you should do the following:&lt;br /&gt;
&lt;blockquote&gt;getCrazyataTypeAdvancedFilter(&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Param(&quot;param1NameInMapper&quot;)String param1,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Param(&quot;param2NameInMapper&quot;)String param2);&lt;/blockquote&gt;And now you should be good to go with the rest of the user guide, I spent a long time finding this &quot;issue&quot; about the annotations. Now I&#39;ve spelled it out, I hope someone out there can use this know-how for some constructive work.&lt;br /&gt;
&lt;br /&gt;
In future blog posts I will check out some of the other features and probably write a more in-depth post about MyBatis and how-to get started. This post was just to get my confusion out and put some knowledge in the world.&lt;br /&gt;
&lt;br /&gt;
Happy coding - now with MyBatis&lt;br /&gt;
Nicolai&lt;br /&gt;
&lt;br /&gt;
[1] = MyBatis user guide &lt;a href=&quot;http://mybatis.googlecode.com/svn/trunk/doc/en/MyBatis-3-User-Guide.pdf&quot;&gt;http://mybatis.googlecode.com/svn/trunk/doc/en/MyBatis-3-User-Guide.pdf&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://chillems.blogspot.com/feeds/5502812896385565495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4356626401899215423/5502812896385565495' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/5502812896385565495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/5502812896385565495'/><link rel='alternate' type='text/html' href='http://chillems.blogspot.com/2010/09/mybatis-how-to-do-it-simple.html' title='MyBatis - how to do it simple'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/14514844185260924975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4356626401899215423.post-8571380891900729506</id><published>2010-09-22T00:06:00.000+02:00</published><updated>2010-09-22T00:06:04.906+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="computer"/><category scheme="http://www.blogger.com/atom/ns#" term="kodning"/><category scheme="http://www.blogger.com/atom/ns#" term="Programmering"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><title type='text'>Its time or what?</title><content type='html'>So I started working for real. I got offered a full-time job where I was employed as a student-worker. So I&#39;ve gone full-time working and left the studies for a year. So currently I&#39;m working for &lt;a href=&quot;http://www.zylinc.com/&quot;&gt;Zylinc A/S&lt;/a&gt;, danish company in IP-Telephony making switch-boards.&lt;br /&gt;
&lt;br /&gt;
So today while I was working, there was some problems with time formatting in my project. The project is a common data access layer for a bunch of Java portals. And since my main focus is statistics I work with dates and time. All date&#39;s and times in this post is in 24hr and date/time format is as following YYYY-MM-DD HH-mm-ss[1]&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;First things first&lt;/b&gt;&lt;br /&gt;
I found out that MySQL handles date/time strangely, compared to the SQL standard[2]. According to the standard &lt;i&gt;TIMESTAMP &lt;/i&gt;is a type containing date and time information in a format like &quot;2010-09-21 22:21:20&quot;. This seems obvious, furthermore two types are definied, &lt;i&gt;DATE&lt;/i&gt; which consists and contains only the date part(2010-09-21) of a &lt;i&gt;TIMESTAMP&lt;/i&gt; value, and the second being &lt;i&gt;TIME&lt;/i&gt; containing only the time component(22:21:20).&lt;br /&gt;
&lt;br /&gt;
All this is fine and looks good. But what about the real world? Thats where MySQL comes in. Imagine you have a stored procedure, let&#39;s call it &lt;i&gt;foo &lt;/i&gt;it takes two parameters(eg two sets of date and time) and returns the recorded statistics in the interval. So based on our knowledge from before we write a procedure like this:&lt;br /&gt;
&lt;pre&gt;Delimiter $$
DROP PROCEDURE IF EXISTS `foo`$$

CREATE PROCEDURE `foo`(
    param1 TIMESTAMP,
    param2 TIMESTAMP)
BEGIN
    SELECT BeginTime, EndTime, ... FROM Statistics
    WHERE BeginTime &amp;gt;= param1 AND BegindTime &amp;lt;= param2;
END PROCEDURE$$&lt;/pre&gt;&lt;br /&gt;
This seems like the correct way to do it, but not&amp;nbsp;surprisingly&amp;nbsp;it isn&#39;t. See this discussion:&amp;nbsp;&lt;a href=&quot;http://stackoverflow.com/questions/409286/datetime-vs-timestamp&quot;&gt;http://stackoverflow.com/questions/409286/datetime-vs-timestamp&lt;/a&gt;. So this means my procedure definitions should look like this instead:&lt;br /&gt;
&lt;pre&gt;Delimiter $$
DROP PROCEDURE IF EXISTS `foo`$$

CREATE PROCEDURE `foo`(
    param1 DATETIME,
    param2 DATETIME)
BEGIN
    SELECT BeginTime, EndTime, ... FROM Statistics
    WHERE BeginTime &amp;gt;= param1 AND BegindTime &amp;lt;= param2;
END PROCEDURE$$&lt;/pre&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;br /&gt;
All right, so this works for MySQL, does it work for MSSQL to? So it seems(I haven&#39;t studied this further, since it isn&#39;t something I&#39;m going to use - but soon as I need it, I will write about it).&lt;br /&gt;
&lt;br /&gt;
Enough about types, what does a &lt;i&gt;DATETIME&lt;/i&gt;&amp;nbsp;value accept? I&#39;ve found several ways of interacting with it&lt;br /&gt;
For example you can pass in this value:&lt;br /&gt;
&quot;2010-09-21&quot; - goes fine, a warning should be raised&lt;br /&gt;
&quot;2010-09-21 22:21:20&quot; - expected, all goes well&lt;br /&gt;
Theese above values seem logic, but then comes:&lt;br /&gt;
NOW()-0(=20100921222120.000000) - Strangest value I ever seen.&lt;br /&gt;
&lt;br /&gt;
What does this mean? Can I use a value like 1285107680(Epoch time for the example date) or would that mean: 1285-10-76 80:00:00 or 0000-12-85 10:76:80 or how? I&#39;m seriously confused about this. Not that I found a real solution to this problem, I&#39;m now just aware of this&amp;nbsp;behavior. As I wish you now are and will take this into consideration when developing with MySQL.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Second comes java&lt;/b&gt;&lt;br /&gt;
First it is important to know what the Epoch is.What I&#39;m talking about is the UNIX Epoch, better known as seconds since 1970-01-01 00:00:00 UTC. Everybody&#39;s talking about it, it is the universal time representation for all sorts of things, even windows developers uses this format. But in the Java world, seconds is not good enough, understandable somehow.&lt;br /&gt;
&lt;br /&gt;
Drawing on the good old examples milliseconds can be quite important doing stock trading but come on, at least make it compatible with the rest of the world, an&amp;nbsp;approach&amp;nbsp;where integer values are treated as UNIX Time and the decimal part(if using a float value) as milliseconds, and if you like, you could have nanoseconds(hows that for your stock trading needs?). I spent half a day figuring this out, looking at output from stupid tests being confused. Documentation should state this more clearly[3].&lt;br /&gt;
&lt;br /&gt;
So thats almost everything from an exciting day at work - unless some extremely interesting stuff comes by, I plan on writing a little&amp;nbsp;jump start&amp;nbsp;tutorial for MyBatis[4] tomorrow, I found some interesting things they didn&#39;t put in the manual. Btw: I also did a contribution to Stripes web framework[5], I hope that when getting a little deeper into MyBatis I can make some contributions there to.&lt;br /&gt;
&lt;br /&gt;
Have a great evening - and happy coding out there.&lt;br /&gt;
&lt;br /&gt;
[1] = See this for reference&amp;nbsp;&lt;a href=&quot;http://download.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html&quot;&gt;http://download.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html&lt;/a&gt;&lt;br /&gt;
[2] = ANSI SQL&amp;nbsp;&lt;a href=&quot;http://en.wikipedia.org/wiki/SQL#Date_and_time&quot;&gt;http://en.wikipedia.org/wiki/SQL#Date_and_time&lt;/a&gt; &lt;br /&gt;
[3] =&amp;nbsp;So now I&#39;ve done it, hope google catches this.&lt;br /&gt;
[4] =&amp;nbsp;&lt;a href=&quot;http://mybatis.org/&quot;&gt;http://mybatis.org/&lt;/a&gt;&lt;br /&gt;
[5] =&amp;nbsp;&lt;a href=&quot;http://www.stripesframework.org/&quot;&gt;http://www.stripesframework.org&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://chillems.blogspot.com/feeds/8571380891900729506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4356626401899215423/8571380891900729506' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/8571380891900729506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/8571380891900729506'/><link rel='alternate' type='text/html' href='http://chillems.blogspot.com/2010/09/its-time-or-what.html' title='Its time or what?'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/14514844185260924975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4356626401899215423.post-3268146302899319145</id><published>2010-04-14T14:46:00.004+02:00</published><updated>2012-02-01T23:33:21.015+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="computer"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="projekter"/><title type='text'>Adventure with LFS</title><content type='html'>&lt;div&gt;
&lt;div&gt;In this post I will explain what I&#39;m doing this time in my vacation. A rather interesting project I think.&lt;/div&gt;&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
So LFS, what that? It&#39;s Linux From Scratch, building your own Linux, all from the bottom.
&lt;div&gt;It has been my dream for ages to do this, and right now, I&#39;m doing it. At the moment I&#39;m compiling &lt;i&gt;gcc &lt;/i&gt;second pass.&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;It really feels good, even though it sounds intimidating. A little History:&lt;/div&gt;
&lt;div&gt;First I booted up a virtual machine and attached the Arch live ISO, but it didn&#39;t have GCC, and after hours of downloading packages I died a little. Then I took my good old laptop(IBM Z60m) and installed a fresh Arch Linux, with everything needed to get online, and everything needed for the LFS build(The host system requirements).&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;And off I went, until I encountered my first doubt, and thought OH NOES! and I was thinking a hell lot, until I remembered IRC, went online joined the LFS channel on freenode, saw that LFS has its own IRC-Network, connected and asked my question. These people are more helpfull than the ubuntu channel on freenode. So don&#39;t worry, theres a lot of help out there.&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;You can check it out at &lt;a href=&quot;http://www.linuxfromscratch.org/&quot;&gt;http://www.linuxfromscratch.org/&lt;/a&gt;. I&#39;m planning on setting up me webpage, which have been bad and not really existing for a long time. And then publish a source and a patch list, which I will try to keep up to date. Besides that I&#39;m thinking of a build script, that automates the process. But first I will compile and make my own system, then we&#39;ll see how the build script looks.&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;If you have already started compiling, then theres only one thing to say: Happy compiling fellow LFS&#39;er.&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;/Nicolai&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chillems.blogspot.com/feeds/3268146302899319145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4356626401899215423/3268146302899319145' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/3268146302899319145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/3268146302899319145'/><link rel='alternate' type='text/html' href='http://chillems.blogspot.com/2010/04/adventure-with-lfs.html' title='Adventure with LFS'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/14514844185260924975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4356626401899215423.post-6304064548178749381</id><published>2010-03-06T10:11:00.005+01:00</published><updated>2010-04-14T14:46:18.042+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="computer"/><category scheme="http://www.blogger.com/atom/ns#" term="OAS"/><category scheme="http://www.blogger.com/atom/ns#" term="OpenApplicationServer"/><category scheme="http://www.blogger.com/atom/ns#" term="Programmering"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><title type='text'>My new favorite server</title><content type='html'>&lt;div&gt;While developing my own application server I&#39;ve discovered several other wonderful examples of this kind of applications.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Lets not wait anymore, my favorite is so far Apache Tomcat. It has a nice modular architecture that provides you with the ability to develop new interfaces, it already has AJP and HTTP implemented, but you could just implement what ever you wanted, thats nice.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The configuration is straightforward and the community is good(I&#39;ve tried the IRC, a bit slow, but really good).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I won&#39;t go into examples, because I have not yet developed one. But be assured that this is a good product, can&#39;t wait till the new version comes out(v7)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Next up, is another geeky post, about my adventure with LFS.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chillems.blogspot.com/feeds/6304064548178749381/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4356626401899215423/6304064548178749381' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/6304064548178749381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/6304064548178749381'/><link rel='alternate' type='text/html' href='http://chillems.blogspot.com/2010/03/my-new-favorite-server.html' title='My new favorite server'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/14514844185260924975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4356626401899215423.post-2354428671560147549</id><published>2010-02-01T21:02:00.003+01:00</published><updated>2010-02-01T21:12:07.525+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="everyday"/><category scheme="http://www.blogger.com/atom/ns#" term="kodning"/><category scheme="http://www.blogger.com/atom/ns#" term="Programmering"/><category scheme="http://www.blogger.com/atom/ns#" term="projekter"/><title type='text'>Article: Four phases...</title><content type='html'>Besides researching for OAS, I&#39;m writing a short article about software development. It&#39;s called &quot;The four phases of software development&quot; - a short outline is given - then You can probably research the rest yourself or wait for the paper/article to come out.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Four phases:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Research&lt;/li&gt;&lt;li&gt;Spaghetti code&lt;/li&gt;&lt;li&gt;Agility&lt;/li&gt;&lt;li&gt;Refactor&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;I will not explain details, but I think I will write a short summary of each of theese chapters as they become done - since each chapter should begin with this short summary.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I believe that these words has been written before, but they have been written in retrospect, where as I&#39;m just starting as a developer for a danish company, starting out first year project and researching/developing OAS. I&#39;m in the eye of the storm, which I hope will give a different perspective on these matters.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Short post, this late evening. I have some design issues I&#39;m working on visualizing and writing in words for OAS. And since I found a different application server named Open Application Server - I guess I need a new name for the final product.&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chillems.blogspot.com/feeds/2354428671560147549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4356626401899215423/2354428671560147549' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/2354428671560147549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/2354428671560147549'/><link rel='alternate' type='text/html' href='http://chillems.blogspot.com/2010/02/article-four-phases.html' title='Article: Four phases...'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/14514844185260924975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4356626401899215423.post-3112615052725392056</id><published>2010-02-01T13:00:00.000+01:00</published><updated>2012-02-01T23:34:45.580+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="OAS"/><category scheme="http://www.blogger.com/atom/ns#" term="OpenApplicationServer"/><category scheme="http://www.blogger.com/atom/ns#" term="Programmering"/><category scheme="http://www.blogger.com/atom/ns#" term="Reading"/><title type='text'>Developing an application server/foundation - Follow up</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div&gt;So I see that I forgot too mention my readings in the last post about OAS. You shouldn&#39;t bee left out on that.&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
So my bible at the moment, is The Object-Oriented Database System Manifesto. This is wonderful reading, it tells you exactly what is needed in an object oriented database management system. It can be found free of charge right &lt;a href=&quot;http://www.cs.cmu.edu/afs/cs.cmu.edu/user/clamen/OODBMS/Manifesto/htManifesto/Manifesto.html&quot;&gt;here&lt;/a&gt;.&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Another thing I&#39;m reading at the moment with great pleasure, is the documentation of JDO. It is a nice knowledge base, build with &quot;simple&quot; documentation marks in code. See the javadocs here: &lt;a href=&quot;http://db.apache.org/jdo/api23/apidocs/index.html&quot;&gt;http://db.apache.org/jdo/api23/apidocs/index.html&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
Also this documentation helped me understand the need for docs in projects - since nobody would have been able to understand anything if they haven&#39;t documented well.&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
There probably will be some edits, but for now thats it.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chillems.blogspot.com/feeds/3112615052725392056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4356626401899215423/3112615052725392056' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/3112615052725392056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/3112615052725392056'/><link rel='alternate' type='text/html' href='http://chillems.blogspot.com/2010/01/developing-application-serverfoundation_20.html' title='Developing an application server/foundation - Follow up'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/14514844185260924975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4356626401899215423.post-6914208290161649712</id><published>2010-01-26T12:14:00.005+01:00</published><updated>2010-01-26T12:39:46.981+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Design"/><category scheme="http://www.blogger.com/atom/ns#" term="everyday"/><category scheme="http://www.blogger.com/atom/ns#" term="OAS"/><category scheme="http://www.blogger.com/atom/ns#" term="OOPD"/><category scheme="http://www.blogger.com/atom/ns#" term="OpenApplicationServer"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><title type='text'>Time - Exam and development</title><content type='html'>Last Friday(Jan 22) my exam in Object Oriented Programming and Design(OOPD) was released. Interesting assignment, due on the coming Friday(Jan 29). We are supposed to create a maze game, where you(the user) or the computer(based on an algorithm)  direct an Explorer through the maze to a goal.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Why is this interesting? I tell you, as a developer[1] I see challenges instead of problems - challenges to be solved. And this was an easy task, because you had a recipe. But when you don&#39;t have one, for example with OAS thats a real challenge. So thats why I alongside with designing and developing OAS is writing a paper on the software development cycle. It&#39;s called &quot;The four phases of software development&quot; and is a personal guide on how to run development - but as with the blog, I&#39;m releasing it to the public, at the moment I find Lulu[2] the best, since I&#39;ve found a lot of the information I&#39;m searching in general on Lulu.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Also I&#39;m writing a follow up post on the original OAS post - with some litterature I&#39;m reading.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As a side note I&#39;m looking for a footnote &quot;plugin&quot; for blogger(be it browser-, offline- or web-based - fx an editor(on/off line) any good suggestions?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;[1]= I prefer developer over programmer or software engineer - see &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=8zEQhhaJsU4&quot;&gt;http://www.youtube.com/watch?v=8zEQhhaJsU4&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;[2]= &lt;/span&gt;&lt;a href=&quot;http://www.lulu.com/&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Lulu.com&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chillems.blogspot.com/feeds/6914208290161649712/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4356626401899215423/6914208290161649712' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/6914208290161649712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4356626401899215423/posts/default/6914208290161649712'/><link rel='alternate' type='text/html' href='http://chillems.blogspot.com/2010/01/time-exam-and-development.html' title='Time - Exam and development'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/14514844185260924975</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>