Wednesday, March 15, 2017

Moving


I will be posting future work to my own website from now on.


In order to keep more control of my pictures, videos, files, etc, I will be posting everything on my own website only. It is located at http://yingguo.solutions/projects. This will be the last post I make here.

Wednesday, November 2, 2016


HALLOWEEN CANDY DISPENSER
I have not updated for a while. So the last project I worked on a Halloween Candy dispenser that can sit at the bottom of our drive way and regulate the amount of candy it gives out.




Everything starts with an idea:
"We live on a hill.... Would sure hate for all that potential energy of the candies sitting in my house to go to waste.... Maybe a better version of https://www.youtube.com/watch?v=_dIgq55GeBI"






End Product:
It took me 7 days and here is what it looks like.





Halloween Night Video 1 with a Pirate


Halloween Night Video 2


Halloween Night Video 3


The Process:
At first, I had to create the C program to read the bend sensor with an ADC(analog to digital converter)chip (MCP3208) on a Raspberry Pi. 

Then I made my program to control the servos while reading input from the bend sensor


I mounted everything as a test


Wire up a Easy-button to trigger the process



Testing it with anti-jam v1 logic without Easy Button by myself.


Kid testing it with anti-jam v1 logic. This is when I realized I needed an anti jam logic
(before the second feeding servo was in place)


Added a second feeding servo, fine tuned some control logic
mounted it to the back of the golf cart for easy transportation/setup.


Lesson learned:

  1. Assume it will be 90 degrees and hot. Raspberry Pi with a taped enclosure is bad... I zip locked some ice and placed it next to the CPU... Need a massive fan next time.
  2. Best troll for Halloween is the be direct with people. Everyone thought pressing the button would shock/scare/mess with them... All I did was give them candy.
  3. Need more lights.
  4. The sign and the promise of better candy actually increased the number of kid (mostly under 10) to walk up the hill.
  5. Nerds are popular candy here.

Saturday, January 17, 2015

Project "Lazy BBQing": Step 4 Graphing, Case design and Food

So I have not updated this in a while. But i got some excellent results.

First, I have the PID tuned very nicely and used google charts to draw the graph


I simplified the status screen


I enclosed the stuff in a Lego Box


I even make a version that works with electric hot plates. I switched over to Solid State Relays instead of the router speed controller.


Finally, the food


Next step switch over to using cheaper probes and using easier to find parts.

Project "Lazy BBQing": Step 3 Making a fan/turning

Created a mount for the fan to go onto the Big Green Egg with manual adjustable flow rate control.
Used roof flashing and a pair of aluminium cutters








So did 2 test runs with the green egg.

Setup:


Run 1: Hold temp 180*F - top vent was open too much, couldn't cool down the egg to sub 200. Also temp probe was mounted too low so there were a lot of fluctuations in the reading.


Run 2: Hold temp 300*F - almost perfect


Next temp going to grill with it. Make sure it all works.

Also want to increase the sample time to .5 second or .25 seconds to get a smoother curve.


Friday, November 28, 2014

Project "Lazy BBQing": Step 2 - Remote access



Install TightVNC on raspberry pi, a viewer on my tablet and an set TightVNC as a autostart up. Log sensor temp to unique log files grouped by start up time.
Make a pizza and watch it all work.
Not bad for someone with a dumb phone.

Project "Lazy BBQing" - Step 1 - Measure temps

Project "Lazy BBQing" step 1 complete: Reading temp with a Raspberry Pi. Ever wonder why it is a bad idea to touch a soldering iron? Because it is 520+ Degrees F.


 

Sunday, November 23, 2014

Parsing Rom Packs to extract US verified good ones.

Reference for later to process rom packs and getting all the US verified good ones.
US: U in a () could be (JU), (U), (EJU), etc
Verified good: [!]

First unpack all your roms into the same directory.

Second, create a list of all the files in the directory in a text file by running the following command in CMD
Dir /B /O:N >FullList.txt

