3 de dez. de 2019

Visual Studio 2019 Community without intellisense for Unity

Edit > Preferences > External Tools > External Script Editor

Find your VS 2019, normally it´s installed in 

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\devenv.exe

27 de jun. de 2019

Another way to create Fade by Code

This must be inside a Coroutine method that returns a IEnumerator.
TransitionTime is the time that you want it takes to perform the Fade.

20 de jun. de 2019

Dropbox - aproveitar pasta já existente

Cheguei um dia e meu Drobox estava padindo para se logar. Fiz o login e percebi que ele estava atualizando TODO o conteúdo novamete na pasta padrão. Eu uso o conteúdo do Dropbox em um HD externo.

  1. Desvinculei a minha conta do dropbox no computador.
    botão direitono icone - configurações - preferências
    Conta - desvincular este dropbox...
  2. Fiz login novamente
  3. Opção de escolher pasta destino

16 de jun. de 2019

How to create a documentation of your Project

  1. Install Doxygen 
  2. Open the DoxygenWizard
  3. Step 1: find the folder where the Doxygen was installed.
  4. Step 2: fill the basic information:
    Project name
    Source code directory (folder where you can find your scripts)
    Destination directory (where the doc will be saved)
  5. Click next until the RUN tab.
  6. "Run doxygen"
Is that simple! Now you just need to click on "Show HTML output"

How to create a C# Snippet in Visual Studio Community

  1. Create a new XML File
  2. Copy de template bellow.
  3. Change de Title, Author, Descsription, Shortcut and mainly the CDATA content.
  4. Save as FileName.snippet
  5. Open
    Tool - Snippet Manager and import the XML file into CSharp "My Code Snippets"
  6. Done

Now, you just need to write the Shortcut and press TAB.

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <CodeSnippet Format="1.0.0">
            <Code Language="">

17 de fev. de 2019

ShaderGraph - Vertex displacement Shader

Testing Vertex displacement Shader using ShaderGraph.
A sphere modifying its vertices.

Download Shader

1 de ago. de 2018

ShaderGraph - Refraction

In LW Render Pipeline you have a property called "Opaque Texture". If you check it, you can use a Texture 2D Node with the reference named "_CameraOpaqueTexture" to access the camera content and than you can do whatever you want with it :)

24 de jun. de 2018

Android - Debug your game (Unity)

There is no way, you´ll need to debug your game/app directly in your Android device.
So, for that, you need to:

  1. Set up Unity to Build in Developer mode
    1. File - Build Settings - Development Build
      1. Run Device - choose the device that is connected via USB, my example Lenovo A7010
      2. Script Debugging
    2. Build and Run
    3. Console - Choose "Android Player (XXXX)"
  2. Wait until your game starts into your device
  3. Set up Visual Studio 2017
    1. Debug - Attach Unity Debugger
      1. Your devices must be showed in the list, choose it.
  4. Now,  you just need to put breakpoints to stop the game and debug what you want.
Problem: The build freezes at the last part of the process: copying apk package when using "Build and Run". The solution is:
  • Changed the USB port (front to back por of the PC)
  • or Delete the app in the cellphone
I used "c:\adb>adb install -r Minigames.apk" to try to send the apk by command line, but it was not going.

21 de jun. de 2018

Looping a range of number using mod "%"

If you want to loop through a range of number and starts from the beginning again, you can use Mod "%".

destPoint = 0;
destPoint = (destPoint + 1) % patrolTargets.Length;

if patrolTargets.Length = 5, for example, destPoint will be 0, 1, 2, 3, 4 and 0 again, if the expression is inside a loop statement.

20 de jun. de 2018

Limit Max Width of a Layout Component in Unity

Problem: Expand the size of a button according to its text, but with a limit in the width.

After a while searching for something to solve my problem, I found this link that helped me.

2 de jun. de 2018

Parabole movement

How to make a GameObject jump as a Parabole.

