RSS

Tag Archives: app

The AntiSocial Network

Scientific American reports the best use of technology since the TV Remote. Image

The Cloak app, for example, collects location info from Instagram and Foursquare to let you know where your so-called “friends” are—so tat you never have to see them. It scans their most recent check-ins, and plots those locations on a map. It can even alert you when the guy you owe twenty bucks to is nearby.

Cloak developers Brian Moore and Chris Baker say they came up with the idea after too many chance encounters with ex-girlfriends. They plan to expand Cloak to interface with other apps, including Facebook. And they insist their feelings won’t be hurt if they suddenly stop bumping into their Cloak-using friends.

—Larry Greenemeier, Mar 28, 2014

Image

Your Checklist to see if you might benefit from the Cloak App:

  • Do you retreat from others in anticipation of rejection?
  • Are you preoccupied with being rejected or criticized in social situations?
  • Do you fear embarrassment when participating in new activities?
  • Do you have poor self-image or feelings of social ineptitude?
  • Do others think you are self-involved and unfriendly?
  • Do you Create elaborate fantasy lives in your head?

If you agree with two or more of the above, you may be ready to hide away from friends and relations!

Just Click the App Icon and start avoiding today.Image

 
2 Comments

Posted by on March 28, 2014 in Uncategorized

 

Tags: , , , , , ,

A Book and an App

Image

Bring just one pencil

The Book

I’m enjoying a new (to me) book over the holiday break: The Mysterious Benedict Society, about several children- but one in particular – who are recruited by the odd, reclusive, Mr. Benedict. Their recruitment, itself, is a bit of an adventure. Each responded to this strange add appearing in the newspaper.

There are tests within tests to separate the wheat from the chaff. A test that’s a puzzle, a maze, tests of resourcefulness and honesty. And, when all that is over, the real work is just begun.

I originally bought this book for my son, who read a few pages and then decided that there wasn’t enough action in it and set it aside. But, seriously,  buying for Harry is just cover for me to get whatever I want regardless of the age of the target audience, so I wanted to read it from the start.

I’ve heard of people doing book clubs specializing in just children’s books and it’s no wonder. The youth – young adult book market has exploded over the past decade or more as every author vies to be the next JK Rowling. Sure, it’s put a lot of crap into circulation, but there are also a lot of extraordinarily creative authors getting published who may not have seemed worth the risk fifteen years ago.

I’ve only just started the Benedict Society this weekend, so I can hardly give a fair review, but as far as I’ve read, I’m enraptured and can’t help but to want to spend my days lying in front of the fire reading.

The App

Image

Big Trak

The app I found today is called ‘Cargo Bot.’ It’s a puzzle game that introduces kids to programming algorithms in a way that they can immediately see working and grasp the concepts. I recommend it for any child (or even adult) interested in learning how computers think. It’s a little reminiscent of the late 70s programmable tank toy, Big Trak, except this app is actually fun for more than two minutes.

Imagine all the fun you can have delivering apples to your dad with your own Big Trak and transported (sold separately)! I thought this thing was the bee’s knees back then, but didn’t ever get my hands on one( it sold for a whopping $43) until much later when my friend Kevin and I were talking and he mentioned that he still had one.

 
1 Comment

Posted by on December 14, 2013 in Uncategorized

 

Tags: , , , , , , , , ,

Have I mentioned that I’m cheap?

Either this is a really great app, or it is a really well-produced trailer. $2.99 is on the high side of price for an app that I have no idea if I’d actually like, but check this out. And if you do download it, let me know how it is to play. Does it have the same great soundtrack as the trailer?

 
1 Comment

Posted by on October 14, 2013 in Uncategorized

 

Tags: , , , , ,

Stack Overflow hates me

ImageI tend to ask a lot of questions that stack overflow considers useless. I understand the format of the site – it’s a place where people can ask questions that can be answered accurately and with references. An easy way to get your question flagged is to ask for a recommendation for something – a question that can only be answered by opinion and therefore does not have a discrete, ‘provable’ answer.

However, I still want my questions answered. I really do need help and I’m not sure where else to turn to get it (to reach such a well experienced audience).