Regex find anything that has ( + U + ! by running the following command in CMD
FindStr /R ".*(.*U.*!.*" "FullList.txt" > USGood.txt

Create a dir under the current dir called USGOOD

Copy the files into USGOOD by running the following command in CMD
C:\Users\yingguo\Desktop\N64\N64 Extracts>for /f "delims=" %x in (USGood.txt) do copy "%x" "USGOOD\%x" /y

Around 40 duplicates out of 3000 roms for the N64 rom pack.



007 - The World is Not Enough (U) [!].z64
1080 Snowboarding (JU) (M2) [!].z64
AeroFighters Assault (U) [!].z64
AeroGauge (U) [!].z64
Aidyn Chronicles - The First Mage (U) [!].z64
All Star Tennis '99 (U) [!].z64
All-Star Baseball 2000 (U) [!].z64
All-Star Baseball 2001 (U) [!].z64
All-Star Baseball '99 (U) [!].z64
Armorines - Project S.W.A.R.M. (U) [!].z64
Army Men - Air Combat (U) [!].z64
Army Men - Sarge's Heroes (U) [!].z64
Army Men - Sarge's Heroes 2 (U) [!].z64
Asteroids Hyper 64 (U) [!].z64
Automobili Lamborghini (U) [!].z64
Banjo-Kazooie (U) (V1.0) [!].z64
Banjo-Kazooie (U) (V1.1) [!].z64
Banjo-Tooie (U) [!].z64
Bassmasters 2000 (U) [!].z64
Batman Beyond - Return of the Joker (U) [!].z64
BattleTanx - Global Assault (U) [!].z64
BattleTanx (U) [!].z64
Battlezone - Rise of the Black Dogs (U) [!].z64
Beetle Adventure Racing! (U) (M3) [!].z64
Big Mountain 2000 (U) [!].z64
Bio F.R.E.A.K.S. (U) [!].z64
Blast Corps (U) (V1.0) [!].z64
Blast Corps (U) (V1.1) [!].z64
Blues Brothers 2000 (U) [!].z64
Body Harvest (U) [!].z64
Bomberman 64 - The Second Attack! (U) [!].z64
Bomberman 64 (U) [!].z64
Bomberman Hero (U) [!].z64
Bottom of the 9th (U) [!].z64
Brunswick Circuit Pro Bowling (U) [!].z64
Buck Bumble (U) [!].z64
Bug's Life, A (U) [!].z64
Bust-A-Move 2 - Arcade Edition (U) [!].z64
Bust-A-Move '99 (U) [!].z64
California Speed (U) [!].z64
Carmageddon 64 (U) [!].z64
Castlevania - Legacy of Darkness (U) [!].z64
Castlevania (U) (V1.0) [!].z64
Castlevania (U) (V1.2) [!].z64
Chameleon Twist (U) [!].z64
Chameleon Twist 2 (U) [!].z64
Charlie Blast's Territory (U) [!].z64
Chopper Attack (U) [!].z64
Clay Fighter - Sculptor's Cut (U) [!].z64
Clay Fighter 63 1-3 (U) [!].z64
Command & Conquer (U) [!].z64
Conker's Bad Fur Day (U) [!].z64
Cruis'n Exotica (U) [!].z64
Cruis'n USA (U) (V1.0) [!].z64
Cruis'n USA (U) (V1.1) [!].z64
Cruis'n USA (U) (V1.2) [!].z64
Cruis'n World (U) [!].z64
CyberTiger (U) [!].z64
Dark Rift (U) [!].z64
Deadly Arts (U) [!].z64
Destruction Derby 64 (U) [!].z64
Diddy Kong Racing (U) (M2) (V1.0) [!].z64
Diddy Kong Racing (U) (M2) (V1.1) [!].z64
Disney's Donald Duck - Goin' Quackers (U) [!].z64
Disney's Tarzan (U) [!].z64
Donkey Kong 64 (U) (Kiosk Demo) [!].z64
Donkey Kong 64 (U) [!].z64
Doom 64 (U) (V1.0) [!].z64
Doom 64 (U) (V1.1) [!].z64
Dr. Mario 64 (U) [!].z64
Dual Heroes (U) [!].z64
Duck Dodgers Starring Daffy Duck (U) (M3) [!].z64
Duke Nukem - ZER0 H0UR (U) [!].z64
Duke Nukem 64 (U) [!].z64
Earthworm Jim 3D (U) [!].z64
ECW Hardcore Revolution (U) [!].z64
Elmo's Letter Adventure (U) [!].z64
Elmo's Number Journey (U) [!].z64
Excitebike 64 (U) (Kiosk Demo) [!].z64
Excitebike 64 (U) [!].z64
Extreme-G (U) [!].z64
Extreme-G XG2 (U) [!].z64
F-1 Pole Position 64 (U) (M3) [!].z64
F-1 World Grand Prix (U) [!].z64
fcube.v64
FIFA - Road to World Cup 98 (U) (M7) [!].z64
FIFA 99 (U) [!].z64
FIFA Soccer 64 (U) (M3) [!].z64
Fighter Destiny 2 (U) [!].z64
Fighter's Destiny (U) [!].z64
Fighting Force 64 (U) [!].z64
Flying Dragon (U) [!].z64
Forsaken 64 (U) [!].z64
Fox Sports College Hoops '99 (U) [!].z64
Frogger 2 (U) (Alpha) [!].z64
F-ZERO X (U) [!].z64
GameShark Pro V3.3 (Apr 2000) (Unl) [!].z64
GameShark Pro V3.3 (Mar 2000) (Unl) [!].z64
Gauntlet Legends (U) [!].z64
Gex 3 - Deep Cover Gecko (U) [!].z64
Gex 64 - Enter the Gecko (U) [!].z64
Glover (U) [!].z64
Goemon's Great Adventure (U) [!].z64
Golden Nugget 64 (U) [!].z64
GoldenEye 007 (U) [!].z64
GT 64 - Championship Edition (U) [!].z64
Harvest Moon 64 (U) [!].z64
Hercules - The Legendary Journeys (U) [!].z64
Hexen (U) [!].z64
Hey You, Pikachu! (U) [!].z64
Hot Wheels Turbo Racing (U) [!].z64
Hybrid Heaven (U) [!].z64
Hydro Thunder (U) [!].z64
Iggy's Reckin' Balls (U) [!].z64
Indiana Jones and the Infernal Machine (U) [!].z64
Indy Racing 2000 (U) [!].z64
In-Fisherman Bass Hunter 64 (U) [!].z64
International Superstar Soccer 2000 (U) (M2) [!].z64
International Superstar Soccer 64 (U) [!].z64
International Superstar Soccer '98 (U) [!].z64
International Track & Field 2000 (U) [!].z64
Jeopardy! (U) [!].z64
Jeremy McGrath Supercross 2000 (U) [!].z64
Jet Force Gemini (U) (Kiosk Demo) [!].z64
Jet Force Gemini (U) [!].z64
John Romero's Daikatana (U) [!].z64
Ken Griffey Jr.'s Slugfest (U) [!].z64
Killer Instinct Gold (U) (V1.0) [!].z64
Killer Instinct Gold (U) (V1.1) [!].z64
Killer Instinct Gold (U) (V1.2) [!].z64
Kirby 64 - The Crystal Shards (U) [!].z64
Knife Edge - Nose Gunner (U) [!].z64
Knockout Kings 2000 (U) [!].z64
Kobe Bryant's NBA Courtside (U) [!].z64
Legend of Zelda, The - Majora's Mask - Preview Demo (U) [!].z64
Legend of Zelda, The - Majora's Mask (U) [!].z64
Legend of Zelda, The - Ocarina of Time - Master Quest (U) (GC) [!].z64
Legend of Zelda, The - Ocarina of Time (U) (GC) [!].z64
Legend of Zelda, The - Ocarina of Time (U) (V1.0) [!].z64
Legend of Zelda, The - Ocarina of Time (U) (V1.1) [!].z64
Legend of Zelda, The - Ocarina of Time (U) (V1.2) [!].z64
LEGO Racers (U) (M10) [!].z64
Lode Runner 3-D (U) [!].z64
Mace - The Dark Age (U) [!].z64
Madden Football 64 (U) [!].z64
Madden NFL 2000 (U) [!].z64
Madden NFL 2001 (U) [!].z64
Madden NFL 2002 (U) [!].z64
Madden NFL 99 (U) [!].z64
Magical Tetris Challenge (U) [!].z64
Major League Baseball Featuring Ken Griffey Jr. (U) [!].z64
Mario Golf (U) [!].z64
Mario Kart 64 (U) [!].z64
Mario Party (U) [!].z64
Mario Party 2 (U) [!].z64
Mario Party 3 (U) [!].z64
Mario Tennis (U) [!].z64
Mega Man 64 (U) [!].z64
Mia Hamm Soccer 64 (U) (M2) [!].z64
Mickey's Speedway USA (U) [!].z64
Micro Machines 64 Turbo (U) [!].z64
Micro Machines 64 Turbo (U) [a1][!].z64
Midway's Greatest Arcade Hits Volume 1 (U) [!].z64
Mike Piazza's Strike Zone (U) [!].z64
Milo's Astro Lanes (U) [!].z64
Mischief Makers (U) [!].z64
Mission Impossible (U) [!].z64
Monaco Grand Prix (U) [!].z64
Monopoly (U) [!].z64
Monster Truck Madness 64 (U) [!].z64
Mortal Kombat 4 (U) [!].z64
Mortal Kombat Mythologies - Sub-Zero (U) [!].z64
Mortal Kombat Trilogy (U) (V1.0) [!].z64
Mortal Kombat Trilogy (U) (V1.2) [!].z64
MRC - Multi Racing Championship (U) [!].z64
Ms. Pac-Man - Maze Madness (U) [!].z64
Mystical Ninja Starring Goemon (U) [!].z64
Nagano Winter Olympics '98 (U) [!].z64
Namco Museum 64 (U) [!].z64
NASCAR 2000 (U) [!].z64
NASCAR 99 (U) [!].z64
NBA Courtside 2 - Featuring Kobe Bryant (U) [!].z64
NBA Hangtime (U) [!].z64
NBA In the Zone 2000 (U) [!].z64
NBA In the Zone '98 (U) [!].z64
NBA In the Zone '99 (U) [!].z64
NBA Jam 2000 (U) [!].z64
NBA Jam 99 (U) [!].z64
NBA Live 2000 (U) (M4) [!].z64
NBA Live 99 (U) (M5) [!].z64
NBA Showtime - NBA on NBC (U) [!].z64
New Tetris, The (U) [!].z64
NFL Blitz - Special Edition (U) [!].z64
NFL Blitz (U) [!].z64
NFL Blitz 2000 (U) [!].z64
NFL Blitz 2001 (U) [!].z64
NFL Quarterback Club 2000 (U) [!].z64
NFL Quarterback Club 2001 (U) [!].z64
NFL Quarterback Club 98 (U) [!].z64
NFL Quarterback Club 99 (U) [!].z64
NHL 99 (U) [!].z64
NHL Blades of Steel '99 (U) [!].z64
NHL Breakaway 98 (U) [!].z64
NHL Breakaway 99 (U) [!].z64
Nightmare Creatures (U) [!].z64
Nuclear Strike 64 (U) [!].z64
O.D.T. (U) (M3) [!].z64
Off Road Challenge (U) [!].z64
Ogre Battle 64 - Person of Lordly Caliber (U) [!].z64
Olympic Hockey Nagano '98 (U) [!].z64
Paper Mario (U) [!].z64
Paperboy (U) [!].z64
Penny Racers (U) [!].z64
Perfect Dark (U) (V1.0) [!].z64
Perfect Dark (U) (V1.1) [!].z64
PGA European Tour (U) [!].z64
Pilotwings 64 (U) [!].z64
Pokemon Puzzle League (U) [!].z64
Pokemon Snap (U) [!].z64
Pokemon Snap Station (U) [!].z64
Pokemon Stadium (U) (V1.0) [!].z64
Pokemon Stadium (U) (V1.1) [!].z64
Pokemon Stadium 2 (U) [!].z64
Polaris SnoCross (U) [!].z64
Power Rangers - Lightspeed Rescue (U) [!].z64
Powerpuff Girls, The - Chemical X-Traction (U) [!].z64
Quake 64 (U) [!].z64
Quake II (U) [!].z64
Quest 64 (U) [!].z64
Rally Challenge 2000 (U) [!].z64
Rampage - World Tour (U) [!].z64
Rampage 2 - Universal Tour (U) [!].z64
Rat Attack (U) (M6) [!].z64
Rayman 2 - The Great Escape (U) (M5) [!].z64
Razor Freestyle Scooter (U) [!].z64
Ready 2 Rumble Boxing - Round 2 (U) [!].z64
Ready 2 Rumble Boxing (U) [!].z64
Resident Evil 2 (U) (V1.1) [!].z64
Re-Volt (U) [!].z64
Road Rash 64 (U) [!].z64
Roadsters Trophy (U) (M3) [!].z64
Robotron 64 (U) [!].z64
Rocket - Robot on Wheels (U) [!].z64
RR64 - Ridge Racer 64 (U) [!].z64
Rugrats - Scavenger Hunt (U) [!].z64
Rugrats in Paris - The Movie (U) [!].z64
Rush 2 - Extreme Racing USA (U) [!].z64
S.C.A.R.S. (U) [!].z64
San Francisco Rush - Extreme Racing (U) (M3) [!].z64
San Francisco Rush 2049 (U) [!].z64
Scooby-Doo! - Classic Creep Capers (U) [!].z64
Shadow Man (U) [!].z64
Shadowgate 64 - Trials Of The Four Towers (U) (M2) [!].z64
Snowboard Kids (U) [!].z64
Snowboard Kids 2 (U) [!].z64
South Park - Chef's Luv Shack (U) [!].z64
South Park (U) [!].z64
South Park Rally (U) [!].z64
Space Invaders (U) [!].z64
Space Station Silicon Valley (U) [!].z64
Spider-Man (U) [!].z64
Star Fox 64 (U) (V1.0) [!].z64
Star Fox 64 (U) (V1.1) [!].z64
Star Soldier - Vanishing Earth (U) [!].z64
Star Wars - Rogue Squadron (U) (M3) [!].z64
Star Wars - Shadows of the Empire (U) (V1.0) [!].z64
Star Wars - Shadows of the Empire (U) (V1.1) [!].z64
Star Wars - Shadows of the Empire (U) (V1.2) [!].z64
Star Wars Episode I - Battle for Naboo (U) [!].z64
Star Wars Episode I - Racer (U) [!].z64
StarCraft 64 (U) [!].z64
Starshot - Space Circus Fever (U) (M3) [!].z64
Stunt Racer 64 (U) [!].z64
Super Bowling 64 (U) [!].z64
Super Mario 64 (U) [!].z64
Super Smash Bros. (U) [!].z64
Supercross 2000 (U) [!].z64
Superman (U) (M3) [!].z64
Tetrisphere (U) [!].z64
Tigger's Honey Hunt (U) [!].z64
Tom and Jerry in Fists of Furry (U) [!].z64
Tom Clancy's Rainbow Six (U) [!].z64
Tonic Trouble (U) (V1.1) [!].z64
Tony Hawk's Pro Skater (U) (V1.0) [!].z64
Tony Hawk's Pro Skater (U) (V1.1) [!].z64
Tony Hawk's Pro Skater 2 (U) [!].z64
Top Gear Hyper Bike (U) [!].z64
Top Gear Overdrive (U) [!].z64
Top Gear Rally (U) [!].z64
Top Gear Rally 2 (U) [!].z64
Toy Story 2 (U) [!].z64
Transformers - Beast Wars Transmetal (U) [!].z64
Triple Play 2000 (U) [!].z64
Turok - Dinosaur Hunter (U) (V1.0) [!].z64
Turok - Dinosaur Hunter (U) (V1.1) [!].z64
Turok - Dinosaur Hunter (U) (V1.2) [!].z64
Turok - Rage Wars (U) [!].z64
Turok 2 - Seeds of Evil (U) (Kiosk Demo) [!].z64
Turok 2 - Seeds of Evil (U) (V1.0) [!].z64
Turok 3 - Shadow of Oblivion (U) [!].z64
Twisted Edge Extreme Snowboarding (U) [!].z64
Vigilante 8 - 2nd Offense (U) [!].z64
Vigilante 8 (U) [!].z64
Virtual Chess 64 (U) (M3) [!].z64
Virtual Pool 64 (U) [!].z64
V-Rally Edition 99 (U) [!].z64
Waialae Country Club - True Golf Classics (U) (V1.0) [!].z64
Waialae Country Club - True Golf Classics (U) (V1.1) [!].z64
War Gods (U) [!].z64
Wave Race 64 (U) (V1.0) [!].z64
Wave Race 64 (U) (V1.1) [!].z64
Wayne Gretzky's 3D Hockey (U) (V1.0) [!].z64
Wayne Gretzky's 3D Hockey (U) (V1.1) [!].z64
Wayne Gretzky's 3D Hockey '98 (U) [!].z64
WCW Backstage Assault (U) [!].z64
WCW Mayhem (U) [!].z64
WCW Nitro (U) [!].z64
WCW vs. nWo - World Tour (U) (V1.0) [!].z64
WCW vs. nWo - World Tour (U) (V1.1) [!].z64
WCW-nWo Revenge (U) [!].z64
Wetrix (U) (M6) [!].z64
Wheel of Fortune (U) [!].z64
wii64.z64
WinBack - Covert Operations (U) [!].z64
Wipeout 64 (U) [!].z64
World Cup 98 (U) (M8) [!].z64
World Driver Championship (U) [!].z64
Worms - Armageddon (U) (M3) [!].z64
WWF - War Zone (U) [!].z64
WWF Attitude (U) [!].z64
WWF No Mercy (U) (V1.0) [!].z64
WWF No Mercy (U) (V1.1) [!].z64
WWF WrestleMania 2000 (U) [!].z64
Xena Warrior Princess - The Talisman of Fate (U) [!].z64
Yoshi's Story (U) (M2) [!].z64

Monday, April 28, 2014

Oracle Rownum selection using RANK BY AKA resetting ROWNum based on column(s) data change.


How to generate a row number that resets with a given column1 and column2.

So you can do a select:

RANK() OVER (PARTITION BY COLUMN1, COLUMN2 ORDER BY COLUMN1, COLUMN2 desc, COLUMN3)
from blah blah blah
where
get rid of any data you don't want.

So an example in Costpoint would be:
select
empl_id, ORG_ID,
RANK() OVER (PARTITION BY EMPL_ID, ORG_ID ORDER BY EMPL_ID,  EFFECT_DT, ORG_ID) as rownumber,
a.*
from empl_lab_info a;

If you want to see when someone had salary info and history changes group by assigned org with a rownum attached

Thursday, January 2, 2014

Deltek Time and Expense Weblogic LDAP Config with SSL

This quick screen shot and description on how to setup Weblogic LDAP connection for DELTEK Time and Expense with SSL to a non-local AD server. If you have questions feel free to contact TBS-LLC.

What we are trying to setup:
  • We are trying to connect to LDAPS:\\LDAP.GOOGLE.COM:636 
  • "LDAP" is the name of the LDAP principals account.
  • All TE users accounts resides in a AD group called TEUSER under the LDAP.GOOGLE.COM domain. 
  • AD usernames are stored in a userPrincipleUserName account with @GOOGLE.COM at the end. i.e. XXXX@GOOGLE.com
Setup Details:
  • Enter:
    •  LDAP.GOOGLE.COM into Host
    • 636 into Port
    • Principle place the Distinguished name in the form of "CN=LDAP, OU=LDAP-Service,....."
    • Principle Password into Credential
    • Click SSL Enabled
  • Make sure you USER BASE DN and USER FROM NAME FILTER are Correct
  • USER BASE DN is the top level of the tree
  • USER FROM NAME FILTER is where you establish what field you want to filter on)
    • In our case we are using the PrincipalName from MS AD 
  • The group Doesn't really matter because T&E has the LDAPHelper Weblogic authenticator.
    • You must use have the LDAPHelper authenicator in the WEBLOGIC provider or it won't work.
    •  
    •  

