~~~~~~~~~~~~

I posted a few bookmarklets to allow you to search even quicker than before. Let me know if you have any requests!

~~~~~~~~~~~~

Thursday, December 25, 2008

Happy Holidays!

Happy Holidays everybody! Hope this past year went with much many memories with friends, family, and other loved ones. And may 2009 be one filled with even more!

I drew you all a tree:



Happy Holidays Everyone!

Tuesday, December 16, 2008

Earnings Exporter

Earnings Exporter automates the retrieval of your ChaCha question history into Excel. It also provides simple analytical tools to satisfy your curiosity.

Current Version:
Earnings Exporter v2_00h (180 KB)

Past Versions:
Earnings Exporter v2_00g (177 KB)
Earnings Exporter v1_02d (122 KB)
Earnings Exporter v1_01 (95 KB)
Earnings Exporter v1_00 (96 KB)
Earnings Exporter v0_01 (60 KB)

Screenshots:







Version History:

v2_00g
Category Analysis
Daily Analysis Charting

v1_02d
1004 error to be tested
Earnings now works with Category Pay charts
Msg box message on Main Grab
Deleted extra cells when already analyzed page
Analysis Page header text now fits
Buttons on Analysis Page moved
Added percentages on Charts on Analysis page

v1_02c
1004 error to be tested
Earnings Chart bug Fixed

v1_02b
1004 error still to be tested
Deletes charts when opening up a new one

v1_02
Attempt Fix at Refreshing on Failed ChaCha Pages
Test tto see if user/pass is inputed

v1_01
Fixed Transcriber Abort, Clarify Analysis. Was duplicated from Expeditor
Removed Top Guide Analysis on To Do list
Average Time Per Question
Average Earnings Per Search Time
Added Comments

v1_00
Change file name

v0_03 Removed Extra Cells due to Time Format Change
Analysis Button on datasheet moved
Fixed Failure to update due to pre-existance of sheets
"Already Analyzed" msg no longer comes with Chart Buttons

v0_02
The header of each page overwrote the data for the last line of the previous page. Fixed.
Added Version History page
Data no longer contains more than one header row
Added count for each type of question: GE/SP/EX/VT/network
Changed Count Analysis Method to SumIF
Changed Time Analysis Method to SumIF
Changed Earnings Analysis Method to SumIF
Pie Chart Capability for Analysis

v0_01
Completed Simple framework to Fetch Data
Created Simple Analysis Method

Compatibility
To the best of my knowledge, this is compatible with Excel 2003 and Excel 2007.
It is NOT compatible with Excel 2008 (Mac OS) or OpenOffice.

Found a Bug? Have suggestions?
I believe this should be bug-free in everything that it does. Please report bugs to me here. I'm also open to suggestions.

Usage:
You must enable your Macros to work with this spreadsheet. You can do this by lowering your security settings on Excel.

For Excel 2003:
Go to Tools > Macro > Security and make your changes. I have mine on Medium so I get prompted every time I open a worksheet requires macros.
For Excel 2007:
Click the Microsoft Office Button, and then click Excel Options. In the Trust Center category, click Trust Center Settings, and then click the Macro Settings category.

To Do List:
Analysis of Individual Referral Earnings
Start and End page
Wait time between questions
Pivot table reporting
Category Analysis


Sunday, December 14, 2008

I'm excited! My first de-bug!

Sorry for the frequent posts, but I'm excited as I actually figured out a problem, and fixed it. I'm very surprised!

Okay, so it has been reported that the earnings and the total queries do NOT account for all questions, and I had thought maybe ChaCha's pages didn't load, but I was WRONG! It turns out that it was due to my own stupidity, in forgetting to account for the header rows for each column. So the headers that were pasted into Excel would "overlap" the last entry of the previous page.

I will include this fix for the next version, but if you need a quick fix, you can do the following:

On Excel, go to Tools>Macro>Macros
Select ChaChaGrabHistory, Click Edit
Scroll down to the the following line: (Its a bit past halfway)
Destination:=Range("A" & 1 + ((i - 1) * 15)))

