Como remover o Android Studio do Mac

Siga os seguintes passos no terminal:

rm -Rf /Applications/Android\ Studio.app
rm -Rf ~/Library/Preferences/AndroidStudio*
rm ~/Library/Preferences/com.google.android.studio.plist
rm -Rf ~/Library/Application\ Support/AndroidStudio*
rm -Rf ~/Library/Logs/AndroidStudio*
rm -Rf ~/Library/Caches/AndroidStudio*

Se você quer apagar todos os projetos:

rm -Rf ~/AndroidStudioProjects

Para remover arquivos relacionados ao gradle (caches & wrapper)

rm -Rf ~/.gradle

Use o comando abaixo para apagar todos os Android Virtual Devices(AVDs) e *.keystore. Nota: Esta pasta é utilizada por outras Android IDE, então se você ainda estiver usando outra IDE, não apague esta pasta)

rm -Rf ~/.android

Para apagar o Android SDK tools

rm -Rf ~/Library/Android*

Esconder opções de um select que funciona em todos os browsers

jQuery.fn.toggleOption = function( show ) {
    jQuery( this ).toggle( show );
    if( show ) {
        if( jQuery( this ).parent( 'span.toggleOption' ).length )
            jQuery( this ).unwrap( );
    } else {
        if( jQuery( this ).parent( 'span.toggleOption' ).length == 0 )
            jQuery( this ).wrap( '<span class="toggleOption" style="display: none;" />' );
    }
};

Após implementada a função, se utiliza da seguinte forma:

$(selector).toggleOption(true); // mostrar option
$(selector).toggleOption(false); // esconder option

Transpor uma Array em PHP

Com o PHP 5.6 um novo tipo de função foi criado e facilitou bastante algumas operações. Uma delas é a função variádica (Link) onde você pode usar um operador “…” e adicionar quantos parâmetros quiser em uma função. Por exemplo:

function f($req, $opt = null, ...$params) {
    // $params é uma variável contendo todos os outros argumentos.
    printf('$req: %d; $opt: %d; number of params: %d'."\n",
           $req, $opt, count($params));
}

f(1);
f(1, 2);
f(1, 2, 3);
f(1, 2, 3, 4);
f(1, 2, 3, 4, 5);

Assim, ficou fácil fazer a transposição de uma array:

function transpose($array) {
    return array_map(null, ...$array);
}

Antigamente o código era ligeiramente maior, mas parecia mais um hack do que uma implementação:

function transpose($array) {
    array_unshift($array, null);
    return call_user_func_array('array_map', $array);
}

Espero ter ajudado!

Plugins Cordova não rodam no Ionic View

Estava desenvolvendo quando ocorreu um problema com o Ionic View no iOS. Ele não estava rodando como deveria. O SQLite não estava funcionando no iOS, mas no Android sim.

Buscando na Web descobri a solução postada pelo próprio time do Ionic Framework:

EDIT: To anyone else I’ve linked to this comment, this is a small workaround for the issue of plugins not working correctly in View. Cordova doesn’t load immediately in View, so Ionic’s check for isWebView to determine if it should wait for the Cordova deviceready event returns false and things likeionic.Platform.ready() execute immediately, which is often before plugins and Cordova have had a chance to initialize.

So if you guys aren’t adverse to a small hack, adding <script>window.phonegap = {}</script> to your<head> before Ionic loads should force it to wait for the deviceready event without stepping on Cordova’s toes once it does load. Much simpler than writing $timeout everywhere.

Simplesmente coloquei a seguinte linha antes dos css e scripts no www/index.html:

<script>window.phonegap = {}</script>

Fiz o upload pro Ionic View e resolveu o problema!

Espero que também possam ser ajudados por isso.