What I am dealing with is:

ImageI have a small C++ program that I have developed in Xcode. Things are pretty close to working, but I would like to take my program and wrap it in a more attractive user  interface. Somehow, I thought I was just needing to learn some more C++. I thought that was all in ‘book 2’ or something. But I am getting the impression that I need another program and I have no idea where to start.

(The layers of programming are amazingly deep)

So, please write if anyone out there knows of

#1 a good program to do this with -or- a way to approach it by linking my C++ programs in XCode to an objective-C interface (blahblah, these are words I can repeat, but I don’t understand how to do it)  

#2 know a website / book / youtube channel that embodies a walkthrough approach to doing this

 
Leave a comment

Posted by on August 2, 2013 in Uncategorized

 

Tags: , , , , , , , , ,

KC Mobile App Developers Group

I went to this meetup last night in Kansas City where I met some nice people and heard some other app developers discuss their businesses. There were talks on raising Ad revenue within apps, about app development strategies (whether to construct native, hybrid or web-based apps) and one company’s success (in-progress) story.

Regarding the last, if any of you are teachers, the app they make is called myHomework. It works in connection with a web-based site called teachers.io. The idea is that teachers can create their course packets including everything from a syllabus/schedule, assignments, readings, etc. and tailor the interface with their students to their needs. Then students buy the apps (available on a number of platforms) and can access this material. One advantage of this app is that it allows students to keep up with (and even get reminders for) homework and project due dates as they are assigned – so even a student who is home sick will get the homework immediately.

Their hope is to replace utilities like Blackboard, that are designed in a much more cumbersome manner. I have talked to the founder after the presentation and he has sent me an invite into the system, so I hope to be able to provide a much better review of the apps once I have tried them out myself.

 

 
Leave a comment

Posted by on August 10, 2012 in Uncategorized

 

Tags: , , , , , , , ,

A hot day for it

No surprise, the forecast for today is exactly the same as it’s been for the past several weeks: 103F and full sun. Great day for a ballgame. Today, my son and I are driving up to Topeka to meet my cousins (whom I guess we haven’t seen for several years not) at a baseball game. Our cousin Grant is playing ball with a great plains league this week and we’re looking forward to seeing him play. All the news is that he’s a great player with a bright future.

I admit that I’m not eager to sit out in the sun, but it’s worth it to see family. We would have liked to have them visit, but we’re off on a trip to Germany tomorrow, so it just couldn’t work out without fraying some nerves.

Hope you all had a good fourth of July holiday (if that’s your thing). I may not be posting that much over the next week – but it’s not because I’ve forgotten about it.  I’m still thinking hard about getting mastermind into XCode. And I’ve also thought about how I should be getting our ‘Pushing Twain’ App resubmitted to Apple as well.

I guess I’m still wallowing in some self-pity about how hard it has been to get the Push-Quote series completed properly. A lot of work went into that and we have only one App in the store, it’s a bit buggy and in need of an update. How do you guys handle professional rejection? Better than me, I hope.

 
Leave a comment

Posted by on July 5, 2012 in Uncategorized

 

Tags: , , , , , , , ,

Mastermind – from JS to something useful

So, I admit, I don’t really know what use javascript is. I’ve been studying it at codecademy for a couple of weeks now and used it to put together this mastermind game, but now what?

JS is the language of web applications, so I suppose that I could refine it and somehow integrate it within the downhousesoftware.com website (that’s appealing) but I don’t know the first thing about how to bridge the gap between the actual programming part and the more practical application of that programming.

That is…

How do you place a JS application in your webpage?

How do you add some character and design to the basic functioning of the program (my program works as a series of alerts, no gameboard and worse yet, no visual clues as to what your previous moves and their feedback were)?

Or perhaps, what I find most important, how do I abstract the design of this program and recreate it in another language and in a structure compatible with XCode?

 

I find XCode to be a terribly daunting thing. On the surface, I see the wonder of being able to create and direct actions in a WYSIWYG manner, but then there are all the windows with code on them. How do they all tie together?