Replace the 15 by 16. You should result in:
Destination:=Range("A" & 1 + ((i - 1) * 16)))


And that's it!

Thanks for joining me in my journey of how to program! Until next time!

Thanks for those who've provided Feedback!

Thanks to you users, this "program" will have the most relevant and accurate gadgets around. A firm handshake to those who've provided feedback, and a big holiday hug to those who have volunteered to become a tester. Your help is much appreciated.

With the holidays coming up, and a few personal things (a couple of tests, and jury duty), I don't know how much time I will have to spend on this in the upcoming weeks, but I'll try my best. Every minute I was out today, I couldn't wait to come back home and check to see how many people tried this!

My fingers were freezing, but after typing all the responses and this blog post, I think I'm ready to code again. I have a few minutes before bedtime!

Saturday, December 13, 2008

Earnings Exporter v0_01 Released

Finally, enough progress to be released. It works! Yay! (For me at least... haha, I haven't had any other testers, nor have tried it on any other computers.)

You can download the excel spreadsheet here. This was made on Excel 2003, I don't know how compatible with other versions this will be.

A few notes before I head to bed....

You WILL need to enable macros. You can do this by lowering your security settings on Excel. (If you get no pop-ups when you start the spreadsheet, you should be fine) You can change these settings by going on Tools > Macro > Security. I have mine on Medium so I get prompted every time the worksheet requires macros.

The "Total Hours" on the Analysis might be incorrect. I found my result pretty odd, but haven't had the chance to fix it. It should be fixed in the next release.

Feel free to make suggestions on my code. I am not a professional, and is my first time attempting VBA. Please let me know if theres a better way of doing things by posting in the comments section or e-mailing me. I would love an opportunity to learn. The code is left un-protected on the spreadsheet, and is also posted here:
Sub ChaChaGrabHistory()
Dim i As Integer
Dim MyPost As String
Dim p As Integer
Sheets("User_Info").Select
Const MyUrl As String = "http://underground.chacha.com/account/login"
Const PostUser As String = "handle=" 'Change user name here
Const PostPassword As String = "&password=" 'Change password here
MyPost = PostUser & Trim(Range("C4").Value) & PostPassword & Trim(Range("C5").Value)
p = Range("C6").Value

On Error GoTo Makesheet2
Sheets("Raw_Data").Select
GoTo Continue

Makesheet2:
Sheets.Add , Worksheets(Worksheets.Count)
ActiveSheet.Name = "Raw_Data"
Sheets("Raw_Data").Activate

Continue:
For i = 1 To p
If i = 1 Then
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;" & MyUrl, Destination:=Cells(1, 1))
.PostText = MyPost
.BackgroundQuery = True
.TablesOnlyFromHTML = True
.Refresh BackgroundQuery:=False
.SaveData = True
End With
End If
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;https://underground.chacha.com/admin/earnings/current?page=" & i, _
Destination:=Range("A" & 1 + ((i - 1) * 15)))
.Name = "current?page=" & i
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlAllTables
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
Next i

Call BackupDataOnNewSheet
End Sub




Sub BackupDataOnNewSheet()

Dim szToday As String
szToday = Format(Date, "mmm-dd-yy")



On Error GoTo MakeSheet
Sheets(szToday).Activate

GoTo CopyandPaste

MakeSheet:
Sheets.Add , Worksheets(Worksheets.Count)
ActiveSheet.Name = szToday
Sheets(szToday).Activate

CopyandPaste:
Sheets("Raw_Data").Select
Cells.Select
Selection.Copy

Sheets(szToday).Activate
Range("A1").Select
ActiveSheet.Paste

Call Analyze_Button
End Sub


Sub SimpleAnalysisTest()
'
Dim szToday As String
szToday = Format(Date, "mmm-dd-yy")


