por Sândler

Melhores Plugins Sublime

setembro 6, 2018 em Php por Sândler

Melhores Pluguins Sublime

 

CTRL + SHIFT + P

Escolha a opção: Install Package

O sublime irá listar vários pacotes interessantes como os citados abaixo.

 

PHP.

  • BracketHighlighter
  • Composer
  • DocBlockr
  • Emmet
  • Gist
  • Git
  • GitGutter
  • PHP Codebeautifier
  • PHP Companion
  • PHP Constructors
  • Xdebug Client
  • SublimeCodeIntel
  • CSS-CodeIntel
  • PHP-CodeIntel
  • HTML-CodeIntel
  • JSON-CodeIntel
  • JavaScript-CodeIntel

 

 

Reference: https://medium.com/@juniorb2s/melhores-plugins-sublime-para-php-4b011aa02cdf

Reference SublimeCodeIntel: https://github.com/SublimeCodeIntel/SublimeCodeIntel#using

 

Arquivo Completo

Package Control.sublime-settings User:

{
“bootstrapped”: true,
“in_process_packages”:
[
],
“installed_packages”:
[
"BracketHighlighter",
"CodeIgniter 2 ModelController",
"CodeIgniter Snippets",
"Composer",
"DocBlockr",
"Emmet",
"Gist",
"Git",
"GitGutter",
"Package Control",
"PHP Codebeautifier",
"PHP Companion",
"PHP Constructors",
"SublimeCodeIntel",
"CSS-CodeIntel",
"PHP-CodeIntel",
"HTML-CodeIntel",
"JSON-CodeIntel",
"JavaScript-CodeIntel",
"Xdebug Client"
]
}

 

 

INSTALAÇÃO

bulb SublimeCodeIntel LSP

This is the experimental fork with Language Server Protocol support of SublimeCodeIntel. The following languages are available:

  • CSS-CodeIntel -> CSS/SCSS/Sass/Less
  • Cpp-CodeIntel -> C/C++/Objective-C/Objective-C++
  • HTML-CodeIntel -> HTML
  • JSON-CodeIntel -> JSON/JSONC
  • JavaScript-CodeIntel -> JavaScript/TypeScript/Node.js
  • Markdown-CodeIntel -> Markdown
  • OCaml-CodeIntel -> OCaml
  • PHP-CodeIntel -> PHP
  • Python-CodeIntel -> Python2/Python3
  • Rust-CodeIntel -> Rust
  • YAML-CodeIntel -> YAML

Installation

For the moment, SublimeCodeIntel LSP isn’t available in Package Control yet, to install you need to directly add repositories as well as adding the installed packages.

From command palette add SublimeCodeIntel and the relevant repositories:

Ex.: Package Control: Add Repository -> https://github.com/Kronuz/SublimeCodeIntel Package Control: Install Package -> SublimeCodeIntel

Package Control: Add Repository -> https://github.com/Kronuz/Python-CodeIntel Package Control: Install Package -> Python-CodeIntel

Or directly modify your Packages/User/Package Control.sublime-settings:

{
	"installed_packages": [
		"SublimeCodeIntel",
		"CSS-CodeIntel",
		"Cpp-CodeIntel",
		"HTML-CodeIntel",
		"JSON-CodeIntel",
		"JavaScript-CodeIntel",
		"Markdown-CodeIntel",
		"OCaml-CodeIntel",
		"PHP-CodeIntel",
		"Python-CodeIntel",
		"Rust-CodeIntel",
		"YAML-CodeIntel"
	],
	"repositories": [
		"https://github.com/Kronuz/SublimeCodeIntel",
		"https://github.com/Kronuz/CSS-CodeIntel",
		"https://github.com/Kronuz/Cpp-CodeIntel",
		"https://github.com/Kronuz/HTML-CodeIntel",
		"https://github.com/Kronuz/JSON-CodeIntel",
		"https://github.com/Kronuz/JavaScript-CodeIntel",
		"https://github.com/Kronuz/Markdown-CodeIntel",
		"https://github.com/Kronuz/OCaml-CodeIntel",
		"https://github.com/Kronuz/PHP-CodeIntel",
		"https://github.com/Kronuz/Python-CodeIntel",
		"https://github.com/Kronuz/Rust-CodeIntel",
		"https://github.com/Kronuz/YAML-CodeIntel"
	]
}


