quinta-feira, 22 de outubro de 2015

INSTALL SWIRL

https://github.com/swirldev/swirl_courses

Install and run a course automatically from swirl

This is the preferred method of installing courses. It automates the process by allowing you to do everything right from the R console.
1) Make sure you have a recent version version of swirl:
install.packages("swirl")
2) Enter the following from the R console, substituting the name of the course that you wish to install:
library(swirl)
install_from_swirl("Course Name Here")
swirl()
For example, install_from_swirl("R Programming") will install the R Programming course. Please note that course names are case sensitive!
If that doesn't work for you...

Install and run a course manually

If the automatic course installation method outlined above does not work for you, then there's a simple alternative.
1) Click on the Download ZIP button on the righthand side of this page.
2) Enter the following from the R console, substituting the correct file path to your downloaded file and the name of your desired course:
library(swirl)
install_course_zip("path/to/file/here/swirl_courses-master.zip", multi=TRUE, 
                   which_course="Course Name Here")
swirl()

terça-feira, 6 de outubro de 2015

Alguém no panteão dos nerds discorda de você.

As pessoas que sabem e gostam de trabalhar em grupo são sempre mais desejáveis do que aquelas que gostam de trabalhar sozinhas, certo?
Bem, alguém no panteão dos nerds discorda de você.
"Most inventors and engineers I've met are like me - they're shy and they live in their heads. They're almost like artists. In fact, the very best of them are artists. And artists work best alone where they can control and invention's design without a lot of other people designing it for marketing or some other committee. I don't believe anything really revolutionary has been invented by committee. If you're that rare engineer who's an inventor and also and artist, I'm going to give you some advice that might be hard to take. That advice is: Work alone. You're going to be best able to design revolutionary products and features if you are working on your own. Not on a committee. Not on a team." - iWoz (Wozniak)
Retirado de Quiet - The power of introverts in a world that can't stop talking.

domingo, 23 de agosto de 2015

Fazer cursos online me obrigou a amadurecer

No início, aprender através de cursos on-line não é nada fácil. Pelo menos para mim não foi. Mas agora depois de uns quatro eu já descobri o porquê.
Acho que a maioria de vocês vai ficar bem irritada com o que vou dizer. Mas descobri que no curso presencial eu estava mais interessado em que o professor me desse atenção do que realmente na conteúdo do curso.
É isso aí, ************ATENÇÃO*****************.
Cheguei a conclusão de que nós pagamos um curso presencial (caro) para receber atenção mais do que qualquer coisa. Mas o que tem de tem errado com isso? Você vai me perguntar.
Bem, crianças precisam de muita, muita atenção. Mas conforme a gente vai ficando mais adulto, percebe que pode se virar sozinho em um monte de coisas. Isso se chama autossuficiência.
E é justamente isso que um curso online obriga você a ter, AUTOSSUFICIÊNCIA. Em um curso online, ainda mais em uma língua estrangeira, você é obrigado a aprender "sozinho". Sim existe um direcionamento para o aprendizado. Mas se você pensar que na linguagem entre seres humanos, o gestual corresponde a mais ou menos 70% do conteúdo que está sendo transmitido por ambas as partes, você vai ter que se virar com apenas 30% para construir o seu conhecimento. Quero dizer que o vídeo que você vê nos cursos online vai dar para você 30% do que você precisa. Os outros 70%  vai ter que ser construído por você mesmo.
No início, pelo menos para mim que fui acostumado a ter alguém na minha frente me dizendo exatamente o que fazer, ser obrigado a construir meu próprio conhecimento a partir documentos e alguns vídeos não foi uma coisa fácil.
Existe uma outra coisa, que pode ser ainda mais irritante para você ouvir. Se você não passa, se não consegue o certificado, não tem como culpar o professor. A culpa é SUA. Se você vai fazer um curso online da John Hopkins University e não passa, não tem como você dizer, " ah, foi o professor que não foi com a minha cara", ou ainda, "Essa universidade é uma m.". Não, nenhuma dessas desculpas vai colar. A culpa é SUA. Você é único responsável pelo seu FRACASSO ou SUCESSO.
Depois de dois anos, posso dizer que estou viciado nos cursos online. Eles são baratos, existem centenas deles disponibilizados por universidades como MIT, Standford University, Ecole Polytechnique Fédérale de Lausanne, Harvard, só para citar algumas.
Voltarei a fazer cursos presenciais? Hummm, sim. Mas terei o cuidado de fazer um curso que seja um curso sério, e não uma terapia de grupo disfarçada.


terça-feira, 4 de agosto de 2015

SRINK LOG TRANSACTION FILE OF YOUR DATABASE

USE AdventureWorks2012;
GO
-- Truncate the log by changing the database recovery model to SIMPLE.
ALTER DATABASE AdventureWorks2012
SET RECOVERY SIMPLE;
GO
-- Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE (AdventureWorks2012_Log, 1);
GO
-- Reset the database recovery model.
ALTER DATABASE AdventureWorks2012
SET RECOVERY FULL;
GO

I used the script above to create a JOB. It worked perfectly.
Há!

sexta-feira, 17 de abril de 2015

Star Wars The Force Awakens Teaser Trailer 2 Official


SQLSERVER 2008 AND SSIS AND MICROSOFT.ACE.OLEDB.12.0 AND WINDOWS 64 BITS DO NOT WORK TOGETHER!