'
Rows("1:1").Select
Selection.Insert Shift:=xlDown
Range("H1").Select
ActiveCell.FormulaR1C1 = "Question Count"
Range("H2").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-7]="""",0,IF(RC[-7]=""Date"",0,1))"
Range("H2").Select
Selection.AutoFill Destination:=Range("H2:H9999")
Range("H2:H9999").Select
Range("I1").Select
ActiveCell.FormulaR1C1 = "Specialist Count"
Range("I2").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=1,IF(R[1]C[-6]=""Specialist"",1,0),0)"
Range("I2").Select
Selection.AutoFill Destination:=Range("I2:I9999")
Range("I2:I9999").Select
Range("J1").Select
Sheets(szToday).Select
Columns("C:C").Select
Selection.ColumnWidth = 7.57
Columns("E:E").ColumnWidth = 18
Range("K4").Select
ActiveCell.FormulaR1C1 = "Total Questions Answered"
Range("K5").Select
ActiveCell.FormulaR1C1 = "Percent Specialist"
Range("K6").Select
ActiveCell.FormulaR1C1 = "Total Earnings"
Range("K7").Select
ActiveCell.FormulaR1C1 = "Total Time Spent"
Range("K8").Select
ActiveCell.FormulaR1C1 = "Average Dime per Question"
Range("J1").Select
ActiveCell.FormulaR1C1 = "Abort/Abuse Count"
Range("J2").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-2]="""",0,IF(RC[-2]=1,IF(RC[-3]=0,1,0),0))"
Range("J2").Select
Selection.AutoFill Destination:=Range("J2:J9999")
Range("J2:J9999").Select
ActiveWindow.SmallScroll Down:=-3
Range("K9").Select
ActiveCell.FormulaR1C1 = "Abort %"
Range("L4").Select
ActiveCell.FormulaR1C1 = "=SUM(C[-4])"
Range("L5").Select
ActiveCell.FormulaR1C1 = "=(SUM(C[-3])/R[-1]C)"
Range("L6").Select
ActiveCell.FormulaR1C1 = "=SUM(C[-5])"
Range("L7").Select
ActiveCell.FormulaR1C1 = "=SUM(C[-6])"
Range("L8").Select
ActiveWindow.SmallScroll Down:=-21
Range("L8").Select
ActiveCell.FormulaR1C1 = "=R[-2]C/R[-4]C"
Range("L9").Select
ActiveCell.FormulaR1C1 = "=SUM(C[-2])/R[-5]C"
Range("K10").Select
ActiveCell.FormulaR1C1 = "Average Time Spent Per Question"
Range("L10").Select
ActiveCell.FormulaR1C1 = "=AVERAGE(R[-7]C[-6]:R[9989]C[-6])"

Call Analyze
End Sub

Sub Analyze()
'
' Macro10 Macro
' Macro recorded 12/12/2008 by Richard Hung
'

Dim szToday As String
szToday = Format(Date, "mmm-dd-yy")
Range("K4:L10").Select
Selection.Copy
Sheets(szToday).Select
Sheets.Add
Range("C8").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("D13").Select
Application.CutCopyMode = False
Selection.NumberFormat = "0.00%"
Range("D9").Select
Selection.NumberFormat = "0.00%"
Range("D10").Select
Selection.NumberFormat = "$#,##0.00"
Range("D12").Select
Selection.NumberFormat = "$#,##0.00"
Range("D14").Select
Selection.NumberFormat = "h:mm;@"

Columns("C:D").Select
With Selection.Font
.Name = "Arial"
.Size = 18
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Columns("C:D").EntireColumn.AutoFit
Columns("C:D").EntireColumn.AutoFit
Range("E10").Select
End Sub

Sub Analyze_Button()
'
' Macro15 Macro
' Macro recorded 12/12/2008 by Richard Hung
'

'
ActiveSheet.Buttons.Add(93.75, 169.5, 105.75, 43.5).Select
Selection.OnAction = "SimpleAnalysisTest"
ActiveSheet.Shapes("Button 1").Select
Selection.Characters.Text = "Analyze Data"
With Selection.Characters(Start:=1, Length:=12).Font
.Name = "Arial"
.FontStyle = "Regular"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Range("K18").Select
End Sub

