Saturday, January 30, 2010

Just a simple test of whether XCode is working properly on my Mac and if the iPhone simulator is working…. Objective C is very weird (at least for someone with a C++ background – C# feels like a natural extension of my C++ skills – obj C…. not so much!)

It uses a web-service to retrieve LIDAR data as a profile image (Webservice is LIDARServer a product from QCoherent). The images were then made into a video and then displayed in the SilverLight version of Bing Maps. What is very cool is the way in which they managed to get the video to sync with the path of the video in Bing Maps.

What's SIKULI?

Sikuli is a visual technology to search and automate graphical user interfaces (GUI) using images (screenshots). The first release of Sikuli contains Sikuli Script, a visual scripting API for Jython, and Sikuli IDE, an integrated development environment for writing visual scripts with screenshots easily. Sikuli Script automates anything you see on the screen without internal API's support. You can programmatically control a web page, a desktop application running on Windows/Linux/Mac OS X, or even an iphone application running in an emulator.

Thursday, January 28, 2010

Transparent data encryption (TDE) performs real-time I/O encryption and decryption of the data and log files. The encryption uses a database encryption key (DEK), which is stored in the database boot record for availability during recovery. TDE protects data "at rest", meaning the data and log files. It provides the ability to comply with many laws, regulations, and guidelines established in various industries. This enables software developers to encrypt data by using AES and 3DES encryption algorithms without changing existing applications.

Tuesday, January 26, 2010

I found ASP.Net was throwing in a style=”display:inline-block” on some of my elements. This style element works fine in IE – but was hosing up the display of content in Chrome and FireFox. Turns out that ASP.Net automatically injects that style element anytime you set the width or height on an ASP.Net control.

Easy and recommended fix: remove the height and width being set on the control and instead use a CSS style to assign the dimensions.

loadTwitterListFeedFailed is the method that is called when an error is encountered while making the AJAX call to the provided URL.

Important Cross-Site Ajax information when using Twitter API.

If you use the Twitter API to extract your feed as a JSON request, you will find that if you use the Twitter specified url (which will look like this: “http://api.twitter.com/1/rockyMtnRajah/lists/ccd-twitters/statuses.json”) with the makeAjaxCall method, you will get data back in Internet Explorer but not in FireFox and Chrome. The reason is that FireFox and Chrome will not allow you to make cross-site AJAX calls. To get around this issue, Twitter provides you with a way to specify the call-back method. You do this appending “?callback=?” to the URL. Once you do this – your code should work in all 3 of the browsers. (JQuery takes care of setting the correct callback name – for some reason I could not get “callback=loadTwitterListFeed” to work)

On CodePlex.com, we deploy every three weeks using five week deployment cycles, as shown below. We spend approximately two weeks of new feature work, with one week of bug fixing/ course correction/ adding more work. Next, we cut the Release Candidate (RC), where we fork the code, so the test team can start the full test pass (regression testing) on the RC bits, and the devs can start new feature work on the "Main" code branch. If we find bugs in the RC, we fix both the RC branch and the Main branch.

Team organization

Besides our three week deployments, the biggest advantage of Agile to me, as the Program Manager, is that we all sit in one team room, with the idea being that the most effective means of communication is key. Got a question? Ask the room. Never be blocked due to communication.

As shown below, all the devs sit together at the pairing stations (to the right), and over on the left is where the test team sits. A few months after taking this photo, I changed seats with the development lead so that I could face the corner. I'm a very visual person, so sitting in the corner is less distracting for me. Just like our feature designs, we even apply the "course correction" concept to our own internal processes, like making this desk change tweak.

Codes for forwarding calls to your ATT phone to another destination number based on the status of your cell phone.

*004* is a command that is used to set Forwarding, Busy, and No Answer, all at once.

*004*1[Destination Phone Number]*11# (Then press Talk or Send)

Individual Settings based on Phone Status

Forward All Calls command prefix: *21* Activate: *21*1[Destination Phone Number]*11# (Then press Talk or Send) Cancel & Retain: *21*11# (Then press Talk or Send) this option remembers the number, but disables forwarding Re-establish: *21*11# (Then press Talk or Send) this option engages forwarding to the last number (notice this is just a toggle command Cancel & Forget: ##21*11# (Then press Talk or Send) Disable forwarding, and forget the last number used to forward Status: *#21*11# (Then press Talk or Send) this sends you back status of your forwarding number

Forward if no answer: Ring for 15 (see the 15 at the end of the activate command) seconds, and then forwards to destination number. Activate: *61*1[Destination Phone Number]*11*15#Cancel & Retain: #61*11#Re-establish: *61*11#Cancel & Forget: ##61*11#Status: *#61*11#

Forward If Unreachable: (When you phone is off, or out of a service area) Activate: *62*1[Destination Phone Number]*11#Cancel & Retain: #62*11#Re-establish: *62*11#Cancel & Forget: ##62*11#Status: *#62*11#

Friday, January 15, 2010

I was involved with the development of the very first version of RoadTracker from GeoEye for FeatureAnalyst (I provided the GeoEye engineers assistance in developing their plugin for FeatureAnalyst).

This month – they released version 2.0 of their awesome plugin. I am sure they have added some great new features – unfortunately I dont have a license to ArcGIS to be able to take it for a spin.

According to the press-release:The upgraded application, functional on any road surface type using either panchromatic or multi-spectral imagery, accelerates the collection of roads and other linear features from satellite or aerial imagery by up to a factor of four. This tool also includes automatic feature attribution and other smart editing capabilities that greatly improve speed, accuracy and workflow when collecting map-quality linear features.

Stored Procedures never use the sp_ because this is a known SQL Server performance problem

Stored Procedures are named up_NOUN_VERB such as up_User_Insert or up_User_Search or up_User_Delete, not up_Delete_User or up_DeleteUser or up_UserDelete.

Triggers are named tr_TABLE_ACTION such as tb_Users_UpdateSecurity, not tb_UpdateUserSecurity

Index names don’t really matter. But if we want to conform them we use idx_TABLE_TYPE_COLUMNS like idx_Users_Clustered_LastNameFirstName. If the number of columns is too long, then idx_Users_Clustered_001

There are special rules especially for cross reference tables.

Names should include the parent table’s name

Names should include the static term “cross”

Names should include the child table’s name

They always have a primary key called CrossId

Many to One = tb_Groups_cross_User (in all reality, this should never happen – use One to Many).