Java AES Encryption

Java AES Encryption (256 Bit):

Wednesday, December 11, 2013

How to get Wing War for Sega Arcade Working with MAME

This was one of my favorite Arcade games back in the day(1994). After all these years I finally got Sega Arcade - Wing War working on MAME ver 0.136 (Directions below) and took a quick video of the action. Enjoy!

Youtube Link:
https://www.youtube.com/watch?v=jsW5_YrII-I

These are the instruction I used to get Wing War for Sega Arcade working on MAME.

What you need:
  1. MAME ver. 0.136. You have to use MAME ver 0.136 and not the latest version.... 
  2. Wing War Rom 
  3. Joystick 

Steps:
  1. First download MAME ver. 0.136. http://www.mamedev.org/oldrel.html
    • I grabbed "mame0136b.exe" under Binary (Windows) 
  2. Run the "mame0136b.exe" and extracted the program to a folder on your desktop 
    • I placed it in a folder called "mame0136b" 
  3. Download Wing War Rom. It should be a 12.7MB zip file 
    • I am not going to put a link here. You can google it. 
    • Place the newly download rom zip file into mame0136b\roms folder on your desktop 
  4. Plug in your joystick and wait for the drivers to install properly. 
  5. Go into the root direct of mame0136b and run mame.exe 
  6. Once you selected the game and the rom starts, hit TAB and select "Input (this game)".
    • I mapped the following:
    • 1 Player Start - I mapped it to 1 on my keyboard
    • Coin 1 - I mapped it to 5 on my keyboard
    • P1 Button 1 - View 1
    • P1 Button 2 - Outside rear view (I use this one so I mapped it to button 4 on my joystick)
    • P1 Button 3 - View 3
    • P1 Button 4 - View 4
    • P1 Button 5 - Joystick Trigger(Button 1) to fire guns
    • P1 Button 6 - Joystick Button 2 to fire missiles
    • P1 Button 7 - Joystick Button 3 to user smoke and avoid enemy missiles
    • AD Stick X Analog - Joystick X axis (left and right)
    • AD Stick Y Analog - Joystick Y axis (up and down)
    • P1 Paddle Analog - Joystick Z axis + (Throttle control)
    • Third go back to the previous menu and select "Analog controllers". I made the following change:
    • AD Stick X Digital Speed - 4
    • AD Stick X AutoCenter Speed - 0
    • AD Stick X Reverse - On
    • AD Stick X Sensitivity - 100
    • AD Stick Y Digital Speed - 4
    • AD Stick Y AutoCenter Speed - 0
    • AD Stick Y Reverse - Off
    • AD Stick Y Sensitivity - 100
    • P1 Pedal 1 Digital Speed - 16
    • P1 Pedal 1 AutoCenter Speed - 0
    • P1 Pedal 1 Reverse - Off
    • P1 Pedal 1 Sensitivity - 100
  7. After that return to the game. 
  8. Insert 2 coins(press 5 twice) and press player 1 start(press 1).
  9. Off you go and Enjoy the game,