Using

  • Start typing code as usual, autocomplete will pop up whenever it’s available. SublimeCodeIntel will also allow you to jump around symbol definitions even across files with just a click ..and back.

    For Mac OS X:

    • Jump to definition = Control+Click
    • Jump to definition = Control+Command+Alt+Up
    • Go back = Control+Command+Alt+Left
    • Manual Code Intelligence = Control+Shift+space

    For Linux:

    • Jump to definition = Super+Click
    • Jump to definition = Control+Super+Alt+Up
    • Go back = Control+Super+Alt+Left
    • Manual Code Intelligence = Control+Shift+space

    For Windows:

    • Jump to definition = Alt+Click
    • Jump to definition = Control+Windows+Alt+Up
    • Go back = Control+Windows+Alt+Left
    • Manual Code Intelligence = Control+Shift+space

Don’t despair! The first time you use it it needs to build some indexes and it can take more than a few seconds.

It just works!

 

por Carlos

git .gitignore – Como resolver quando o arquivo já foi adicionado

setembro 3, 2018 em github por Carlos

O .gitignore não funciona corretamente após adicionarmos o arquivo ao git (by git add).

Para que o arquivo ou pasta seja ignorado é necessário rodar 2 comandos:

  1. git reset name_of_file (desanexo / desmembra o arquivo e mantem no repositório)
  2. git rm –cached name_of_file (utilize esse comando para remover o arquivo do repositório após pushing).

 

Referencia:

https://stackoverflow.com/questions/4308610/how-to-ignore-certain-files-in-git

 

 

por Sândler

Formatar coluna como moeda via SQL – Mysql

agosto 1, 2018 em Mysql, SQL por Sândler

Formatar coluna como moeda  via SQL – Mysql

A função format no Mysql possibilita a formatação da coluna como o exemplo abaixo:

FORMAT(X,D[,locale])

 

Segue o exemplo da função para conversão do campo para “moeda” com retorno

SELECT FORMAT(’123456′,2,‘de_DE’);

 

A localidade ‘de_DE’ deixa exatamente a moeda com o formato Brasileiro.

 

 

Referência: https://pt.stackoverflow.com/questions/170096/formato-de-moeda

 

 

por Sândler

QlikSense – Retirar legenda – O conjunto de dados contém valores negativos ou iguais a zero que…

julho 20, 2018 em QlikSense por Sândler

QlikSense – Retirar legenda – O conjunto de dados contém valores negativos ou iguais a zero que não podem ser mostrados neste gráfico

Isto pode ocorrer porque na sua busca com banco de dados ficou alguma referência vazia, como por exemplo ligar usuários com perfil e tiver usuários sem perfis e você colocar um LEFT JOIN  ao invés do INNER JOIN,  e neste exemplo terá usuários com dados de perfis NULOS.

Então você pode:

  • Corrigir a Querie
  • Pode retirar na dimensão a opção: “Incluir valores nulos”
  • ou uma solução que utilizei que é: na sua medida ao invés de utilizar “Count(<VALOR_MEDIDA>)”  adicione um IF igual o exemplo abaixo

 

Exemplo:

if(Count(<VALOR_MEDIDA>) > 0, Count(<VALOR_MEDIDA>)”)

 

Desta maneira só vai exibir valores se for maior que ZERO.

Observação.: esta solução não pode ser usada quando sua base de MEDIDA utiliza valores com ZERO ou ABAIXO DE ZERO.

 

por Sândler

QlikSense – Inclusão de Percentual no Gráfico de Barras

julho 20, 2018 em QlikSense por Sândler

QlikSense – Inclusão de Percentual no Gráfico de Barras

 

Hoje procurei de todas as formas para colocar este item e não encontrei em nenhum lugar para colocar este percentual,  e baseado em algumas explicações, adicionando as regras para o funcionamento.

Hoje pelo próprio Sense, não consigo colocar “porcentagem” gráfico, somente habilitar “Rótulos de valor” ou não, então como a necessidade era informar número e o percentual, inclui o percentual na Dimensão da seguinte forma:

Exemplo:

=
if(<MEDIDA>= ”, ”,
      <DIMENSAO> & ‘ (‘ &
        aggr (
          num (count(distinct <ID_PRINCIPAL>)/count(TOTAL <DIMENSAO>)*100, ’0′), <DIMENSAO>
        )
     & ‘%) ‘
)

 

Agora vamos para a explicação:

 

<DIMENSAO> é somente ela que colocamos no campo de expressão da dimensão, mas neste caso eu queria que ao invés de “SIM” ficasse “SIM (25%)”

 

1ªPARTE – Cálculo Percentual

Para o funcionamento de um count ou sum na dimensão é necesário colocar o AGGR e o NUM, caso não coloque não funciona.
Exemplo:  aggr (num (count(distinct <ID_PRINCIPAL>)/count(TOTAL <DIMENSAO>)*100, ’0′), <DIMENSAO>)

 

