Showing posts with label guide. Show all posts
Showing posts with label guide. Show all posts

Thursday, October 24, 2013

Keeping a Car Log with Google Calendar

Keeping a log of all activity related to your car is very useful. Without needing to rely on memory, a concrete record can make it easy to answer questions about your car, such as how many miles you drove in the past year, when your last oil change was, or what was done in your last service appointment.

Originally I kept my car log on paper in my car, as you can see below:


However, once I got my Android smartphone, I found an even neater way: to use Google Calendar. This has several advantages:
  • You can access the car log on your cell phone (= anywhere) and on your computer
  • You don't need to worry about misplacing it
  • You can search for specific events (like "oil change")
  • You don't need to take up space with a pen and paper
  • You can set up reminders for appointments
    • On my phone, I can set it up so that I get notifications before every event

Creating your car log calendar

1. Open Google Calendar in your web browser
2. Click on the drop down arrow next to My calendars and select "Create new calendar" 

3. Name your new calendar something like "car log" or "Lexus ES350 car log"
4. Give your calendar a color
5. Sync the calendar on your smartphone. Below is a screenshot from my Motorola Atrix 4G:


Repeat this for each car you own. In other words, one calendar per car.

From here on...

Just keep updating your calendar. With every event, it is also a good idea to note the mileage of your car (even the PSI of each tire could be useful).
  • Every time you have an appointment
  • Every time something goes wrong ("bumped back left bumper into tree", "car vandalized at office parking lot", "car engine light came on")
  • Every time you renew your DMV paperwork for this car
  • (optional) Every time you fill up gas, including the cost of the gas and number of gallons

Sample event

4600 miles, 32 PSI all tires

Stepped on acceleration very fast a few days ago and heard sounds similar to as if I was going over speed bumps.
My check engine light came on today.

I called the dealership. Susan says the acceleration probably did not cause the issue and asked me to tighten my gas cap. I did so. She says that if I wait a day, the light should go out. If it does not, I should call back.

Receipts

One area this solution does not address is receipts and other car-related paper documents. If you got a receipt for an oil change, for example, how would you integrate it with this solution? Currently, what I do is digitize all paper documents (scan or take a photograph) and keep a separate folder in my computer for them. Of course, the downside is that you can only access these files from your computer (unless, of course, you maintained this folder in the cloud, such as in Google Drive).
Folder containing receipts for E320

Google Calendar Attachments

Google Calendar actually does have a beta feature to attach documents to calendar events. However, the Android app currently does not support this feature (as of 2013/11/4). Anyways, this is another option to keep in mind.

Sunday, June 23, 2013

Google Calendar: Repeating Events on Every 5th Sunday

The Trick

Click on the first day of the series in Google Calendar and type 'My Event, fifth Sunday of every month, 12:30-3:00' in the "What:" field:


Modify details as necessary.

The Story

I use Google Calendar as my primary calendar. Having an Android phone, this is quite convenient, as I can not only pull up my calendar at any time, but am also able to set reminders which deliver notifications to my phone.

Just today, I ran into a problem: how do I get an event to repeat on every 5th Sunday of the month? Through the Google Calendar interface, the only options for repeating seemed to be on the 1st, 2nd, 3rd, 4th, and last Sunday of the month.
At this point, I decided it was time to consult Google... Looking through different forum posts, I found this solution and posted it here.

Sunday, June 3, 2012

Gmail: Automatically Bumping Mailing List Topics You Participated in to Your Inbox

If you are subscribed to a mailing list, you may have set up a filter in Gmail to keep these messages out of your inbox and instead under a special label for that mailing list.
   Matches: list:“<list.gnu.org>
    Do this: Skip Inbox, Apply label “GNU-discuss”

However, you may want messages from threads that you participated in to come directly to your inbox. For example, it may be possible that a thread you posted in last month, got a response today, requiring your attention.
Muting every single thread that you do not participate in is also too much work. So, how can we get Gmail to bump any threads we posted in to our inbox?

A naive approach would be to have two filters. The first matching any messages from you, to you, or cc'ing you and the second for any messages not from you, to you, or cc'ing you. However, the problem with this is that many posters will NOT cc you in their responses. On top of this, many posters won't even quote the text from a previous message from you.
    Matches: (list:“<list.gnu.org>” AND -(from:me OR to:me OR cc:me))
    Do this: Skip Inbox, Apply label “GNU-discuss”
    Matches: (list:“<list.gnu.org>” AND (from:me OR to:me OR cc:me))
    Do this: Apply label “GNU-discuss”
