Category: Uncategorized

  • RNG Privacy Policy

    RNG does not collect any personal information.
    RNG does not use or share your personal information.
    Non-personal data like statistics about the number of app downloads may be collected by Google.

  • Letters Game Privacy Policy

    The letters game does not collect any personal information.
    The letters game does not use or share your personal information.
    Non-personal data like statistics about the number of app downloads may be collected by Google.

    The Letters Game was created as a hobby project to help young children learn to read with their parents.

  • Forte Specialization: Machine learning

    Abstract
    This article discusses a potential method to increase the efficiency of a neural network in processing information. More specifically, the use of synaptic plasticity in order to optimize data flows between neurons in a convolutional neural network.

    Introduction
    When building a convolutional neural network for machine learning, it is common to hard code linkages between neurons, where data is passed through each layer of neurons, and back propagation is used to help each layer in the network learn the weights that should be assigned to each input feature so as to predict a more accurate outcome.1

    Choosing the number of neurons and layers in a neural network could have some effect, however, it might be more effective to allow each neuron to independently determine the priority of each input. More specifically – if more than one input provides the same information, it could choose the input that provides the information first (be more sensitive to that input from the previous layer), and give a lower priority to the slower input (using neural fatigue, in a sense). The priority given to each input can determine the strength of the linkage between the neuron and its input. If the strength is below a certain threshold, the linkage can be severed, and thus, less data must be processed by the individual neuron. In fact, this could lead to “specialization”, where certain neurons that are closer to specific stimuli (types of data) become better at “knowing” about that data. This is similar to the way parts of our brains can be trained to interpret audio or visual information.
    This concept may give a turbo boost to parallel processing. Each process can be fine tuned to get excited by specific “frequencies” of data.

    Methods
    Each neuron would keep track of each input. When an event occurs (for example, data from an image is sent for processing) the neuron would assign the input values to the appropriate inputs with a time stamp. It could then compare inputs, and assign a priority to inputs based on how unique their information is, and how quickly the information was received.
    Should an input’s priority fall below a specified threshold, the neuron could send a “slow down” or “terminate” signal to the input, telling it to send data at a lower frequency or to stop sending data altogether.

    If an input neuron no longer has any upstream link, it can effectively die, and send a terminate signal back to all of it’s own inputs.
    Should the priority of many inputs be high on the other hand, the neuron might consider making new linkages with the next layer of neurons, since it is receiving a lot of high priority signals.

    Keep in mind that the priority is independent of the weights of features that are being learned. The point of “Forte Specialization” is not to determine which features are important, but rather, which inputs are important.

    Results and Discussion
    If and when I get around to it, I intend on implementing the above logic by writing code and running some tests and benchmarks to see what we might learn. If you are interested in collaborating with me, please get in touch.

    Works Cited

    Aside from the concepts related to neural plasticity and input priority, credit goes to Geoffrey Hinton of the University of Toronto and Andrew Ng of Stanford who both published excellent machine learning courses online, describing neural networks and their implementations.

    Copyright 2017 Frank Forte. All rights reserved. Unauthorized reproduction of this work are prohibited.

  • 502 / 400 Error in Apache when using Firebug or ChromePHP

    It turns out that Apache will return an HTTP error (usually 502) when headers are larger than 8KB. This is much like the White Page Of Death since there is no indication of why the page failed to load.

    I developed a fork for ChromePHP that allows you to shrink the ChromePHP debug log so that it prevents the Apache error:
    https://github.com/frankforte/chromephp

    It shrinks the log by removing notices first, then warnings or errors.

  • Your Credit Card Needs a Tin Foil Hat

    I recently discovered something interesting about how PayPass works. I was testing out NFC tags for my website LikeScan.com, when i learned that NFC tags can be read AND written by a smartphone (specific phones that are NFC enabled like the Samsung Galaxy Nexus).

    I was immediately intrigued and decided to do a thought experiment. If I could read the data from a credit card that uses NFC, like those with PayPass, and then write it to a new NFC tag, I could use that NFC tag to pay for things. There is no reason that the copy would not work at a payment terminal! So, i tested it out. I had to try a number of free apps. Some could not understand the protocol, but i found one quickly. Soon after i found one that allows the smartphone to read, then immediately write the data, effectively making a copy. I have yet to test out my new Tag at the grocery store, but i am sure it will work. I wonder if the cashier will give me a funny look.

    Okay, getting past the "scientific" value of what I just discovered, let’s talk about this in practical terms…  this is a huge security concern! If someone wanted to copy your “PayPass” they need to hold the phone right against the card. I tried through my wallet but it did not work. But people have been known to go the extra length to copy credit card magnetic strips, so i don’t see why someone wouldn’t develop a stronger reader that could go through your purse or pocket.

    So how does this all relate to the title of the article?  I am now selling Tin Foil Hats for your credit card. Only $5 plus shipping and handling. Contact me for ordering details.

  • CSS3 Animations

    In the past, we had to use JavaScript to make animations on a page. They would take longer to load and require a lot of extra code and development time.

    With CSS3 you can add an animation with a single line of code! Using progressive enhancement, this can really improve the web experience of your website visitors. (Progressive enhancement means that you take a web design or feature that looks good in an old browser and add modern code, in this case CSS3, which does not affect the appearance in the old browser, but will have an enhanced experience for users that have a browser with support for the modern code.) Take the following links as an example.

    link one
    link two

    Hover over each one. The first will “jump” over with no animation, the second will do the exact same thing, unless you have CSS3 support in your browser. Try it with the latest browser version of Google Chrome or Apple Safari.

    Look at the CSS below. Notice that the “slide” class, a single line of code, gives the second link the CSS3 animation effect.


    <a href="#" class="mover">link one</a>
    <a href="#" class="mover slide">link two</a>

    a.mover{
    display:block;
    padding:0;
    }
    a.mover:hover{
    padding-left:10px;
    }
    a.slide{ -webkit-transition: padding-left 250ms ease-out;}