Então coloquei o AGGR depois o NUM e ai começa o cálculo:
- count(distinct <ID_PRINCIPAL>) => pega um código comum para todos e dei um distict no caso do meu porque ele poderia se repetir.
- count(TOTAL <DIMENSAO>) => o TOTAL juntamente com a dimensão faz a soma de todas as barras.
- Depois de dividido pelo total eu multipliquei por 100.
- e como propriedade do NUM foi adicionado o modelo de exibição ’0′ ZERO que foi para exibir somente inteiro ao invés de float.
Exemplo: 0 => 25    0.00  => 25,40     #,##00.0 => 25,40232
- e como propriedade do AGGR eu fiz a atribuição  do no final com virgula a <DIMENSAO>

Agora já temos o cálculo como exemplo   ((40/80)*100) => 50%

 

2ªPARTE - Concatenação

Então concatenei  <DIMENSAO> & ‘ (‘ &  <PARTE 1 – CÁLCULO PERCENTUAL> & ‘% )’;

3ª PARTE – separar resultado NULO

Agora para separar o valor NULO acabei tendo que fazer uma forma que “SE” o valor for igual VAZIO  ele não exibe, e se tiver valor mostra o cálculo.
Exemploif(<MEDIDA>= ”, ”, <PARTE 2 – CONCATENAÇÃO> )

Precisei fazer esta manobra porque o meu ID_PRINCIPAL  contem mais números (chaves) do que este resultado do gráfico.

 

por Sândler

Armazenar Credencias Github

maio 28, 2018 em github por Sândler

Armazenar Credencias Github

 

Linux:

git config --global credential.helper cache

OSX:

git config --global credential.helper osxkeychain

Windows:

git config --global credential.helper wincred
por Sândler

Usando controller sem model – Cakephp

maio 22, 2018 em CakePhp, Php por Sândler

Usando controller sem model - Cakephp

Para utilizar uma controller que não tenha vinculo com nenhum banco de dados (não precisa de MODEL), basta utilizar o comando $uses e setar como false.


class
MyController extends AppController{
var $uses =false
;

}

por Sândler

Mysql – Cálculo de idade através da data de nascimento

abril 26, 2018 em Mysql, SQL por Sândler

Mysql – Cálculo de idade através da data de nascimento

 

select (YEAR(CURDATE()) – YEAR(’2000-04-26′)) – (RIGHT(CURDATE(), 5) < RIGHT(’2000-04-26′, 5)) AS idade;

 

 

por Sândler

Retirar o cache do navegador – todas linguagens de programação

fevereiro 15, 2018 em Html, Php por Sândler

The correct minimum set of headers that works across all mentioned clients (and proxies):

Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: 0

The Cache-Control is per the HTTP 1.1 spec for clients and proxies (and implicitly required by some clients next to Expires). The Pragma is per the HTTP 1.0 spec for prehistoric clients. The Expires is per the HTTP 1.0 and 1.1 spec for clients and proxies. In HTTP 1.1, the Cache-Controltakes precedence over Expires, so it’s after all for HTTP 1.0 proxies only.

If you don’t care about IE6 and its broken caching when serving pages over HTTPS with only no-store, then you could omit Cache-Control: no-cache.

Cache-Control: no-store, must-revalidate
Pragma: no-cache
Expires: 0

If you don’t care about IE6 nor HTTP 1.0 clients (HTTP 1.1 was introduced 1997), then you could omit Pragma.

Cache-Control: no-store, must-revalidate
Expires: 0

If you don’t care about HTTP 1.0 proxies either, then you could omit Expires.

Cache-Control: no-store, must-revalidate

On the other hand, if the server auto-includes a valid Date header, then you could theoretically omit Cache-Control too and rely on Expires only.

Date: Wed, 24 Aug 2016 18:32:02 GMT
Expires: 0

But that may fail if e.g. the enduser manipulates the operating system date and the client software is relying on it.

Other Cache-Control parameters such as max-age are irrelevant if the abovementioned Cache-Control parameters are specified. The Last-Modified header as included in most other answers here is only interesting if you actually want to cache the request, so you don’t need to specify it at all.

How to set it?

Using PHP:

header("Cache-Control: no-cache, no-store, must-revalidate");// HTTP 1.1.
header("Pragma: no-cache");// HTTP 1.0.
header("Expires: 0");// Proxies.

Using Java Servlet, or Node.js:

response.setHeader("Cache-Control","no-cache, no-store, must-revalidate");// HTTP 1.1.
response.setHeader("Pragma","no-cache");// HTTP 1.0.
response.setHeader("Expires","0");// Proxies.

Using ASP.NET-MVC