And that's it. I would appreciate any comments/criticism. I would insist that you post your problems here as well, however I can't guarantee that I'll be able to solve them.

That's it for tonight!

Friday, December 12, 2008

Status Report: ChaCha Scraping Spreadsheet

Good progress on the spreadsheet, methinks. Here's the current checklist of what I've done and what I plan to do before releasing:

  • The actual web scraping macro
  • Password log-on given password in worksheet
  • Data backup onto a specific sheet
  • Simple analytics (total questions, average time, etc)
  • Buttons to start the process

I'm happy with the progress. At this rate, I think I should be able to post the first beta version up by Saturday. I hope so!

And for you coders... I know there's going to be TONS of useless /repetitive coding in my project. I don't even know what half these functions do.... In the last few days, its just been searching for already-written code on the internet, and disecting it for this purpose.

I have a feeling that the spreadsheet isn't going to work for everyone, and that I'm going to have to apologize because I won't be able to troubleshoot/debug.

In the meantime, can anybody help me think of a name for this project? =)

Thursday, December 11, 2008

A small teaser, import your ChaCha history!


Introducing.... an automated ChaCha history grabber:




Okay, I'm very excited about this project, and I hope that you are just as much as I am. However, I cannot give you a to-be-finished date, as I don't even know if my programming skills even allow me to finish it. I'm trying to automate the process of importing all your query data you have on your Earnings/Current tab into Excel using Macros.

How is this useful?

Well, being a data FREAK, I love seeing statistics of things. Here's a tiny tiny tiny example of what you can find with this data:

The possibilities are endless. Being able to visualize the statistics with graphs and charts, being able to track your history and performance on ChaCha.....

That being said, I have to put the following disclaimer: I've NEVER done VBA / macro programming before, and there is a high chance that this project will never be completed. I only have basic HTML / C++ knowledge, and was GLAD that this project got this far. If you are experienced with this stuff, and willing to volunteer your time to help, please send me an email at rnhung@gmail.com .

Thank you!


Tuesday, December 9, 2008

Ever accidently close your dashboard tab? It won't happen again with TabMixPlus!

