Forgot your password?

typodupeerror
User Journal

Journal: SEO - The "S" Stands for Shit

Journal by karniv0re

In my last entry entitled Cox Can Throttle My Cock, I mentioned how Cox was throttling my internet. Well, it turns out, they may be within their rights to, because it seems as though there's a rogue data sucker somewhere on my machine. Looking at my data usage, it was off the charts. Something like 30 - 60 GB per day. I don't even think I can find 10 GB of crap to download per day, let alone 6 times that. So, I went away on vacation for a while and unplugged my machine to verify that usage went down to 0. It did, so that means it's something on my machine. This has been my first foray into Ubuntu, and I have to say, I have mixed emotions on it. On the one hand, I like that it is a widely used, often updated distro. On the other hand, Unity is a monstrosity worse than KDE. I understand there are distros which swap Unity out for XFCE, which I may look into. Some of the conventions used in Unity just make me feel like I've been sucking on Apple cock. Max/Min/Close buttons in the upper left. Task bar ONLY available on the left hand side. So many other awful conventions. Otherwise, it's mostly usable.

Bodhi was awful too. I ran with that on my older dev box for a while and determined it was just about worthless. It was just to buggy to trust. So, no. Still haven't found the perfect distro. Debian would be if it were just a little more up to date. I do miss it though.

Op: Heist has not made a lot of progress. I've been looking into various methods of making money, and most of it, unfortunately, requires that you have some to start with. Youtube partners, for instance, can make some decent money. But, that requires that you have some professional camera equipment, or at the very least, a good webcam. I don't even have that. Sound equipment would be preferable. Also, the ability to know how to use it. That could be learned, but you need the initial capitol to start. Penny stock trading is a solid idea, but that one obviously requires some investment capitol. The only viable extra income source I've found was Amazon Mechanical Turk. It's viable because you will actually get money from it, but it won't be much. I estimate I made far less than minimum wage doing surveys, writing articles for spam blogs, or assisting in experiments. The experience was largely positive, but honestly, when you're making $20/hr after tax with your real job, why take a menial job for less than $5/hr? I used the money to buy a few necessity items off of Amazon, but past that, I don't think it paid off. It did bring me to wondering what the articles I was writing was going off to be used for. So I saved all of my articles in Google Docs. I can search by a particular sentence and find out where it ended up.

Take a look at an example: http://www.pluril.com/the-new-face-of-business/

So I'm writing articles for that fat fuck who's probably making a ton off of it somehow. I can't, for the life of me, figure out how though. There's no advertising! What is he doing here? Building up "content" so it looks like there's something there? Possibly. I never got into all that SEO bullshit because it just looks so repulsive. On the other hand, maybe it is lucrative? I dunno.

Here's another one: http://thefastlearners.com/the-major-memory-technique-introduction-to-memorizing-like-the-pros/

Yep, I wrote that. Apparently I'm helping sell some self-help bullshit. Ok. Anyway, I'm done with all that. These assholes can make their fortunes off of the backs of someone else. I have better things to do.

Right now I'm really interested in running a Spartan race. So I'm training up for that. And powering through at work. It's been a long haul of not doing anything interesting. I've either been rehashing old code to fix bugs, or we've been flogging a dead horse with bad requirements. Same story, different day. Looking forward to getting something new and exciting on my plate. Patience.

Finally, I will reiterate how Simple.com is saving my life. I am finally able to see the reality of my finances. It's not pretty, but it's real. And that's what I need. Weddings are also ruining my life this year. I have 5 of them to go to, and I'm in 3. Fuck that nonsense.

Alright, I'm out. Work to do.

User Journal

Journal: Cox Can Throttle My Cock

Journal by karniv0re

I'm not sure exactly what that means, but Cox has been throttling me. These motherfuckers. I've been noticing some horrible network performance every now and then so I busted out WireShark to see what the deal was. I was seeing an extraordinary amount of RSTs and out of order data. I had just bought a new router too, so I confirmed that wasn't the problem and pinged my gateway server. That was fine too. Eventually, I tried resetting my modem and that seemed to fix the problem temporarily, but all the signs were pointing to network congestion with Cox.

Then I got an email from the assholes:

Thank you for choosing Cox, we appreciate your business!

Cox offers several levels of High Speed Internet that feature varying speeds, features and data allowance. Your Cox High Speed Internet package includes 300 Gigabytes of data allowance. As of March 22, 2013, your household has used 602 Gigabytes of data in the current billing cycle, which exceeds your plan amount for the current month. Data usage is the amount of data, sometimes referred to as bandwidth that you consume when sending, receiving, downloading, or uploading information through your Internet service. While you are not billed for going over your plan, your online experience may be improved by moving to a package featuring faster downloads and a larger data usage allowance.

300GB is my limit?! Seriously?! In this age of streaming Netflix and Hulu, you're going to cap me at 300 GB? GFYS. And their little hint at my "online experience" improving if I pay them more, basically, they're saying, "Feel free to go over, but we're going to throttle the shit out of you every now and then. P.S. You have no other options, suck it." And they're right. What, am I going to go to aDSL or 4G tethering? I looked into it. It's cheaper. But I bet the speed isn't there. I dunno, it's a possibility. I hate changing things that are working, but if they are going to throttle me, that isn't working. I just did a Glasnost test, but it came back negative, so I dunno. I'm still pretty sure that's the problem though.