Response.Cache.SetCacheability(HttpCacheability.NoCache);// HTTP 1.1.Response.Cache.AppendCacheExtension("no-store, must-revalidate");Response.AppendHeader("Pragma","no-cache");// HTTP 1.0.Response.AppendHeader("Expires","0");// Proxies.

Using ASP.NET:

Response.AppendHeader("Cache-Control","no-cache, no-store, must-revalidate");// HTTP 1.1.Response.AppendHeader("Pragma","no-cache");// HTTP 1.0.Response.AppendHeader("Expires","0");// Proxies.

Using ASP:

Response.addHeader "Cache-Control","no-cache, no-store, must-revalidate"' HTTP 1.1.
Response.addHeader "Pragma","no-cache"' HTTP 1.0.
Response.addHeader "Expires","0"' Proxies.

Using Ruby on Rails, or Python/Flask:

response.headers["Cache-Control"]="no-cache, no-store, must-revalidate"# HTTP 1.1.
response.headers["Pragma"]="no-cache"# HTTP 1.0.
response.headers["Expires"]="0"# Proxies.

Using Python/Django:

response["Cache-Control"]="no-cache, no-store, must-revalidate"# HTTP 1.1.
response["Pragma"]="no-cache"# HTTP 1.0.
response["Expires"]="0"# Proxies.

Using Python/Pyramid:

request.response.headerlist.extend((('Cache-Control','no-cache, no-store, must-revalidate'),('Pragma','no-cache'),('Expires','0')))

Using Google Go:

responseWriter.Header().Set("Cache-Control","no-cache, no-store, must-revalidate")// HTTP 1.1.
responseWriter.Header().Set("Pragma","no-cache")// HTTP 1.0.
responseWriter.Header().Set("Expires","0")// Proxies.

Using Apache .htaccess file:

<IfModulemod_headers.c>
    Header set Cache-Control "no-cache, no-store, must-revalidate"
    Header set Pragma "no-cache"
    Header set Expires 0
</IfModule>

Using HTML4:

<metahttp-equiv="Cache-Control"content="no-cache, no-store, must-revalidate"/><metahttp-equiv="Pragma"content="no-cache"/><metahttp-equiv="Expires"content="0"/>

HTML meta tags vs HTTP response headers

Important to know is that when a HTML page is served over a HTTP connection, and a header is present in both the HTTP response headers and the HTML <meta http-equiv> tags, then the one specified in the HTTP response header will get precedence over the HTML meta tag. The HTML meta tag will only be used when the page is viewed from local disk file system via a file:// URL. See also W3 HTML spec chapter 5.2.2. Take care with this when you don’t specify them programmatically, because the webserver can namely include some default values.

Generally, you’d better just not specify the HTML meta tags to avoid confusion by starters, and rely on hard HTTP response headers. Moreover, specifically those <meta http-equiv> tags are invalidin HTML5. Only the http-equiv values listed in HTML5 specification are allowed.

Verifying the actual HTTP response headers

To verify the one and other, you can see/debug them in HTTP traffic monitor of webbrowser’s developer toolset. You can get there by pressing F12 in Chrome/Firefox23+/IE9+, and then opening the “Network” or “Net” tab panel, and then clicking the HTTP request of interest to uncover all detail about the HTTP request and response. The below screenshot is from Chrome:

Chrome developer toolset HTTP traffic monitor showing HTTP response headers on stackoverflow.com

I want to set those headers on file downloads too

First of all, this question and answer is targeted on “web pages” (HTML pages), not “file downloads” (PDF, zip, Excel, etc). You’d better have them cached and make use of some file version identifier somewhere in URI path or querystring to force a redownload on a changed file. When applying those no-cache headers on file downloads anyway, then beware of the IE7/8 bug when serving a file download over HTTPS instead of HTTP. For detail, see IE cannot download foo.jsf. IE was not able to open this internet site. The requested site is either unavailable or cannot be found.

Reference: https://stackoverflow.com/questions/49547/how-to-control-web-page-caching-across-all-browsers

por Sândler

Alteração de Host e apostamento no ubuntu

janeiro 26, 2018 em Linux, Ubuntu por Sândler

Mudança de Hosts no Ubuntu para configuração de acesso via HTTP

 

a2dissite <configurador>.conf
service apache2 reload

vim /etc/apache2/sites-available/<configurador>.conf
(i) para editar
(:w!) para salvar
(:wq!) para salvar e sair
(:q!) sair sem salvar

a2ensite <configurador>.conf
service apache2 reload

 

 

para acesso pode criar um virtualhost da seguinte maneira

HOSTS
C:\windows\system32\drivers\etc\hosts
xxx.xxx.xxx.xxx  <nome_site>.com www.<nome_site>.com