SSIS AND MICROSOFT.ACE.OLEDB.12.0 AND WINDOWS 64 BITS DO NOT WORK!
AND THAT'S IT.
THE TRUTH IS THAT IT WORKS FINE ON WINDOWS 32 BITS BUT 64 BITS, NO WAY!

THE ONLY THING THAT WORKS WITH MICROSOFT.ACE.OLEDB.12.0, IN SQLSERVER2008 IS LINKEDSERVER.

THE REST, FORGET IT!


terça-feira, 14 de abril de 2015

sexta-feira, 3 de abril de 2015

USING REGEX WITH SQLSERVER

STEP 1

sp_configure 'show advanced options', 1

GO
RECONFIGURE;
GO
sp_configure 'Ole Automation Procedures', 1
GO
RECONFIGURE;
GO
sp_configure 'show advanced options', 1
GO
RECONFIGURE;

STEP 2

Create this function

USE [Nike]
GO
/****** Object:  UserDefinedFunction [dbo].[RegexCodigoProduto]    Script Date: 04/02/2015 15:17:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[RegexCodigoProduto] (@CodigoProduto VARCHAR(8000), @RegexPattern VARCHAR(4000)) RETURNS VARCHAR(20)
AS
BEGIN
Declare @subject varchar(8000) = @CodigoProduto
Declare @pattern varchar(4000) = @RegexPattern --Pattern
DECLARE @objRegexExp INT, @objMatch INT, @Result VARCHAR(8000)

--Creating COM object
EXEC sp_OACreate 'VBScript.RegExp', @objRegexExp OUT
--Assigning Properties to COM object
EXEC sp_OASetProperty @objRegexExp, 'Pattern', @pattern
EXEC sp_OASetProperty @objRegexExp, 'IgnoreCase', 1
EXEC sp_OASetProperty @objRegexExp, 'MultiLine', 1
EXEC sp_OASetProperty @objRegexExp, 'Global', false
EXEC sp_OASetProperty @objRegexExp, 'CultureInvariant', true

--Executing the COM object
EXEC sp_OAMethod @objRegexExp, 'execute', @objMatch OUT, @subject
--Fetching the first matching value
EXEC sp_OAGetProperty @objmatch, 'item(0).Value' , @Result OUT
--Releasing COM object after use
EXEC sp_OADestroy @objMatch
EXEC sp_OADestroy @objRegexExp

RETURN @Result

END

quarta-feira, 1 de abril de 2015

Pra achar o norte de quem somos e sintonizar.


HOW TO - Populate EXCEL using SQL Server 2008 .. SQL2008 -> EXCEL, GOT IT?



This is an example of a store procedure that reads a VIEW and stores the result into a EXCEL sheet.
This example uses EXCEL of OFFICE 2010.
This new drive that Microsoft produced is not good at all, but if you are using EXCEL 2010 or higher, you have no other option.
Microsoft.ACE.OLEDB.12.0

Something that really got on my nerves was the use of the single quotes.

If you want to use INSERT INTO OPENROWSET with parameters you'll have to be carefull with single quotes.

If you want to write this ', you have to write  this ''.

Be careful with the name of the columns of your table or view. If it begins with number, you will have a bad surprise.

EXAMPLE

SELECT 7RUBY FROM MYTABLE

Will produce a lot of 7s instead of the column value.

Don't use columns that begin with numbers.

Have in mind that you will be using linkedserver in background, which has, at least in my experience, not a very good performance.

Maybe is the drive, maybe is the configuration of the server, I don't know. But linked server in my experiment had a bad performance.

Oh, and don't forget to execute these commands



EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
EXEC sp_configure 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE;
GO

But can't I use a programming language to do this, instead of do it directly on SQLServer?
Excellent question!
I tried, but it seems the driver has a very weird behavior.
It seems to be intrinsically asynchronous, no matter what you do.
I tried C#.
The only I could have a reliable solution using this drive of Microsoft was making the process on SQLServer. I know, it seems extreme, but that's what solved my problem.



USE [Nike]
GO
/****** Object:  StoredProcedure [dbo].[SP_POPULATE_EXCEL_SHEET]    Script Date: 04/01/2015 13:17:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[SP_POPULATE_EXCEL_SHEET]
@FileName varchar(255),
@Date1 varchar(10),
@Date2 varchar(10),
@Date3 varchar(10),
@Date4 varchar(10),
@ShopCode varchar(8)
AS

DECLARE @SQL VARCHAR(MAX)

SET @SQL = 'INSERT INTO OPENROWSET' +
           '(''Microsoft.ACE.OLEDB.12.0'',' +
           '''Excel 12.0;Database=c:\reports\' + @FileName + ';''' + ',' +
           '''SELECT FIELD1,FIELD2 FROM  [SHEET1$]''' + ')' +
  'SELECT CITY, COUNTRY from VIEW_CITY_COUNTRY  WHERE ((ProcessDate >= ''' + @Date1 + ''' AND ProcessDate <= ''' + @Date2 + ''' ) OR (ProcessDate >= ''' + @Date3 + ''' AND ProcessDate <= ''' + @Date4 + ''' )) AND IndicatorXXX =''S'' AND ShopCode = ' + @ShopCode

EXEC (@SQL)

GO