Monday, December 9, 2013

SAML2/ADFS and Deltek Products....

If you want to use ADFS and SAML2 authentication for Deltek Products, save yourself the headache and just don't bother at this point(12/2013). But just in case you are working with SAML2/ADFS and needs a quick reminder of which one is the "Service Provider" vs the "Identity Provider", there is a good article from Salesforce.





Tuesday, November 19, 2013

Mac -> Local PC VMware -> Hosted Server via Windows RDP

Was on a Screen Sharing with a Co-worker. He is using a Mac to run a Local Windows 2008 VM just so that he can  Remote Desktop into another Windows 2008 machines on our company network. Confused yes me too. :P


Tuesday, March 12, 2013

Oracle Regular Expressions for Parsing XML

Oracle Regular Expressions for Parsing XML


Sample SCHED_PARAM values:
1. Schedule Type='Weekly' StartDate='2013-03-11' FirstRunTime='08:00' RunEveryXWeeks='1' DaysOfWeek='32'

2. Schedule Type='MonthlyDayOfWeek' StartDate='2013-03-11' EndDate='2013-03-19' FirstRunTime='08:00' MonthlyNthOccurrence='0' MonthlyDayOfWeek='0' Months='4095'
R

Using the Regular Expression:
Expression 1:
select REGEXP_SUBSTR(REGEXP_SUBSTR(SCHED_PARAM, 'Type=''[[:alnum:]]*''', 1, 1, 'i'), '[^'']+', 1, 2) as Type from SYNCH_SCHED_DETAIL;
Returns:
1. Weekly
2. MonthlyDayOfWeek

