18 December 2012

codeless: expression box/calculated value

/TECH
Have you ever needed to display text that changed depending on other aspects of the current form in question? If you have, perhaps you've already used these. But if you're like me and you didn't see an obvious solution (a rarity in SharePoint and Infopath) you found another way. I personally used sections and text fields to dynamically hide and display text. But this isn't the only way.

I discovered this little feature by accident one day. They're called an Expression Box in 2007 and a Calculated Value in 2010. These incredibly simple controls are part of the form template only, which means the data in them is never stored with the form itself. One disadvantage that I can tell though is that you can't reference them, much like a button control. But if you're already basing the info in the control off of data in the form, you don't need to reference it.

But the thing that bothers me the most is that I've been working with InfoPath for 2.5 years now and never knew about them. If you haven't discovered them yet, go use them cause God knows they're useful.

Until next time:
Work hard. Play harder.

03 December 2012

not an article

This is just to inform you that I'm working on a series of posts about some of the things I've learned about SharePoint and InfoPath. I am also in the process of breaking off the more personal side of this blog into a separate blog that I'm hosting on my very own server. There I will post my rants, ravings, and reviews about things not related to work and personal projects. I will post a link to it when it's ready.

So until next time:
Work hard. Play harder.

19 November 2012

(re)work

/TECH RANT
Remember last time when I said Doppelganger has the caveat of "subject to change"? Yeah, apparently my work projects also have that. Two weeks ago I was "finishing" a form project only to have a discussion last Monday that made me go, "Oh crap." So my main project for the past month or so has been updating our Cell Phone Allocation form to include the option of getting a phone through the company. Previously you could only get a reimbursement for using your personal phone for business related work. Now, the university is offering full-time employees phones paid for by the university and the employee takes a deduction on each pay check for using the business phone for personal purposes. What I had spaced was the fact that the addition and the deduction were opposite from each other. So in five days I re-worked a significant portion of logic in the form to properly calculate the pay period allocation or deduction.

Five days isn't much, but I managed it. The worst part is because all these changes had to be to the current form, we now need to re-convert the form for our SharePoint 2010 migration. You might think that I should just make the changes to the new form rather than re-convert but I'll tell you now, it'll be faster to re-convert. The changes were extensive and although I just finished working on it, I can't remember everything I did and really need to hand the 2010 version over to a co-worker. So re-conversion it is.

The Cell Phone Allocation form isn't the only one that's been hijacked. So has one of the SharePoint Team's least favorite form: the IRB application. This form has given us numerous problems though most of them can be attributed to user error. However, to attempt to mitigate these issues the form has been updated numerous times since it was converted. Yes, with proper documentation we could probably update the 2010 form without trouble but how often do you have good documentation available? How often do you make good documentation?

I've even been improving our documentation, but it's improvement is secondary to the immediate problems of conversion and troubleshooting. Documentation wasn't always a problem for me. In fact in programming I'm pretty good about commenting code and what-not. But SharePoint and InfoPath documentation are different because they're visual design editors with no way to comment segments. So documentation has to be put in a separate document. Which means if you update something, you have to update the documentation separately. And most of the documentation is done through screenshots of the layout and design.

I apologize to people reading this expecting to see solutions to problems on various systems. Perhaps I should move these rants to my other blog and start posting more technical things here...

Until next time:
Work hard. Play harder.

05 November 2012

subject to change

/TECH
Tech changes a lot. A generation in technology is often only a few months to a couple years long depending on which technology you're talking about. In the case of servers, it's more often a couple years. This is because servers are supposed to be a more consistent resource, constantly providing data or services. But for me, servers on Doppelganger are more often going to be talked about at the month level of iterations. Here's a quick rundown of the various appliances and VM's I have running on Doppelganger, my Proxmox Virtual Environment:
  • Amarok
    Service: Plex Media Server
    Allocation: 2 cores, 2GB memory, 20GB storage
    Status: running, rarely used
  • Balrog
    Service: Minecraft server
    Allocation: 2 cores, 6GB memory, 8GB storage
    Status: offline, merged to Gryphon
  • Faoladh
    Service: LAMP for developing a Dungeons & Dragons character tracking web app
    Allocation: 1 core, 1GB memory, 10GB storage
    Status: running, not used
  • Gryphon
    Service: Minecraft server and Tekkit server
    Allocation: 3 cores, 8GB memory, 8GB storage
    Status: running, frequently used
  • Kitsune
    Service: WordPress
    Allocation: 1 core, 512MB memory, 4GB storage
    Status: running, untested
  • Naga
    Service: Ubuntu 12.04 server
    Allocation: 2 core, 6GB memory, 6GB storage
    Status: offline, waiting re-purposing
  • Raven
    Service: TeamSpeak
    Allocation: 1 core, 2GB memory, 8GB storage
    Status: running, frequently used
  • Siren
    Service: Icecast
    Allocation: 1 core, 512MB RAM, and 10GB storage
    Status: offline, not working
  • Warg
    Service: Windows 2008 R2 Server running Terraria server
    Allocation: 2 cores, 8GB memory, 32GB storage
    Status: offline

