Friday, December 26, 2008

Spyware Guard 2008 - You just blew my mind!

(Uninstall / removal process half way down in bold)
I got a sort of virus, but not really. It's this super clever malware / extortionware that F'ed up my computer out of nowhere. It pretends to be spyware removal software - and it does a damn good job of looking legit. If it were not so brazen by popping up every two minutes and running its "scans" over and over, I might have even ignored it. However, it was bogging down my memory, my internets connection, limited access to many Web sites, and was just annoying.

It automatically installs itself without any pop-ups or lame trickery like that. It then runs or (pretends to run) scans of the hard drive for other spyware. It pulls up a list of all the infected files and franticly urges the user to purchase the full version to get rid of it all. On top of this generic front, there is a program called Windows Security Center (winscenter.exe) that looks very much like a real Microsoft program, which tells you that the virus software is running, the firewall is fine, but then it says in red that Spywareguard 2008 needs to be upgraded immediately. Doubtful at best. There's also a blurb at the bottom that mentions something to the effect of "Microsoft puts your privacy first," which is screaming "bullshit." Microsoft doesn't need to attest to it's privacy policy on any of its interfaces.

Further, Spyware Guard 2008 blocks access to certain web sites - specifically spyware removal software, virus scan/protection, or sites with keywords like "Remove" and "Spyware Guard." When attempting to view these sites, I kept getting "Connection failed" messages, or I was forwarded to some weird unique IP address. This limits the ability to not only download new tools, but it also hinders the updating of my current Ad-Aware / Spybot programs.

All of this is enraging me, of course, though I'm also intrigued at the chutzpah and brilliance of this idea and how well it's pulled off! I can't believe that the people behind it aren't caught and shut down because they're asking for money out in the open! That's serious fortitude right there.

How to get rid of Spyware Guard 2008 / Spywareguard 2008:
There is a good technical review of what is included in this infection at Wiki-Security.com:
http://www.wiki-security.com/wiki/Parasite/SpywareGuard2008

The main problem is that when you delete the folder C:\Program Files\Spyware Guard 2008\, it is automatically restored. The same thing happens with C:\Windows\System32\winscenter.exe. Don't even bother with the uninstall file. Since these know when the file is missing, the next best thing to do is to break the executable files. This won't solve the problem, but it will at least stop the programs from opening and bogging down your memory.
  • Open Notepad, and Open a document
  • From the "Files of type:" pull down menu, choose "All Files"
  • Navigate to C:\Program Files\Spyware Guard 2008
  • Open Spywareguard.exe
  • This will be machine language so don't expect to be able to decipher anything. Start from the top and start removing a few lines of code at a time. I took around a dozzen or so lines at a time scattered throughout the very top, and very bottom of the document and that worked well. Every time you hit delete or backspace, be sure to save. Don't remove everything; the point is to break the file, not remove it entirely.
  • Do the same thing to C:\Windows\System32. Now you won't be bothered by the programs as much, but every two minuts or so, a command prompt/MS-DOS window (attempting to launch spywareguard.exe) would VERY briefly open and close itself. Additionally, my internet access was slow and many sites were blocked.
  • Next, download and install SpyHunter Spyware Detection Tool. This is free to install and scan, but it will not remove anything until you buy the full version, HOWEVER when installing, it recognizes that other malware is attempting to inhibit its processes and effectivly stops it! Now turn to freeware!
  • Download and install the latest version of Malwarebytes' Anti-Malware. This software is free to scan and remove infections, and upgrades are around $25. The free version kicked Spyware Guard 2008 to the curb. Be careful not to remove EVERYTHING it finds, because it found some Ad-Aware files that were safe.
  • You're done! Go ahead and update your AVG, Ad-Aware, etc.
Spyware Guard 2008 is very a very clever idea. A professional, sleek design makes it look serious, but it's a major headache and everybody I talked to recommended reformatting, though this method worked very well for me.



(Click to enlarge)

(Update)
How to get rid of Spyware if you already have Malwarebytes:
I returned home from the holidays to find that my roommate had contracted the same problem, however he had Malwarebytes installed on his machine already.
  • Start Windows in Safe Mode (At startup / when you power up the computer, tap the F8 key eight times or until the Windows Advanced Options Menu appears, and select "Safe Mode" from the top of the menu.)
  • Run Malwarebytes' Anti-Malware program from here. This scan took around three hours to complete.