This is the kind of hand-holding that I really need to make the transition from having a slight understanding of code and how it works to actually making it work. A prior example of this is Python. Nowadays, the coding language of Python is presumably built in to Apple’s OS. I’ve been told that you can just write code in a text window and use it – I’m afraid that’s only a tantalizing piece of information to me – I should be able to use it – it’s easy! But I haven’t the foggiest notion of where to start! And I mean, really start.

Another example of my confusion could easily have been Javascript. I would happily work along the codecademy exercises, but have no idea whatsoever about where I could practice or ever use this. Luckily, the good people at codecademy foresaw this as a problem and have provided a web-based solution in the form of codecademyLabs – a practice place where one can create and run programs. This was the only way I could ever have taken on the Mastermind challenge.

Now XCode is a similar problem. At least I can see where to program (kind of), but now I am boggled by the volume of files and windows.

 

My goal at this point is to take what I’ve made and use it to demonstrate how one navigates the app submission process with Apple. I apologize, but this might take a while.

 
Leave a comment

Posted by on July 4, 2012 in Uncategorized

 

Tags: , , , , , , , , ,

Full code for the mastermind game

Here’s the whole thing as I’ve written it – my first full program ever!

Mastermind code in Javascript

Took me about a week to set up properly

Finally succeeded July 2, 2012

Plays all basics of the game – doesn’t show a running list to help player, but shows all moves at finish.

//gets the number of digits used

var code = function(){

var enteredCode = 0;

var codeVeritas = false;

while (codeVeritas === false){

enteredCode = prompt(“How many digits shall the code be? (1-6)”);

//verify input

if (enteredCode > 0 && enteredCode <= 6){

console.log(“We will be using “+ enteredCode+ ” digits in our code”);

codeVeritas = true;

return enteredCode;

} else{

alert(“number is out of range.”);

}

}

};

//gets numerals to be used in code

var numbers = function(){

var enteredNumber = 0;

var numbersVeritas = false;

while (numbersVeritas === false){

enteredNumber = prompt(“code will consist of numerals 1 – : (1-9)”);

if (enteredNumber>0 && enteredNumber <=9){

console.log(“We will be using numerals from 1 to “+ enteredNumber+ ” for our code”);

numbersVeritas = true;

return enteredNumber;

} else{

alert(“number is out of range.”);

numbersVeritas = false;

}

}

};

//sets up an array of numbers that will be the secret code

// code is the number of digits, number is the integers used for each digit

setSecretCode = function(code,numbers){

var secretCode = “0”;

var secret = [];

for (i=0; i < code; i++){

secret[i] = Math.floor(Math.random()*numbers+1);

}

return secret; // returns result to be used going forward

};

//accepts guess from user and parses it into an array of ‘code’ length

acceptGuess = function(code,numbers){

var guess = 0;

var guessDigit = [];

guess = prompt(“Make a guess at the secret code (“+code+”digits/1-“+numbers+”)”);

var codeNum = code * 1; // to transform code into a ‘number’

if (guess.length === codeNum){

for (i=0;i<code; i++){

guessDigit[i] =guess.substring(i,i+1);

}

return guessDigit;

} else {

console.log(“invalid guess”);

}

};

var compareGuess = function(code,secrets,guesses){

var green = 1-1; //right color, right position

var yellow = 1-1; //right color, wrong position

var white = 1-1; //wrong color

var guessedAlready=[];

var secretedAlready = [];

code = code*1; //converts code to a number type

//part 0: set ‘Already’ arrays to false

for (i=0; i<code; i++){

guessedAlready[i] = false;

secretedAlready [i]= false;

};

//part 1: check for perfect matches, alter guesses and secrets

//array positions to eliminate recount – count greens

for (i=0; i<code; i++){

guesses[i] = guesses[i] *1;

//console.log(“I’m in the first loop”);

//console.log(“guess”+i+”=”+guesses[i]+” of type “+typeof guesses[i]);

//console.log(“secret”+i+”=”+secrets[i]+” of type “+typeof secrets[i]);

if (guesses[i] === secrets[i] &&

guessedAlready[i] === false && secretedAlready[i] === false){

//console.log(“I’m in green”);

green++;

guessedAlready[i] = true;

secretedAlready[i] = true;

}

}

//part2: check for imperfect matches, alter guesses and secrets

//array positions to eliminate recount – count yellows

for(i=0; i<code; i++){

for (j=0; j<code; j++){

if (guesses[i] === secrets[j] &&

guessedAlready[i] === false && secretedAlready[j] === false){

yellow++;

guessedAlready[i] = true;

secretedAlready[j] = true;

}

}

}

//part 3: set white to number of unmatched items

//provide feedback to player

white = code – (green+yellow);

alert(green+” green    ” + yellow+” yellow”+ white+” white”);

console.log(green+” green ” + yellow+” yellow”+ white+” white”);

if (green === code){

exitShowResultLoop = true;

}

};