At the beginning of summer I had an idea and an overly simple plan that allowed for exploration. I never imagined I would have all the things above set up and I'm still exploring different possibilities of things to do. Looking back I now see a trail of projects--some working, some failed, some in between--and a series of decisions that were made on a thought. Naga had a very short lived purpose to serving as a remote platform for a friend to finish a school assignment. I set it up in about 30 minutes. It still sits in the list of servers hoping to someday become something else. Balrog had a long-term plan, but has since been incorporated into Gryphon, a more stable appliance. I maintain a spreadsheet online with a list of all the computer names I'm using or might want to use, what purpose that machine might serve, and various details about ones that are in use such as IP address and machine number. There are a lot more names on that list than I gave here, some of them being the names of my personal computer (Phoenix) and other active devices, some being undetermined, and some being machines that will be setup in the future.

Perhaps the most interesting machine on my list is the one that sits at the top and has never been implemented in any way but has gone through the most iterations: Cerberus, my eventual router and firewall. Although its name and eventual IP have never changed, my ideas of how it's to be implemented have been in constant flux. And unlike most of my machines that are virtual, Cerberus has to be a physical box to be its best. The hardware I want to use for it has gone from using an old Pentium 3 or 4 with 3 network adapters, a 24-port switch, and a wireless access point to buying a specialized integrated device that minimizes power consumption and physical space requirements. My thoughts on Cerberus could be an entire post for that matter and probably will be one when the time comes that I finally build it.

In the end, I discovered that my initial plans weren't that good and that there was a better way. I now have an asterisk next to the whole plan that refers to a footnote stating: subject to change. And in the end this was and is the best way to approach Doppelganger.

Until next time:
Work hard. Play harder.

23 October 2012

usability

/TECH
Over the summer I participated in a program here at work to journal every day and/or complete a project of some kind. At the end, the person that did the best would get a prize of some kind. But at the end of the summer when we all got together to share our summer progress, there were only six people that participated, including the organizer. Since there were so few of us, she decided that everyone would get a prize by choosing a book that she would order. She had several books laid out as options but she also said we could choose a different book of our own choosing. I requested the book Don't Make Me Think by Steve Krug, unless it was too expensive in which I'd have a different book called 62 Projects to Make with a Dead Computer. Asking if I'd mind used books--which I don't--our organizer actually obtained both books for me. So awesome.

So last Friday they turned up on my desk and I proceeded to start reading Don't Make Me Think. It's a book on web usability and the basic premise is that as a user, we shouldn't have to think about where things are, what something is, or how to use it when browsing the Web. I obtained the book on a recommendation from a friend for the purpose of personal learning. As it turns out, it has also been helping me rethink how I design our custom web forms in SharePoint. And at a very opportune moment.

For some reason a form that worked quite well last academic year is pitching a fit this semester and causing students, faculty, and staff all sorts of problems. I mean lots of problems. We have had at least 4 problems a week with user access, usage, or otherwise on a process that's had a mere 50 applications submitted thus far. And when I started reading this book we had been considering expanding the instructions further to hopefully eliminate some of the confusion. More text was exactly the wrong thing, according to Steve Krug. But redesigning the form would be even worse as it would change it mid-process for many people. So rather than putting in more text or significantly altering the appearance, I found small tweaks like just disabling buttons instead of hiding them to do instead. I don't know if it has helped yet, but here's to hoping.

Steve's book doesn't just apply to web usability though. It really applies to any GUI design whether it's web, stand-alone applications, or operating systems. I know that everything doesn't fit within the bounds of the guidelines he sets, but even he admits that everything fits nicely into it. In fact the book isn't a step-by-step guide to making particular things, but rather a set of (not-so) common sense suggestions.

I haven't even finished reading the book and I've already been able to improve so much of the designs that I think of. With the resurrection of my D&D character tracker project on the horizon, having a common sense approach to design will drastically improve the usability of the web app.

Until next time:
Work hard. Play harder.

08 October 2012

small changes

WARNING!
This post is not about tech. It's a rant. You have been warned.

<RANT>
I remember thinking when I started this blog that I would mostly talk about the projects I was working on and not about my personal life, opinions, and philosophy. But the more I've worked on this the more I realize that it's not that cut and dry for me. My moods, philosophy, and physical state greatly affect how I approach work and when I decide to work on projects. I say this because I've used the excuse "I'm so worn out after work" so many times it's even annoying me.

Worse is when I'm at work after a short night because I got caught up in a show or game that I lost track of time. Take this morning for instance: I had less than 6 hours of restless sleep, didn't have time for a shower, had an email stating a form hadn't been updated yet due to a computer being stupid (not the user), and just my general dislike of mornings. To say I was irritable would be an understatement, but to say how I was feeling would be crude and uncalled for in this blog.

So I took a walk around the building. Twice. The second time around I stopped at the coffee shop in the science building. I bought a hot chocolate and went back to my desk. An hour later, I feel worlds better about myself, the problems before me, and the universe in general. It's amazing at how such a small change alters so much.

I've been trying to make these small changes in more ways than improving my immediate mood as well. Lately I've been trying to make small changes to my eating habits and it's working quite well. I've managed to reduce the amount of food I eat, change the general type of food to more healthy options (this means a lot less cheese), and even lose a few pounds while doing this. It's quite nice.