Expression 2:
select REGEXP_SUBSTR(REGEXP_SUBSTR(SCHED_PARAM, 'StartDate=''([[:alnum:]]*\-*)*''', 1, 1, 'i'), '[^'']+', 1, 2) from SYNCH_SCHED_DETAIL;
Returns:
1. 2013-03-11
2. 2013-03-11


Expression 3:
select REGEXP_SUBSTR(REGEXP_SUBSTR(SCHED_PARAM, 'FirstRunTime=''([[:alnum:]]*\:*)*''', 1, 1, 'i'), '[^'']+', 1, 2) from SYNCH_SCHED_DETAIL;
Returns:
1. 08:00
2. 08:00


Expression 4:
select To_date(REGEXP_SUBSTR(REGEXP_SUBSTR(SCHED_PARAM, 'StartDate=''([[:alnum:]]*\-*)*''', 1, 1, 'i'), '[^'']+', 1, 2) || ' ' || REGEXP_SUBSTR(REGEXP_SUBSTR(SCHED_PARAM, 'FirstRunTime=''([[:alnum:]]*\:*)*''', 1, 1, 'i'), '[^'']+', 1, 2), 'YYYY-MM-DD HH24:MI') from SYNCH_SCHED_DETAIL;

Will return an oracle date value for the Start Date + First Run Time