That's it. I have not attempted (nor do I plan) to run any older versions/updates of Malwarebytes in this situation, though it has been highly recommended by several IT professionals. If an older version of Malwarebytes does not cure the situation, I would default to uninstalling Malwarebytes and running the first method using an updated version of the software. Download.com may assist in this download if Spywareguard inhibits your access the official site directly.

Sunday, November 2, 2008

Open Source Art


I have an idea for a new web community that is a cross between a blog, imdb, wikipedia, and iTunes. I'll get right to explaining it. Users can:
  • Post art of any medium: music, lyrics, poetry, video, stories, books, illustrations, graphic designs, paintings, technology-based art [web page layouts, ytmnd's, lolcats], you name it
  • Attribute the entry with searchable metadata that describe and categorizethe work for others to use for enjoyment, inspiration, education, or reference
  • Track the flow of ideas that go into the creation of any piece of work, thus providing further insight into the work itself - for instance a song can have its own blog entry and link to other music/poetry/blogs/outside news articles/facebook profiles/Google Maps/etc. that have contributed or inspired the work
  • Serve as an open source community of ideas to distribute, inspire, teach, catalog, and ultimately promote the creation of more art - sort of an opportunity for new art mashups, or simply a resource to learn more about your favorite song, painting, book, or artist.
An example:
  • A poet/lyricist can post her or his work for the community, with the option to include a background description, photos, etc.
  • A jive band who may shred but cannot write decent lyrics to save their life may stumble upon this writer's work and use it as inspiration or take it en mass to complete their own work
  • From this, any number of animators or film makers may want to create their version of a music video, or include the music in a film
  • The band can find another artist to create album art or web design
  • All portions can be cited by the contributing artist/tagged to be searchable/linked to other works that may have influenced/discussed by the original creator or the community
  • The work can be downloaded for free/open contribution (a la Radiohead)/purchase by track/purchase by album
  • The work can then be distributed easily via posting on other web sites, or compatibale iPod downloads, order prints, etc.
Although the open source aspect may seem to short change any single contributor (for instance of a web design or lyrics in this case), the contributor is given a citation and interested parties can easily contact the contributor or view other work.

Of course this can all be done already, but the niches are
A) the "open source" community of philanthropic artistic collaboration
1) entertainment value of learning/contributing background information about art
I) spam-free (I'm looking at you, myspace) and multi-format access to obtain music & art
N1) citation of ideas / implicit suggestion or promotion of other art

Update: (2/4/2010)
http://bandcamp.com - Great!

Sunday, October 19, 2008

GPS Tools for Diving

Free GPS software to manage your hand held:
easygps.com


divespots.com
A very neat web site that is a community run database of diving locations: dive site info/history, photos, reviews, maps, and the best part? Downloadable GPS data to help you find it! Pretty rad.

You might need a serial-to-USB cable to connect your GPS to your compy:

Thursday, October 16, 2008

Neat Projection Toy

This is a neat tool that lets you play around with many different projections. Pan and rotate the globe and the map projection to see which methods are better for rendering areas of a 3D surface in 2D: uff.br/mapprojections


Monday, October 6, 2008

Intro to servicing a scuba regulator

With the purchase of a BC and regulator setup, I now my own full set of scuba gear. I found some interesting articles that explains what goes into the annual maintenance of a regulator, and a neat glossary of oceanographic and diving equipment terms at dtmag.com

Thursday, September 18, 2008

Search a Collection or an Array for a value

I want to check my attribute table for a few specific fields of data (Comments, Reachcode, Waterbody_Type, etc.). If these fields are not included, I want them to be added before my custom tool set can do work on them; fields cannot be edited if they do not exist in the dataset.

This is broken down into several steps:
  • Find all of the fields in a dataset
  • Add specific fields that do not already exist
I use ListOfFields to populate a collection or an array (I used a collection since the dataset will be small, and collections are super simple) with all of the included field names, search the collection or array for values that are not present, and add a new field where the required field is missing.


Private Sub SearchCollection()

Dim fieldName As New Collection

'Fill in a few values for the collection
fieldName.Add ("FID") 'collection position 1
fieldName.Add ("Shape") 'collection position 2
fieldName.Add ("Id") 'collection position 3
fieldName.Add ("Comments")'collection position 4

Dim valueComment As Integer
Dim i As Integer

'Loops through the collection looking for "Comment"
For i = 1 To fieldName.count
If fieldName.Item(i) = "Comments" Then
valueComment = 1
Else
End If
Next i