So, how can we handle this?

Here's one solution. First, we will need to create 2 labels.
1. GNU-discuss (for the entire mailing list)
2. GNU-discuss/GNU-discuss-me (for messages in the mailing list that you participated in)

Next, we will need 2 filters. The first will apply the label GNU-discuss-me to any thread you post in. The second will archive any messages that do not have the label GNU-discuss-me and apply the label GNU-discuss. Optionally, you can also add a third filter to label all messages in GNU-discuss-me as GNU-discuss.

Note, that Gmail may warn you that filters containing "label:" will never match incoming mail, but we are okay in this case. The reason is because filters are processed in the order they appear in Gmail, so the GNU-discuss-me label will be applied before it reaches this filter and thus the "label:" clause will function correctly.

Also, there is a unanticipated fringe case associated with the "from:me" clause in Gmail: it will match messages from anybody with a me.com e-mail address. This can get annoying because if there is a me.com user actively posting on the mailing list, his messages will always get bumped to your inbox. Thankfully, there is a workaround: "from(me -me.com)"

Here is how the final result looks:
    Matches: (list:“<list.gnu.org>” AND (from:(me -me.com) OR to:(me -me.com) OR cc:(me -me.com)))
    Do this: Apply label “GNU-discuss/GNU-dicuss-me
    Matches: list:“<list.gnu.org>” -label:0Amil-dicuss-0Amil-discuss-me
    Do this: Skip Inbox, Apply label “GNU-discuss”
    Matches: label:GNU-dicuss-GNU-discuss-me
    Do this: Apply label “GNU-discuss”


It took me a while to figure this out, with a pen, paper, and Gmail's advanced search documentation, but hopefully this helps you out.
If you have any questions or suggestions (possibly for a simpler solution), feel free to post a comment.

Sunday, March 25, 2012

How to Fix a "Permanently" Network-Locked Atrix Phone

One unfortunate feature of the Motorola Atrix is that if you try to unlock it with an invalid network unlock code more than ten times, it will permanently lock up. After this point, no matter which SIM card you insert (even the one from your own carrier), you will be given a dialogue to enter your network unlock code. However, even if you enter the correct unlock code at this point, it will not work.
On top of this, calling AT&T customer support and/or going into their store won't get this problem solved (trust me, I tried it ;-)...

Your Atrix is now is useless... or is it?
There is actually a solution that I was finally able to find. It will involve some hacking, so follow this guide at your own risk. For reference, I used these steps to fix my AT&T Atrix using a Windows XP system (side note: the XP was actually installed on a VirtualBox instance).

This guide also works for Atrix 2, but nobody has reported it working for the Atrix HD.

1. Download and install RSDLite 5.0 (it can be found through a web search or here).
2. Download Retail Brazil Radio.sbf from here (preferred) or here. This file will work regardless of where you bought your phone.
3. Turn off your Atrix and remove the SIM card and MicroSD card.
4. While pressing the volume up key, reboot your atrix. If you are using the Atrix HD, you may need to hold both the volume up and volume down keys.
5. The phone will display "Starting RSD protocol support" (and "Unlocked" if you have unlocked your bootloader, which is not necessary for this guide).
6. Connect the USB cable from your Atrix into your computer.
7. Open up RSDLite on your computer. Your phone should be recognized as "NS Flash Olympus" or "SE Flash Olympus". If not, try searching online for a newer version of RSDLite and try again.
8. Press "..." next to the "Filename:" box and select your "Retail Brazil Radio.sbf."
9. Press the "Start" button and cross your fingers. This will take a few minutes and your phone will reboot in the process. If this process fails, please read through the comments below as some users have found workarounds.
10. Once this is done, you may be asked to log in to Motorola Blur.
11. Bypass this log in by:
  1. Holding down the menu button (bottom left button on your phone), which will bring up the virtual keyboard
  2. Press the keys ?123, ALT, ABC, e, ?123, ALT, ABC, e
  3. Then, type "bluroff" (with no quotes)
