Posts

Simple GitHub Issue Export using Python

We needed a way to export GitHub issues and comments to import into Jira. This Python example easily exports these via the Rest api, and is quite simple to customize to suit your needs. Create a Personal Access Token and use this in place of the one in line 10 (after the word "token" of course). You'll need to pick through the GitHub Api if you want more things like attachments. I'm also a big fan of the Google Advanced Rest Client to review the data. Interesting coincident that M$ is in talks to buy GitHub ... import requests import json import csv api_url = 'https://github.ibm.com/api/v3/' repo = 'repos/CloudBI/reports' headers = { 'Accept': 'application/vnd.github.v3+json', 'Authorization': 'token c0ns1d3rg3tt1ingy0ur0wn' } # this will return the number pages of issues to return def get_num_pages(): r = requests.request("GET", api_url + repo, headers=headers) if r.status_co

ETL - Using Python to push data to Salesforce Analytics

The problem: develop a method to automate the process of pushing data from our Netezza reporting warehouse to Salesforce Analytics for consolidated reporting. In my quest to solve this problem, I created the Python script below. The commented yum & pip installs at the top of the script are required bits to make it work. Sharing the data is outside the scope of this script, but it is easily solved by first creating a data set and sharing it out then using the script to overwrite it. # sudo yum install python-devel # sudo pip install ibm_db # sudo pip install simple_salesforce # sudo pip install jaydebeapi from simple_salesforce import Salesforce import requests import jaydebeapi import sys import csv import base64 import os import tempfile import math # set up some variables debug = True fname = "./data/temp.csv" errlog = "./log/errorlog.txt" metadata = "./metadata/SfdcMedalliaMetadata.json" driver = "./drivers/nzjdbc.jar" # Salesf

Creating SCSM tickets using SMLets and ASP.NET

Image
English: This is a photo of a room full of computers all showing the same windows error message at the Nanyang Technological University in Singapore (Photo credit: Wikipedia ) I was trying to figure out how we could leverage ASP.Net to create more functional forms for end user ticket creation in SCSM. Many would agree that the self service portal is a bit restricted and we needed a method for our Apps group to submit Change Requests that would comply with SOX. I found a few examples around the net regarding the power of SMLets and PowerShell and eventually found that there are classes available in .Net for leveraging this. My first major hurdle was determining why I kept getting a strange error message " Unable to access Windows PowerShell PowerShellEngine registry information. "   when trying to replicate these efforts . My errors seemed to stem from trying to use assemblies built with prior versions of the .Net library, and instead of writing a wrapper of so

Crystal Reports, Advanced SQL Commands and Parameters

Image
Crystal Reports Pic 4 - Select Data Tables (Photo credit: wmharshana ) I've not written a Crystal Report that required a more advanced query in quite a while, and had a need to union two selects and pass in a parameter to both queries. I initially just wrote the Union query and attempted to place my {?CustomerName} in both places using the "=" comparison operator, which worked. When I wanted to add the ability for the user to only add a portion of the customer name in the query and use the LIKE operator, Crystal had some issues and thought I was trying to pass a column name or some such trash. Eventually I found an article that suggested the use of a DECLARE and SET to hold the parameter that Crystal passes, then hand it off to the query. This also failed until I wrapped the entire UNION in a SELECT and passed in the parameter once. Yay! DECLARE @Cust VarChar(200) SET @Cust = '{?CustomerName}' SELECT * FROM ( SELECT Name, Address, City, State, Zi

Find GridView Cell Values on RowCommand with Paging Enabled

This was confounding me this morning until I found this  post on the ASP.NET forums. I was setting up a GridView and needed to check the values of a couple of cells before I let users click a button in an ItemTemplate. I initially used the Container.DateItemIndex method to determine which row they clicked but quickly found out that this only works without Paging Enabled as noted on the MSDN . All this does is tell you the index of the data, but since the GridView index needs to be reset on each page (0-your page size) you'll never find your values. Instead set is thusly: You'll be able to easily access your cells then: Dim index As Integer = Int32.Parse(e.CommandArgument.ToString()) Dim row As GridViewRow = GV_OrderHeaders.Rows(index) Dim ifs As String = DirectCast(row.FindControl("lblIfsId"), Label).Text Dim oid As String = DirectCast(row.Fi

Mexicali Chili

Image
1 lb lean ground beef 1 medium onion, diced 1 14oz can chili beans 1 16oz jar corn salsa 3 large Idaho potatoes, diced 3 cups water 2 cups cold milk 2 tbl corn starch Brown beef, season with 1/2 tsp cumin, 1/2 tsp salt, 1/2 tsp chili powder if desired. Sweat onion in 1 tbl butter separately. Mix beef, onion, beans, salsa, potatoes and water in large pot. Bring to a boil, then cover and simmer for 30 minutes. Mix milk and cornstarch in small bowl. When potatoes are tender, slowly stir in milk mixture. Mix for a minute or so as the chili thickens. Serve with diced avacado, tomato, and maybe some feta? Enjoy, we did!

Crystal Reports Server 2008, WACS and AD Auth on 2008 Domain

Image
Image via CrunchBase This was kicking my butt the past couple of days. Up to this point, I'd simply been using the server to schedule and email reports out to people. What I wanted was to allow users to log in with their AD credentials, browse InfoView and run their own reports. Simple, right? This is how I did it. Create a service account in AD. This account doesn't need elevated privileges  Tick the User cannot change password and Password never expires boxes. In my example the account is svc_crs . Use setspn.exe to create the Service Principal Name. Run the command on a DC in a command prompt with elevated privileges. Here is more info on setspn . The convention is setspn -a MySpnName/MySvcAcct.Domain.Com MySvcAcct . In my environment I used setspn.exe -a  CrystalSvr/svc_crs.NETWORK.INTERNAL svc_crs . Open your service account Account Properties in Active Directory Users and Computers , select the Delegation tab, and change delegation to Trust this user for