'Check valueComment for a change
If valueComment = 1 Then
MsgBox "Totally just found That value!"
Else
MsgBox "It's not here..."
End If

End Sub


The collection will be populated automatically using ListOfFields - this is just an example.

The crux of the searching will use a For Loop to step through each item of the collection, and change valueComment to equal 1 if it finds a matching field. If the field is not included in the attribute table/collection, nothing happens (valueComment will remain equal to its default 0). Following this is an If/Then statement that checks what to do next. This will be blank when the other code is applied, since the field is indeed included. The Else message box will be replaced with the code to add the comments field.

The object valueComment type can easily be Boolean, but the double and triple negatives when discussing this out loud get a bit confusing.

Monday, September 15, 2008

One click cartographic customization

I've only been in the industry for a few years and already I have my own go-to cartographic design. It evolves slowly, though by now I've figured out which symbols and representations work well together for my stylee. Eventually it becomes annoying and redundant to have to import a shapefile / layer file and change the specific options to the saved templates and styles - yes, you too should even be above Style Manager. With a few snippets of code, one can quickly call those familiar elements that take every bloody instance of 20 seconds to set.

The only prerequisites are having a symbology for a shapefile saved as a layer file (color those county boundaries, right click on the layer in the table of contents, and click 'Save As Layer File...') and knowing where your data is saved. Bam!

First, I want to import my county layer (again, with my favorite symbology already set). Next I will want to change the background color to a light blue to represent the water. This will also fill in the holes where water is present in bays, large lakes, and streams, etc., and might not be correctly included in a layer of hydrography.

Start by creating a new button on a toolbar that will be used to trigger the events:
  • Tools :: Customize
  • Navigate to the the Commands tab in the Customize dialouge box
  • Make sure that you are working in Normal.mxt (at the bottom in "Save in:") so this button is available for all subsiquent projects
  • Scroll to the bottom of the Categories list and select "[ UIControls ]"
  • Click the New UIControl... button and choose UIButtonControl, then click Create
  • Rename the new control something like "Format" or "Format_Basic" (single click to select the control, then click one more time to edit its name)
  • Drag this onto a toolbar - from here (with the Customize dialouge still open) right click on the button and change its name, button image, and then View Source to enter code
This is the code to import a layer file:
Private Sub Format_Basic_Click()
Dim pMxDoc As IMxDocument
Dim pMap As IMap
Dim pGxLayer As IGxLayer
Dim pGxFile As IGxFile

'Get the layer file
Set pGxLayer = New GxLayer
Set pGxFile = pGxLayer
pGxFile.Path = "C:\GIS\FL_Counties.lyr"

'Add the layer file to the active map
Set pMxDoc = ThisDocument
Set pMap = pMxDoc.FocusMap
pMap.AddLayer pGxLayer.Layer
pMxDoc.ActiveView.Refresh 'Refreshes the map view
End Sub

This is the code to change the background color to light blue:
Private Sub Format_Basic_Click()
Dim pMxDocB As IMxDocument
Dim pActiveView As IActiveView
Dim pFillSymbol As IFillSymbol
Dim pGraphicsContainer As IGraphicsContainer
Dim pFrameElement As IFrameElement

Dim pRgbColor As IRgbColor
Dim pSymbolBackground As ISymbolBackground

'Get a reference to the layout's graphics container
Set pMxDocB = Application.Document
Set pGraphicsContainer = pMxDocB.PageLayout

'Find the map frame associated with the focus map
Set pFrameElement = pGraphicsContainer.FindFrame(pMxDoc.FocusMap)
If pFrameElement Is Nothing Then Exit Sub

'Associate a SymbolBackground with the frame
Set pSymbolBackground = pFrameElement.Background
If pSymbolBackground Is Nothing Then
Set pSymbolBackground = New SymbolBackground
End If
Set pFillSymbol = New SimpleFillSymbol

'Create a color object
Dim pBackColor As IRgbColor
Set pBackColor = New RgbColor
pBackColor.RGB = RGB(237, 249, 255)

'Apply color
pFillSymbol.Color = pBackColor
pSymbolBackground.FillSymbol = pFillSymbol
pFrameElement.Background = pSymbolBackground

'Refresh map
pMxDocB.ActiveView.Refresh
End Sub

To combine these two functions in the same button click event, you will have to change the object name of pMxDoc in the second part of the code (I'll use the background color as the second part of the code) to something else, like pMxDocB (it's mentioned 3 more times after the Dim statement). This is because the two functions use different parts of IMxDocument and the code will blow up when you reset the object. Also, go ahead and comment out or remove the first refresh statement (pMxDoc.ActiveView.Refresh). Here's the combined code:
Private Sub Format_Basic_Click()
'Part 1:
'Import Florida Counties layer file