12. Put your phone into airplane mode by holding down the power key and selecting airplane mode.
13. Now, shut off your Atrix and insert your original carrier-provided SIM card (my AT&T SIM card in my situation).
14. Disable airplane mode.
15. Congratulations! Your Atrix should work again!
16. If you know you have the correct network unlock code (either by calling your carrier directly or by having purchased it online), let's quickly unlock your phone permanently.
17. Open up the dialing pad and type "#073887*", which should open up a "SIM network unlock PIN" prompt. If this does not work, turn off your Atrix, insert a non-accepted SIM card (i.e. from another carrier), and reboot.
18. Enter your network unlock code.
19. Congratulations again! Your Atrix should now be permanently network-unlocked!
20. Now that your Atrix is unlocked, don't you wish you could select your network operator manually (disabled by default on Atrix)? If so, see the other guide I wrote exactly on this topic.
21. [Extra step] If you want to restore the original AT&T radio, see this comment. Note that this is not necessary and requires a lot of extra work.


If you run into any issues, try searching for a solution (either in the numerous comments below or online) before posting a comment.

Special thanks to antoniolcrd for his forum post that proposed the Brazil Radio solution, Whipon for uploading the Retail Brazil Radio SBF, and to the entire Atrix development community as a whole!

Tuesday, March 13, 2012

"Command prompt here" for files and folders

If you want to invoke the command prompt in the current directory simply by right clicking a folder or file, there is a simple way to do so. Although Windows Vista and later allow this by holding SHIFT down and then right-clicking the folder, this will not work for files. Some users (like myself) prefer to have this option always be available for both folders and files without the need for pressing the SHIFT key.

To add this functionality, simply merge CommandPromptHere.reg into your Windows computer.

And that's it!

Saturday, March 10, 2012

How to enable "Select network" on the Motorola Atrix 1

If you are using a Motorola Atrix (version 1 or 2), you may realize that it that the option to "Select Network" is grayed out.

Ironically, AT&T posted a "how-to" video for selecting the network which actually shows the option grayed out.

This guide will show how to enable this option. However, if all you want is the ability to force your phone to use 2G or 3G only, there is a very easy way to do so, as described in this guide.

For the record, I am using version 4.5.141.MB860.
Note that you will need to root your Atrix for this guide.

1. Root your Atrix. Here is an excellent guide on how to do so. Unfortunately, there is no way around this because the files we need to modify to enable this setting are system-protected files that cannot be modified without root permissions
2. If you are willing to pay $3.99, download Root Explorer, which is what I will use for this guide. Otherwise, download ES File Explorer and enable "Up to Root" and "Root Explorer" in settings.

3. Open Root Explorer and grant it SuperUser privileges (once you root your Atrix, this option will pop up automatically)
4. Navigate to "/system/etc/motorola/com.android.phone/defaults.xml" and select "Mount R/W"

5. Long tap defaults.xml and select "Open in Text Editor"
6. Change 'network_select_menu' value='false' to 'network_select_menu' value='true'

7. Select "Save Changes" and return to Root Explorer
8. Finally, delete the backup file created, which is defaults.xml.bak in this case

9. Navigate to "/data/data/com.android.phone/shared_prefs/"

10. Repeat steps 5-8 for ALL files in the share_prefs folder. Note that these files have slightly different syntax (i.e. using single quotes instead of double quotes). Just ignore this and change the value of network_select_menu from "false" to "true" in all files
11. Exit Root Explorer and go to Setting->Wireless & networks->Mobile networks. If you did everything right, the options should be enabled! Tapping "Select Network" gives you a pop up allowing you to select "2G only," "3G only," or "Automatic." Below is an image of what you get when you select "Operator selection"



Special thanks to mistadman, jjwatmyself, crnkoj, and liranm2 for their forum posts, which I compiled into this guide after running into a lot of trouble myself. Also, kudos to the Screenshot ER application, which allowed me to take all of these nice screen shots.

Accessing the Hidden "Testing" Settings on a Motorola Atrix

There is actually a hidden "Testing" control panel on the Motorola Atrix 1.
Accessing it is very simple and does not require root access, simply go to the dialer and type *#*#4636#*#*
Doing so, will bring up the menu pictured below:


Under "Phone information," you can do things like forcing the phone to only connect to 2G networks or 3G networks by setting the preferred network type. If you are more interested in this, here is a full guide.


Finally, to make things easier, you can actually add this number to your contacts list:

Tuesday, August 23, 2011

What is the Y800 color space?