So I've accidentally done this many times... and its frustrating especially if I'm in the middle of a questions (and even more if you're getting 1 question per hour). Solution? TabMixPlus!

TabMixPlus is a Firefox extension that allows you to "lock" tab(s) so they won't be closed accidentally. That's right, no more accidentally clicking the red [x] or overriding your ChaCha answer page with a bookmark!

Well, I'm just here to provide the instructions. Its up to you if you want to try it. (Try it)

Installing Tab Mix Plus:
  1. Visit the Tab Mix Plus extension page here.
  2. Click the "Add to Firefox" button, and "install" on the popup. Restart browser when completed.

Protecting your ChaCha "Guide Console" tab:

  1. Open your Universe tab
  2. Right click on the tab. Check "Protect Tab" and "Lock Tab"
  3. You're done! "Protect Tab" saves your tab from being closed accidentally. "Lock Tab" keeps bookmarks from taking over your Universe!

Accelerate your Twitter-life. Twitterfox!

As stated in the last post here, I don't like going back and forth to the Twitter page to make/receive my updates. So, I use Twitterfox!

Twitterfox adds a small icon to the bottom of your Firefox screen. It automatically receives updates every few minutes and displays new Tweets in an aesthetically pleasing bubble box (I just noticed that they're rectangles). Similarly, you can update your own status from this widget. All it takes is a double-click and some typing! Here's what it looks like:



...all that being said, I think it is a very useful application, and is a must for all Twitters.

Installation Guide:

Installing Twitterfox

1. Go to the Twitterfox add-on page here.

2. Click the "Add to Firefox" button


3. Click Install Now on the popup


4. Restart Firefox when its done!


Setting up Twitterfox

1. After Twitterfox is installed, go into Tools>Add-ons in Firefox

2. Find the Twitterfox extension and click Options


3. Click "Add Account." Insert your Twitter username and password. Click OK when done.
Don't have an account? Make one here or see this blog post for more detailed instructions!

4. Tweet!

Monday, December 8, 2008

How to Tweet! Use Twitter to communicate with fellow ChaCha'ers!

Inspired by the forum post "Twitterific idea", I've decided to give a quick runthrough of how to use this nifty website to communicate with your fellow ChaCha guides! Twitter is a "service for friends, family, and co–workers to communicate and stay connected," and can definitely be useful when needing some quick help with your IS query, or when needing someone to release some fiery while you *patiently* wait for the next question.

Users start out by signing up for an account here! It only takes a few minutes, and you'll most likely be ready to tweet before your next doorbell! After completing the sign up process, you'll be able to choose people to follow--you'll receive their "status update" when they post!

This is a list of ChaCha Twitters as of December 9, 2008. Once you get the chance, "follow" these users:
http://www.twitter.com/ChaChaCrocodile
http://www.twitter.com/LadyAngel89
https://twitter.com/gbell88
http://www.twitter.com/maricely1
http://www.twitter.com/alanhoskins
http://twitter.com/lonetree72
http://twitter.com/kgbr16
http://twitter.com/funny1097
http://twitter.com/mishlamanda
http://twitter.com/LadyNightowl
http://www.twitter.com/jamiss
https://twitter.com/MadreBug
https://twitter.com/erayne
http://twitter.com/jelybu
http://www.twitter.com/mylittlecody120
https://twitter.com/chachatrying
http://twitter.com/Childofares
http://twitter.com/mom25
http://twitter.com/soozenw
http://twitter.com/tjnieves2005
http://twitter.com/feralamour
http://www.twitter.com/jimnaasz
http://twitter.com/x_xginx_x
http://twitter.com/momoftwointexas
http://www.twitter.com/jennyjenn1234
http://twitter.com/hernameissam
https://twitter.com/lucky_magpie
http://twitter.com/MzSarcaztic
http://twitter.com/SassySteph
http://twitter.com/MouthPrincess
http://twitter.com/pablomcdizzle
http://twitter.com/ChaChaApril
http://www.twitter.com/ame377
http://www.twitter.com/doodlex
http://twitter.com/QueenB73
http://twitter.com/lizardloo
http://www.twitter.com/sarawr
www.twitter.com/candmc
http://twitter.com/HeatherM74
http://twitter.com/NessaStreet
http://twitter.com/rwhip923
https://twitter.com/BlytheE
http://twitter.com/nan_cee
http://twitter.com/clandy
http://twitter.com/Elizabeth706
http://twitter.com/tracylezama
http://twitter.com/k3ithc
http://www.twitter.com/juewlie
http://twitter.com/melzmar
http://twitter.com/rnhung
http://twitter.com/aliciaz
http://twitter.com/margieloll
http://twitter.com/lonetree72
http://twitter.com/rianerin
http://twitter.com/wolinj
http://twitter.com/stormy35
http://twitter.com/ando33
http://twitter.com/laffingeys
http://twitter.com/ChaChaTwynk
http://twitter.com/codewolf
http://twitter.com/ChaosKitties
http://twitter.com/ChaChaKC
http://twitter.com/stormysk8
http://twitter.com/Serenaty
http://twitter.com/ChaChaCJ
http://twitter.com/chachamouse
http://twitter.com/JanetDW
http://twitter.com/DABRATCAROL
http://twitter.com/gphigirl

https://twitter.com/wendyaf
http://twitter.com/MelissaCrow
http://twitter.com/chachajess
http://twitter.com/LazyKT
http://twitter.com/alialialik
http://twitter.com/msnjhnsn
http://twitter.com/carolynchacha
http://twitter.com/chacha_tofu
https://twitter.com/katgif


...and you're all set! Visit the Twitter home page here to update your status now!

Final notes:
Visiting the Twitter website every time I want to tweet is very inconvenient (for me). I use Twitterfox, a Firefox extension that incorporates Twitter into the browser, for Tweeting! I will be posting instructions for installing and using it in the next few days!