//main function

var guessArray = [];

var exitShowResultLoop = false;

var enteredCode = code(); // brings the variable  enteredCode out of the function

var enteredNumber = numbers(); // brings the variable enteredNumber out of the function

var secret = setSecretCode(enteredCode,enteredNumber);

//printout of array for debugging

console.log(“secret code is: “+ secret);

//play the game using a while loop to loop until correct guess is made

while (exitShowResultLoop === false){

guessArray = acceptGuess(enteredCode, enteredNumber);

console.log(“guess is: “+guessArray);

compareGuess(enteredCode, secret, guessArray);

}

console.log(“You’ve done it!!! Congratulations!!”);

 

Tags: , , , , , ,

function: compareGuess – the hardest one yet

First – I’m playing with some themes, so sorry about the fact that the site doesn’t look the same. I’m actually having a hell of a time getting things set up in a way that I am happy with and feel like I have sufficient control over.

Second -the new function: compareGuess. This one was a bear! I was wrestling with it forever before I finally got it to work correctly. Well, I hope it works correctly – I’ll post the whole program in the next post so that you can copy and paste it into a Javascript editor / compiler /whatever it’s called.

Why this one was hard is that, in the game, there are two ways you can ‘score’: if you get the right number in the right position, that’s the best(I’m calling that green). You can also get the right number in the wrong position (I’m calling that yellow). The problem is that these are mutually exclusive, with green trumping yellow in a manner of speaking. This is further complicated by the fact that once a number matches, you don’t want to use that same number to match again. This requires an example to illustrate…

secret code is: 112

guess is 123

The first position is a perfect match (green). But then the first position of the guess needs to be ignored when analyzing the rest of the code. If you just nest one loop inside another, you can easily get output of :

1 green

2 yellow

This is because position#1 of the guess matches position#1 of the code= green

but position #1 of the guess also matches position#2 of the code = yellow? -It’s not supposed to be, but how to fix?!?

then, position#2 of guess matches position#3 of the code = yellow (this one’s correctly attributed)

that gives us a total of three match signals when only two are a match!!

 

My solution (after a long time of playing around) was to add ‘guessedAlready’ and ‘secretedAlready’ Boolean Arrays within the function (It’s really important to keep these arrays private / privileged otherwise, you can run into problems when values get carried over from one guess to the next).

guessedAlready[0] refers to the first position of the guess, i.e. guess[0].

Then I set the arrays to false to start, added statements redefining them as true anytime a match was made and finally added qualifiers to my ‘if’ statements that check to see if each number was guessed already (or part of the secret code already) and therefore should be ignored.

This solution still ran into problems though until I separated my loops and looked for only exact matches (green) first, then went back and looked for inexact matches (yellow). Otherwise, if I found an inexact match in the secret code and then hid it, I couldn’t ‘see’ it for the exact match comparison later. Ughhh. example:

secret code: 112

guess : 212

if guess[0] matches code[2] as above, then we get a yellow peg for an inexact match and then we hide code[2] and don’t see that it should actually be an exact match with guess[2].

So, the function has two major parts. Part#1 loops and looks for greens. Part#2 loops and looks for yellows. Then I added a short Part#3 that sets the # of whites (no match) to white = code -(green+yellow), where code is the number of digits in the code.