The place I most frequently fail, however are my gaming habits. No, not gambling, video games. I play them a lot. Like, it's my other full time job a lot. And it's been getting in the way of accomplishing other things like, laundry, cleaning my room, showering, and even superseding food. I spent more time this weekend setting up a dedicated Minecraft server with modifications than anything else this past weekend (read: this is why I didn't sleep well). Like my excuse I've been overusing, it's starting to annoy even me.

Video games are the one thing I'm wondering if small changes will even work for me. I often wonder if I should go through an addiction and detox process just to curb how much I play. Worse yet is Minecraft itself. The game is evil in that the possibilities in the game are incredible. It even takes over my desire to play other games. And thus I arrive at the conclusion that it is time I cease playing games and re-discover... reality.
</RANT>

If you've made it this far, I commend you. Listening to me rant about myself probably isn't the most entertaining, but I thank you as well. I thank you for being considerate of my thoughts and should things go well over the next two weeks, I may actually have some tech to write about. So in light of my rant...

Until next time:
Work hard. Play less video games.

24 September 2012

follow through

/EXISTENCE
Lately I've had a general desire to slack off when I get home from work. This comes from the fact that work is actually quite draining and the fact that I'm now working 40 hours a week. As much as I dislike working 40 hours a week, I know it is a necessary at this point while I look for other opportunities and pay off my school loans. But I can't help wish I had a bit more time for my own pursuits.

Those who know me might assume this purely involves gaming and as much as I love video games, this isn't entirely true. In truth I even have a lot of things outside of technology I wish to pursue. My "bucket list" if you will, has things on it like visiting Australia, Japan, Hong Kong, India, the Canary Islands, most of Europe, learning Japanese, living on another continent for a while, and even more things that I can't think of right now. It is an incredibly ambitious list and perhaps I should refine it a bit.

But admittedly I fall back on gaming and general slacking off most of the time. It doesn't help that a couple games I've been looking forward to recently came out (Borderlands 2 and Torchlight II) and several more are coming out in the next few months (Okami HD and The Banner Saga). There are 3 more that I have no idea when they are released coming as well that I have already invested in (Double Fine Adventure, Wasteland 2, & Auditorium Duet) or just have a general love for (another Ratchet & Clank game).

/TECH
It is honestly hard for me to pry myself away from the distraction of gaming. But there are a few things that have managed to capture my attention away: namely working on Doppelganger and getting new things set up. In fact just this evening I finally decided I would attempt to set up a media server using Ubuntu Linux and Plex Media Server. And to my great surprise it was pretty easy. After creating a new container, it was a short process of adding another source to the sources list, updating apt-get, and installing "plexmediaserver" with all of it's dependencies. Not much longer after that I had Samba working and some files transferring to test it out.

I'm pleased to announce, it worked fantastic. Not only is Plex Media Server easy to install, it detected the files I uploaded easily, downloaded artwork for the TV show, and even played the theme song while I was choosing the episode I wanted to watch. I experienced this using the Plex Media Center client which was equally easy to install and use.

/PHILOSOPHY
So I watched a couple episodes of Top Gear tonight and as I was watching their star in a reasonably priced car go around the track, I thought about one of the parts of the lap: the follow through. If you haven't seen the show, the follow through is a section of the lap where the driver is supposed to keep the gas pedal to the floor. And it's made me think about how I should approach my bucket list. Is it wise to go flat out through life, the universe, and everything? I think I have that answer in my sign off. So...

Until next time:
Work hard. Play harder.

30 August 2012

failed to start

I would first like to apologize for my tardiness on this entry. I've been a bit busy at work and when I get home I have often been collapsing into a chair and watching old episodes of Top Gear UK. And now without further ado, my entry...

/TECH

"Failed to start"
This is an error that SharePoint workflows give sometimes. But unless you dive into some deeply buried log file, it gives you nothing else. Absolutely nothing. So we've developed a list of things to check when we receive this wonderfully informative error: check all referenced fields to make sure they're being published; confirm email addresses; make sure it gets some kind of data; clear your SharePoint Designer website cache (hate doing this); and confirm your username has been changed on that site. It was this last one for me on the most recent failure. You see, in May I went from being a student worker here to a regular employee. This meant that a lot about my account changed.

Speaking of changes and failures, another recent change caused some problems on Doppelganger. As stated last time, one of Serenity's hard drives gave up the ghost and took several of Andy's services with it. So he kindly setup backups on Doppelganger for me. I was quite grateful. The morning after the first backup ran I noticed a problem: only my Mumble server was running. Apparently I wasn't diligent enough with getting my startup scripts working properly and thus TeamSpeak and both Minecraft servers never started up properly. These have since been remedied.

I've also been trying to remedy Phoenix's performance issues. My poor personal computer is having a terrible time keeping up with the things I throw at it lately. It isn't that the hardware is going bad, or that Windows needs to be cleared, it's that my demands of performance have been increasing. One of those performance demands is actually with Minecraft. For what ever reason, the incredibly simple looking Minecraft requires a ton of resources. But the old Athlon 64 X2 with its paltry 6GB of RAM (not that paltry actually) just doesn't like running it. Then there's the games that actually justifies the need of high performance hardware.

So after having run Doppelganger on my newer, beefier hardware for a while, I've noticed something: it benefits greatly from the greater amount of RAM but not as much with the CPU. I could better utilize the CPU if I ran more process intensive servers. But the fact is I'm quite content with TeamSpeak and one Minecraft server. If I just rein it back to just the two services. I think I'll keep Proxmox, but I think consolidating services is a good idea.

It now comes down to, where do I want my hardware? I could purchase new hardware leaving Doppelganger as it is, but I'd rather purchase a tablet next. In fact in addition to wanting the tablet, I want to run a media server so that I can then stream my personal media to the device along with being able to use my various subscriptions. Having a tablet would also allow me to leave my computer and PS3 off too, thus reducing my power consumption and heat production.

Well, I'll have to consider those things while I'm on vacation and perhaps I'll have some things done in this vein by September 10.

Until next time:
Work hard. Play harder.

13 August 2012

exercise

/TECH
I went to move a temporary Minecraft server to a permanent home on a Linux VM and I realized, I couldn't remember how I setup Balrog (my original Minecraft server). It took me longer than I anticipated to set up the new server, Gryphon to act as our survival mode Minecraft server and thus I was up until 2am last Friday night/Saturday morning. But I did it much cleaner than my setup for Balrog. In fact, Balrog needs to get an upgrade to a 64-bit OS so that I can allocate more RAM to it.

So yeah, I realized that since I've been slacking off on my Linux skills, I have once again lost them to a certain degree. Now, it was much easier to find reminders this time since the knowledge was already in my brain but just not accessible. What probably took me 6 hours the first time took a mere 2 hours the second time. And I presume that now that I have a few tricks up my sleeve and haven't taken quite as much of a vacation from it, I should be able to rebuild Balrog in a quick 30 minutes.

My friend Andy, who is way better with Linux than I am, is the one who got me into Proxmox and has a server of his own. In fact it was his project and encouragement that inspired me to set up my server. He sadly informed me today that the 300GB hard drive in Serenity (his Proxmox server) died and took with it several of his virtual machines. He lost his blog, FOG server, his brother's Minecraft server, and I think one other service. A moment of silence for the lost bits. ... ...

But his loss has inspired me once again, and this time it will be a collaborative effort between us. Of course my first question was if we needed to obtain some new hard drives. The answer was of course "yes". So hopefully by the end of the year both of us will have obtained at least one of Western Digital's new Red drives. These drives are designed to be used in storage systems and run 24/7. At said point, or perhaps before, we will also endeavor to set up a back up system between our servers. Doppelganger will back up all critical files to Serenity and vice-versa. Once we accomplish this, our data will be more secure. Eventually we will probably even have them synchronize our storage drives. It's win-win.

/EXISTENCE
My blog entry isn't just about exercising our knowledge however, as I have recently set out to get more physical exercise. I need this too as I have reached too many extra ranks in circumference recently and need to lose those ranks. And like my Linux skills, if I slack off I lose the benefits of exercise. So here's my goal: to walk for fitness 1 mile everyday. So far I'm walking about to every other day. In fact I need only about 17 minutes for the actual walking. And my new Saucony shoes mean my feet won't be crying at the end.

Until next time:
Work hard. Play harder.

30 July 2012

digging

I did a little bit on Doppelganger last week, namely setting up Warg which is running Windows Server 2008 R2. But most of my tinkering has been at work with a form and on Balrog playing more Minecraft.

/TECH
But let's talk about my tinkering at work first. I need to begin by describing a form that I'm working on migrating from SharePoint 2007 to SharePoint 2010. The form in question deals with allocating a funds to an employee for cell phones. As such, the form needs to be able to do several things right off: recognize the employee filling out the form (that's easy); query a list of current allocations and find all that pertain to said employee (hmm... okay); and check to see if the employee has submitted any forms for allocations during the current fiscal year (right).

The first part requires using the userName() function and then querying the user profile service to get their name and ID number. No problem.

The next part requires finding all the current allocations for the employee queried. All current allocations sit in a custom list which is easy enough to get to with a data connection, but how does one get just that employee's entries? Well with SharePoint and InfoPath 2010 it is now much easier to query list data connections that you receive data from. So by creating some rules that trigger on Form Load I set a field in the connection to equal the employee and then tell the form to query the connection. Boom! List of lots of allocations is now just 0 to 2 entries. This short list gives me information about each allocation along with how many allocations an employee already has. The form then presents pertinent information to set up a new allocation, update a current one, or renew an expiring one.

The last trick actually requires receiving data from the very library submitted to. This action allows us to see what other forms the employee has already submitted. But we only want to see ones submitted in the same fiscal year. Like the current allocations query, we query the forms library using the employee and also add in the fiscal year we want.

It's interesting to note that when I first modified and expanded this form that the data connection would return ALL information in the list or library and we used filters via rules and default values to get the information desired. When I looked at it this time, it just didn't make much sense to do it that way. It also helped that every one of those default values exploded in the conversion from 2007 to 2010.

Overall, I have to admit that I like SharePoint 2010 much better than SharePoint 2007. There are a few things we've had to adjust, some more annoying than others. For instance in InfoPath 2007 you could set a rule to check a condition and then do nothing except prevent any further rules from running. InfoPath 2010 doesn't allow this, but rather then just marking the rule as invalid it completely removes it without a trace. This is but a small pain though in comparison to the benefits that 2010 offers, like having a data connection sort the data returned by the field you specify. Drop-downs are now alphabetized even if the ID numbers of the queried data are out of order. The fact that data connections also have a separate set of "fields" for querying is also incredibly useful and is what inspired my recent redesign of the form mentioned above.

/EXISTENCE
As I mentioned in my intro, I haven't done much on Doppelganger recently except get one VM setup. It has really been running smoothly and I hardly have needed to mess with it since getting things set up. I guess I did move my TeamSpeak server to a new container called Raven where I now also run a Mumble (Murmur) server. But it wasn't hard and I didn't really learn much.

What I have noticed however, is that I get home from work in varying degrees of worn out--mildly to exhausted--and frequently just want to relax and not think about much. Enter Minecraft. Though it can be a very deep game with basic computer architecture simulation ability using redstone, it can also be one of the most mindless experiences out there.

It's such a strange game in that regard. it just places you near the center of 60 million square meters of blocks with a max build height of 256 meters and says, "Do something." At first you just stand there going, "WTF?" Then you move around and try punching something. You collect some dirt. If there are animals around, you might punch them a bit. Then you punch a tree and get wood. Eventually you're building a replica of Neuschwanstein castle before you come out of your stupor realizing you just spent 3 days of your life playing a game. All at once. Even forgetting to eat or sleep. (I'm exaggerating, but only a little.)

Only just today have I come up for air and realized that I need to get off my butt and get some exercise. At an embarrassing but not ungodly weight I realized that work is not going to get me moving around, rather it will keep me firmly planted in front of a computer so that I can earn strange pieces of paper-fabric which I can trade for silly and entertaining things like Minecraft, which is just more sitting in front of a computer. So today I actually went for a walk after work and managed to make it nearly a mile in 18 min. I don't know how many calories I burned, but I have a new sense of accomplishment and have set a goal down to get to 190 lbs again.

Until next time:
Work hard. Play harder.

18 July 2012

expansion

/PERSONAL
I'm a little late posting this entry, but I've actually been quite busy recently and when Monday evening came around all I wanted to do was relax. Even now, two days later I'm tired and kinda want to go back to bed. But today is a special day and I decided that I needed to get stuff done, this being one of those things on my list. Now on to the tech talk that I normally spout.

/TECH
After some deliberation about where my best hardware should be I finally decided to put my better hardware in Doppelganger. So as part of my Independence Day festivities I took down Doppelganger and Phoenix and swapped their hardware. I made backups of Pegasus (my current TeamSpeak server) and Balrog storing them on my external HDD. At first I thought I'd just swap the HDDs between the cases, but then I remembered a critical detail: my video card, the only part not going in Doppelganger, doesn't fit in one of my cases. Motherboard switch it was! Later I realized another small detail that the Sabertooth 990FX motherboard doesn't have on-board video. Low-powered NVidia video card to the rescue once again! I always knew it was good to keep that.

Now Doppelganger has a beautiful rich-featured motherboard, a quad-core AMD FX processor, and 16 glorious GB of DDR3 RAM. I'm especially happy about the RAM. Eventually I'll get another server named Raven setup where it will automatically boot with Doppelganger and launch TeamSpeak Server, Ventrilo Server, and Murmur Server giving me and my friends a full range of voice-over-IP choices. Balrog is happily running along with several scripts I wrote to help me manage it more easily including a pretty sweet update script that downloads the given update, replaces the server jar, updates the message of the day in the server settings, and automatically restarts the server. But between the two VMs I'm hardly utilizing Doppelganger. There must be more. More! MOAR I SEZ! …ahem… Sorry, I devolved for a second there.

After a recent gaming session in EYE: Divine Cybermancy with friends, I decided I needed to setup another dedicated server for the game. It's pretty awesome and it's a Source engine game. Since Source engine games can be run using the same dedicated server application I realized that I could get it running using a Linux server. Since the Source engine is made by Valve and published to the Steam platform, I decided that my Source engine dedicated server would be named Golem. Sadly, I have not spent the time getting it running yet and really need to experiment with the Source dedicated server before I jump into running it on Linux.

My real next task is to setup two VMs for experimentation. One will be a Linux playground and the other a Windows playground. With so many distros of Linux, I'm not sure which flavor I'll use, but I'm thinking just a standard one, like Debian. Windows I have fewer choices, but it tends to be more of a hog and so I'm not sure which version I'll install. Anyway, once those are installed I'll make snapshot backups of each and then I can experiment on the system and mess it up as much as I like. And if I can't fix them, I can just restore from the snapshots.

Besides the Source dedicated server, I've thought about playing with include a private Internet radio server, DNS server, file server, web server, and a SQL server. I'm also hoping that I can buy some large capacity HDDs within the next year to put into Doppelganger and expand the storage to ridiculous sizes. If you have any ideas of what I should experiment with let me know in the comments and I'll see what I can manage.

Until next time:
Work hard. Play harder.

02 July 2012

doppelganger

/TECH
Doppelganger lives. It is quite gratifying actually, to finally have a server that I can run a combination of production systems as well as test systems on. Proxmox is a sweet system. The Linux based hosting environment is quite powerful and comes with my favorite price tag of free. Currently Doppelganger is running two other systems constantly: Pegasus and Balrog.

Pegasus is my current system for hosting TeamSpeak, but I'm trying to get it moved to another system called Raven. The reasoning behind this is that Pegasus is currently setup as a VM whereas Raven is setup as a container. The difference between the two is that a container is more isolated thus increasing security plus they are way easier to manage. Eventually I'll figure out my hang ups on Raven as I'm also trying to set it up to auto start TeamSpeak. I also hope to install both Murmur (Mumble server) and Ventrilo server applications on Raven so that I can have a more complete voice conferencing solution.

I thought Balrog was an appropriate Minecraft server name. Yes, I play Minecraft and I've dedicated a ridiculous amount of effort to maintaining the dedicated server for it. One of the things I've distinctly learned about Minecraft is that it likes RAM. It likes a lot of RAM. I've caught it using 1.5GB of RAM on my computer several times. It also likes a decent CPU speed, fast upload speed, and fast download speed. As it stands, I can only have about 5 people logged into my server simultaneously. But it's loads of fun and often worth the effort.

My first week with Doppelganger has been good, but I've discovered that the hardware I'm running it on is a bit… lacking. As a result I've been looking for ways to upgrade it without spending additional money. Solution: swap my hardware from Phoenix, my personal computer, to Doppelganger. This would then net me a much more powerful machine for the server but set Phoenix back a little. All in all, I think it will be worth the effort to swap the hardware to result in a more stable virtual environment.

It's good timing to do this transition right now too. Phoenix is having issues lately and Windows needs to be re-installed. Yeah, when your computer can't find Google.com, you know there's a problem with either your service, your router, or your computer, and since all other devices were connecting to the Internet just fine, it's the computer. So Phoenix will once again die and be reborn. Phoenix will take a step back in performance, but ultimately it will be better. Once I settle on hardware, I'll post the specifications.

Until next time:
Work hard. Play harder.

19 June 2012

quirks

/TECH
As most design and development is apt to have, SharePoint 2010 and its associated software has quirks. These quirks can be documented or undocumented, but they eventually come up as someone out there is trying to use SharePoint in some specific way. I use Infopath and SharePoint Designer a lot as I design and develop custom forms. One of those quirks has become apparent to me as I was struggling for several hours one day to get a workflow functioning correctly. This workflow was trying to compare a username to a person field returning the login name as a string. SharePoint 2010 is new to me and the string builder features are much improved over 2007. One of those features however broke a workflow. It turns out that the new string builder treats the '\' just like most programming languages: it's an escape character. Thus when I had it trying to concatenate a '\' in a string, the lookup following it kept failing as it was no longer being a lookup but a string literal. Again, as with programming using 2 '\' actually inserts the character into the string.

/EXISTENCE
Speaking of escapes, currently I've gone through another bout of gaming remorse, this time from Diablo 3. I spent an unhealthy amount of time on the game over the last weekend, thus not getting useful things done, like working on my projects this blog is supposedly helping me follow through with, finishing my re-organization project, getting a haircut, doing laundry, or going grocery shopping. Was it worth it? The frustration and self-defeating said "No, and you're a loser for wasting all that time".

But I know I'm not a loser. It takes me a little bit of time to get over the initial depression that sets in, but then it turns into a priority defining moment for me. It was because of those thoughts and the realization that I can actually do something about those problems that in the time between writing the previous paragraph and this one, I went and got my hair cut and grocery shopping. It's amazing at how much better I felt after something as simple as getting my hair cut.

The same thing goes for work. Last week by Friday I was burned out. I was just wasting the University's money by sitting there while I did nothing but stare blankly at my screen. So I left early. Today I went to work and before I knew it, it was time to leave. In fact I stayed a little longer today because I needed to finish something before I left. Perhaps there's hope for me yet on accomplishing 40 hours per week.

Until next time:
Work hard. Play harder.

05 June 2012

back to work

/TECH
Doppelgänger still doesn't have a power supply, but I've been waiting until I got back to work before I began spending money on the project. The PSU is just the beginning for the system. For the time being, I'm going to use my old AMD Athlon 64 x2 hardware. I've only got 2GB of DDR RAM for it currently, but I hope to replace all the core hardware before the end of the year. The hardware I'm looking at putting into the case is an AMD A-series CPU+GPU, an accompanying FM1 motherboard, and at least 16GB of DDR3 RAM. I'd prefer 32GB, but we'll see what I can afford throughout the year.

On that note, as of yesterday I'm once again employed and continuing work for Whitworth University. It's a great place. Of course I have some complaints about the work and the area, but those issues are far less significant than being able to say, "I'm employed, eating well, enjoying my evenings in the house I live in, and sleeping comfortably." But this is tech talk, so let me elaborate on the issues I'm currently dealing with at work.

As a brief intro, I work with Microsoft SharePoint creating custom forms with InfoPath. Our current project is migrating from SP 2007 to SP 2010, which is one of the issues I'll discuss. The other issue is providing support for existing forms with both InfoPath 2007 and 2010 installed on my workstation.

If you've ever had to upgrade even a personal computer, you know that migrating data from the old version to the new version doesn't always go smoothly. I love advertising that states it's simple and seamless. Bollocks. It's only simple if all the conditions are right and when is a server ever perfectly stable and up to date with the latest hotfixes? I've been developing custom forms for our SP2007 environment for the past two years and although I don't have to re-learn everything, I have to become acquainted with the quirks of each environment and the quirks that come with the conversion process. On top of this only some of our forms are actually being converted to 2010; some are remaining in the 2007 format but being published to the 2010 environment.

One of the InfoPath 2010 quirks is that you cannot specify a rule in a form that only stops the remaining rules from running. Every rule must have at least one action and stopping the remaining rules doesn't count. To mitigate this you simply have the rule edit a dummy field with nothing. Problem fixed, right? Well, the conversion quirk that comes with this is that when InfoPath 2010 imports the 2007 form it takes a look at the rules and any of those "stop" rules are removed. No warning. No making the rule invalid. Just remove the rule without notification. Microsoft, that was a stupid idea. This breaks a lot of the functionality in the forms I develop. I rely on that rule to stop the other rules from running and causing errors. And I don't even have to be converting. Even if I'm just publishing a 2007 form to the 2010 environment as is those "stop" rules disappear.

But we're going about this smart and we haven't pushed the 2010 environment into production yet. This means that we're running both 2007 and 2010 environments. As a result I have both 2007 and 2010 versions of InfoPath and SharePoint Designer on my workstation. However, because a key change to the contact selectors happened with InfoPath 2010 the two versions of InfoPath are incompatible. So when 2010 is the primary application I have to be cautious about editing 2007 forms with IP2007. The reason is that if there's a contact selector in the 2007 form I can't edit the control at all. So when I have to do maintenance on a 2007 form I have to repair the 2007 installation which takes time and requires the computer to be restarted. Then the next time I open 2010 it updates the computer again breaking contact selectors in 2007. It's a constant battle.

/EXISTENCE
Of course I talk about all this and remember that I have plenty of distractions awaiting me at home. These come in the form of a large Steam game library, a PS3, and my newest addiction: Minecraft. I'm a bit late to the Minecraft scene but Oh! how grateful I was late to the party. The game is so ridiculously addicting I'm sure I would have done much worse in classes had I purchased it earlier. In the course of 5 days I've probably sunk 50+ hours into it. I'm really happy I bought it during my vacation so that I could spend that initial period with it. And then there's my backlog of games I have yet to complete or even start! Hell, I even went as far as using a website to help me track that backlog, speaking of which I need to update.

Until next time:
Work hard. Play harder.

22 May 2012

disconnect

/EXISTENCE
For the past week I've been away from my home relaxing in Montana after finishing school. It's actually why I'm a day late posting this as I remembered late last night that I normally would have posted something and my parents don't have Internet service at their home. It's kind of nice to just disconnect every now and then. I realize that we rely on communications quite a bit, but knowing that I have a place to go and get away from it is rather nice. I look forward to the times now when I can just get away from the city and all the busy-ness it brings with it. Admittedly I wasn't completely disconnected as I had my Android phone to keep me somewhat up on email and the like. But I was pretty disconnected and it has been awesome.

I head back to my home today. So much for talking tech...

07 May 2012

drive

/PHILOSOPHY
As I started writing this entry I realized that my previously defined "tags" were insufficient. This entry is more about making it through higher education, but isn't really one existential tangents. So pay attention to the headings I put on these and you'll have a better idea of what I'm talking about. I should probably use the labels feature of Blogger as well.


The final stretch to my BA in Computer Science is upon me and I can't find words to state how relieved I am to have it within arms reach. That being said, I'm sure on some level I will miss the it after all is said and done.


Though I've always messed with computers--playing, breaking, fixing, building--I never programmed anything until I started my university program here at Whitworth University. With so much computer background yet no programming, my adviser questioned if I should skip Programming 1 or not. I didn't and though parts of the class were boring, it was good for me. Fast forward through my introduction to programming with C++ to now. I've now learned the skills for picking up any programming language and have played with SQL, C#, and Google Go just to name a few. I wrote a research paper on long data sectors in hard disk design, designed a CPU, and managed several projects.


So what does it all mean? Well, it means I earned a really expensive piece of paper that says I know stuff about computers. That I waded through all the bureaucratic crap while trying to glean some knowledge from my professors and the authors of my textbooks. It is a moment of triumph as I declare that I do actually know stuff and that this expensive piece of paper proves it. That I'm worth it.


Remember that. The most important part of your degree is that you're worth every penny you ask of your employer. And if you prove it, your employer will want to keep you when an end is in sight. It's why I'm able to continue working at the same job for another year after graduation but as a full-time employee instead of a student employee. But I won't put everything on my degree. It was really my drive to tinker and do good work that earned me respect.


And I will forever tinker with technology--playing, breaking, fixing, building. It's just in me and I have to follow that desire or I fall into a slump feeling useless. So though I come to an end of this educational degree, I'll keep doing the things I love.


I'm also looking forward to taking a vacation after graduation. It's time to reset. Next time we talk tech and hopefully get Doppelgänger running.

23 April 2012

graduation

/EXISTENCE
I started this blog in an effort to help me follow through with my personal projects in learning about technology but forgot to take into account one very important and significant factor: I'm graduating this semester with a BA in Computer Science.


So yeah, I don't seem to have much time outside of assignments and my employment and when I do have time I just want to slack off. I'll play video games or watch a show, but playing with my computers is not really on the list of priorities. Example: yesterday I'm playing the open beta of Diablo 3 (which could be a post of its own) when I get a text from my classmate asking if I was coming in to work on our CPU project for Architecture. I think, "Oh yeah, that thing..." and tell my friend I'm playing Diablo 3 with I need to go. I got to the computer lab at about 7pm and didn't leave until midnight. Ugh...


That being said, I already have plans to take off the rest of May after graduation to do stuff for me. This includes: working on my personal web site, working on my dad's web site, setting up Doppelgänger, migrating my current server to Doppelgänger, playing video games, and hanging out with friends I haven't had time to visit with. I can't express enough that I'm so ready to be done with school. I've been done mentally since last fall for that matter. But I'd be stupid for not following through with my education. It's the smartest thing I've done in my life and will likely be the most worthwhile for the remainder of my life, aside from finding someone I want to spend the rest of my life with.


Of course, I have to make it through graduation first...

26 March 2012

an introduction

If you're reading this, you either know me in real life and I gave you link after I began this blog, or you're actually reading my archive. Either way, you should know I'm kinda emotional. For the most part I want to keep this blog about computers and my experiments with them, however I will use it on occasion to rant about my life and how horrible it is (or at least at that moment how horrible it is). I'll try to keep things under control and will begin any existential tangents well marked with /EXISTENCE at the beginning of one of these personal forays. Let's start this out with a double header: a tech wandering and an existential reflection!


/TECH
You'll note that I will name most of my computers, whether physical or virtual, and they will often take on names of mythological or fantasy origin. It makes it easier for me to identify what I'm talking about. My personal machine will always have the name Phoenix, because it is constantly being reborn with each re-install of Windows or upgrade of hardware. My Proxmox machine will always be Doppelganger as it can take on many forms. I also have another name for a machine that doesn't currently exist, but once I get a file server setup again it will get the name Luminos as it will contain all the knowledge of my computers. So anytime I setup a new machine, I'll state the name it receives, but you can always rely on Phoenix, Doppelganger, and Luminos to refer to the machines I just stated.

Phoenix actually just recently got an upgrade. It received a brand new Asus Sabertooth 990FX motherboard, AMD FX-4100 processor (4 cores @ 3.6GHz), and 16GB of 1333 MHz DDR3 RAM. It's a glorious thing when you play a game that supports multiplayer split-screen and the system doesn't even stutter. Gaming aside, I decided it was time to experiment again and I installed VirtualBox to play with some VMs. So I installed Proxmox into a VM. Yeah, that's because I've never used Proxmox before and the box that will be Doppelganger is currently incomplete missing a power supply and a HDD.

Anyway, I just got Proxmox installed and am going to experiment with running several VMs on it to see how well Doppelganger can handle it. Anyway, the VM will give me an opportunity to figure out what I'm doing on Proxmox while I try to find some sufficient components for Doppelganger. The first VM I want to get running is a Linux VM to run a TeamSpeak server, Web server (with PHP), MySQL, Python, and Google Go.  The second VM will be a Windows VM so I can run dedicated servers for games on occasion. I'm sure I'll load it up with other VMs, but the initial Linux and Windows VMs will boot on load so I can have those services consistently available.

I'll post again as I get things setup to let you know what I think of Proxmox and how easy the services are to setup.


/EXISTENCE
I recently had a moment of insecurity and didn't want to just let it slip away. Once again I feel completely and utterly helpless. An opportunity has been shut off from me all while I'm watching my friends make dicisions to go on to grad school or are taking jobs at various companies. Why do I feel like there's no place for me? What have I gotten myself into?

I really just want someone to tell me what to do but no one will and it's probably for the better. But why do I always fall into these emotional sinkholes? Why is it that when I'm looking for the way out I think I need to remove video games from my life entirely? What the hell is wrong with me?!

I don't know where to go, what to do, or who to listen to. I feel like I'm not gonna make it to May. I feel like I'm going to fail who ever has the displeasure of working with me in a group and that I will just disappoint them. I just want to disappear.

But then someone comes along a expresses their undying love of some service I once rendered them and it lifts me, if only ever so slightly. And again I'm confused and lost. Why is it that I am seemingly the most awesome person in one moment and then the most worthless sack of flesh in another? Why wasn't I good enough for one company but another love what I've done and will make an effort to keep me?!

Perhaps the most perplexing question I've been trying to answer is, "What are my goals?" How do I answer this for myself? What about the answer I give to an interviewer? I actually wonder if my answer to that question is what made them say "No"... I think I've been drowning in denial this past week trying to con myself into thinking I'm not upset. I am upset. I'm upset that I didn't get a job offer. I'm upset they didn't (couldn't) tell me why. I'm upset that I don't know what to do with myself. And I want to blame it on something so I blame it on video games and my choice to use them to drown my fears and sorrows.

At least I'm not an alcoholic.