public float height;
    public float duration;

    void Update () {
        if (Input.GetKeyDown(KeyCode.Space))
            StartCoroutine(Jump(height, duration));

    IEnumerator Jump(float height, float duration)
        float lastY = transform.position.y;
        Vector3 startPos = transform.position;
        Vector3 endPos = transform.position;
        float time = 0f;

        while(time <= 1)
            time += Time.deltaTime / duration;
            float yOffset = height * (time - (time * time));
            transform.position = Vector3.Lerp(startPos, endPos, time) + yOffset * Vector3.up;

            yield return null;

        transform.position = new Vector3(transform.position.x, lastY, transform.position.z);

1 de jun. de 2018

Unity: resize a Button with its content (text)

If you want that your Canvas Button to resize according to its content.
A good way to solve this problem.

How to Git with Unity

I found this interesting article on How to Git with Unity.


22 de mai. de 2018

Serialize and Deserialize Json and Json Array in Unity

If you need a more complex serialization, the native JsonUtility will not help you.

In this post you can find the solution for the problem.

20 de mai. de 2018

Create a Normal Map in 3DS max

  1. Create a Plane Standart Primitive: plane1
  2. Select the plane1 and Unwrap it

  3. Duplicate the Plane and make some modifications: plane2

  4. Put plane1 in the same position of plane2

  5. With plane1 selected,open Rendering->Render to Texture
    1. click on Pick to select the Plane that we will create the normal: plane2
    2. clck on Options

    3. In Options window, choose in Orientation Green: Up (to use in Unity)
    4. Click on Setup

    5. In Setup window, in Render tab, check Enable Global Supersampler

    6. Close setup window, Projection Options
    7. Back to Render to Texture window, choose Use Existing Channel
    8. Add texture element NormalsMap
    9. Choose "Bump" in Target Map Slot
    10. Choose the map resolution (1024x1024)

    11. plane1 now has an Projection Modifier

    12. Selecting Projection Modifier, we can see the Cage section, click in Reset and increase the Amount until the "cage" is surrounding the modification of plane2

    13. Render To Texture: click in Render

12 de abr. de 2018

Unity Animator states not showing which is playing at runtime.

If your Animator window is not showing a little progress bar when you hit play, try to select the GameObjet that has the animator controller that references to this Animator asset.

25 de mar. de 2018

PHP - enable cross-origin resource sharing

If you don't have access to configure Apache, you can still send the header from a PHP script. It's a case of adding the following to your PHP scripts:
Note: as with all uses of the PHP header function, this must be before any output has been sent from the server.
Site: https://enable-cors.org/server_php.html

20 de mar. de 2018

3D max - How to remove Peel seams (blue seams)?

In the Unwrap UVW panel > Click Edit Seams to turn on Edit mode > Alt+Left Click the seam you want to remove.

23 de fev. de 2018

How to delete the Unity´s GI cache?

"The GI cache is used by the Global Illumination (GI) system to store intermediate files when precomputing real-time GI, and when baking Static Lightmaps, Light Probes and Reflection Probes. The cache is shared between all Unity projects on the computer, so projects with the same content and same version of the lighting system (Enlighten) can share the files and speed up subsequent builds."

Find the settings for the GI cache in Edit > Preferences > GI Cache on Windows, or Unity > Preferences > GI Cache on macOS.

source: https://docs.unity3d.com/Manual/GICache.html

Where does Unity keep the dowloaded Packages from Asset Store?

You can find the downloaded Packages from Assets Store in the folder:

C:\Users\YOURU_SER\AppData\Roaming\Unity\Asset Store-5.x

13 de jan. de 2018

Unity - Problem building for Android

When I was trying to build for Android, Unity started to show me an error message:

"Unable to list target platforms. Please make sure the android sdk path is correct. See the Console for more details."

I found this post that solved the problem.

8 de jan. de 2018

Controle PS4 no PC via Bluetooth

Achei este artigo do Tecmundo.
Fiz os passos "Dualshock com cabo" e depois "Dualshok 4 com Bluetooth".

Rodando perfeito!

21 de dez. de 2017

Vector3.SmoothDamp - smooth transaction between 2 vectors

Vector3 velocity;
public float time = .5f;

transform.position = Vector3.SmoothDamp(transform.position, newPosition, ref velocity, time);

Using Bounds Class to get center of many objects

We can use the Bounds Class to get the center of many objects in the scene.

 private Vector3 GetCenter()
  if (targets.Count == 1)
   return targets[0].position;

  Bounds bound = new Bounds(transform.position, Vector3.zero);
  foreach (Transform target in targets)

  return bound.center;

13 de dez. de 2017

Texture Tools for Adobe Photoshop - NVidia Plugin

Plug in for Photoshop to create Normal Map from an image. See thisTutorial

11 de out. de 2017

C# - instantiating a Class from String

How can we instantiate a class from a String?

string state = "BeginState";

Type type = Type.GetType("Assets.States." + state); object instance = Activator.CreateInstance(type, new object[] { stateManager }); stateManager.SwitchState((IStateBase)instance);

5 de out. de 2017

Working with Relative Paths in 3ds Max

3D Max Menu - Manage - Asset Tracking
Select All files
Right Click - Make Path Relative to Project folder


Customize - preferences - Files - Conver Local file paths to Relative

7 de jul. de 2017

Testing your game with "Unity Remote"

To test the games that we are developing into a real cell phone, Unity provides us with the app "Unity Remote".
But it is not so easy as plug the cell in the computer and press Play in Unity Editor.

I had some troubles connecting my Lenovo Vibe K6 - Android 6.0.

After I unlocked the "Developer option" in my cell phone:
  • Settings 
  • About device 
  • Click many times over "Build Number"
The "adb devices" prompt command was not showing my Lenovo :(, so, it was not being detected as a device to be used by another application, even if in the Explore it was been shown.

Inside "Settings - Developer", I had to setup the configuration´s USB protocol to "PTP (Picture Transfer Protocol)"

Then when I run adb, it shows me my device and Unity started to play the game direct in Unity Remote.

If adb is showing the device, you just need to run the "Unity Remote" in your cell phone (download in Google play/Apple Store) and run your game in Unity. It will automatically run the game on your device.

It´s MUCH better than transfer the .apk file every time that you need to test a new functionality.

Problem using ASUS Zenfone with Unity 2019.1

  1. Android - enabled Developer Options
  2. Developer Options
    1. Keep Awake
    2. USB debug
    3. Select USB Options
      1. Load this device

  1. Unity
  2. Project Settings - Unity Remote - Device - Any Android Device
  3. Build Settings - Run Device -
  4. **Preferences - External Tools
    1. Uncheck Andoird SDK Tools Installed with Unity
    2. Fill the path with the SDK path:
It does not matter the order that I open Unity, connect android or open Unity Remote

6 de jul. de 2017

Background Paralax - model 1

There are some ways to make the Background run as if the camera was moving.

In this example, we move the Gameobject with the SpriteRender with a child with another Gameobject with the same image (duplicate de Gameobject) in the scene and when it reachs the startPosition + hisSize, it comes back to the startPosition.

using UnityEngine;

public class Paralax : MonoBehaviour {

    public float scrollSpeed;
    public float tileSizeZ = 0;     // if changed in edit time, it uses this value for the size of the SPriteRenderer
                                    // Used in images that are shorter than the screen width

    private SpriteRenderer sprite;  // the SpriteRender of the GameObject
    private Vector3 startPosition;  // Start position of the GameObject

    void Start () {
        sprite = GetComponent<SpriteRenderer>();
        startPosition = transform.position;

        if (tileSizeZ == 0)
            tileSizeZ = sprite.bounds.size.x;

    void Update () {
        /* Repeat works like:
         if Time.time * scrollSpeed < tileSizeZ, newPosition = Time.time * scrollSpeed
         else, newPosition = (Time.time * scrollSpeed) - (loopIndex * tileSizeZ) */
        float newPosition = Mathf.Repeat(Time.time * scrollSpeed, tileSizeZ);
        transform.position = startPosition + Vector3.left * newPosition;

2 de jul. de 2017

Following Mouse in 3D

A simple example of an object following the mouse in 3D environment.

using UnityEngine;

public class FollowMouse : MonoBehaviour

    public float force;

    Rigidbody ballRigid;
    Ray ray;

    void Start()
        ballRigid = transform.GetComponent<Rigidbody>();

    private void Update()
        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        Debug.DrawRay(ray.origin, ray.direction * 100, Color.cyan);

    void FixedUpdate()
        RaycastHit hit;
        if (Physics.Raycast(ray, out hit, 100))
            if (hit.collider.tag == "Terrain")
                Vector3 direction = hit.point - transform.position;
                ballRigid.AddForce(direction * force);

1 de jun. de 2017

LookAt2D(Vector 3)

A method to rotate a Gameobject towards a Vector3 position.
In the example bellow, the Tank´s Canon is following the Mouse.

Put this code in the object that you want to rotate. Call the method inside the Update().

void LookAt2D(Vector3 target) // target is the Vector to look at
        // Get point B based on point A as 0,0,0
        Vector3 targetDir = target - transform.position;

        // Use Tangent to get the Angle. 
        // Tan(x) = catetoOposto/catetoAdjacente
        float angleRad = Mathf.Atan2(targetDir.y, targetDir.x);
        // convert angle to Degrees
        float angleDeg = angleRad * Mathf.Rad2Deg;

        // I´ll rotate "angleDeg" in "Vector3.forward" Axis
        transform.rotation = Quaternion.AngleAxis(angleDeg, Vector3.forward);

31 de mai. de 2017

Fade Out and Fade IN using Mathf.Lerp()

Lerp is a very interesting function because it changes a value between A and B depending on C.

Math.Lerp(A, B, C);

If C varies from the beginning to the end, you can simulate an Fade In or Fade out transition, for example.

In the example below, I want to go from 1 (A) to 0 (B) (fade out transition) in 3 seconds.

The for loop will take 3 seconds to complete (Time.deltatime / 3) and C will be an incremental value from 0 to 1.

We can think as if it was an Slider controller: when C are at the left (0), the value is A, if you slide to the right (1) the value is Y.

SpriteRenderer sprite = GetComponent<SpriteRenderer>();
void Start()

    IEnumerator fade1()
        Color newColor;

        for (float x = 0f; x < 1f; x += Time.deltaTime / 3)
            newColor = new Color(1, 1, 1, Mathf.Lerp(1, 0, x));
            sprite.color = newColor;

            yield return null;


26 de mai. de 2017


An example of how to use Raycast to show the path where the Gameobject will pass.
A tip is, you must disable Edit > ProjectSettings > Physics2D > Queries Start in Collider
This mean that the Raycast will not collide with the Collider where it starts in.

public int numPositions = 3;
public Vector3 diretion = new Vector2(1, 1);
public LineRenderer lineRenderer;
void UpdateLineRenderer()
    Vector3 actualDirection = diretion;
    Vector3 actualPosition = transform.position;
    Vector3 lastPosition = actualPosition;

    lineRenderer.SetPosition(0, actualPosition);

    for (int x = 1; x < numPositions; x++)
        RaycastHit2D hit = Physics2D.Raycast(lastPosition, actualDirection);
        lineRenderer.SetPosition(x, hit.point);
        lastPosition = hit.point;

        actualDirection = Vector3.Reflect(actualDirection, hit.normal);

We can use the Debug.DrawRay to see the Raytrace:

Debug.DrawRay(transform.position, diretion*100);

Drawing line in Runtime

void DrawLine(Vector3 start, Vector3 end, Color color, float duration = 0.2f)
        GameObject myLine = new GameObject();
        myLine.transform.position = start;
        LineRenderer lr = myLine.GetComponent<LineRenderer>();
        lr.material = new Material(Shader.Find("Particles/Alpha Blended Premultiply"));
        lr.startColor = color;
        lr.endColor = color;
        lr.startWidth = 0.02f;
        lr.SetPosition(0, start);
        lr.SetPosition(1, end);
        //GameObject.Destroy(myLine, duration);

Converting Angle to Vector direction

If the reflected angle (green) is greater than 50º, I want to change its direction for an angle of 45º (orange).

public Vector2 direction = new Vector2(1,1);

void FixedUpdate () {
 rb.velocity = direction * velocity;

private void OnCollisionEnter2D(Collision2D collision)
 Vector2 normal = collision.contacts[0].normal;
 float angle = Vector2.Angle(direction, normal));
 float angleComp = 180 - angle;
 Vector2 newDirection =  Vector2.Reflect(direction, normal);
 if (angleComp > 50)
  newDirection = Quaternion.AngleAxis(direction.x * 45, Vector3.forward) * normal;
 direction = newDirection;

Changing the Sprites of a Character in Runtime

Do you have two or more characters in your game with the same structure, animation but you need to change its Sprites to make them look different?

Do you want to change the Sprite of a character in order to change its look, for example, just to change its clothes or objects that it's carrying?

Put this Component into your Character´s GameObject.
In the Inspector, change the spriteSheetName property to the name of your SpriteSheet Asset.
The Spritesheets must have the same "sliced" sprites name, for example: head, body, etc.

using UnityEngine;
using System;

 * This script changes the sprite of a gameobject in runtime
 * the sprites must be in the Resources folder
 * */
public class ChangeSprite : MonoBehaviour {

 public String spriteSheetName; // name of sprite to be loaded

 void LateUpdate () {
  var subSprites = Resources.LoadAll<Sprite>(spriteSheetName);
  foreach(var renderer in GetComponentsInChildren<SpriteRenderer>()) // get all SPriteRenderer from my GameObject
   string spriteName = renderer.sprite.name;
   var newSprite = Array.Find(subSprites, item => item.name == spriteName);

   if (newSprite)
    renderer.sprite = newSprite;


23 de mai. de 2017

How to limit the moviment of a GameObject into the Screen

This function limits the moviment of a GameObject to it´s Cam Screen.

private void CheckLimits(Vector3 posAtual)
    SpriteRenderer renderer = GetComponent<SpriteRenderer>();

    float newX = Mathf.Clamp(transform.position.x, 
        cam.ScreenToWorldPoint(new Vector3(0, 0, 0)).x + renderer.bounds.size.x/2, 
        cam.ScreenToWorldPoint(new Vector3(cam.pixelWidth, 0, 0)).x - renderer.bounds.size.x / 2);

    transform.position = new Vector3(newX, posAtual.y, posAtual.z);

19 de mai. de 2017

Anima2D Spring Bones BUG

If you animate a character with Anima2D and uses Spring Bones to apply physics on some bones, you will realize that if you flip your character, an odd bug happens.

The bones with "spring bones" applied to them, become strange and start to behave in a manner that we don´t want to.

To solve that, you must check "Is Animated" in the Spring Bone Component :)

2 de mai. de 2017

How to set the "New Line" convention in Visual Studio

Each OS has theis own way to deal with New Line character.
Win = CT LF
Mac = CR
Unix = LF

In VS 2015 you go to:

  1. File
  2. Advance save options
  3. Choose the correct option for your OS
In VS 2017 you go to:
  1. File
  2. Save As
  3. Click the down arrow on the Save button and clicking "Save With Encoding...".
  4. Choose the correct option for your OS
You can also add it back to the File menu through Tools->Customize->Commands if you want to.

1 de mai. de 2017

How to know if I collided with a especific side of a GameObject

Sometimes we need to detect if a Gameobject collided with a especific side of another GameObject, or even a side of the Screen.

We can do that cheking the "Normal" of the collision´s angle.

if (collision.collider.name == "Wall") { // collided with screen top
    Vector2 normal = collision.contacts[0].normal;
    if (normal == Vector2.down)
this.enabled = false;

How to "Reflect" the angle of a collision

How to get the Screen (Camera) Size


GameObject following Mouse

Vector3 temp = Input.mousePosition;
temp.z = 10;
transform.position = new Vector3(Camera.main.ScreenToWorldPoint(temp).x, transform.position.y, transform.position.z);

How to get the size (Wrold size) of a GameObject in 2D

SpriteRenderer renderer = GetComponent ();

Ways to move an object in 2D

I found some ways to move an GameObject in the 2D enviroment.

  1. First, I get the Input from the Keyboard or the Mouse:

    float direction = Input.GetAxis("Horizontal");
    float direction = Input.GetAxis("Mouse X");

    Both returns values between -1 and 1, depending on the direction.
  2. I get the actual position of the object

    Vector3 posAtual = transform.position;
  3. Move it!

    # Changing the X of the vetor
    transform.position = new Vector3(posAtual.x + (velocity * mouseDir * Time.deltaTime), posAtual.y, posAtual.z);

    # Adding a new vetor to the actual position vector
    transform.position += new Vector3(velocity * direction * Time.deltaTime, 0, 0);

    # Adding a vector by direction
    transform.position += transform.right * velocity * direction * Time.deltaTime;

    # Following the mouse
    Vector3 temp = Input.mousePosition;
    temp.z = 10;
    transform.position = new Vector3(Camera.main.ScreenToWorldPoint(temp).x, posAtual.y, posAtual.z);

    # Adding Force
    rb.AddForce(transform.right * force * direction);

    # Using the Tranform method "Transalte"

    transform.Translate(velocity * direction * Time.deltaTime, 0, 0);

15 de mar. de 2017

ADB não reconhece dispositivo

De vez em quando, ao rodar o ionic run android, não aparece device para ele rodar mesmo o celular estando conectado via USB.

\adb devices
retorna vazio

Eu instalei 2 pacotes de drivers que achei na web
INSTALL G:\Download\Driver\Android-adb-driver.exe (NÃO SEI SE É NECESSÁRIO)
INSTALL G:\Download\Driver\MotorolaDeviceManager_2.5.4.exe (NÃO SEI SE É NECESSÁRIO)

** um deles apaga o PATH de variáveis do sistema, tem que reinstalar:

                          Procurar driver no Computador - permitir que escolha de uma lista - adb
                                      Android Sooner ADB Testing Interface

In Android, "Developer Options", I enabled "Debug USB"

17 de fev. de 2017

PHP connecting with MySQL

There are 3 ways to connect PHP with MySQL:

  1. PHP's MySQL Extension (old one)
  2. PHP's mysqli Extension (current using)
  3. PHP Data Objects (PDO)
I´ll talk about the second one: mysqli.

mysqli means "MySQL improved extension".

The mysqli extension has a number of benefits, the key enhancements over the mysql extension being:
  • Object-oriented interface
  • Support for Prepared Statements
  • Support for Multiple Statements
  • Support for Transactions
  • Enhanced debugging capabilities
  • Embedded server support
As well as the object-oriented interface the extension also provides a procedural interface.

Procedural interface
 $mysqli = mysqli_connect("example.com", "user", "password", "database");  
 if (mysqli_connect_errno($mysqli)) {  
   echo "Failed to connect to MySQL: " . mysqli_connect_error();  
 $res = mysqli_query($mysqli, "SELECT 'A world full of ' AS _msg FROM DUAL");  
 $row = mysqli_fetch_assoc($res);  
 echo $row['_msg'];

Object-oriented interface
 $mysqli = new mysqli("example.com", "user", "password", "database");  
 if ($mysqli->connect_errno) {  
   echo "Failed to connect to MySQL: " . $mysqli->connect_error;  
 $res = $mysqli->query("SELECT 'choices to please everybody.' AS _msg FROM DUAL");  
 $row = $res->fetch_assoc();  
 echo $row['_msg'];  


7 de jan. de 2017

Apagar arquivo com nome muito extenso

Assuming you are on windows:

What I always do is use subst to create a driveletter asccociation with part of the path.

Then go to the new driveletter and navigate to the files that have long names. You should now be able to rename/delete/etc them. The reason this works is because the path itself is no longer containing >255 chars.
To create a subst folder
Start a commandprompt (no admin privileges needed)
Use cd to navigate to the folder you want to go (you can use tab to autocomplete names
type subst j: . to create the driveletter association. (instead of the . you can also type the entire path)
Now in explorer you have a new letter. Go to it and do whatever you need to do to the .cache files.
Go back to your cmd window and type subst /d j: to remove the drive or alternatively, restart your pc.

EDIT: A trick I learned which can shorten this quite a bit. From the explorer window where you have trouble, click the addressbar so you can type in it, then type cmd and press Enter to start a command prompt at that location, then proceed at step 3. :)

EDIT2: Okay, this trick can be expanded even further. If you are in explorer at the right path, just type in subst j: . in the addressbar and press enter. A command window will pop up, execute the command and close again, and there you go, a new drive pops up in explorer.

fonte: http://superuser.com/questions/755298/how-to-delete-a-file-with-a-path-too-long-to-be-deleted

26 de dez. de 2016

Using Cordova Plugin without ngCordova

I needed to verify the Wifi that the app is connected and I didn´t find the Cordova plugin in ngCordova list, so I found the WifiWizard plugin that had all that I needed and used it inside the app.
Below, I put the steps that I did to get it working:

  1. ionic start WifiWizard blank
  2. cd WifiWizard
  3. ionic platform add android
  4. cordova plugin add WifiWizard
  5. ionic run android -l
One tip is to put the method call of the plugin iside a $ionicPlatform.ready(function() { }

.service('WifiService', function($ionicPlatform) { 
  var service = this; 
  $ionicPlatform.ready(function() { 
    WifiWizard.listNetworks(successNetwork, failNetwork); 

   var successNetwork = function(response) { console.log("successNetwork"); } 
   var failNetwork = functionresponse { console.log("failNetwork"); } 

We can also call the plugin using:

3 de out. de 2016

Sorocaba - vereadores 2017

Em vermelho quem foi reeleito:

3 de ago. de 2016

Matéria na TV Tem Sorocaba com Kiduca


2 de ago. de 2016

Ionic - Device communication time out

If I let the file "platforms\android\cordova\node_modules\q\q.js" without changes, when I try to build the apk or test direct in the phone, it gives me an error:

Error: Device communication timed out. Try unplugging & replugging the device.

To solve the problem I must change the code from

var timeoutId = setTimeout(function () {
deferred.reject(new Error(message || "Timed out after " + ms + " ms"));
}, ms);


var timeoutId = setTimeout(function () {
deferred.reject(new Error(message || "Timed out after " + ms + " ms"));
}, 10000000);

I found the solution in this post.

Ionic - stopped building for Android

I finished the day building the app for Android normally. The next day, when I tried to build, it gave me an error message:

ionic Execution failed for task ':merge Debug Assets'

The solution was to remove the Android platform from the project and add it again.

> ionic platform remove android
> ionic platform add android

6 de dez. de 2015


Com a atual situação econômica do pais, mais as frequentes descobertas de corrupção, eu comecei a refletir sobre a influência da população nisso tudo e principalmente a minha participação, e cheguei a conclusão que os "políticos" do executivo, legislativo e judiciário são exatamente a representação da nossa cultura política, ou seja, é o reflexo de nossa total ignorância no assunto.

Sei que não posso generalizar, mas acredito que a grande maioria da população se enquadra como "analfabetos políticos". Não sabemos nada sobre o assunto e queremos reclamar.

Por conta disto, decidi estudar e tentar influenciar o meio que participo (família, amigos, trabalho, etc) para nos politizarmos com o intuito de nos tornarmos melhores eleitores e fiscalizadores.

Temos que conhecer o processo, como funciona o básico para podermos colocar pessoas competentes na posição de representantes do povo e depois numa segunda etapa, poder cobrar dessas pessoas a sua função.

Algumas perguntas que fiz para mim mesmo e fiquei assustado com o resultado:

  1. Quantos vereadores trabalham na Câmara de vereadores da sua cidade?
  2. Fale o nome de 5 vereadores ativos.
  3. Quem foi o último vereador que você votou?
  4. Quantos deputados estaduais trabalham na Assembléia Legislativa?
  5. Fale o nome de 5 deputados ativos.
  6. Quem foi o último deputado estadual que você votou?
  7. Quantos deputados federais trabalham da Câmara dos deputados?
  8. Fale o nome de 5 deputados federais.
  9. Quem foi o último deputado federal que você votou?
  10. Quantos senadores trabalham no Senado Federal?
  11. Quantos senadores representam o estado de SP?
  12. Quem são eles?
  13. Você sabe quanto cada um deles ganham por mês e quais seus benefícios? Vereadores, deputados e senadores?
  14. Você pesquisou se havia ocorrências na Justiça e no Tribunal de contas dos seus candidatos antes de votar? Se ele já tem um passado criminoso na política, por que colocá-lo novamente?

Isso seria o básico de conhecimento, o nível intermediário seria o acompanhamento de quem você votou (ou algum legislador adotado).

Pois é meu amigo, se você foi bem no questionário acima, parabéns!
Na minha opinião, você tem o direito de reclamar da situação atual do Brasil. Agora, se você (assim como eu) não sabe muitas respostas, acho melhor estudar primeiro.

"O Analfabeto Político

O pior analfabeto é o analfabeto político. Ele não ouve, não fala, nem participa dos acontecimentos políticos. Ele não sabe que o custo de vida, o preço do feijão, do peixe, da farinha, do aluguel, do sapato e do remédio dependem das decisões políticas.

O analfabeto político é tão burro que se orgulha e estufa o peito dizendo que odeia a política. Não sabe o imbecil que, da sua ignorância política, nasce a prostituta, o menor abandonado, e o pior de todos os bandidos, que é o político vigarista, pilantra, corrupto e lacaio das empresas nacionais e multinacionais."

Bertolt Brecht: O Analfabeto Político O pior analfabeto...

Eu era analfabeto político, e me alfabetizei!
Quero que o Brasil mude, por isso mudei!
E você?

Respostas das perguntas:

  1. 20 vereadores em Sorocaba
  2. Depende da cidade
  3. Resposta pessoal.
  4. Em SP 94 deputados
  5. Lista de deputados estaduais (SP)
  6. Resposta pessoal.
  7. 513 deputados federais
  8. Lista dos deputados federais
  9. Resposta pessoal.
  10. 81 senadores
  11. 3 senadores
  12. Lista dos senadores que representam SP
  13. Quanto ganha?
  14. Exemplo de senador com ocorrências

1 de nov. de 2015

Sonar X3 - Transformando trilha MIDI em trilha de audio

Para transformar uma trilha que você gravou em MIDI (ex: Synth Direct-X Cakewalk TTS2) numa trilha em áudio, basta:

  •  selecionar a trilha do Direct-X e a trilha que você gravou MIDI
  • ir em Tracks - Bounce to Track
  • mantenha essa janela com as configurações default
  • Ok
Ele criará uma trilha de áudio com o conteúdo da trilha em MIDI

17 de set. de 2015


O que seu filho estudou hoje na escola?

Já parou para pensar/refletir o que ele estuda?

O meu está estudando Geografia:
- Formas e relevos, Mapeando o relevo do país.
- Planaltos de núcleo cristalino arqueados.
- Recursos hídricos, curso inferior, curso médio e superior.
- Bacias do Brasil
- Bacias Secundárias
- Continentalidade e Maritimidade
- Tipos de Clima
- etc, etc, etc

50 páginas com esses conteúdos!

A criança estuda, faz a prova e esquece.
Não acredita? Deixe passar uma semana das provas e faça a prova novamente para eles: história, geografia e ciências (pelo menos a maioria deles).

Nós também estudamos tudo isso um dia.

Qual a porcentagem de conteúdo enfiado em você nos 12 anos de ensino fundamental I, II e médio você ainda lembra hoje?

"Cinturões orogênicos". Não sabe o que é? Como não?? Você estudou um dia, e um dia, se você não soubesse, você tiraria -1 na prova!

Se num momento da vida dele "Cinturões orogênicos" forem importantes, aposto que ele vai entrar no Google e vai pesquisar tudo sobre o assunto. Mas assim, enfiado goela abaixo, a única coisa que acontece é ele odiar os Cinturões que nem tem culpa.

Estudar precisa ser assim?

Conteúdo, conteúdo, conteúdo, conteúdo, conteúdo, conteúdo, conteúdo, conteúdo, conteúdo, conteúdo, conteúdo, conteúdo, conteúdo, conteúdo, conteúdo, conteúdo, conteúdo, conteúdo, conteúdo sem sentido para a criança.

Já pensou nisso?
Tem que estudar? sim, lógico. Cultura, educação e conhecimento são pilares fundamentais para o ser humano. Mas, acredito que 60% do conteúdo abordado em sala de aula não precisaria ser ensinado da forma que é. Perda de tempo de todos: escola, professor, pais e aluno.

Doze anos investidos no que a criança quer/goste realmente de fazer, mostre motivação e dedicação, teríamos homens e profissionais melhores para o mundo.

Fábio Colombini

Batman - 1986 (TK-85)

Joguei muito com o TK-85, 8 bits que usava processador Z-80A e linguagem BASIC.

17 de mai. de 2015

Novembro 4 faz parceria com a Kiduca, empresa de games e educação

A Novembro 4 e a Kiduca criaram uma parceria para oferecer ao mercado corporativo soluções de comunicação e interação na plataforma de jogos, a chamada gamificação.
Leia mais...

12 de nov. de 2014

Castle Wolfenstein (Apple IIe)

Where in the World is Carmen Sandiego (Apple IIe)

Jogue aqui

Lucifer´s Realm (Apple IIe)

Eu lembro cada nota dessa introdução. Era demais!
Os gráficos então, nem se fala.

Jogue aqui

Masquerade (Apple IIe)

Masquerade é um jogo estilo Adventure, desenvolvido pela Phoenix e publicado pela American Eagle Software. Foi lançado em 1983.

Aprendi muito vocabulário em inglês com esses Adventures do Apple IIe.

Jogue aqui

8 de set. de 2014

Kiduca na Revista de Sábado

Destaque da plataforma Kiduca na reportagem da TVTEM / Rede Globo.

Na reportagem a escola que utiliza a plataforma é a Escola Estadual Reverendo Augusto da Silva Dourado.

Assita ao vídeo

4 de ago. de 2014

Blog Educação no Conexão Futura: Ensino e novas tecnologias

Utilizada há mais de dois anos em escolas públicas e privadas, a Kiduca é uma plataforma educacional baseada em jogos e fundamentada nas Diretrizes Curriculares Nacionais.

Leia a matéria completa

23 de mai. de 2014


No último 19 de março, os alunos do 4º e 5º ano do Colégio Veritas brincaram e estudaram simultaneamente em uma gincana multidisciplinar com o objetivo de revisar de forma virtual, interativa e divertida o conteúdo para as provas. A atividade foi realizada por meio de uma plataforma educacional que simula um jogo online. 
Os estudantes foram divididos em grupos de meninos e de meninas para iniciar a gincana. As professoras elaboraram um quiz, do qual todos os estudantes participaram. Ganhava aquele que apertasse o botão com a resposta correta. A euforia dos alunos tomou conta do ambiente: “Adorei a brincadeira. Além de aprender, me diverti muito. Estou pronta para as provas agora”, comemorou Maria Eduarda Teles de Carvalho, do 4º ano.

Leia mais

9 de mai. de 2014

Kiduca no Jornal do Brasil e Porvir

O Jornal do Brasil publicou uma matéria do Porvir sobre o Kiduca.

Clique aqui para ver

27 de set. de 2013

Novo site do Kiduca

Colocamos no ar está semana o novo site do Kiduca em HTML5 com parallax.
Site com cara nova!!


8 de ago. de 2013

Kiduca - Jornal Cruzeiro do Sul

Matéria que saiu no Jornal de Sorocaba Cruzeiro do Sul.


Projeto de Sorocaba é selecionado pelo MCT

Através do Kiduca, os professores têm criado games de forma muito simples, mesmo sem nenhum conhecimento de programação - Erick Pinheiro

Daniela Jacinto

Desde que a educação firmou parceria com a informática, projetos inovadores têm servido como facilitadores para o aprendizado dos alunos. Uma das ideias que têm sido espalhadas é a dos games, que nas mãos do empreendedor de Sorocaba Jorge Alberto França Proença, 45 anos, fundador do projeto Pérola - que incentiva jovens a investirem em seus talentos - multiplicou-se de tal forma que hoje mais de cinco mil alunos estão aprendendo com a ferramenta, criada por ele em parceria com Fábio Colombini, seu sócio na empresa Singol Games Educacionais, responsável pelo desenvolvimento do Kiduca - A Cidade Educação, um site com jogos educativos.

Os games com conteúdo pedagógico somam cerca de 300 e são vendidos para 12 escolas públicas e seis particulares. Como um empreendedor sempre tem metas, Jorge Proença quer alcançar, num prazo de quatro anos, a marca de cem mil alunos aprendendo com os seus jogos. E para que ninguém duvide que querer é poder, ele acaba de ter seu projeto selecionado já na primeira turma de aceleração do programa Start-up Brasil, do Ministério da Ciência e Tecnologia (MCT).

Jorge Proença receberá R$ 200 mil na forma de bolsa para pesquisa, desenvolvimento e inovação concedida pelo Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq), parceiro no programa, juntamente com a Apex Brasil. Além disso, a ideia de Jorge deverá ser contemplada com mais recursos provenientes de uma empresa aceleradora, ainda a ser definida. Uma empresa aceleradora funciona à semelhança das incubadoras e tem a função de ajudar no desenvolvimento de pequenas empresas ou microempresas, apoiando-as nas primeiras etapas de suas vidas.

Para Jorge Proença, fazer parte do Start-up Brasil significa um atestado para a seriedade de seu trabalho. "Pela primeira vez aqui no Brasil está sendo feito investimento em capital humano de empreendedorismo", comenta. O Kiduca concorreu com 908 projetos inscritos, sendo 672 nacionais e 236 estrangeiros, vindos de 37 países. Foi selecionado entre os 45 projetos brasileiros. Dos estrangeiros foram eleitos 11. A área de educação, onde se encaixa o projeto Kiduca de Jorge, obteve o maior número de inscrições (19%), seguida de varejo, com 14%, e saúde, finanças e eventos de turismo, todos com 9%.

Jogos que educam de forma divertida

Kiduca - A Cidade Educação é uma cidade virtual onde os nomes dos bairros são os mesmos das disciplinas do currículo escolar, como Matemática, Português e Ciências, entre outros. Em cada um desses bairros, são disponibilizados games de acordo com a área do conhecimento. No bairro Matemática, por exemplo, o aluno irá aprender a fazer operações matemáticas e tabuadas. No bairro Português irá aprender sobre a Língua Portuguesa, e assim por diante, em um trabalho que complementa e auxilia os professores em seus projetos de alfabetização, ensino de matemática e demais disciplinas.

Jorge Proença explica que o game tem conteúdo pedagógico de acordo com a faixa etária e série do aluno. Os atendidos pelo projeto são crianças de 6 a 11 anos, estudantes do 1º ao 5º ano do ensino fundamental. A plataforma Kiduca é baseada em games estilo MMO (Massively Multiplayer Online), em que várias pessoas conectadas interagem entre si. Assim, dentro da Cidade Educação, os alunos podem se encontrar para trocar informações e conhecimentos online. Esse ambiente interativo tem como objetivo criar um contexto de "mundo próprio" para avatares (personagens fictícios) onde serão criadas situações para estimular a curiosidade do aluno, levando-o ao aprendizado das disciplinas.

Jorge acredita que esta seja uma forma de motivar os alunos a estudarem/aprenderem de modo mais dinâmico, lúdico e agradável, seguindo a ideia de que se aprende brincando. Formado na área tecnológica e pós-graduado em educação, ele conta com uma equipe multidisciplinar para ajudar na confecção dos games, composta, entre outros profissionais, por dois professores que o auxiliam na parte pedagógica. "As escolas que participam também colaboram. Elas podem preencher um formulário com os objetivos e habilidades que querem que sejam desenvolvidos com o game", conta.

A equipe de Jorge já criou 80 jogos. "São os que a gente chama de games próprios. Mas temos um conceito inovador na plataforma, que é de autoria criativa. São ferramentas que existem na plataforma para alunos e professores criarem games, então os usuários também fazem isso, portanto temos mais de 200 games criados por eles", conta. Ainda de acordo com Jorge, através do Kiduca, os professores têm criado games de forma muito simples, sem nenhum conhecimento de programação.

Esse trabalho, que teve início em 2011, surgiu quando Jorge passou a ter contato com as escolas em um período que estava desenvolvendo nesses locais um processo de inclusão digital. "Daí percebi que existia um abismo entre projeto pedagógico e tecnologia. Então fui buscar qual seria a melhor forma de impactar o aprendizado com tecnologia e vi que o game era a linguagem preferida das crianças e adolescentes", afirma. O projeto deu tão certo que Jorge irá implantar um piloto no mês que vem em uma escola no México. Essa expansão foi longe porque um dos ilustradores do Kiduca mora no México e apresentou o projeto em uma escola daquele país, que ficou interessada. "Não tem fronteiras, a fronteira é nossa competência", diz Jorge.

Como participar

Interessados em participar do programa Start-Up Brasil têm chance de concorrer ainda este ano. Em setembro serão abertas novas inscrições. A data não foi divulgada, mas basta ficar atento às informações do site. Para se inscrever é preciso ter uma empresa brasileira ou estrangeira, com até três anos de constituição.

O Start-Up Brasil é direcionado a quem desenvolve produtos ou serviços inovadores e que utiliza software e serviços de Tecnologia da Informação como parte de sua solução. A iniciativa visa criar no Brasil um espaço para o surgimento de empresas com produtos e serviços inovadores.

O programa Start-Up Brasil foi lançado pelo governo federal no ano passado e terá recursos de R$ 60 milhões para as três edições, ajudando um total de 300 empresas, ou 100 a cada ano, até 2015. Site: http://startupbrasil.mcti.gov.br.

Quem é Jorge Proença

Nascido em Itapetininga, Jorge Proença veio morar em Sorocaba com 14 anos. "Estudei no Estadão, na Fatec, e abri minha primeira empresa aos 19 anos", conta. Ele lembra que o tino para os negócios começou cedo. "Quando tinha 11 anos minha mãe me deixou vender sonhos no mercado", orgulha-se. Foi uma iniciativa própria e que não veio de costume familiar, já que seus pais nunca tinham lidado com o ramo comercial ou empresarial.

Jorge afirma que conseguiu tudo na vida com oportunidade e trabalho. "Entendi que isto fez com que eu crescesse como pessoa. Esse processo de querer fazer mais pela sociedade nasceu dessa minha observação das injustiças do mundo em que eu vivia". Há 15 anos Jorge resolveu fazer um planejamento de sua vida e desde então tem cumprido suas metas. "Eu fiz um plano para minha vida, de 60 anos. Primeiro eu iria para organizações sociais, que foi o que fiz com a criação do projeto Pérola, depois eu pensei em mais 25 anos para a área da educação e por fim o restante ficaria para a parte de distribuição de renda", conta.

Em 2002, Jorge lançou um livro sobre planejamento pessoal, para que mais pessoas pudessem ter uma programação para seu futuro. "Toda essa minha trajetória e planejamento começaram quando fui fazer uma prática que era para a pessoa escrever um artigo sobre a própria vida. Foi aí que vi que minha vida tinha de ter coisas mais legais para merecer uma página de jornal. Fiz então um plano, quando tinha 30 anos, e agora estou percorrendo-o", ensina.
Notícia publicada na edição de 08/08/13 do Jornal Cruzeiro do Sul, na página 12 do caderno A - o conteúdo da edição impressa na internet é atualizado diariamente após as 12h.