Bloggy-Type Thinger
I do C# programming for my job. Yesterday, I did a search for something relating to the #region construct, which Visual Studio uses for code-folding organization. I found this article where an emphatic programmer slammed their use and essentially publicly shamed people for using them. His is an extreme position and an extreme headline, both which garner attention (it got mine).
Extreme positions, while useful in providing a clear, unadulterated opinion, just never seem useful in the vacuum of the post, speech, or article they reside in. They can only be understood in the greater context of the idea they describe. Thus, people commenting and saying “Man, your opinion is extreme and I don’t like it” or “Man, your opinion is extreme, and I like it” is also not useful to me, because it’s all extreme commenting with little to no nuance.
The author later admitted to recently having a very negative experience with #regions and that it may have influenced his extreme article. His admission is pretty predictable, as I find most extreme positions coming from an extremely one-sided environment that doesn’t easily allow for opinions that differ. Basically, he had to deal with some overwhelming use of the programming construct and it screwed with his day, and then he wrote a scathing screed against them. He doesn’t use #regions and his code is brilliant, so others who “abuse” them must be wrong.
I don’t believe using an IDE’s organizational tool to help you code is wrong or bad. The abuse of anything is always an issue and checking yourself before you wreck yourself is always useful. In other words, an article stating that you should try not to overuse an element that can lead to difficulty in understanding something later for both you and someone else would probably be more constructive. It would also probably just be disregarded by people because it’s not a strong, extreme position. It’s misconstrued as flaky or wishy-washy. A headline that says “Use C# Regions Sparingly, Wisely” is not as attention-grabbing as “C# REGIONS ARE ONLY USED BY JERKS”, and it never will be.
So it goes.
Deep within the myriad web tutorials, eBooks, and tinkering/spelunking of others’ projects on and with Ruby and Rails that I’ve penetrated with my curiosity comes an official announcement: I’ve embarked on my first, really real Ruby on Rails project.
Check out the following link. Although you can’t necessarily tell, this site is not built on a framework. It uses PHP for some light dynamic content, but there’s no databases or tables. The newsfeed is just one long HTML file, for Petra’s sake! The closest it comes to reusable coding practice is having a bunch of include files. Also, there is nary a touch of HTML5 or CSS3 modern goodness to see. Convention over configuration? DRY? Nope, son. The site as it stands is old-school web development.
I aim to change that.
That brings us to PYC on Rails, which will be a Rails 3 web app with a database and models and controllers and drop shadows that aren’t brought to you in image form. It’s gonna be all versioned nicely in Git and deployed using Capistrano. It’s gonna use Rubygems. It’s gonna be available on Github once it’s public so anyone can see how it was made and pick it apart.
Obviously, it’s not gonna be perfect, because it’s my first site and I’m bound to do stupid beginner things. However, when it’s done, it’s gonna be a great jumping off point from the, uh, zeroth site I, um, do(n’t?) have. Confidence++ when it’s done, which will hopefully lead to doing some awesome stuff on Morethingsneed.to once I’ve got a better idea how RoR works.
Web development in my free time? I’m back.
In case you’re not actually seeing this post in its natural habitat, Lazy in the Blog has the new look above. Let me explain why.
I’m always looking at user interfaces, observing the widgets and styles people concoct to connect the user to the system. I look at my personal websites and constantly see things I want to change, this cycling iterative process of creation, criticism, and recreation. I may not be an artist, but I know what I likewhat works. Even if I’m not able to construct the ideal thing that’s floating in my head, whatever I come up with is (hopefully) usable and visually appealing. When I come back to look at it later with a fresher mind, I’ll know what still needs to be done. Everything can always be better. Time and experience bring this philosophy to the forefront again and again.
This blog has gone through a few designs already in its young life. Nothing ever seems just right, so I keep trying new things. The current iteration is courtesy of Alive Themes. They call this particular theme Deep Blue. It’s cool, despite the blue really being more…warm. I suppose it relates to the deep blue of an ocean floor. The orange and gray contrast nicely. The design feels a bit heavy, in that it’s like you can feel the HTML and JS in the background weighing down the page just a little, slowing down the responsiveness. However, it’s good enough and I will work with it (at least until my wandering design ethic desires something new in the future (which it will)).
Normally, using a template is not my way. A developer and tinkerer are gonna want to make their own things, if feasible. I’ve surely made my own designs, including all of the HTML, CSS, and JS, so making a WordPress theme is not above my ability. Despite that realization, creating one from scratch is essentially like making a new website (minus the back-end logic), so it’s not something taken lightly. That’s why sometimes it’s better to let someone else tackle these things. When your site isn’t about making money or showing off your skills, and it’s just a place to put some thoughts, then I’m happy to handle the design reins over to someone else. At least, as a foundation. To be honest, I’ve already hacked this theme a bit to fix a bug and massage the layout to fit a wider-than-default logo because, well, it bugged me and needed to be done. I can’t stop every urge I have to fix things!
Templates are good ways to quickly get a nice-looking site up and running. There will always be drawbacks, though. In this case, the administration panel for the theme’s options locks many things down behind a paywall. Of course, if you know how themes work, you can get around this :-P The obvious conclusion of this kind of hacking through the back-door is a resounding “screw it, I’m going to roll my own.” That’s where my desire to make my own websites most likely came from originally. After going through the laborious process of making your own sites from scratch for several years, it’s nice to just grab a working copy without all of that labor. I’ll keep making my own sites from scratch when I want absolute control, but for this blog I think a template is the way to go for now.
WHEREIN I REFLECT A BIT
2010 was a good year for me for web development. I got better at ASP.NET/C#. I learned some ruby. I made some significant progress on my personal websites. I got fairly seasoned with git.
2011, so far, has not seen these kinds of developments. I burned out a little. It’s been hard to get motivated again. This is a natural cycle for me. I aim to change this by moving forth to the part of said cycle where I ridiculously binge on 343423545 projects at once.
DOCKBLOCKED
One roadblock thus far has been my new computer. Usually, getting new tech is supposed to better your situation, not worsen it. Unfortunately, whenever I get a new machine I like to start from scratch instead of restoring a backup (e.g. Time Machine). The idea is that over time your computer builds up with application cruft, bits of code, settings, and applications you may have introduced that were useful for 5 minutes but then forgotten about. Backups save everything, for better or worse, and restoring it to a pristine specimen would just make it the same used vehicle you’ve been riding for years.
Instead, I like to begin with a blank OS install, install all my basic applications, and then configure them accordingly. I look at my old machine and filter out the stuff I barely/never used and skip them when copying stuff over. This leaves me with the newness of my latest tech acquisition, and (hopefully) none of the residue of the old one save for stuff I actually use. It’s a slight OCD way of going about it, but I like the process…the mind-clearing aspect of it all. The process, however, can take a while.
The last time I had to do this was 2007. That’s a long time. I was instantly reminded of that precious luxury I always say I’m going to utilize: make a list of all things I need to do to set up a new computer and actually use it. In the end, I usually just download the things that come to mind, copy over music/movies/pictures/documents, and then concurrently set up my main music composition/recording (Logic, sample libraries, plugins, etc.) and web development (Textmate, apache, php, cakephp, ruby, git, etc.) applications. My OS of choice, Mac OS X, comes with a lot of the web dev stuff built-in, but not all. Even when it’s automatically installed, I always seem to have to reconfigure something, spending a day or two on Google finding fixes for my specific situation. A minor revision in any of those applications can change how something works.
What would help this? Making a list of all of these things (they often reoccur each upgrade cycle) so that in the future I know what to look for, saving myself some frustration and time. I’ve gotten so far sometimes as actually making the list of things to install, but I never want to account for the intricacies of getting them all working. My forced amnesia of the past condemns me to repeat it, no?
Thankfully, I seem to have most of it all squared away. If I could just tear myself away from WoW and sometimes crushing self-doubt about my abilities as a programmer and designer I will again tackle the small pile of bugs in Redmine for both nebyoolae.com and nebyooweb.com. I’ve got an idea or two to make morethingsneed.to better, as well, but I’m not sure of the current status of it right now.
Regardless of all the set up woes and consternation, my new MacBook Pro continues to be the knees of a bee.
FOR THE ROAD
The new iPad 2 is reslickulously (to quote myself) sweet. It is everything you like about the iPhone, made bigger and better. If it could just shrink down into your pocket, it would cause the world to rejoice in unison.
HISTORY
Over the course of my history of computer programming (which stretches from the simplest markup language to full-on compiled languages), I’ve tried out a lot of things. When my family got its first personal computer, an AST rocking a 100MHz Pentium 1 processor and Windows 3.1 (MPC level 2, baby!), it came with QBASIC alongside its foundational copy of DOS 6. I remember playing Gorillas on it, later marveling at the source code, not really understanding how it all worked.
School had actually introduced me to HyperCard as part of a 7th grade computer literacy course before my run-in with QBASIC, but that was a higher-level language and didn’t get me into the nitty gritty of code, even though it did spark my interest in what would later become HTML. Near the end of high school I took an intro to C programming course, compiling source with gcc, and uploading my programs to a UNIX home directory. In college, I took a class on Java. And that was about it for direct school influence.
Thus, all the rest of my programming experience came via either work or personal projects. Using our family’s AST I built my first rudimentary website, lost to the annals of history. Many, many, many revisions later, we have what is largely nebyoolae.com and nebyooweb.com. Basic HTML was later joined with CSS. JavaScript, which became jQuery, was added in next, along with a MySQL database and PHP. The CakePHP framework now encapsulates both of their current forms. My Ruby and Ruby on Rails knowledge is still in its infancy, but it’s growing. In the last 15 years I’ve also used several scripting languages, as well as prettified text using various markup languages.
I still only speak English with any kind of fluency, though.
At work I picked up on ASP and even some Perl. More recently, I have picked up ASP.NET, C#, and today’s actual topic, Sharepoint.
OH RIGHT, SHAREPOINT WAS THE TOPIC
Microsoft’s Windows Sharepoint Services (WSS) is basically a layer that sits on top of ASP.NET, providing additional functionality. It could be described as a sort of Content Management System (CMS) as it allows people to view, add, edit, and remove content like documents, pictures, and text, but it can also be shared with others, all in one central web application.
Before my current job, I’d heard of Sharepoint, but never used it. Now, I’ve installed it, configured it, branded it, and even begun to start customizing it. Unfortunately, Sharepoint only runs on Windows Server, and not client OSes like Windows 7. This makes developing for it slightly more of a hassle, especially if your network connection is slow or the remote server is slow to react to changes.
This problem seemed to have no recourse until I read a 3 year-old article.
Apparently, using some third-party trickery, you can sidestep the server OS requirement and do the impossible. Using additional guidance from here, I finally got SP installed and can get to Central Admin. This can make creating custom Web Parts easier since you can test them locally, removing the need to copy them to a server to see if they work.
However, I haven’t actually been able to successfully connect to a local web application created through Sharepoint’s CA. I give my user account full control, but when I input my credentials it refuses to accept them. And that’s only on Internet Explorer 8. Google Chrome has since started simply crashing when I try to access the web app, choking on something unknown.
Sigh.
It’s frustrating to have gotten this far only to be stuck. Computing is often riddled with issues like this, and it’s really easy to get dejected and just give up. I’ll keep trying to fix the problem, but for now it’s back to Post-Build Server Copying for development.
More dev-related posts can be found at Lazy in the Blog