I am sure there are better way to code the Reg Ex.
Please leave me comment below if you have a better way

Monday, March 11, 2013

Coffitivity Huge Thumb Up

I been using Coffitivity + Slacker on my laptop. I needed an extra boost from the DST change over. So far I high recommend it. Basically a "mix of calm and commotion in an environment like a coffee house is proven to be just what you need to get those creative juices flowing."

http://www.coffitivity.com/
+
http://www.slacker.com/

Wednesday, September 19, 2012

English in CS Terms either...or vs neither...nor

I always had problems with either...or vs neither...nor. Being a CS major I decides to put this into terms I can understand.

either...or = (a not b) or (b not a)
neither...nor = (not a and not b)

Wednesday, August 18, 2010

Toronto Trip

So after going to Toronto for the weekend I have some good recommendations.

  1. If you are going to stay downtown use the public transit system's all you can ride pass. The price is 10 Canadian dollar for 1 adult on weekdays and 2 adults on weekend. I think you can have up to 4 kids for free too (don't quote me on it).
  2. Stop by Caffe Volo in Toronto. We stumbled on to this cafe and the selection of local brew was fantastic.
  3. Caffe Volo is located in the pot heaven of Toronto. They sold everything but the seeds and weed. They had a section teaching you how to grow your own. Also we saw a smoking lounge where the rule is you can smoke here but you must bring your own weed...
  4. Stop by Casa Loma. It is worth the money. In fact going up the tower to see the Toronto skyline is worth it by itself.
  5. If you are afraid of heights like I am, you should visit the CN tower without getting the Skypod addition. It is way too scary up there. The glass is curved in so you can almost look straight down. Also, to exit from the normal viewing area, you have to walk by the glass floor. It was something I could have done without.
  6. Chinatown in Toronto is overrated. The food is decent. I personally think NY and SF has better food.
  7. Take a ferry ride. I wish we had done this. The water view of the skyline should be very nice.
  8. Go to Kensington Marker on Sundays. Very neat shop around that aread. http://www.kensington-market.ca
  9. Finally, don't use your credit card the fees are outrageous. Instead if you are a Bank of American account holder you can directly withdraw money from Scotibank's ATM at very good exchange rates. Listed below are some international banks you can use.
