Monday, January 9, 2017

Privacy Policy - GKproggy Video Poker

Effective date: January 9, 2017

Welcome to GKproggy Video Poker ("GKproggy Video Poker", "We"). GKproggy Video Poker was designed to protect yourself and your property.

  • Our Privacy Policy explains how we collect, use, and protect information in relation to our mobile application in connection with GKproggy Video Poker, and your choices about the use of your information.
  • By using GKproggy Video Poker you understand and agree that GKproggy Video Poker is a fantasy poker card game.

1. INFORMATION WE COLLECT

If using Google Play Game Services through GKproggy Video Poker, analytics are collected by Google in-regards to usage of access keys generated for GKproggy Video Poker by Google. GKproggy Video Poker does not collect any personal information.

Log file information:

Google Play collects information for any exceptions generated by GKproggy Video Poker. Logs are provided via Google Play portal and shows device information, android version, and exception logs.

2. HOW WE USE YOUR INFORMATION

Anonymous information/analytics gathered by Google Play Game Services is used to improve stability of GKproggy Video Poker. We do not collect any personal information.

3. SHARING OF YOUR INFORMATION

We do not share any data with any third party.

4. HOW WE STORE YOUR INFORMATION

GKproggy Video Poker does not store any private information. Analytics collected by Google is not stored by GKproggy Video Poker.

5. YOUR CHOICES ABOUT YOUR INFORMATION

If you do not agree with anonymous analytics/information collected by Google services in the use of GKproggy Video Poker, you agree to uninstall GKproggy Video Poker from the device.

6. CHILDREN'S PRIVACY

GKproggy Video Poker does not knowingly collect or solicit any information from anyone under the age of 13 or knowingly allow such persons to use GKproggy Video Poker. GKproggy Video Poker is not directed at children under the age of 13.

7. HOW TO CONTACT US

If you have any questions about this Privacy Policy, please email us to apps@gkproggy.com

8. CHANGES TO OUR PRIVACY POLICY

We may modify or update this Privacy Policy from time to time, so please review it periodically. Your continued use of GKproggy Video Poker after any modification to this Privacy Policy will constitute your acceptance of such modification.

Privacy Policy - ReCam

Effective date: January 9, 2017

Welcome to ReCam ("GKproggy", "ReCam", "We"). ReCam was designed to protect yourself and your property.

  • Our Privacy Policy explains how we collect, use, and protect information in relation to our mobile application in connection with ReCam, and your choices about the use of your information.
  • By using ReCam you understand and agree that ReCam is not meant to be used to invade anyone's privacy or to be used for any other nefarious purposes.

1. INFORMATION WE COLLECT

If using Google Drive or YouTube to upload video or audio collected by ReCam, the content is made private under the user account selected when configuring recording job. Analytics are collected by Google Drive and YouTube in-regards to usage of access keys generated for ReCam by Google. ReCam does not collect any personal information.

Log file information:

Google Play collects information for any exceptions generated by ReCam. Logs are provided via Google Play portal and shows device information, android version, and exception logs.

2. HOW WE USE YOUR INFORMATION

Anonymous information/analytics gathered by Google Play, Google Drive, and YouTube is used to improve stability of ReCam. We do not collect any personal information.

3. SHARING OF YOUR INFORMATION

We do not share any data with any third party.

4. HOW WE STORE YOUR INFORMATION

ReCam only stores configuration for recording job on device in the shared preferences of mobile device in use. No personal information is stored on mobile device using ReCam. Analytics collected by Google is not stored by ReCam.

5. YOUR CHOICES ABOUT YOUR INFORMATION

If you do not agree with anonymous analytics/information collected by Google services in the use ReCam, you agree to uninstall ReCam from the device.

6. CHILDREN'S PRIVACY

ReCam does not knowingly collect or solicit any information from anyone under the age of 13 or knowingly allow such persons to use ReCam. ReCam is not directed at children under the age of 13.

7. HOW TO CONTACT US

If you have any questions about this Privacy Policy, please email us to apps@gkproggy.com

8. CHANGES TO OUR PRIVACY POLICY

We may modify or update this Privacy Policy from time to time, so please review it periodically. Your continued use of ReCam after any modification to this Privacy Policy will constitute your acceptance of such modification.

Saturday, June 18, 2016

ReCam 1.8 is out!

Many great optimization and new features!

