Opa :)
Eu não queria colocar o src da minha logo em todos os lugares que iam utilizar a logo, então ao invés de fazer isso:
<img class="img/minha-logo.png" />
Eu fiz isso:
<img class="minha-logo" />
.minha-logo {
content: url("img/minha-logo.png");
}
Pronto, está "componentizado" :D
Abraço!
Adriano Schmidt
sexta-feira, 15 de janeiro de 2016
domingo, 10 de janeiro de 2016
Como mockar o document com Jasmine?
Oi :)
Eu tinha no meu código AngularJs (Ionic) o seguinte trecho de código:
Quando eu fui rodar o meu teste com Jasmine obtive o erro:
Para resolver isso eu tinha que fazer um mock da variável document.
Para isso, bastou adicionar as duas linhas abaixo no beforeEach do meu teste (ou em qualquer lugar do teste antes de chegar nas linhas que geraram o erro):
É isso aí, abraço!!
Adriano Schmidt
Eu tinha no meu código AngularJs (Ionic) o seguinte trecho de código:
document.getElementById("canvasId").getContext("2d")Quando eu fui rodar o meu teste com Jasmine obtive o erro:
User Controller
? when the user creates the product
TypeError: 'null' is not an object (evaluating 'document.getElementById('canvasId').getContext')
at C:/Dropbox/workspaces/ws-ionic/my-app/www/js/user/userCtrl.js:9
at C:/Dropbox/workspaces/ws-ionic/my-app/www/lib/angular/angular.js:11659
at C:/Dropbox/workspaces/ws-ionic/my-app/www/lib/angular/angular.js:11745Para resolver isso eu tinha que fazer um mock da variável document.
Para isso, bastou adicionar as duas linhas abaixo no beforeEach do meu teste (ou em qualquer lugar do teste antes de chegar nas linhas que geraram o erro):
$document = angular.element(document);
$document.find('body').append('<canvas id="bar"></canvas>');É isso aí, abraço!!
Adriano Schmidt
quinta-feira, 7 de janeiro de 2016
Como converter e formatar datas em Angular?
Faaala :D
Se você tem a data, mas ela está como String, você precisa primeiro transformá-la numa data:
Depois, é só formatar como quiser:
Veja que usamos o $filter, então você deve ter ele acessível :)
Abraço!!
Adriano Schmidt
Se você tem a data, mas ela está como String, você precisa primeiro transformá-la numa data:
var myDate = new Date(myStringDate);
Depois, é só formatar como quiser:
var formattedDate = $filter('date')(myDate, 'dd/MM/yyyy');Veja que usamos o $filter, então você deve ter ele acessível :)
Abraço!!
Adriano Schmidt
quinta-feira, 3 de dezembro de 2015
Lista de imagens em Ionic
Faaala galera,
Tô trabalhando em projeto com Ionic para desenvolver uma app mobile híbrida e precisei exibir uma lista de imagens colocando 4 imagens por linhas...
Segue abaixo o código:
Para fazer isso me baseei nesse exemplo:
Fonte: http://stackoverflow.com/questions/26688086/create-row-every-after-2-item-in-angular-ng-repeat-ionic-grid
Abraço!
Adriano Schmidt
Tô trabalhando em projeto com Ionic para desenvolver uma app mobile híbrida e precisei exibir uma lista de imagens colocando 4 imagens por linhas...
Segue abaixo o código:
<div ng-repeat="myObject in myList">
<div class="row" ng-if="$index % 4 === 0">
<div class="col col-25" ng-repeat="obj in [myList[$index], myList[$index + 1], myList[$index + 2], myList[$index + 3]]">
<img ng-src="{{obj.imgSrc}}" style="width: 100%;" />
</div>
</div>
</div>Para fazer isso me baseei nesse exemplo:
<div ng-repeat="number in numbers">
<div class="row" ng-if="$even">
<div class="col col-50" ng-repeat="num in [numbers[$index],numbers[$index + 1]]">
{{num}}
</div>
</div>
</div>Fonte: http://stackoverflow.com/questions/26688086/create-row-every-after-2-item-in-angular-ng-repeat-ionic-grid
Abraço!
Adriano Schmidt
quarta-feira, 4 de novembro de 2015
Instalar postgresql no ubuntu
Para instalar o postgresql no ubuntu vamos instalar também o pgadmin (cliente e gerenciador do postgres).
O pgadmin vamos instalar via interface gráfica:
- Procure por ubuntu software center na pesquisa do ubuntu
- Procure por pgadmin e o instale
Agora vá em um terminal e digite o comando abaixo para instalar o postgres
sudo apt-get install postgresql
Depois digite o comando abaixo para acessar o postgres que foi instalado utilizando o usuario default
sudo -u postgres psql
Depois altere a senha do usuário default:
ALTER USER postgres PASSWORD 'postgres';
Aperte Ctrl+D para sair do terminal psql
Agora volte no pgadmin, adicione uma nova conexão com localhost 5432 user postgres senha postgres
Pronto :D
Abraço!
Adriano Schmidt
O pgadmin vamos instalar via interface gráfica:
- Procure por ubuntu software center na pesquisa do ubuntu
- Procure por pgadmin e o instale
Agora vá em um terminal e digite o comando abaixo para instalar o postgres
sudo apt-get install postgresql
Depois digite o comando abaixo para acessar o postgres que foi instalado utilizando o usuario default
sudo -u postgres psql
Depois altere a senha do usuário default:
ALTER USER postgres PASSWORD 'postgres';
Aperte Ctrl+D para sair do terminal psql
Agora volte no pgadmin, adicione uma nova conexão com localhost 5432 user postgres senha postgres
Pronto :D
Abraço!
Adriano Schmidt
Error: pg_config executable not found
Peguei um projeto com backend em phyton... e quando rodei o comando "pip install" deu o erro:
Eu já tinha o PostgreSQL instalado, caso você não tenha, instale-o.
Depois adicione no PATH (variável de ambiente) a pasta bin que fica dentro da pasta de instalação do PostgreSQL
Pronto, rode de novo o comando e funcionará :)
Collecting psycopg2 (from django-toolbelt==0.0.1->-r requirements.txt (line 7))
Downloading psycopg2-2.6.1.tar.gz (371kB)
100% |################################| 372kB 652kB/s
Complete output from command python setup.py egg_info:
running egg_info
creating pip-egg-info\psycopg2.egg-info
writing pip-egg-info\psycopg2.egg-info\PKG-INFO
writing top-level names to pip-egg-info\psycopg2.egg-info\top_level.txt
writing dependency_links to pip-egg-info\psycopg2.egg-info\dependency_links.txt
writing manifest file 'pip-egg-info\psycopg2.egg-info\SOURCES.txt'
warning: manifest_maker: standard file '-c' not found
Error: pg_config executable not found.
Please add the directory containing pg_config to the PATH
or specify the full executable path with the option:
python setup.py build_ext --pg-config /path/to/pg_config build ...
or with the pg_config option in 'setup.cfg'.
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in C:\Users\Adriano\AppData\Local\Temp\pip-build-ihjedt2y\psycopg2
Eu já tinha o PostgreSQL instalado, caso você não tenha, instale-o.
Depois adicione no PATH (variável de ambiente) a pasta bin que fica dentro da pasta de instalação do PostgreSQL
Pronto, rode de novo o comando e funcionará :)
quarta-feira, 21 de outubro de 2015
Como pegar a localização atual no Android?
Hoje precisei fazer uma app que usava a localização atual, é muito simples!
O projeto inteiro está aqui: https://github.com/adrianoschmidt/android-location-sample
Mas o segredo está nesta classe: MainActivity.java
Basicamente você tem q seguir esses 6 passos:
1) Sua Activity deve implementar as classes GoogleApiClient.ConnectionCallbacks e GoogleApiClient.OnConnectionFailedListener
2) Criar um atributo do tipo GoogleApiClient
3) No onCreate ou na chamada de um botão você deve verificar se está tudo certo com a API que pega a localização e se estiver construir a API e se conectar nela.
Verificando:
4) Implementar o método onConnected e pegar a localicação (aqui no exemplo seto em dois TextViews que tenho na minha tela)
5) Implementar os métodos de suspensão e de falha:
6) Solicitar a permissão no manifest
Basicamente é isso, qualquer coisa baixe o projeto no github ou comenta aqui no post.
Abraço!
Adriano Schmidt
O projeto inteiro está aqui: https://github.com/adrianoschmidt/android-location-sample
Mas o segredo está nesta classe: MainActivity.java
Basicamente você tem q seguir esses 6 passos:
1) Sua Activity deve implementar as classes GoogleApiClient.ConnectionCallbacks e GoogleApiClient.OnConnectionFailedListener
public class MainActivity extends Activity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
2) Criar um atributo do tipo GoogleApiClient
private GoogleApiClient googleApiClient;
3) No onCreate ou na chamada de um botão você deve verificar se está tudo certo com a API que pega a localização e se estiver construir a API e se conectar nela.
if (this.checkIfGooglePlayServicesAreAvailable()) {
this.buildGoogleApiClient();
this.mGoogleApiClient.connect();
}
Verificando:
private boolean checkIfGooglePlayServicesAreAvailable() {
int errorCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
if (errorCode != ConnectionResult.SUCCESS) {
System.out.println("GooglePlayServices errorCode: " + errorCode);
GooglePlayServicesUtil.getErrorDialog(errorCode, this, 0).show();
return false;
}
return true;
}
4) Implementar o método onConnected e pegar a localicação (aqui no exemplo seto em dois TextViews que tenho na minha tela)
@Override
public void onConnected(Bundle bundle) {
TextView textViewLatitude = (TextView) findViewById(R.id.textViewLatitude);
TextView textViewLongitude = (TextView) findViewById(R.id.textViewLongitude);
Location mLastLocation = LocationServices.FusedLocationApi.getLastLocation(googleApiClient);
if (mLastLocation != null) {
textViewLatitude.setText("Lat: " + String.valueOf(mLastLocation.getLatitude()));
textViewLongitude.setText("Lng: " + String.valueOf(mLastLocation.getLongitude()));
}
}
5) Implementar os métodos de suspensão e de falha:
@Override
public void onConnectionSuspended(int i) {
}
@Override
public void onConnectionFailed(ConnectionResult connectionResult) {
}
6) Solicitar a permissão no manifest
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
Basicamente é isso, qualquer coisa baixe o projeto no github ou comenta aqui no post.
Abraço!
Adriano Schmidt
quinta-feira, 15 de outubro de 2015
count com distinct
Opa..
Se eu faço uma query com distinct:
Quando eu faço count dela não vai bater:
Pra resolver posso fazer assim:
Obrigado ao meu chará Adriano de Souza pela dica!
Abraço!
Adriano Schmidt
Se eu faço uma query com distinct:
SELECT distinct o FROM tabela1 o JOIN tabela2
Quando eu faço count dela não vai bater:
SELECT distinct count (o) FROM tabela1 o JOIN tabela2
Pra resolver posso fazer assim:
SELECT count (distinct o) FROM tabela1 o JOIN tabela2
Obrigado ao meu chará Adriano de Souza pela dica!
Abraço!
Adriano Schmidt
Atalhos IntelliJ
Opa :)
Eu uso o Eclipse desde sempre... então quando fui usar o IntelliJ IDEA para desenvolver para Android (Android Studio) eu me perdia nos atalhos... então fiz essa tabelinha com os principais atalhos para não me perder :D
Tem algum atalho que você acha que devia estar nessa lista? Comenta aí :)
Abraço!!
Adriano Schmidt
Eu uso o Eclipse desde sempre... então quando fui usar o IntelliJ IDEA para desenvolver para Android (Android Studio) eu me perdia nos atalhos... então fiz essa tabelinha com os principais atalhos para não me perder :D
O quê | Eclipse | IntelliJ |
Deleta a linha | Ctrl+D | Ctrl+Y |
Procura por arquivo | Ctrl+shift+R | Ctrl+shift+N |
Troca linha de lugar | Shift+Up/Down | Alt+shift+Up/Down |
Duplica a linha | Ctrl+shift+Down | Ctrl+D |
Navegar entre abas | Ctrl+PgUp/PgDn | Alt+Left/Right |
Organizeimports | Ctrl+Shift+O | Ctrl+alt+O |
Format | Ctrl+sfhit+F | Ctrl+alt+L |
Tem algum atalho que você acha que devia estar nessa lista? Comenta aí :)
Abraço!!
Adriano Schmidt
segunda-feira, 12 de outubro de 2015
Executar comandos linux no Android
Fala galera, precisei executar comandos linux pela minha app Android, para isso usei o código abaixo.
Troque o "date" que é o comando para pegar a data da máquina pelo comando que você quer executar.
No final deste exemplo, peguei o valor retornado e o mostrei em um TextView.
No GitHub: https://gist.github.com/adrianoschmidt/8c83f972c20358a098a4
Caso você não queira fazer isso programaticamente pode usar o ADB Shell https://developer.android.com/tools/help/shell.html
É bem simples, basta acessar o terminal e ir até a pasta plataform-tools dentro da pasta do SDK do Android "cd <sdk_folder>\platform-tools"
Digite "adb devices" e tendo um dispositivo na lista basta digitar "adb shell" e você já pode digitar os comandos linux.
Vaaleu!
Adriano Schmidt
Troque o "date" que é o comando para pegar a data da máquina pelo comando que você quer executar.
No final deste exemplo, peguei o valor retornado e o mostrei em um TextView.
try {
String commandLine = "date";
Process process = Runtime.getRuntime().exec(commandLine);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String value = bufferedReader.readLine();
TextView dateTextView = (TextView) findViewById(R.id.text_info_line_6);
dateTextView.setText(value);
} catch (IOException e) {
e.printStackTrace();
}
No GitHub: https://gist.github.com/adrianoschmidt/8c83f972c20358a098a4
Caso você não queira fazer isso programaticamente pode usar o ADB Shell https://developer.android.com/tools/help/shell.html
É bem simples, basta acessar o terminal e ir até a pasta plataform-tools dentro da pasta do SDK do Android "cd <sdk_folder>\platform-tools"
Digite "adb devices" e tendo um dispositivo na lista basta digitar "adb shell" e você já pode digitar os comandos linux.
Vaaleu!
Adriano Schmidt
Assinar:
Postagens (Atom)