The FOURCC code Y800 refers to a color space with 256 different shades of gray. Each pixel takes up 1 byte of data and pixel data is stored from left to right, and top to bottom in the image. Thus, given a pixel buffer, we can access pixels in the image as such:
    typedef unsigned char BYTE;
    BYTE getPixel(const int imageLength, BYTE* pixBuf,
                  int x, int y)
    {
        return *(pixBuf + y*imageLength + x);
    }


Important Note: Unlike in .NET Bitmaps, there is no usage of a stride or scan width. Thus, when converting to Y800 color space, it is important to remove any "empty pixels" introduced by strides.

Also note that the FOURCC code GREY is identical to Y800.

Monday, January 10, 2011

Converting a compressed BITMAP to a Magick++ Image

One problem that you may encounter while working with the Magick++ API (an API for both GraphicsMagick and ImageMagick) is trying to convert an compressed Windows BITMAP to a Magick++ image.
If you are interested in converting uncompressed BITMAPs, please see this guide.

The most practical approach is to use a Magick::Blob. Although there is overhead associated with allocating extra memory, the overhead associated with decompressing the pixel data is likely much higher.
Here is the code:

Sunday, January 9, 2011

Converting an uncompressed BITMAP to a Magick++ Image

One problem that you may encounter while working with the Magick++ API (an API for both GraphicsMagick and ImageMagick) is trying to convert an uncompressed Windows BITMAP to a Magick++ image.


1. Simple approach: read()
The easiest approach is to use the Magick++ read() function, which is an abstraction of the lower-level ConstituteImage function (part of the MagickCore API).
Here is the code:

Friday, July 30, 2010

Adding Standard Hotkeys to Emacs v22.1 or Above (copy/paste/undo/save)

If anybody else misses the standard hotkeys (ctrl-c, ctrl-x, ctrl-v, ctrl-z, etc.) while working with Emacs, there is a solution! If your Emacs version is less than 22.1, see this post instead.
Disclaimer: I am not an expert on Emacs, but what I describe below has worked well for me. These modifications will disable a few of Emacs native hotkeys, but this shouldn't cause any problems for you.


First, find your .emacs file. This file controls the settings for Emacs and is probably located in your "home" directory. Once you have found this file, open it up in your favorite text editor (Emacs).


