“An artificial neural network (ANN), usually called “neural network” (NN), is a mathematical model or computational model that tries to simulate the structure and/or functional aspects of biological neural networks. It consists of an interconnected group of artificial neurons and processes information using a connectionist approach to computation. In most cases an ANN is an adaptive system that changes its structure based on external or internal information that flows through the network during the learning phase. Neural networks are non-linear statistical data modeling tools. They can be used to model complex relationships between inputs and outputs or to find patterns in data.” (Wikipedia)
So, repetition is the mother of all learning they say. You damn right it is. And you can do it in AS3 of course. Not the fastest choice out there but that’s not the point. NN’s are usually not that fast but they’re useful in so many ways.
So, here is my implementation of a neural network multi-layer-perceptron made in AS3, set to learn a simple XOR problem. It uses 2 inputs neurons , 2 hidden layers, each having 2 neurons and one output neuron. It takes about 2 seconds to train it using 10.000 epochs, but then you can save a snapshot of the NN memory as a byteArray, save it to the server and load it back again in an instant without requiring a new training. I didn’t take the time to thoroughly document the classes just yet but I’m sure you’ll find them pretty easy to use.
Some reading material:
http://en.wikipedia.org/wiki/Artificial_neural_network
http://fbim.fh-regensburg.de/~saj39122/jfroehl/diplom/e-index.html (this is great)
http://www.ai-junkie.com/ann/evolved/nnt1.html
Sources and Download
Flex / ActionScript, Programming actionscript3, ai, artificial, flash, flex, intelligence, networks, neural
This took me few minutes to figure out and was quite annoying. First you must add a reference to System.Windows.Forms in your application. Go to Project -> Add reference, select System.Windows.Forms from .NET tab in the window that just opened. You must avoid the ThreadStateException by applying the STAThread attribute to your Main() function. Then you can use the Clipboard functions without any problems.
1
2
3
4
5
6
7
8
9
| using System;
using System.Windows.Forms;
class Program {
[STAThread]
static void Main(string[] args) {
Clipboard.SetText("this is in clipboard now");
}
} |
C# .net, C#, clipboard, copy, paste
Yup! Flex Apps on your mobile. And I’m not talking about Flash Lite and you won’t need CS5 either.
ELIPS Studio converts the Flex code in native code for Windows Mobile, Symbian, Android, iPhone and mass-market mobiles. It’s still beta and you have to register for a beta account to get it but I think will do wonders for the mobile dev. world.
And in their words:
“ELIPS Studio 3 is a plug-in for Adobe Flex Builder, a widely used IDE for internet & desktop application. Our plug-in allows Flex to go mobile!
The product offers a mobile-optimized Flex Framework, plus numerous Flex extensions, including mobile UI components & access to mobile device features (voice call, SMS, access to calendar and contacts, to the camera, etc.)
The product includes a form-factor device simulator allowing you to see your application behavior on different devices. It also includes a network simulator allowing to generate calls, SMS, etc.”
So..get it while it’s hot
Flex / ActionScript, Programming android, as3, elips, flex, iphone, mobile, symbian, windows
If you use Jetty you might notice that once it’s running you can’t edit any static files because it says they are already in use and locked.
Why ? Because Jetty buffers static content for webapps such as html files, css files, images etc and uses memory mapped files to do this if the NIO connectors are being used. The problem is that on Windows, memory mapping a file causes the file to be locked, so that the file cannot be updated or replaced. This means that effectively you have to stop Jetty in order to update a file.
In case this happens follow these steps:
1. Extract the runjettyrun_1.0.1.jar in the eclipse plugin directory
2. Extract the jetty-6.1.6.jar in the lib directory of the previous jar.
3. Edit the file org\mortbay\jetty\webapp\webdefault.xml and change the “useFileMappedBuffer” to false. It should look like the following:
1
2
3
4
| <init -param>
<param -name>useFileMappedBuffer</param>
<param -value>false</param>
</init> |
4. Pack everything back up and overwrite the runjettyrun jar in the plugin directory.
5. If you still get the error after step 4 start eclipse.exe with -clean and then recreate the Jetty configuration. (It just need to replace whatever jar’s it copies in your workspace .plugins dir)
Java eclipse, files, jetty, locked, static, windows
The goal here is to use a TextArea component to display some text that doesn’t quite fit in the specified region and ellipsis points (…) should be showed to let user know the text is trimmed. Standard stuff right ? But Flex doesn’t do it by itself and I thought someone might look for this.
My problem was with a Flex app that uses i18n and in some languages the text didn’t fit the box, the scroll bar policy was off and user had no idea there was more text in there and didn’t had the possibility to scroll further. Anyway, here it is :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| <mx :Script>
< ![CDATA[
[Bindable]
private var text : String = 'The quick brown fox jumped over the lazy dog. ' +
'The quick brown fox jumped over the lazy dog. ' +
'The quick brown fox jumped over the lazy dog. ' +
'The quick brown fox jumped over the lazy dog. ' +
'The quick brown fox jumped over the lazy dog. ';
private function trim(text : String) : String
{
box.text = text;
box.validateNow();
if(box.maxVerticalScrollPosition > 0) {
text = text.replace("...", "");
text = text.substr(0, text.length - 1) + "...";
} else {
return text
}
return trim(text);
}
]]>
</mx>
<mx :TextArea id="box"
verticalScrollPolicy="off"
width="250"
height="50"
wordWrap="true"
text="{trim(this.text)}"
paddingBottom="0"
editable="false" /> |

Flex / ActionScript ellipsis, flex, points, recursion, textarea