Bank NameCoverage Area
Bank of AmericaNorth America
BarclaysUnited Kingdom
BNP ParibasFrance
China Construction BankChina
Deutsche Bank 24Germany
Please note: International transaction fees are not waived at Deutsche Bank in Italy.
Santander SerfinMexico
ScotiabankCanada
Westpac Bank Australia and New Zealand

Tuesday, June 1, 2010

Tips for the road warrior who wants to stay fit.

Get yourself a new pair of Vibram Five Finger shoes. Why? 1. You don't have to pack white socks. 2. They take 1/2 as much room as your normal sneakers. 3. I dare you to run more than a mile with these on your first day. 4. You will have a better running form. 5. Your calf muscles will love you. 6. Your heels will love you even more.

Tuesday, May 25, 2010

How to do a Costpoint platform change

Today, I am doing a Platform change. So I thought I'd share with you the approach we take on doing these projects.
1. Source is Oracle, Target is Microsoft SQL Server

2. Source is Microsoft SQL Server, Target is Oracle.

Case  1: Oracle to Microsoft SQL Server
  1. Get a Copy of the MSS database that is similar in version and patch level as your source.
  2. Compare the table, column and column positions of the Oracle and MSS database.
  3. Create the columns that are missing in the MSS database only. (If there are more columns in the source those are usually Nullable).
  4. Create a Linked Server in Microsoft SQL Server using MSORA OLEDB.
  5. Truncate all the tables in MSS.(Do not drop them)
  6. Create any custom table you wish.
  7. Back up you blank database. It will save you so much time next time around.
  8. Disable all the triggers.
  9. Insert all the data via linked server.
  10. Copy over those table with Long/text data types via DTS
  11. Enable all the triggers.
  12. Do a row count in Oracle and MSS.
  13. Make sure they match up and you are done.
Case  2: Microsoft SQL Server to Oracle
  1. The only difference is that you will be using a ODBC + HS link to connect to the MSS Server.
  2. Also I wrote a stored procedure to copy over long and text fields in oracle.


The reason why people switch.
  1. People go to Oracle because SQL server database is usually bigger. This has to do with the way MSS Costpoint database deal with a few of the datatypes. I.e. char instead of varchar
  2. People go with SQL Server because it costs less. If you have a 6gb database, does it really matter if you save 2gb?
I will add more detail to each step in the coming weeks.

Friday, May 14, 2010

How to get pass security at Chicago faster.

If you are flying out if Chicago on United, do the mobile check in. They let you use the executive line. They don't have a reader at the regular security lines.