Dim pMxDoc As IMxDocument
Dim pMap As IMap
Dim pGxLayer As IGxLayer
Dim pGxFile As IGxFile

'Get the layer file
Set pGxLayer = New GxLayer
Set pGxFile = pGxLayer
pGxFile.Path = "C:\GIS\FL_Counties.lyr"

'Add the layer file to the active map
Set pMxDoc = ThisDocument
Set pMap = pMxDoc.FocusMap
pMap.AddLayer pGxLayer.Layer
'pMxDoc.ActiveView.Refresh

'Part 2:
'Change background color to blue

Dim pMxDocB As IMxDocument
Dim pActiveView As IActiveView
Dim pFillSymbol As IFillSymbol
Dim pGraphicsContainer As IGraphicsContainer
Dim pFrameElement As IFrameElement

Dim pRgbColor As IRgbColor
Dim pSymbolBackground As ISymbolBackground

'Get a reference to the layout's graphics container
Set pMxDocB = Application.Document
Set pGraphicsContainer = pMxDocB.PageLayout

'Find the map frame associated with the focus map
Set pFrameElement = pGraphicsContainer.FindFrame(pMxDoc.FocusMap)
If pFrameElement Is Nothing Then Exit Sub

'Associate a SymbolBackground with the frame
Set pSymbolBackground = pFrameElement.Background
If pSymbolBackground Is Nothing Then
Set pSymbolBackground = New SymbolBackground
End If
Set pFillSymbol = New SimpleFillSymbol

'Create a color object
Dim pBackColor As IRgbColor
Set pBackColor = New RgbColor
pBackColor.RGB = RGB(237, 249, 255)

'Apply color
pFillSymbol.Color = pBackColor
pSymbolBackground.FillSymbol = pFillSymbol
pFrameElement.Background = pSymbolBackground

'Refresh map
pMxDocB.ActiveView.Refresh
End Sub
One might ask, "Well why don't you just make a template, or set Normal.mxt to this look as a default?" My answers are, "Why not / why should I have to?" What about the other 50%
of the time when I do not want this layout? This way I can add certain elements, and even add additional buttons to add other layers or elements such as transportation or hydrography on the fly.

Reference key phrases:
How to change the data frame background color
Add layers using ArcObjects

Tuesday, August 19, 2008

NYC Public Transportation + GIS = One Happy Kid

I'm planning to fly into La Guardia and end up at West 47th and 8th Ave in Manhattan. Lauren and I have all the time in the world and are in no hurry so lets see what Google and the MTA have to offer:

MTA Bus Maps - I need to get to the west end of the airport to jump on the #47 bus which should take me to the Jackson Heights - Roosevelt Ave - 74th St - Broadway Statoin. I'm almost clueless, but it's a deffinate maybe. Getting on the E train to the 50th St - 8th Ave station. Now I just need to wake up on time, catch my connecting flight in Atlanta. Yikes!

onnyturf.com/subway - a mashup of Google Maps with overlays and information of all of the train and ferry lines in the city.

Google maps has all the bus and metro stations available if you zoom in enough. Very cool (yeah, I'm still a tourist - whateves).


View Larger Map


Status: Traveling

Friday, August 15, 2008

Chart Wizard is important

Visualization of raw data is an important skill. Check out these gangsta examples:
jamphat.com/rap


Wednesday, August 13, 2008

Where the hell is model builder?

Building and running a model has been dangled in front of me for a while, though I could never really find where the hell ESRI stuck that sucker in ArcMap.

Model builder provides an organized, methodical way to run or re-run one or a series of geoprocessing tools. Most importantly, it allows a user to easily test various scenarios in a project that uses of any number of intermediate tools or dataset manipulations.

A process can range from a simple, single iteration:
to a more complex work flow:

The basic design of a process:


To create a new model, right click on a toolset in ArcToolbox and select Model from the New menu.


Right click on the new model and choose Edit to open Model Builder.

That's it. To continue from here, simply drag and drop shapefiles and tools into the building area, set up some processes and run the model with a single click of the Run button . Select Delete Intermediate Data from the Model menu to quickly clean up the previously run session to try another set of variables. Click Auto Layout button to automatically align any tools and processes you have cluttered around the screen.