It has been a while since my last update, but it brings me great pleasure to release this update
Release Notes:
  • File path of saved files now appear on in ReCam's File Browser
  • Updated UI problems with Android Marshmallow.
  • Fixed issue with scheduling on Android Marshmallow when device is asleep (Power saving mode).
  • Share Option available to content. (Long press on files on the ReCam file browser view and select share)
  • Storage Location for saving to YouTube and Google Drive. Google Play Services needs to be installed from Google Play Store in order to get Option.

It is easy to automatically upload videos after recording. Just select the option YouTube or Google Drive under the storage location, pick the account, and content will be uploaded when recording is finished. Once upload is done, the file is removed from device, this way you keep precious free space. All the content is private on initial upload to either services. To make public, just log into YouTube or Google Drive and set the content up for public viewing. FYI, on initial setup of YouTube or Google Drive, Google will confirm permissions with you to allow ReCam to upload on your behalf.

Happy Recording!

Download on Google Play!

Free (10 sec. Recording limit): Premium:

Thursday, May 14, 2015

ReCam Updated!

ReCam has been updated with the new feature to Record on Demand! Spy lovers rejoice! Just pull out your phone and hit start recording. Once the recording begins, you can continue to use your phone incognito ;). You can also place the device on the table or in some hidden location. What you record is all up to you. Very good for keeping an eye on your property and surroundings.

In addition, UI has been improved.

Check it out on Google Play!

Pro Version also Available!

Monday, March 2, 2015

ReCam v1.0 Released!

Ever wanted to use your phone or tablet to record Video or Audio at a certain time for a few seconds or minutes without you pressing camera and record? ReCam is there to help. ReCam gives you the ability to use your mobile or tablet as an automated recording device. You can set various schedules with varying duration. Recording jobs will run in the background which means you can still use your device even if a recording is in progress. You can schedule recordings to execute once or repeat every day or week.

Install the free Demo version now available at on Google Play:

The full-version is also available on Google Play

Wednesday, October 22, 2014

Java - Get IndexOf String of an Exact Word

Been a while since I posted but I thought this would be a good little piece of code to give you the index of an exact word in a large string. I found the need in this because I was parsing command-line output.

Pattern pattern = Pattern.compile("\\bbe\\b");
Matcher matcher = pattern.matcher("Today is a good day because I will be going to the park.");

if(!matcher.find())
{
    return -1;
}
int index = matcher.start();

The result will ensure not to give you the index of 'be' in because and actually give you the exact 'be' in the String. If not found, return -1. Hope this helps!

Thursday, February 20, 2014

PDF to SVG - Java

I have been working with SVG formats recently. Mainly, trying to find a decent swing component for creating and modifying SVGs. As a result of such escapade, I decided to write a PDF to SVG converter. Now, I haven't fully tested it, but with the PDFs I have tried, it converted successfully.

The libraries I used were Batik 1.7 and PDF-Renderer v1.0.5

Here is My Main

public class ConversionMain
{
    public ConversionMain()
    {
        File pdf = new File("ss12.pdf");
        PDFUtility.PDF_TO_SVG(pdf);
    }

    public static void main(String[] args)
    {
        new ConversionMain();
    }
}

Here is my PDFUtility function for taking PDF, reading it and then converting to SVG

public class PDFUtility
{
    public static void PDF_TO_SVG(File pdfFile)
    {
        try
        {
            RandomAccessFile raf = new RandomAccessFile(pdfFile, "r");
            FileChannel channel = raf.getChannel();
            ByteBuffer buf = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size());
            PDFFile pdf = new PDFFile(buf);



            DOMImplementation domImp = GenericDOMImplementation.getDOMImplementation();
            for (int i = 1; i <= pdf.getNumPages(); i++)
            {
                PDFPage page = pdf.getPage(i);
                // image dimensions
                int width = (int) page.getWidth();  //Can be changed to whatever you like
                int height = (int) page.getHeight();

                Rectangle rect = new Rectangle(0, 0, (int) page.getBBox().getWidth(), (int) page.getBBox().getHeight());
                Image image = page.getImage(width, height, rect, null, true, true);

                String svgNS = "http://www.w3.org/2000/svg";
                Document document = domImp.createDocument(svgNS, "svg", null);

                SVGGraphics2D svgGenerator = new SVGGraphics2D(document);
                Graphics graphics = svgGenerator.create();
                graphics.drawImage(image, 0, 0, null);

                boolean userCSS = true;
                FileOutputStream fos = new FileOutputStream(new File("Page " + i + ".svg"));

                Writer out = new OutputStreamWriter(fos);

                svgGenerator.stream(out, userCSS);
            }
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }

    }
}

Try it out and let me know what you think

Thanks!