Friday, April 27, 2007
I am trying out WordPress.  I've found my excitement for blogging waning.  I had the opportunity to install and configure WordPress for a peer and it truly impressed me.  The community behind the software is amazing.  I think I'd like to be a part of that so I am going to try using that for a while.  I will leave this blog here but I'll be active on that blog.  Likely, I will retire this one and import the content there.  That isn't great for seo traffic but I  am more interested in ensuring my visitors understand where things are going. 

so, without further adu...

Rusty's New Blog

http://www.vitaminzproductions.com/technology-blog

please update you feeds!

4/27/2007 6:53:56 PM (GMT Standard Time, UTC+00:00)  #    Comments [0]  |  Trackback
Saturday, August 05, 2006
    It feels good. 

8/5/2006 6:52:10 PM (GMT Standard Time, UTC+00:00)  #    Comments [0]  |  Trackback
Tuesday, March 14, 2006

If you don't care, skip this post!

Busy, busy, soooo busy

A lot has been going on lately!  Most of my time is spent working.  That is both good and bad.  Its good because I have been enjoying my work.  Its bad because no one should work that much.  I've helped drive some really needed change in my IT organization to a more agile development approach and made some significant stride forward.  I am currently working on a brand new project as the product producer.  The title is certainly not official but I have been given budget, hiring capability, leadership and technical decision making authority and a very, very short deadline.  I had three projects in the works that I was providing architectural support for as well as the general messes that required my attention.  At one point a couple weeks ago I was informally offered the dev manager position but last week I was formally declined.  Long story.  Its all for the better.  I need to focus on my current project. 

The good things I've accomplished

New Brains

First, I brought some really incredible talent in through the door.  Paul Lockwood and Marcie Robillard have joined our team.  Paul has already been thrown in the fray.  I hope we fdon't scare him off too quickly!  There is so much going on right now its difficult to see what is actually going on!  Marcie starts shortly.

New Tools

I've successfully integrated NAnt and MSBuild with cruiseControl.net to build our dot net 1.1 and 2.0 projects across the entire enterprise.  There are some non-current projects not on the server but I've mastered the process such that it isn't much effort to bring a new (or old) project online.  I've got 27 individual projects under continuous integration executing a nice introductory sample of NUnit tests.

It took some time to get people to value the cctray and the little green icon.  Eventually, the tables turned and people began to really engage the tool and verify their checkins.  No more, "hey buddy, you broke my project!" 

I then brought the small spattering of NUnit tests into the fold and they broke the build.  Hmm, you'd think that would be bad, right?  No Way!  When I showed the new development manager, he was elated!  So was I and a few other key developers.  We all immediately saw how that smallish effort will pay off really big. 

New Way

A few months ago, I was effecting a bit of a coup.  I was, quite frankly, fed up with the heavy, restrictive, disabling process that surrounded our development endeavors. 