Next, add these lines of text to your .emacs file (preferably at the end of the file or in the area where other "global-set-key" calls are made, which can be found by searching the file). Note that "C-s" translates to "ctrl-s", "C-o" translates to "ctrl-o", etc.:
;;STANDARD HOTKEYS!!!;;
(cua-mode t) ;;Ctrl-z/x/c/v;;
(global-set-key (kbd "C-s") 'save-buffer)

(global-set-key (kbd "C-a") 'mark-whole-buffer)
(global-set-key (kbd "C-o") 'find-file)
(global-set-key (kbd "C-f") 'isearch-forward)
(global-set-key (kbd "C-g") 'goto-line)
 
Note that undo may not work as you expect it to, due to the design of undo in emacs.


After this, search your .emacs files for any other global-set-key calls to any of the above keys and comment them out if necessary. Note that \^z is another way of representing (kbd "C-z"). Basically, these lines might replace some of the hotkey bindings we made above. Also, it is also a good idea to comment out any global-unset-key calls to ensure that none of our bindings are disabled. For example, the below lines would disable ctrl-o and ctrl-z:
(global-unset-key (kbd "C-o")) ;disables "ctrl-o"
(global-unset-key "\^z")       ;disables "ctrl-z"



Finally, save your .emacs file and restart Emacs. Enjoy your new hotkeys!

Thursday, July 15, 2010

Adding Standard Hotkeys to Emacs v22.1 or Below (copy/paste/undo/save)

If anybody else misses the standard hotkeys (ctrl-c, ctrl-v, ctrl-z, etc.) while working with Emacs, there is a solution! If your Emacs version is greater than 22.1, see this post instead.
Disclaimer: I am not an expert on Emacs, but what I describe below has worked well for me. These modifications will disable a few of Emacs native hotkeys, but this shouldn't cause any problems for you.


First, find your .emacs file. This file controls the settings for Emacs and is probably located in your "home" directory. Once you have found this file, open it up in your favorite text editor (Emacs).


Next, add these lines of text to your .emacs file (preferably at the end of the file or in the area where other "global-set-key" calls are made, which can be found by searching the file). Note that "C-c" translates to "ctrl-c", "C-o" translates to "ctrl-o", etc.:
(global-set-key (kbd "C-c") 'copy-region-as-kill)
(global-set-key (kbd "C-w") 'kill-region)
(global-set-key (kbd "C-v") 'yank)
(global-set-key (kbd "C-z") 'undo)

(global-set-key (kbd "C-a") 'mark-whole-buffer)
(global-set-key (kbd "C-s") 'save-buffer)
(global-set-key (kbd "C-o") 'find-file)
(global-set-key (kbd "C-f") 'isearch-forward)
(global-set-key (kbd "C-g") 'goto-line)

Unfortunately, I have not yet found a way to properly bind ctrl-x to "cut", so please use ctrl-w instead. The reason for this is likely because ctrl-x is, by default, a prefix command in emacs. For the same reason, ctrl-c causes some problems. However, if your Emacs version is above 22.1, these keys will work correctly if you follow this guide. Also note that undo may not work as you intend, due to the design of undo in emacs.


After this, search your .emacs files for any other global-set-key calls to any of the above keys and comment them out if necessary. Note that \^z is another way of representing (kbd "C-z"). Basically, these lines might replace some of the hotkey bindings we made above. Also, it is also a good idea to comment out any global-unset-key calls to ensure that none of our bindings are disabled. For example, the below lines would disable ctrl-o and ctrl-z:
(global-unset-key (kbd "C-o")) ;disables "ctrl-o"
(global-unset-key "\^z")       ;disables "ctrl-z"



Finally, save your .emacs file and restart Emacs. Enjoy your new hotkeys!

Monday, February 1, 2010

How to set up wxWidgets 2.8.10 using Microsoft Visual C++ 2008 [Video]

After running into many problems while setting up wxWidgets, I decided to make a guide to help others set up wxWidgets 2.8.10 on a Windows computer using Microsoft Visual C++ 2008.
This may also work with Visual C++ 2005, but I have not tested it.

Steps:

1. Watch this video (created by a third party):
Stop once he starts speaking about samples (6:57)
HOWTO: Install wxWidgets for use in Visual Studio Express

1.5. While following the steps below, watch this video I made:


2. Download these files: wx.vsprops and minimal.cpp.
NOTE: If you are on Windows XP use wx_fix.vsprops instead of wx.vsprops.

Sunday, December 27, 2009

Buying a New Cell Phone

A few weeks ago, I became eligible to enter into a new two-year contract with AT&T. As I could get a discounted rate on a new cell phone by doing so, I started looking for one.

Among the websites I used to look for cell phones, PhoneScoop was the most accurate and useful. At this website, I was able to select which features I wanted in my cell phone and was able to narrow down to a few cell phones.

I learned two things from the time I spent searching for this new cell phone.

1. It is important to make a list of the things you want in your cell phone beforehand
My list included:
-Programmable
-High-quality screen
-No monthly fee
-Price less than $50 after contract
-Memory card slot
-Speaker phone
-Vibrate
-Alarm/calendar
-Japanese support
You might not get everything you want, but this list really helps.

2. Cell phones can be purchased for much cheaper at third party cell phone vendors
Two good ones are AmazonWireless and Walmart (LetsTalk).


In the end, the cell phone that best fit me was the Nokia 6650. Running on the S60 operating system, the Nokia 6650, allows users to create their own programs for the phone. Furthermore, the Nokia 6650 is one of the only cell phones running on S60 that does not require a data plan (=monthly fee) under AT&T.
Unfortunately, the Nokia 6650 had been discontinued by AT&T, so I could not buy it through them. Thinking carefully, I realized I could purchase it at Ebay for around $70. With this thought in mind, I devised an ingenious plan:
1. Buy a heavily discounted cell phone through a third party cell phone vendor
2. Sell this cell phone on Ebay (around $200)
3. But the Nokia 6650 on Ebay (around $70)
4. Collect my earnings of around $100 (after Ebay seller fees and tax)

I put this plan into action. I purchased a Samsung Solstice from (LetsTalk) for about $20 with my 2 year contract extension and sold it on Ebay for $180. Concurrently, I purchased a relatively high quality Nokia 6650 on Ebay for $65.

In the end, I not only got the phone I wanted, but I also earned about $100!