I hope that makes sense. I tested this several times last night and it looked good. I will test it more later, but please feel free to make comments if you see a problem. Or ever better: if you can code and are still reading this for some reason, let me know if there is an easier way to solve this problem.

Here’s the code:

 

var compareGuess = function(code,secrets,guesses){

var green = 1-1; //right color, right position

var yellow = 1-1; //right color, wrong position

var white = 1-1; //wrong color

var guessedAlready=[];

var secretedAlready = [];

code = code*1; //converts code to a number type

//part 0: set ‘Already’ arrays to false

for (i=0; i<code; i++){

guessedAlready[i] = false;

secretedAlready [i]= false;

};

//part 1: check for perfect matches, alter guesses and secrets

//array positions to eliminate recount – count greens

for (i=0; i<code; i++){

guesses[i] = guesses[i] *1;

//console.log(“I’m in the first loop”);

//console.log(“guess”+i+”=”+guesses[i]+” of type “+typeof guesses[i]);

//console.log(“secret”+i+”=”+secrets[i]+” of type “+typeof secrets[i]);

if (guesses[i] === secrets[i] &&

guessedAlready[i] === false && secretedAlready[i] === false){

//console.log(“I’m in green”);

green++;

guessedAlready[i] = true;

secretedAlready[i] = true;

}

}

//part2: check for imperfect matches, alter guesses and secrets

//array positions to eliminate recount – count yellows

for(i=0; i<code; i++){

for (j=0; j<code; j++){

if (guesses[i] === secrets[j] &&

guessedAlready[i] === false && secretedAlready[j] === false){

yellow++;

guessedAlready[i] = true;

secretedAlready[j] = true;

}

}

}

//part 3: set white to number of unmatched items

//provide feedback to player

white = code – (green+yellow);

alert(green+” green    ” + yellow+” yellow”+ white+” white”);

console.log(green+” green ” + yellow+” yellow”+ white+” white”);

if (green === code){

exitShowResultLoop = true;

}

 

};

 

 

 

 

Tags: , , , , , , , ,

function: AcceptGuess

The next function I had to work out was how to accept the player’s guess in a way that would set up an array in a way that each digit of the player’s guess is an entry in the array. This would give me an array containing the secretCode generated by the computer and an array containing the guess generated by the user. All I’d have to do then, in cycle through the arrays to make comparisons (If only it was so easy).

So, this function proved to be quite simple:

 

 

//accepts guess from user and parses it into an array of ‘code’ length

acceptGuess = function(code,numbers){

    console.log(“***acceptGuess function reached***”);

    var guess = prompt(“Make a guess at the secret code (“+code+”digits/1-“+numbers+”)”);

    //need to add something to ensure guess is within parameters

        console.log(“guesslength is “+guess.length);

        console.log(“code is “+code);

        var codeNum = code * 1;

        console.log(typeof guess.length);

        console.log(typeof codeNum);

        if (guess.length === codeNum){

        console.log(“got inside the loop”);

            for (i=0;i>code; i++){

                console.log(“guess[i] = “+guess[i]);

                guessDigit[i] =guess.substring(i,i+1);

                console.log(guessDigit[i]);

            }

            return guessDigit;

        } else {

             console.log(“invalid guess”);

        }

};

The only problem I had with this was that the parameter ‘code’ comes through as a string. Note the two lines of code:

console.log(typeof guess.length);

console.log(typeof codeNum);

I’ve realized that the best way to debug is to have console.log lines everywhere that write out what is going on step by step. ‘typeof’ has been a very valuable code that I use whenever it looks like math isn’t working – so far it has uncovered the problem nearly 100% of the time.

Javascript will convert it to a ‘number’ if you do any mathematical function with the variable. An easy way to do this without messing anything up is to multiply by 1. To be even more careful, I created a new variable, ‘codeNum’, to hold this value as a number. The following line did that:

var codeNum = code * 1;

 

Last piece in my next post: comparing the values of the guess with the secret code. I just finished this 5 minutes ago after running myself ragged for several days (it was the reason I was dilly dallying about this posting)

 

 
Leave a comment

Posted by on July 3, 2012 in Uncategorized

 

Tags: , , , , , , ,