I revolted and began working in a psuedo-agile way.  I failed to meet some of the core facets of Agile development and had a struggle during that first project when I abandoned the accepted waterfall process.  The first project was a significant success.  We made our deadline, the project sponsor was happy and we had fewer defects then usual.  I came in after the project was underway with a horrible function req doc (that wasn't ), a rediculous tradeshow deadline and I had to improvise.  The unexpected result was a company-wide realization that process-for-process-sake is generally bad.

The other project on my trial run is still under way.  It is in danger of cancellation since the newly appointed lead has just been re-appointed and he may not be physically capable of delivering both products in the two month window alotted.  However, a great deal was learned about how to develop software without documenting your anscetral lineage prior to the colonization of America. 

The point is, after the first project, everyone cheered, "yeah!  we're agile."  Yet we weren't.  Still, the whole organization looked around confused that something that looked to them like a crap shoot was actually very controlled and delivered something better then origianlly conceived of.  My coup ended and the IT management led the charge to convert our team from waterfall to agile.  They aren't really sure what that means but every one of us is reading verosiously.  We brought in the Menlo Institute to school us.  I breathed a breath of fresh air and moved on to my next mountain.

New Project

My successes leading recent projects have landed me a very exciting opportunity to truly lead the development of a new product from conception to delivery.  I am very overwhelmed with work but I feel electrified to be so empowered.  I've had my kickoff meeting with business executives and it went splendidly (to quote Thomas).  I am now scoping the feature set and ready to start rockin in the free world!  The initial realease will be tiny.  The impact, in my little world and its market, will be like the introduction of the railroad into industry.  That's my plan, anyhow.

that's enough mindless blogging for now.  I live in an eternal state of intensely opposite forces.  All the things mentioned above are the good things going on.  The disappointing things don't deserve face time.  I've learned to focus on what I want and lead with purpose rather then to focus on what I don't want and run from...  well, you get the point. 

Perhaps when this is through, I'll look back and laugh at how naive I was.  Or, perhaps I'll say, "that was when everything started to happen for me," professionally anyhow

3/14/2006 11:09:41 PM (GMT Standard Time, UTC+00:00)  #    Comments [1]  |  Trackback

Is it possible that someone has called me spam?  I just searched on terms that I should rock for and got nothing!  My website isn't even on the list.  Years old posts on unassuming forums are ranking higher on my name then I do.

Two possibilities occur to me.  One: vitaminzrecords is a very bad name for a personal music and blog site.  Two: vitaminz used as part of my own monacre is a violating someone's perception of their trademark and they bitched.  Three: my domain going down last year pulled me off the index for good.

I'd like to know which is the culprit.  If the name is killing me, I'd like to know now.  This is the name I came up with for my record label.  It is the last vitamin you'll ever need, baby.  However, if it is boycotted from Google, I'd rather have my content accessible and would acquiesce to change my domain name to something else.

cheers

 

Rusty Zarse

3/14/2006 2:26:55 AM (GMT Standard Time, UTC+00:00)  #    Comments [0]  |  Trackback
Monday, December 19, 2005

I upgraded dasblog today!

A peer was asking about archiving links for increased seo-indexing value (specifically).  So I showed him my blog as an example of effective archiving and noticed I had a lot of referrer spam.  I went searching for the spam cleaner (since I deleted everything the other day by mistake) and found 1.8.  "What the hell?!," said I...

Outstanding.  The upgrade was easy.  I cleaned out my blog directory and staged the new files.  I even preferred the "dasBlog XP" theme to my own.  ..and I am a pompus jack-arse! 

I'll try to keep more active on my blog and report how the new dasBlog works for me.  However, my real report is going to be a contribution to DasBlog Development team.  This is one application that has been extremely useful to me.  Well, I guess I need to refresh my paypal info.  It won't let me log in...   Sorry guys.

Great work and thanks again...  (I'll get that donation yet)

12/19/2005 5:56:13 PM (GMT Standard Time, UTC+00:00)  #    Comments [0]  |  Trackback
Sunday, November 06, 2005

So I was perusing the internet with very poor focus and landed upon a poem that made me laugh.  If you keep blogs, you'll appreciate it:

 

(...I don't know what the copyright deal is with blog posts..  so I copied it in entirety and linked back.  It is the work of someone named ming mong)

http://www.r3mix.com/news/

I'm a blogger

I am cool because I blog

I am cool, as cool as a log

I have a dog and she does not blog

She is dumb, because she’s a dog

I am dapper because I’m a happy slapper

I am dapper, as dapper as a brand new crapper

Poop, poop, pee

-ming mong

11/6/2005 4:46:04 PM (GMT Standard Time, UTC+00:00)  #    Comments [0]  |  Trackback
Friday, September 02, 2005
Geeks like to blog just for the hell of it and that's exatly what this post is
9/2/2005 3:55:38 PM (GMT Standard Time, UTC+00:00)  #    Comments [3]  |  Trackback
Wednesday, August 17, 2005

I downloaded Scottt's little utility and modified it to irradicate all the nastiness that had corrupted my blog.  Thanks Scott

 

8/17/2005 3:25:55 PM (GMT Standard Time, UTC+00:00)  #    Comments [1]  |  Trackback
Thursday, August 11, 2005

I guess I knew it would happen.  I got nailed recently.  My comments are now filled with garbage.  I will clean up as soon as i have some time.  Until then, please ignore all the pathetic comments that were added to my site.  What a horrible thing to do.  Its like online graffiti.

If anyone out there is trying to find a good website to bring down with a denial of service (DOS) attack, please hit all the spammer website who filled up my comments.

 

Thanks

8/11/2005 2:50:03 AM (GMT Standard Time, UTC+00:00)  #    Comments [0]  |  Trackback
Tuesday, June 21, 2005

My traffic lately has been incredible!  I I was trying to perform a more inclusive statistic report to find out exactly what's been going on, but my host's reporting server goes down each time I try to select date ranges.  Not just errors, DOWN...

My traffic has really increased recently.  A google guru friend of mine explained that Google keeps you in a sand box for while.  They want to make sure websites are consistent and valid so they won't let someone shoot straight to the top without some time in the mud pit.  That way, if someone is really trying to get ranked, they probably will just hurt themselves by making too many silly changes and spamming techniques.  In other words, make a real site. 

So, it appears they love blogs!   When I say "they", I mean spiders.  Its fresh content appended to the old content.  Its information.  Its text based.  Makes sense, doesn't it?  Anyway, I recently started getting alot of traffic.  I haven't been able to determine exactly how much, but it might be enough to cost me money.  I thought I would pre-eptively experiment with some google ads.  Please forgive me if they are obtrusive, and please tell me.  All I want to do is pay hosting fees for this weblog.  If my traffic increases enough to make hosting unaffordable, then I'd imagine a few ads would be enough to help

Unfortunately, I think there is some strong possibility that the majority of my traffic is spiders being aggressive.  I'm getting lot's of similar queries from Google.  Is that someone looking for a Sountracs Topaz Mixing board or is that a robot trying to piggyback off of Google's success?  Are people terribly frustrated, trying to trap the enter key in asp.net or has Google directed no one but other crawlers my way?  Perhaps its an old p III university machine in a back closet that someone forgot about and has been running Avida on way too long

I'm not sure...  anyway, here's some google for you

p.s. hint, I said 'Google' an awful lot in this post. I wonder what would happen if I said, "Music, Progamming, Blogging, Blogs about Programming, blogs about Music, I like music. Music is my favorite thing. Programming is my second after music. I like free music and good music and good programmers."

Stupid robots.

 

6/21/2005 2:24:31 AM (GMT Standard Time, UTC+00:00)  #    Comments [0]  |  Trackback
Thursday, June 09, 2005
blogging my way to pdc

The FUTURE

What is the PDC? It's a glimpse into my tomorrow. I love technology and software, I don't plan to hang up my keyboard anytime soon. Therefore, anything discussed at the PDC applies to me and my peers. It took 5 years for my life to catch up with what I was shown at PDC 2000. In fact, I am just now beginning to look into BizTalk and some of the things that were mentioned there. Longhorn, Avalon, WinOE, WinFS, XAML, Team Systems, Indigo - that's alot to swallow! These terms are new to me. In 5 years, they will be what I do. I am very psyched to look into that crystal ball!

Visual Studio Team Systems

I am intensely interested in Microsoft's Team Systems but I haven't any spare time to test drive or prototype it. I currently use a custom, Windows-Forms-based build application that integrates with Visual Source Safe and nAnt (Open Source Build Tool). Recently we migrated to a new internal framework and intensified our corporate need to version assemblies. I am petitioning for time to make that extension to the application. I hope it is the last one I have to make. I hope to be migrating to Team Systems ASAP!

Second Chances

First impressions persist for a long time. I was fortunate enough to attend the PDC in 2000. Microsoft announced the details surrounding .Net. I was giddy with excitement and having a hard time containing my emotions. When a reporter shoved a microphone in my face and asked me some questions, I answered eagerly and with the frankness of a 2 year old walking into Disney World. What she used was this. While it was not inaccurate to say migration would take a while, my statement wasn't printed in context and therefore sounds like I had reservations. The truth is that we did implement a year later and have been dedicated to .net ever since. I've even started...

The Atlanta C Sharp User Group

Two years ago, I regularly attended the Atlanta ASP.Net User Group, but felt myself longing for a good C# (C Sharp) focused community. Stuart Dickerson, the founder of the Asp.Net user group, helped me to start The Atlanta C Sharp User Group. It started small. We met at New Horizons Learning Center, then Michael Earls stepped up and started making things happen. The next thing I knew, we were INETA sanctioned and meeting at Microsoft's Atlanta campus. Doug Turnure of Microsoft took an active and effective role in helping to grow the group. I ran the group for nearly two years, until about six months ago, when I passed moderation of the group to Paul Lockwood and then he passed it to Keith Rome. All of these individuals have done amazing things with the group, it now regularly brings more than 30 attendees to each monthly meeting (I don't have an exact count but its enough to make you feel intimidated when winging a presentation). In May 2005, the CLR team, Brad, Claudio, Kit, and Jason met with us, turned us into CLR experts, had dinner with us, and left us feeling closer to the mother

This little story illustrates one point: As a community, we grow. That is why Microsoft wants us to blog about them. That is why we have the Atlanta C Sharp User group. Every tiny individual plays a crucial role in the larger picture. We're all bound by profession, by passion and by interest. Those who insist that they are the elite just get left behind. Those who share and remain humble get to see the future.

In the near future, I may once again take responsibility for the group again (Keith has asked for help, and he's really done a great job with it). I would like to meet the right people, ask the right questions and learn the right topics so I can share with the Atlanta community. The PDC would be a gooooood place to make that happen, wouldn't it?

6/9/2005 5:09:14 PM (GMT Standard Time, UTC+00:00)  #    Comments [4]  |  Trackback
Wednesday, May 18, 2005

I got my old blog content folder from Michael some time ago.  I upgraded it using the dasblog upgrader utility.  I then copied the files into the content folder on my blog. 

hmmm.  Nothing happened.  My content folder is now twice as large but the old entries are not showing up.  I had good posts in there as well.  A step by step instruction showing how to rip your door apart on an Acura Tl to install new speaker.  That's important stuff!

Oh well.  I guess I can live without the old posts.  If both of you can (my two readers).

Then I published this post and viola!   Caching baby.  Love it.  Now my excellent article on The Taco Nazi or my experience Losing my File Menu are available once again.

 

Here google, google.  Here boy!  C'mon little fellah...

 

5/18/2005 4:41:55 PM (GMT Standard Time, UTC+00:00)  #    Comments [0]  |  Trackback
Saturday, April 02, 2005
It's not really a huge deal, but I have to log in and then log in a gain to add an entry. 
4/2/2005 3:38:36 AM (GMT Standard Time, UTC+00:00)  #    Comments [2]  |  Trackback
Monday, February 14, 2005
I have no excuse, I can literally walk to this meet.  It's at the Independent on Monroe Drive in Atlanta on Feb 17, 2005.  If I show up and I am the only one, all I lost are some calories.
2/14/2005 11:37:31 PM (GMT Standard Time, UTC+00:00)  #    Comments [0]  |  Trackback
Tuesday, February 08, 2005
I did.  I had no idea how much I enjoyed my blog.  I missed it.
2/8/2005 11:22:00 PM (GMT Standard Time, UTC+00:00)  #    Comments [0]  |  Trackback
Let's see how this goes.  this would be the first blog entry on vitaminzrecords.com ever.  Exciting days ahead
2/8/2005 3:48:51 PM (GMT Standard Time, UTC+00:00)  #    Comments [0]  |  Trackback
Tuesday, March 02, 2004

Clemens Vasars on Free Software, "It’s idiocy"

This is not a rebuttle, but a counter-point.  I wish to shed light on the bigger picture.

A friend of mine once said, "forget about trying to make it in music.  It's a fairy-tale.  There's no way a true artist can ever make it."  He is in a band these days.  He has rediscovered what it means to be a musician.  He may or may not have resurrected his dream of being a rock star.  He has, however, resurrected his love for music, his passion for performing, and his youthful optimism that something done for the love of doing it is worth doing.

"Forget the dream about stuff being free and stop advocating it. It’s idiocy. It’s bigotry. If you want to put your skills to work and you need to support a family, your work and work results can’t be free." from Clemens blog

BTW, his blog runs on DasBlog, which Clemens helped to create, and distributes as true "free, open-source software".  I want to personally thank the Newtelligence team for their contribution.  It's awesome.  It has given many developers the enabling technology to be chatty and say too much about everything in a very public way.  It also has helped evolve the internet.

Michael Earls said, "I couldn't agree more," on his DasBlog blog site. 

So what are they trying to get at?  I think they are trying to express the idea that profit has it's place.  calling Microsoft and proprietary software vendors evil might be fun, but it's silly.  Even so, don't forget that open-source has it's place.  It creates value that commercial software cannot because it is not driven by the mighty dollar. 

Free Software that rocks

Consider several tools we (my daytime employer) are just beginning to implement and one we have embraced fully. Wiki, NUnit and NAnt. These suites of free software provide a very robust set of features. They could easily be marketable and profitable products but have evolved along a different path, been more accessible to everyone, and benefited from cumulative community contributions. These are true open-source projects. Even Microsoft has learned from the collective work on NAnt and modeled MSBuild very closely to it. I'm sure MSBuild is going to have some pretty exceptional, .Net specific enhancements and will profit greatly from everyone's FREE contributions. I have learned to appreciate open-source passionately. I have learned a great deal from examining the source code for applications that are openly available. I use several open-source apps every day: RSS Bandit, NAnt, NUnit, DasBlog, Wiki. I use open standard consciously and without being aware of it.  Design patterns, UML, code examples.  None of these things were necessarily created for direct profit.  Perhaps along the path to solving some busniess need in the aim of generating revenue...   But these aretifacts are free.  It's not a black and white issue. You can contribute to open source at the same time that you develop for profit (or hourly wage, as it may be). I know of one developer who has contributed in very significant ways to open-source and community work groups, this guy named Michael Earls, yet he works for a corporate giant in the TelCom industry. mmm hmmm... You can contribute to your industry in a million ways. When you write articles, you contribute to the community. Companies profit from that work. Their emplyees read that article and take your hard-earned knowledge back with them and apply it, possibly in direct competition with you. Should you refrain from sharing knowledge? Perhaps there should be one person who will control all knowledge and decide what will be made public and who has aceess to which. Ok, one person is probably not appropriate. One group. Wait, we've been here before? Who gets the knowledge? How should that knowledge be shared?

Closed Mindedness and many shades of grey

Its like the single vs. married dichotomy. Does life as you know it end when your baby is born? Can you not have exhillarating fun when you're married? (Don't tell my wife, I have her convinced that we can still party and live life like we enjoy it). I work with a fellow whose favorite thing to tell me is that I am in denial. He insists that I will eventually give up and realize that my personal life is over, my dreams are dead and I will never be anything more than a dad until they all grow up and then I retire (and get ready to die). He loved to hear about my single days and all the things I was doing outside of work. When I married, I didn't move out to the burbs and subscribe to Comcast and Tivo. I stayed intown and live in the most cosmopolitan, stimulating part of Atlanta, the Virginia Highlands. I live there wth my wife and son and enjoy walking to shops and restaurants and every once in a while, I walk to a pub and throw a few back. I occassionally play an open mic and sometimes catch a live musical act. These are not the typical activties of the average married with children american. I will be the first to admit that I do not stay out until 4 a.m. and spend my saturdays sleeping off a hangover. I instead wake up at four to change tiny dude's shitty pants. Yes, there are differences but they are personal. Some of them are universal, some of them are not.

Free and/or Open

Open-source does not mean free. Free is freeware. Software can be both freeware and open-source but each term are addressing two different things. Open-source means you have contributed some knowledge in the form of software and offer for others to do the same. If someone wishes to use it in their business or in their commercial product, awesome, good luck! When you participate in open-source, you learn as you solve problems, as others solve problems and submit their solution and as you collaborate. It is a learning and sharing practice. It is very rewarding to participate. It is very rewarding to stumble upon some artifact of all this work and start digging.

Open Standards

Standards are best developed our in the free world. When I say free, of course, I mean lacking dictatorship by some profit-centric manager. If standards are created by companies, they tend to solve that company's needs ahead of the industry's needs. When developed by public contribution from industry pundits and leaders in the community, they tend to better represent everyone.

The Bottom Line

Oh but we must survive! "Fish gotta swim, birds gotta eat." So when you decide you want to build this great application, do you create it, release all your code and hope that someone thanks you with paypal? Hell no! You have to work for someone. You either work for a business or you work for yourself (which means you work for your clients, who may be a busniess, but that's just semantics). You create marketable product or solve business needs with software functionality. When you learn something really cool, that's when you get to make the world a better place. You can even write an applicaiton that solves a common need and let everyone use it. Like NAnt. Until MSBuild arrives, it is what is out there. And it rocks! And it is free. I would bet money that the creators of NAnt have been consulted, or at least approached, to assist with MSBuild. So open-source can turn profit.

The bottom line for me is this: Focus on your goals and objectives. Decide where you want to go and don't move your gaze until you've reached your destination. Do what you love and figure out how to get rich later. Don't let profit drive the train. You'll be a slave to the winds of change that way. Instead, drive ever-forward and you'll find you are making the biggest wind.

If you want a more practical way to say that: Take money out of the equation. Decide what you love to do. Then, figure out how to get someone to pay you to do that. (Michael Earls said something like that but I can't find the original post)

3/2/2004 6:53:43 PM (GMT Standard Time, UTC+00:00)  #    Comments [2]  |  Trackback
Friday, February 27, 2004

This site is certified 37% EVIL by the Gematriculator

2/27/2004 9:16:01 PM (GMT Standard Time, UTC+00:00)  #    Comments [1]  |  Trackback
Wednesday, January 28, 2004

I google stalked myself and this blog already shows up...  The really scary part is that about.com has my email address right there in the results.  Not cool.  So now the email listed has blog appended.  It will still work, I get anything -at- vitaminzrecords

While I hate allowing government to legislate how we can use the internet, I sure would like to see spam heavily penalized.   This new law that's been passed is supposed end spam.  I won't hold my breath.  But, to be honest, I'd rather have to delete some emails then let big brother watch my emails for violations to their law of the moment.  Hey, I know, I'll post a public weblog, that'll keep me incognito with a capitol E

 

1/28/2004 5:09:44 AM (GMT Standard Time, UTC+00:00)  #    Comments [1]  |  Trackback
Wednesday, January 14, 2004

I tried to subscribe to my own Blog....   Ok, first, I know that this is retarded.  It would allow me quicker access to my most riveting entries!  I could see when someone comments, should someone ever comment, immediately.  Moving on then.

I can't subscribe!  This blog is the one that most reflects my interests.  This guy is right on every time!  Its like reading myself.  Oh, it is reading myself.  I am my own audience... 

here's the error

Refresh feed 'General Interest\me' failed with error: System.FormatException: Header checksum illegal at ICSharpCode.SharpZipLib.Zip.Compression.Inflater.DecodeHeader() at ICSharpCode.SharpZipLib.Zip.Compression.Inflater.Decode() at ICSharpCode.SharpZipLib.Zip.Compression.Inflater.Inflate(Byte[] buf, Int32 off, Int32 len) at ICSharpCode.SharpZipLib.Zip.Compression.Streams.InflaterInputStream.Read(Byte[] b, Int32 off, Int32 len)

The rss is valid according to http://feedvalidator.org/check?url=http%3A%2F%2Flevous.cerkit.com%2Fweblog%

ah well....   I'm probably better off.  This guy tends to fill my head with all kinds of left-wing propaganda and nonsense.

1/14/2004 7:07:03 PM (GMT Standard Time, UTC+00:00)  #    Comments [2]  |  Trackback
Tuesday, January 13, 2004

I should have expected so...

I took too long to write a ten page post and lost it.  I hit and got “you can't access that page”

dammit

try again later

 

1/13/2004 5:12:42 PM (GMT Standard Time, UTC+00:00)  #    Comments [1]  |  Trackback
Saturday, December 13, 2003
This is a test entry for mailing to the weblog using an HTML formatted email client.
 
An inline image...
VitaminZ - music for the sake of a healthy soul - LOGO
 
On .NET...
 
"Its going to take a year before any of this can even begin to be implemented, and it's not going to be as easy as they're saying," said Rusty Zarse, a Web developer at HPC Interactive Inc. in Atlanta. "It's still a great evolution in technology, but it's not going to be a quick process."
 
This entry was not added by Rusty, it was added by Michael Earls as he set up the weblog for Rusty.  I thought that the comments Rusty made about .NET were dead-on correct, so I posted them here as part of a test.  Google always remembers the things we might not want it to.  If you search Google for me, you'll find this.  Not something I'm incredibly proud of, but I was still mostly on-target, even if at the expense of the hard work that many a brilliant brain was performing to make X-Forms a household name.
 
I'm looking forward to reading this blog.  I've subscribed.
12/13/2003 5:53:46 PM (GMT Standard Time, UTC+00:00)  #    Comments [0]  |  Trackback

So begins the weblog of Rusty Zarse...

12/13/2003 5:30:22 PM (GMT Standard Time, UTC+00:00)  #    Comments [0]  |  Trackback

Theme design by Jelle Druyts

Pick a theme: