Skip to content

Instantly share code, notes, and snippets.

View hesenger's full-sized avatar
The art of the sailor is to leave nothing to chance

Heber Senger hesenger

The art of the sailor is to leave nothing to chance
View GitHub Profile
@hesenger
hesenger / Web.config
Created August 13, 2012 20:19
Cabeçalho de cache "update" para conteúdo estático no IIS 7
<configuration>
<system.webServer>
</staticContent>
<clientCache cacheControlCustom="public" cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00" />
</staticContent>
</system.webServer>
<configuration>
@hesenger
hesenger / playlist.js
Created May 2, 2017 18:46
List music names from Spotify playlist.
// paste code on console from chrome in a playlist page like this: https://open.spotify.com/user/spotify/playlist/37i9dQZF1DX2e5iuTsMOoD
var eles = document.getElementsByClassName('track-name');var list = '';
for(var i = 0; i < eles.length; i++) {list+=eles[i].innerText + '\n';}
SELECT CONCAT(SC.NAME, '.', TA.NAME) TABELA,
FORMAT(SUM(PA.ROWS), 'N0') LINHAS,
(SELECT CONCAT(CC.NAME, '; ') FROM SYS.COLUMNS CC WHERE CC.object_id = TA.object_id FOR XML PATH('')) COLUNAS
FROM SYS.TABLES TA
INNER JOIN SYS.PARTITIONS PA ON PA.OBJECT_ID = TA.OBJECT_ID
INNER JOIN SYS.SCHEMAS SC ON TA.SCHEMA_ID = SC.SCHEMA_ID
INNER JOIN SYS.COLUMNS C ON C.OBJECT_ID = TA.OBJECT_ID
WHERE TA.IS_MS_SHIPPED = 0 AND PA.INDEX_ID IN (1,0)
AND TA.NAME NOT LIKE '%HIDL%'
GROUP BY SC.NAME,TA.NAME,TA.object_id
@hesenger
hesenger / WebService.cs
Created July 6, 2018 12:04
Consome um webservice no padrão WSDL sem necessidade de referência no VS.
using System;
using System.IO;
public class WebService
{
public string Url { get; set; }
public string MethodName { get; set; }
public Dictionary<string, string> Params = new Dictionary<string, string>();
public XDocument ResultXML;
public string ResultString;
@hesenger
hesenger / SchemaUpdater.cs
Created July 7, 2018 12:02
Atualiza estrutura de dados com base em arquivos SQL do assembly.
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Models.Schema
@hesenger
hesenger / _LOGATUALIZARESTRUTURA.sql
Last active October 23, 2018 13:53
Sql Server - Cria/atualiza uma tabela de log e sua trigger no schema especificado. O a tabela insere um registro sempre que há alteração/deleção na original.
-- _LOGATUALIZARESTRUTURA 'dbo', NULL
ALTER PROCEDURE _LOGATUALIZARESTRUTURA(@SCHEMA VARCHAR(20), @TABLE VARCHAR(20))
AS
BEGIN
/*
tipos a usar no sql server
- varchar (texto)
- int (máx 2.147.483.647) 4bytes
- tinyint (campos de tipo, máx 255) 1byte
@hesenger
hesenger / parcelar.js
Last active January 12, 2019 11:48
JS - Divide um valor monetário em parcelas iguais, com eventual diferença na primeira parcela.
(function () {
var trunc = function (vl) {
return Math.trunc(vl * 100) / 100;
};
var func = function (valor, parcelas) {
if (parcelas === 1)
return [valor];
var integ = Math.trunc(valor * 100);
public class OnlyRootContractResolver : CamelCasePropertyNamesContractResolver
{
protected Type _root;
protected List<string> _included;
public OnlyRootContractResolver(Type root, IEnumerable<string> included)
{
_root = root;
_included = new List<string>(included ?? new string[0]);
}
@hesenger
hesenger / AutoPersist.cs
Created July 17, 2019 18:41
AutoPersist
public class AutoPersist<T> : IEnumerable<T>
{
private readonly object _lock = new object();
private readonly List<T> _list;
private readonly string _path;
public AutoPersist()
{
_path = FormatPath();
@hesenger
hesenger / BaseActivity.java
Last active November 4, 2020 20:42
Android base activity with auto bind controls to class fields, button click to method etc...
package br.com.vendas;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;