In other news, I have lots of other news. Started getting into a site called Code School (http://codeschool.com). Learning a ton of stuff about modern web development that I should know by now. Like Chrome DevTools, and jQuery and CSS3 and HTML5. Shit I should know by now. Ah well, better late than never. I feel so much more powerful with that shit under my belt.

I got an account with Simple (http://simple.com). I love love love it. It is going to save my life, no joke. Using Goals I'm actually SAVING up for something. I've never done that before. I've always just waited until I got a paycheck, bought it, then lived like a poor person for the rest of the month. Using goals, I set aside all of my bills at the beginning of the month and I'm done with it. I see my real after-bills balance and I know what I really have to spend. It's going to make me a more conscientious spender. And I think it's also my ticket out of debt. I'm now able to see how much I'm spending every month in each category. This type of B.I. is going to allow me to hone in on where my money actually goes and how much of it is wasted. Using those facts, I can cut the fat and trim my budget.

So I started thinking, with no debt, I could easily buy a pretty nice condo. I looked into what's available in the downtown area and some are as cheap as $60k, but others go up to the millions. I'm thinking of something in the $200k range. If I can get rid of all my debt, I'd be able to make payments, no problem. I guess if I'm going to be stuck in this city, I might as well live nicely. We'll see. That won't be for a year or two. But in the mean time, I'm using Simple to pay down debt and save up for things I need. Like weddings. Fucking weddings. Bleck.

User Journal

Journal: Operation: Heist Is Underway

Journal by karniv0re

Last night I finally got some time to myself. I was having a bit of a nervous breakdown because I feel like I have no free time anymore. The girlfriend has been occupying almost all of it. She worked last night so I finally got a moment to chill out. It looks like I'll get some more time this week to myself as well. I'm trying not to freak out and bail like my instincts are telling me, but I'm going to need a little more me-time to even things out. It's been a little much lately.

But that's neither here nor there. Just venting. The real purpose here is to mention that I have done some research and it looks like Operation: Heist has been revived and is a GO. After looking through all my options, I formed some criteria on what will be be a worthwhile ROI.

    * It must not cost me any investment up front - I don't have cash right now. That is the whole point of doing this.
    * It must not require full-time work. - I still have a full-time job plus a full-time girlfriend. I need to be able to squeeze the project in between these commitments.
    * It must not require selling my soul - I have to be able to sleep at night.
    * It must pay more than minimum wage when the payout is averaged over the time spent - Otherwise, what is the point?
    * OR, it must provide more than a financial value - I don't mind working hard for lesser pay if it is something I can put on my resume.

After evaluating several suggestions for ways to make money online, I have evaluated the following options:

    - DollarSurveys.net - I am just kicking the tires on this guy, but it seems pretty legit. Not a big money maker, but if I do say, a survey a day, that's $30 a month. Enough to pay my gym membership. And provided I take no longer than 10 minutes a survey, that's around minimum wage. Given that I probably have 10 minutes a day to spare, I think this could be viable.
    - Write a book - This is my favorite option. I am in love with this option. There are several ways to self-publish these days, and some of them are free. Registering an ISBN is about $125. When I'm done with the book, I can pitch it to publishers. If no one bites, I can publish it myself. And when I'm done, I'll have a hell of an addition to my resume. I will keep the titles and subjects of the books Top Secret, but they will be tech-related and non-fiction. Needless to say, I'm an expert on this shit. I think I can hit a home run. I am, however, also realistic about this. I think it's going to take me the majority of the year to write, edit, review, etc. Maybe longer. But when I'm done, I will have a masterpiece. And it might make me some money.
  - Mechanical Turk - This is my least favorite in that I will probably be getting less than minimum wage for time spent. I think I would be better off writing my book. But it could be an "I'm bored, I'll do this for a bit" type thing.
  - Intrade.com - This is shady as shit. It's like stocks for events. Betting on something happening. I think it could be fun, but it requires an investment. It's totally gambling, but if I can get an edge, then it's more of a sure thing. I think it might be just a fun thing to do. Bonus if I make money.
  - Stocks - This is what I want to eventually get to. Always have. The problem is, it requires a lot of investment capitol, and I have none. But this is the goal. Get to the point where stocks provide my primary income. Everything else is secondary. That'd be awesome.

So this is where I'm at. This year is going to be a year of rebuilding. Much like 2011 was. But this year will be more focused. I have clear goals in mind. Become more involved with Open Source. Write a book. Pay down debt. Establish multiple channels of revenue. I can make this happen. Let it be written (the book). Let it be done!

User Journal

Journal: Updates And Things

Journal by karniv0re

Some updates on things!

Operation: Moneybags is proceeding in the right direction. I am getting a decent tax return, proportional to the increase in money I made last year. I don't know my bonus size at the moment. Probably won't have that until later. I hope hope HOPE it's not less than last year. As long as it's the same (or more!) than last year, I'm good. I hate speculating on my bonus though because it's like counting your chickens before they're even eggs.

But if I get at least as much as last year, then I've got a solid plan for paying down debt.

I'm going to pay off my line of credit that has been maxed out since sometime last year (after paying it off last year). That will free me from my bank. Then I will pay off my furniture account,
because while that is 0% interest, it is a fairly big payment per month. Then I should still have enough left over to pay off my debt reduction account which is also a big monthly payment, and it's
two credit cards that I can just be done with and never think about again. So that puts more money in my hands every month, which would just be fucking fantastic.

The next step is to transition from my crappy home town bank to Simple. I have been test driving Simple for the last month and I absolutely love it. The mobile app is slick, the search is powerful,
the charts are illuminating, and the Safe-to-Spend thing is going to be a life saver. The features are things that until now I didn't know I was really missing from every bank I have. When online
banking came out, we thought everything was so much easier. No, it didn't make anything easier. It just made the current information more accessible. Simple gives you MORE information. Leave a tip at
a restaurant? It'll tell you how much you tipped. Then you can SEARCH FOR TRANSACTIONS WITH TIPS. God knows how many times I've been screwed by shady waiters and waitresses giving themselves a bigger
tip. Now I'll know. It's shit like that that infuriates me knowing that the banks have had the power to give us this information but don't.

Sorry, I can't shut the fuck up about Simple because I am so excited. The only thing I'm waiting on to switch my direct deposit/withdrawls is getting my tax return. That will serve as some buffer
cash while I transition over. I need to make sure I get that in before the end of the month. I had that fucker done the day I got my W-2s, which was the 15th (had to wait till the 17th to do state).

Next update, I finally got my new developer PC. 16GB of RAM and a 3.4 GHz Intel I7. I can't say I notice it being that much faster at normal tasks, but what I can say is it's never slow. The old PC
would grind to a halt when doing Eclipse + Browsers + DBViz + PL/SQL Developer + anything else. Now I don't notice that anymore. Awesome. Only took 'em a year.

Back to Op: Moneybags, I have also rediscovered my love for Mint. Now, it's no substitute for good banking, but when you can't get away from shitty credit cards, loans, and banks, it serves as a nice
abstraction layer. God, can I also just mention that Simple records the TIME of the transaction?! WHY CAN'T BANKS DO THAT?! Because they're assholes, that's why. Time is something I'm very interested
in when it comes to transactions. Sometimes things come down to hours and minutes, not DAYS.

All in all, I'm pretty stoked for this. Last year I was all excited to pay shit off, but I got sidetracked and remembered that I liked having fun so I went to two music festivals (one on a cruise).
I'm glad I did it, but now is the time to get my shit straight. This year, I'm going to do that.

User Journal

Journal: Operation: Moneybags

Journal by karniv0re

It's been a while since I've staged an Op, but after checking my bank account, TODAY IS THE DAY.

It's not even the third week of the month and I'm broke. I still have two and a half weeks to get through until payday. I'm banking on getting my tax return in pretty quick, but I'm still waiting on my W-2s. This is beyond frustrating. It's unnerving. How did I spend so much in so little time?

Looking up my statement and manually adding things up, I spent 330.59 on clothes and crap. I had a few other little expenses that probably added up to a couple hundred. But c'mon! The problem is multipronged here.

1. I would estimate that 2/3 of my paycheck goes to bills. This leaves me with little to play with throughout the month.
2. I don't have good insight on where my money is going. The bank gives me a really shitty website with about 2 months worth of data. I've tried http://mint.com but it is mostly worthless because I can only track things after-the-fact. It doesn't stop me from spending that month.
3. My "balance" is also worthless. It's not a balance if I have obligations to meet for the month. That money is already committed! But it's not protected. I know that I have three (YES, THREE) student loan payments toward the middle and end of the month. I do not factor this into my balance until I've already spent most of my money and then I realize I'm broke.
4. I don't make enough money for what I spend. This has been a problem since I started working full time. I make good money, not great money. But particularly for my debt situation, I don't make enough money. I'm paying minimum payments because I can't afford more than that. Even with the minimum payments, I'm still falling behind every month. I don't buy extravagances, but I need things like new clothes. On average, I'd say most of my clothes are between 3 - 4 years old. Some are as old as 10 years. I don't buy new things often. Apparently, I can't buy them at all if I want to make it through the month.
5. I get hit with way too many fees. Some ATM fees end up being $5. $3 for the charge, and $2.50 for some other service charge. FUCK YOU, BANK.
6. My debt is recurring debt. I've made some progress with the consolidating of two cards last year. But I also picked up another card and promptly maxed that out, proving that I need to make at
least $5,000 more per year to not go into credit.

All this leads me to a few conclusions.

1. I need a new bank. Last year, I signed up for Simple (http://simple.com). This year I finally got the beta invite. I have been using it for the last week or so and I love it. It solves the problem
of "balance" by having you make "goals." It then subtracts your goals from your balance and tells you what you have left to spend. Brilliant.
2. I need to get rid of debt. With each payment I get rid of, that's more I have left to spend each month. If I had only bills (no credit payments), I would be coasting each month living large. This
is the mecca of personal finance.
3. I need to make more money. No way around it. I need to keep advancing, getting raises and good bonuses. But I think I also need to supplement my income. I need a scheme. I know this won't be easy.
This is apparent from the failed "Operation: Heist" wherein I attempted to find legitimate ways to make a quick buck online. I need to keep researching this, because people are doing it. I need to
know how and figure out a way to dip into this market.

I have a plan though.

1. When my tax return comes in, direct that to Simple. This will fill my account with a decent amount of cash to begin the transition
2. When my February paycheck comes in, pay off my line of credit on my bank. This will free me from the bank
3. When my bonus comes in, leave it in my account. We'll keep it there as a safety measure
4. Redirect my direct deposit to Simple
5. Redirect my bill pay direct withdrawls to Simple
5b. Chase Freedom
5d. Debt consolidation
5e. Student loans (I, II, and III)
5f. Furniture
5h. Internet
5i. Power
5j. Netflix
5k. Utilities
5l. Gym
5m. Cell service
5n. Websites that store my purchase information will need to be updated
5o. Look into paying rent online
6. During the month of February, I won't touch my bank account
6a. After everything has settled down on it, I will do a money transfer to Simple
6b. I will then begin a payoff plan

This is primarily for the visibility. I'm tired of not having visibility on my finances. Simple fixes this.

I will need to leave a couple hundred in my bank account because Simple doesn't do checks. The other option is to transfer that to my credit union checking account.

The only question I have lingering is what do I want to pay off with my bonus/tax return? My Chase card is maxed and I wanted to pay that off right away, because it is 0% APR for the next year or so.
Using their credit with no interest was my plan. My credit union card is annoying though and I'm not making any progress on it. I could try to knock that one out. I could go halfsies. And a third
choice is to pay off my furniture account and pay only a little on one of those cards.

I dunno, we'll cross that bridge when we come to it.

And later I will need to figure out how to revive Operation: Heist to supplement Operation: Moneybags.

User Journal

Journal: Drooling Idiot

Journal by karniv0re

Well, it's 2013, the start of a new year. It's probably a little late to do a year-in-review, but why not.

What I accomplished in 2012:

    * Went to L.A. to demo some software that that I was writing
    * The software was nowhere near done two months prior
    * Got it done and had a successful demo
    * Became way more confident as a developer
    * Dropped 15 lbs and got down to 17% body fat
    * Went to Vegas for a friend's bachelor party
    * Drank a bottle of Glenlivet on the casino while winning at blackjack
    * Ran a Warrior Dash hungover in a pair of chucks
    * Came in 20th out of 400
    * Added 5 girls to my list in the first 5 months of the year
    * Started dating the last one and have been since
    * Put 15 lbs back on because I started dating her
    * Went to my 6th Fest
    * Declared it my last Fest
    * Got more into metal
    * Went to Barge to Hell, the World's Most Extreme Metal Cruise - Miami -> Nassau -> Miami
    * Started contributing to my first real open source project

All in all, a pretty successful year. The world didn't end. It turned out pretty well. I'm happy with it.

On to an even better 2013!

Starting with Drools. I'm trying to figure out how Drools is going to fit into my next project.

I have a sizable rules engine to implement and I think it's just too ugly for switch/case or if/else. Plus, I know as certain as death and taxes, the rules will change. Rather than changing code, I'd prefer to change rules as they're given to me. But as with anything worth doing, I'm running into problems.

There's apparently some good plugins for Eclipse, but I'm still on Ganymede. I know I should at least bump up to Indigo, but I have everything working perfectly and don't want to fuck it up. Juno is just complete garbage. I can't even describe my problems because they're so weird and flaky. For one, I get a blank view, in addition to all my other views. There's nothing in it. And I can't remove it. I can minimize it, but I can't get rid of it. Then, sometimes views will just appear on top of other views. It isn't stuck in a grid at all, just sitting there on top of other views. When I go into debug mode, I don't get my code view. That right there renders it worthless to me.

It looks like they've made some major changes in the UI and it appears to be very buggy. I really hope they come out with a fix for this nonsense.

I might try upgrading to Indigo I guess. I'm using it at home and it works fine. I just remember having a hell of a time setting up all my work-specific plugins and JRebel here so when I got it working, I just didn't touch it anymore. I guess I'm getting a new machine here in a few weeks, so I should embrace the change. Especially before I get hot and heavy on this new project.

I think Drools is going to be a pain to learn, but I think once I do, I'll have that under my belt and it'll come in handy in the future.

But anyway. Time to get started on this bitch.

Ubuntu

Journal: Installing Ubuntu on an HP P6-2330 with UEFI

Journal by karniv0re

I finally got my new PC in. It's an HP P6-2330 and boy am I not happy to find that it uses UEFI with Windows 8 as a sentry keeping me from installing Linux. At least it's trying anyway. I'm going to document my efforts here to see if I can make Linux on this thing a reality.

Step 1. Get a beer.
Step 2. No, scratch that, get something stronger. This is going to hurt.
Step 3. From the articles I've read, you can't just boot a live CD like you normally would on a BIOS system. UEFI uses signed keys from Microsoft (can you say "lockout"?). So what some of the more frontier distros are doing is using their own MS compatible key (I guess, maybe it's an actual MS key or something) and doing some kind of "shim" action to get in there and boot GRUB 2. So we'll go with that. Your options so far are Fedora and Ubuntu, AFAIK. I'm hoping at least if I can get one of those on there, I can boot anything else. We'll see.

Step 4. I followed this Youtube video to disable Secure Boot and turn on Legacy BIOS: http://www.youtube.com/watch?v=ElzvaL96cw0
I'll lay out the steps here so you don't have to watch the video.
Step 4a. In Windows h8, go to the stupid corners of the screen for whatever reason they decided to make you do that
Step 4b. Click on Setttings
Step 4c. Click on Change My PC Settings
Step 4d. Click on General
Step 4e. Scroll down and under Advanced Startup, click Restart Now
Step 4f. This brings up more options, for whatever hairbrained reason. Click on Troubleshoot.
Step 4g. Click on Advanced Options
Step 4h. Click on UEFI Firmware Settings
Step 4i. Click on Restart
Step 4j. Scroll down to Computer Setup. This will bring up kind of a BIOS setup.
Step 4k. Now, the whole BIOS setup screen didn't fit in my monitor, so you need to hit the right arrow key twice to scroll over to the Security menu item. Then press the down arrow eight times to get the bottom item, "SECURE BOOT CONFIGURATION"
Step 4l. This brings up a big scary red screen of threat. Press f10 to continue
Step 4m. Now you're going to press right to enable Legacy support, down and left (or is it right? can't remember) to disable Secure Boot, and f10 to accept again.
Step 4n. Then press left a couple times to get to the first menu item, press down five times to save changes and exit and press enter
Step 4o. As a bonus, you might want to go to Advanced and edit your boot order. Notice how there's not option for Boot from CD/DVD, only Boot from USB CD/DVD, or Boot from USB Harddrive. The good ol' days are over, aren't they?

Step 5. Now we have to go download Ubuntu, so go do that.
Step 6. I assume you're already running some Linux distro somewhere and it's probably an APT system. Run this: sudo apt-get install usb-creator-kde . You'll need that for creating the bootable USB key. I also assume you're using at least a 2 GB USB key. If any of these things aren't true, go look elsewhere for help. This is a very narrowly scoped article.
Step 7. Fire that badboy up: $ usb-creator-kde (EDIT: actually, use $ sudo usb-creator-gtk)
Step 8. Click the Other button and go find your ISO. Select your USB drive and select Erase Disk and hope you're not erasing the wrong disk (you're probably not, but that fear will still be there - unplug the other one just to be safe). It's also going to look like it's sure doing nothing for a while. I guess. Ok, maybe not. The KDE one didn't work, so I installed the GTK one and launched that shit with sudo and it seems to finally be working. (See edit)
Step 9. That will take like, 5 minutes so go do a shot (I just did tequila, so you should too).
Step 10. Ok, looks like that's done.
Step 11. Plug that motherfucker into your new PC and do whatever it is Microsoft requires of you to restart it. It should now boot up with the "shim" bootloader and let you install Ubuntu right there. Go ahead. Do it. No, don't select that first option of trying before installing. Just jump in, balls first. Don't be a pussy. Then go take another shot.

Now, while Ubuntu is installing, I'm going to take this moment to mention that I've always been a Debian guy. I tried the BSDs, I tried SuSE, and probably a few others. But when I landed at Debian, I was in love. But the whole reason I'm at this point, where I have two new computers and I'm installing different operation systems is because the latest Debian update fucked my shit up royally. So, here we are. I have a Bodhi machine and in a few minutes, an Ubuntu machine. And if this works well on here, it'll be going on my ultrabook.

Before writing this article, I didn't even know what UETI was. I thought we were still on BIOS. I am becoming a dinosaur living in the past. Time to move me into the future. And I don't have to LIKE the future to want to understand it. I should never be the grumpy old man that just hates things because they're new. I should understand what they are and make an educated hatred about them!

A lot of this philosophical nonsense is stemming from a recent conversation with my mom which made me realize that she isn't very proud of me. Rather than recognizing all of my accomplishments, she chooses to focus on the things she doesn't understand (tattoos, hard drinking, rough sex, music festivals, concerts, week-long getaways) and uses that to basically talk down to me on just about every conversation we ever have. It's frustrating, considering I'm probably the most successful one of the family. Best/highest paying job, first with a 4 year degree, in the best shape, have the best looking significant other (who is also successful), and definitely the most traveled, having served in the Army for 9 years and being a veteran of two foreign wars. Not to say I'm looking down on them, I'm just kind of tired of not receiving any recognition for my accomplishments and always harping on my drinking. Look, I like to drink. I NEED to drink. Yes, I'm an alcoholic. But I am a happy drunk and I drink on my own time. Leave it be.

Anyway, sorry for that rant. This Ubuntu install is taking for friggin' ever.

Ok, we're booting up. Now I have to say, I got a little (lot) scared. I rebooted and got a black screen. I hard reset and got a boot loader. The first option didn't work. I think I picked some other one. I don't know, eventually I got to a real boot loader with Ubuntu as an option and BAM. Working. Peace out, Microsoft.

I'm going to try this on the ultrabook tomorrow night and if it works, I will post a tutorial here.

Time to set shit up, bitches! Peace!

User Journal

Journal: Barge to Hell

Journal by karniv0re

Happy Five Percent Friday! Unfortunately, due to promises I made earlier in the week, I have to put in more than 5% today. I'm reorganizing our ColdFusion drives and consolidating them all into 3, down from about a billion. Of course, with ColdFusion, this means I have to make actual file edits to change paths, because while domains are dynamic, file paths are not. Fuck me.

Subversion is currently trying to add 999 files to the repo and it's not happy about it.

Likewise.

I'm ready to get my Barge to Hell on. Somehow, I've managed to pay for a cruise to the Bahamas featuring 40 extreme metal bands. You'd think I were the 1% or something. No, I just like credit cards and extravagances. Seriously though, I couldn't pass up an opportunity to see Behemoth on the high seas. I hope they sell goats on the ship to sacrifice. I don't think I can fit one in my carry-on.

Man, I have a feeling I'm going to be fighting with SVN for a while on this. Again, fuck me.

The Autonomy situation is still a mess. Exporting the data didn't work, probably because it's low on resources. I'm thinking it actually makes a staging copy on the origin server, and then transmits it to the destination server. Well, I don't think there's enough space on the origin server. So we're (welllll, not so much me, as I'll be having fun in the sun) going to have to initialize it and re-index from scratch. What a pile of shit.

Anyway, back to fighting with Subversion. Can it be cruise time yet?

User Journal

Journal: Big Trouble in Little Autonomy

Journal by karniv0re

Autonomy's IDOL server is causing us problems again. Probably not as many problems as HP, but problems nonetheless.

Firstly, we're running into INDEX QUEUE FULL exceptions possibly nightly. They're filling up our exception log database, and causing data to be lost. It seems to be happening between 8:30 PM and 9:30 PM. Weird.

While I was investigating that issue, I saw that the content/nodetable/ directory is filling up with 1GB entries that look like nodetable-nddX.db where X is an incremental number. Between 1-3 of these per day, which has caused us to eat through our 80 GB share in a month. At this rate, we've only got 9 days left, and I'll be on a boat to the Bahamas.

After talking to Autonomy support (who are probably super busy trolling Glassdoor), they suggested that our server is extremely fragmented. I tried running a DRESYNC, but it didn't do anything. Well, they suggested that that probably means the system didn't have enough resources to finish the task, which is probably true. The damn thing is using all the memory on the box and it's almost at 80% disk space. So what now?

Well, now the only option I have is to do an export to another database, DREINITIAL on the offending prod servers, and export the data back into them. I'm guessing it just knows to not fragment that shit or something, I don't know? We'll see tonight.

The shitty thing is, I was all raring and ready to do some solid dev work this week, and it has just not been my week. Operations keep hitting me with little bugs that I can't fix right now, but no less annoy me. It both annoys me that they bug me and that the bugs exist.

I made some solid progress on Vrapper last night, but time flies. Finally had some time to myself and my mother calls. This always happens. But instead of hitting the ignore button, I slid it to answer - which SHOULD NOT ANSWER THE CALL because Google Voice screens them. Well, apparently it did, and while I was waiting for the ringing to stop, I was talking out loud bitching to myself about how every time I get a night to myself, my mom or sister call me. I don't know how much of that rant she heard, but god I felt dumb. Note to self: stop making audible notes to yourself.

Now I'm trying to decide whether to hang out and do some development for Finance, or to head home and work on Vrapper until I have to come back tonight. Ehh, I suppose I can code for an hour. Should be able to get something done in that time.

Medicine

Journal: Exploring Teradata for Signs of Life 2

Journal by karniv0re

First of all, as I mentioned in my previous post, I wanted to talk about archiving my Slashdot journal to my Google Docs (Drive, whatever) account.

Done.

I moved all one 128 posts by hand to a Google Drive folder. Lots of copy/pasting. Now all my text is searchable within my Drive account, which I think is awesome. I still like being able to troll through old entries on Slashdot, but if /. should ever abandon me (God forbid), at least I have liberated my data.

Second of all, I am just now noticing comments some of you have left on this journal, some many years ago. My apologies for never writing back, I honestly didn't think anyone read this but me, which is why I write it the way I do. It's for me to look back on, reminisce, be embarrassed by, and remember how I did things (man, I can't tell you how many times I've looked back to Security Initiative 2008 to remember how to work with encrypted drives). But I do write it with the intention of making it open for errrrybody.

On a total tangent, I've been battling with this health issue where I can't seem to get a deep breath very easily. Usually requires yawning to satisfy my "air hunger" and I noticed that sitting up straight helps, but man it's getting annoying. Googling the issue reveals no real cause (anxiety [I have none], artificial sweeteners [been drinking them most of my life, never had problems before], asthma [don't have it], etc) or reason for concern, but it's annoying. And so I suffer. Whatever.

Ok, on to Teradata. I'm trying to aggregate some data from some Teradata tables for our finance group. with little to no information and not much assistance on the matter. I was given a sample SQL statement and a list of demands (requirements). So far, I've requested access to the tables with our application ID and I've been able to execute the sample query with some simple modifications, (they were executing it as an openquery call through SQL Server - ugh).

But not all the data in the demands (requirements) was in the query, so I need a way of seeing the structure of the tables. Teradata SQL Assistant is helping with this a bit. It's not as sweet as DBViz or PL SQL Developer, but it's better than running or which isn't even working - keeps timing out. But in SQL Assistant, there are views. I right clicked on "TablesV" and hit browse and it populated a query statement for me. I added in a WHERE clause and got all the column names.

[code]
Select DataBaseName, TableName, Version, TableKind, ProtectionType, JournalFlag, CreatorName, RequestText, CommentString, ParentCount, ChildCount, NamedTblCheckCount, UnnamedTblCheckExist, PrimaryKeyIndexId, RepStatus, CreateTimeStamp, LastAlterName, LastAlterTimeStamp, RequestTxtOverflow, AccessCount, LastAccessTimeStamp, UtilVersion, QueueFlag, CommitOpt, TransLog, CheckOpt
From DBC.TablesV
WHERE DataBaseName = 'myDBName'
AND TableName = 'myTableName'
[/code]

(By the way, does anyone know how to format code in these journals? They seem to have removed the "code" tags, and "pre" doesn't work either.)

(More tangents: I guess my breathing issue is on Wikipedia: Dyspnea, again none of those things sound like anything I have. Weird.)

(Can you tell I have A.D.D.?)

After getting all the column names, it becomes a little easier to figure out what goes to where and what I need to query.

User Journal

Journal: Hey, Boooooodhi!

Journal by karniv0re

Well, I'm officially a nerd again.

After almost 3 years of living it up as a playboy - which has been mostly awesome, mind you - I have returned to my roots. Whilst undergoing my transition, I all but dropped my geeky background in favor of hard drinking and rough sex. But now I've met a beautiful girl who gets me, and thus, the conquest for conquests has come to a halt and now I need another hobby. I really have missed my projects.

But in the past, most of my projects have been self-serving. I've been wanting to get into open source for a long time but never knew where to start. It was always so intimidating and complex. But since working this developer job, nothing seems impossible anymore.

So I decided to start with a small, but meaningful project: Vrapper. Vim key bindings in Eclipse is the holy grail of development environments for me. The fluid movements of Vim combined with the robust error-checking, auto-building, and shortcuts of Eclipse makes for a tasty deal. But it is by no means a complete project. Vrapper aims to implement all of Vim's features inside an Eclipse editor. Easier said than done.

Nevertheless, I began implementing the :sort command to get a feel for developing on the project. Just as I was making some major headway, my old Debian system crashed, and failed to come up right. I couldn't login using Gnome, and XFCE just failed to open. When booting Single User mode, GUIs were non-existent. I got frustrated and went and bought a new Sony Vaio T Series Ultrabook, and a new 6 gig HP. But I can't pick up the desktop until mid-December, so I went back to my bricked PC and played with it a little more.

I found I could fire up TWM - that godawful super old window manager. It was good enough to download a new Linux distro and burn it to CD. I decided to try Linux Mint. It looks beautiful, but it ran slower than a dog on downers. So I downloaded a few more distros aimed at older PCs and tried each one out. Puppy Linux threw a kernel panic, DSL didn't boot to a graphical environment, but Bodhi is rocking and rolling. Like, screaming fast for an old 1 GB Intel Celeron-based Compaq Presario.

So it looks like I'll be back on development soon, which is good. I've been chatting with the maintainer of Vrapper, and it sounds like he could use some help. And I'm more than happy to help.

A few more topics I would like to cover in the future:

* Putting Linux on a Sony Vaio T Series Ultrabook (shit is not going to be easy)
* Putting Linux on my new Desktop
* Copying all these Journal entries to Google Docs, to have a backup in case Slashdot ever decides to stop hosting journals, since they seem to have really made them not much more than a footnote on the website.
* Vrapper, and how awesome it is

It's good to be back.

User Journal

Journal: Autonomous Love Hate

Journal by karniv0re

We use Autonomy's IDOL search engine extensively at work and have become sort-of experts on it. Well, to a point. See, Autonomy don't give out help and documentation all willy-nilly. You've got to pester the shit out of them to get anything useful.

Their documentation is shit. There's like, a 500 page PDF of server operations, but good luck with developer documentation. There's not so much as Javadocs for their API.

During this whole process, we've run into capacity issues. IDOL was taking around 16 seconds per index transaction.

I could see an abundance of connections on the Autonomy server in the status of FIN_WAIT2. This means the transaction has completed and it is just waiting for the client (our message processor) to close the connection. We are using Autonomy's API to index data, and the API itself is taking around 16 seconds to complete a connection, while the actual index transaction really only takes a few milliseconds.

I decompiled their code to see that they aren't releasing the connection when they should be which I believe is causing this FIN_WAIT2 problem.

According to the HttpClient documentation:

"Release the Connection: This is a crucial step to keep things flowing. We must tell HttpClient that we are done with the connection and that it can now be reused. Without doing this HttpClient will wait indefinitely for a connection to free up so that it can be reused.
method.releaseConnection();"

Using the exelent Java Decompiler by Emmanuel Dupuy, I was able to see exactly where they weren't calling method.releaseConnection(), and I pointed it out to them. Lawyered.

So now we're just waiting for them to admit they fucked up and give us an updated version of the API.

In the mean time, I talked with our server team to have them decrease the timeout on FIN_WAIT2s from 60 seconds to 3 seconds in /etc/sysctl.conf. I now no longer see the FIN_WAIT2s hanging out there. However, the connections are still taking around 16 seconds to complete, so I still think the API needs to be fixed to release the connection.

I'm wondering if there's a super-hack method to force the connections to close. I don't have access to the HttpClient library, because it is wrapped inside the ACI API, and that is just a JAR, no source. I'm going to do some digging though and see if I can force that to close. Last resort, if they won't fix this for us, is to write my own indexer client. Can't be terribly difficult. I have extensive experience with HttpClient from my previous project. Dare me to do it.

User Journal

Journal: Cap'n Jack(off)

Journal by karniv0re

Well, I figured I should update since the last post was all doom and gloom.

I made it. A month late, albeit. Given it was a 4 month project, I missed my goal by 25%. Not terrible, but the important thing is, the release went well. We had about a week of followup releases to
fix small things that were causing big problems (read: financial). But after that, we've been running pretty strong. Carriers have been using my app and it's saving us around 125 phone calls on busy
days. Which is awesome.

My next enhancement is going up on Monday. That will include just some informational items, but it should continue to save more phone calls.

Then we've got two more bigger releases going out in the following weeks to add more productivity enhancements. Sweet.

On top of everything, one of my team members is quitting, and another is moving back to India to get married (why would anyone want to do either of those things?!). But the first one leaving opens up
a slot for a promotion for me. I could fucking use it. Money hasn't exactly been flowing in lately.

I took out a Chase Freedom card ($5k limit) to help finance my Barge to Hell cruise at the end of the month and my Fest 11 trip. I was hoping I'd get a bonus for completing my project but I haven't
heard shit about that. Can't count chickens...

So I'm starting to feel more comfortable with Spring, Maven, JiBX, Quartz - just about everything. Except Wicket. Wicket is the fucking worst. I hope it dies a horrible death. So yeah, looking for
alternatives to Wicket in our next big project.

Speaking of making big decisions, I also made note that I was interested in the Architect position here, when that becomes available. Whether or not that will happen remains to be seen, but I figured
I'd plant the seed.

Well, that's about all I've got. Time to quit jacking off and get back to work. I have this whole goddamn modal window to design using fucking Wicket. FML.

User Journal

Journal: Cap'n Time Crunch Part II

Journal by karniv0re

Man.

So, it's been almost two months since I've been slaving away on this project, working nights and weekends to get it close enough to call done.

Now I'm down to five days (including today which is almost over) until we go to production. Then we have a week to test and work out any major bugs and we're releasing to our customers. Crazy.

My deadline slipped by a week, but I can blame it on the other team because they have a critical component to release before I can do anything.

I should mention, I reached my previous goal of getting it done enough to demo to our customers in L.A. That was so fucking cool. I mean, the fact that I didn't think I could do it, and I did. Nailed
it, even. That's what needs to happen here with this actual release. It's gonna be a big fuckin' deal.

Now I'm just fighting fatigue and burnout. Seriously feeling overworked and underpaid. Thankfully, my dating life has been on the uptick, which has been nice and distracting from the day-in day-out
stress. I've been seeing this gorgeous girl who asked me out through Facebook. I'm so stoked about that, I almost want to buy stock in Facebook. loljk.

Anyway, back to my time crunch. Peace, bitches.

User Journal

Journal: My Journey to Find a Java-based XML Diff Util

Journal by karniv0re

I hope to save some headaches for other people by going through my own
here.

I currently have the need to determine the difference between two XML
documents. Not a line-by-line unix-style diff utility, but a nice
DOM/Tree/XML document as a result.

So let's start, shall we?

First up, VMTools seemed promising. It looked to do what I needed it to
do. But after importing it into my Maven repository, and running a
test case with their sample code,
it became all too clear that they were using a very outdated JDOM.

java.lang.NoSuchMethodError: org.jdom.Element.addContent(Lorg/jdom/Element;)Lorg/jdom/Element;
        at org.vmguys.vmtools.ota.OtaUpdate.generateUpdate(OtaUpdate.java:319)
        at org.vmguys.vmtools.ota.OtaUpdate.generateDiffs(OtaUpdate.java:226)
        at org.vmguys.vmtools.ota.OtaUpdate.generateDiffs(OtaUpdate.java:181)
        at com.uprr.streamline.shipment.mgmt.core.notificationMessage.carrier.XmlDiffTest.testDiff(XmlDiffTest.java:92) ...

Next!

Next up is X-Diff, which
looks like it was written for an early-2000s era masters thesis by the
looks of the website.
Oh, nvm, it was.

Let's hope it works better than it looks.

Opening up the zip file, we run into... a makefile?! What is this,
amateur hour? The entire package consists of 5 files: XDiff.java,
XHash.java, XLut.java, XParser.java, and XTree.java.

After dicking with this one for way too long, I'm giving up. It's clear
this dude used Vim or Notepad++ at the very most to develop this,
because it is very amateurish, though credit where it's due, I'm sure
the implementation is entirely scientifically correct. Just looks like
shit and probably won't integrate well with my app. Saving it as a last
resort.

Next, I tried XmlUnit. This looked promising, and I was able to get it
from the Maven Central Repo, which was nice. Upon trying the diff
option, I got this as a result:

  differences: [Expected number of child nodes '11' but was '15' - comparing at /root[1] to at /root[1], Expected sequence of child nodes '3' but was '5' - comparing at /root[1]/whatsInTheBucketMan[1] to at /root[1]/whatsInTheBucketMan[1], Expected text value '

        ' but was '
        ' - comparing

          at /root[1]/text()[3] to
          at /root[1]/text()[3], Expected sequence of child nodes '5' but was '7' - comparing at /root[1]/whatsInTheBucketMan[2] to at /root[1]/whatsInTheBucketMan[2], Expected text value '

        ' but was '

        ' - comparing

          at /root[1]/text()[4] to

          at /root[1]/text()[4], Expected sequence of child nodes '7' but was '9' - comparing at /root[1]/whatsInTheBucketMan[3] to at /root[1]/whatsInTheBucketMan[3], Expected number of child nodes '7' but was '3' - comparing at /root[1]/drink[1] to at /root[1]/drink[1], Expected attribute value '1' but was '4' - comparing at /root[1]/drink[1]/bucket[1]/@value to at /root[1]/drink[1]/bucket[1]/@value, Expected text value '
                ' but was '
        ' - comparing
                  at /root[1]/drink[1]/text()[2] to
          at /root[1]/drink[1]/text()[2], Expected attribute value '2' but was '4' - comparing at /root[1]/drink[1]/bucket[2]/@value to at /root[1]/drink[1]/bucket[1]/@value, Expected sequence of child nodes '3' but was '1' - comparing at /root[1]/drink[1]/bucket[2] to at /root[1]/drink[1]/bucket[1], Expected text value '
                ' but was '
        ' - comparing
                  at /root[1]/drink[1]/text()[3] to
          at /root[1]/drink[1]/text()[2], Expected sequence of child nodes '4' but was '2' - comparing
                  at /root[1]/drink[1]/text()[3] to
          at /root[1]/drink[1]/text()[2], Expected attribute value '3' but was '4' - comparing at /root[1]/drink[1]/bucket[3]/@value to at /root[1]/drink[1]/bucket[1]/@value, Expected sequence of child nodes '5' but was '1' - comparing at /root[1]/drink[1]/bucket[3] to at /root[1]/drink[1]/bucket[1], Expected sequence of child nodes '6' but was '2' - comparing
          at /root[1]/drink[1]/text()[4] to
          at /root[1]/drink[1]/text()[2], Expected sequence of child nodes '9' but was '13' - comparing at /root[1]/drink[1] to at /root[1]/drink[1], Expected text value '
' but was '

        ' - comparing
  at /root[1]/text()[6] to ...umm, cool story, bro. Unfortunately, that is not the format I need it
in. Because, at this point, I'm back to parsing. I just want a list of
nodes, or even a tree would work. Nodes added, nodes removed, and nodes
changed.

Still, this one has potential, but would require me to take the code
into my own hands, much like X-Diff.

3DM is a 3-way XML merging and
differencing tool. I'm not sure why one would need to merge things 3
ways. Maybe in the case of revision controlling and patching. But ok,
anyway, that's not what I'm after. Does it do a diff? It does do a tree diff,
much like I would want, but it seems to be pretty custom. They do note
that there is another diff tool to try: fc-xmldiff.

fc-xmldiff - man, developers are
really not good at marketing. I'm just going to call it "FUCXML" (read:
"fuck xml"). After just briefly looking at this, it is also going to
take work. ARGH, I JUST WANT SOMETHING OUT OF THE BOX.

Next, I will look at DiffX. This
seems to be a fairly robust project, but I haven't dug enough into it to
see for myself. I am putting this on hold for now, but will probably
post an update when I come up with something. More than likely, I will
end up rolling my own using one of these projects.

Le sigh.

The world will end in 5 minutes. Please log out.

Working...