Site do INPI é Hackeado

Site do Instituto Nacional de Propriedade Industrial é Hackeado


SIte do INPI Hackeado
O Portal do Instituto Nacional de Propriedade Industrial, www.inpi.gov.br, foi invadido na tarde de hoje. Ainda não se sabe se teve alguma perda de dados, mas a pagina inicial do site foi alterada. O autor do ataque se identifica como Mr. M17N.
Página de teste do Red Hat
O INPI é responsável pelo registro de marcas, patentes e outros elementos de Propriedade Industrial do Brasil. Ele trabalha em conformidade com tratados internacionais para qualificação de suas marcas e patentes. No momento o INPI retirou a pagina hackeada e mantiveram a pagina de teste do servidor Red Hat.


É verdade que alguém tem alergia a tecnologia?

Alguém tem alergia à SmartPhone?

Alergia a televisão
Debbie Bird tem alergia a tecnologia. Parece muito estranho mas é verdade. Ela já chegou a perder a consciência por mais de 40 vezes num só dia em função da alergia. Debbie também tem reações alérgicas ao utilizar televisão, tablets, smartphones, forno de microondas ou dirigir carro.

A estadunidense Debbie Bird descobriu que possui uma alergia rara a campos eletromagnéticos. Estes campos são gerados pela maiorias dos aparelhos eletrônicos utilizados. As reações mais comuns são dores causadas por alergias na pele, inchaço na pálpebra ou até mesmo desmaios.

Para diminuir o impacto ela criou uma área livre de influências eletromagnéticas em sua casa.

Como configurar um serviço do windows via linha de comando?

Instalando Windows Service por Command-line

Como instalar um Windows Service qualquer com linha linha de comando?

Muitas vezes é necessário instalar Serviços do Windows. Serviços construídos em C#, em C++, em VB, ou qualquer outra linguagem. A construção de instaladores nem sempre é a mais simples ou eficiente no momento. A utilização de linhas de comando torna simples a manipulação dos serviços.

Como fazer a instalação de um windows service via linha de comando?

SC CREATE "Nome do Windows Service" binpath= "C:\caminhoDoWindowsService\WindowsService.exe"

Como desinstalar um windows service via linha de comando?

SC DELETE "Nome do Windows Service"

Como dar Start em um windows service via linha de comando?

SC START "Nome do Windows Service"

Como parar um windows service via linha de comando?

SC STOP "Nome do Windows Service"

Como reiniciar um windows service pausado via linha de comando?

SC CONTINUE "Nome do Windows Service"

O que é Mock em Teste Unitário?

O que é Mock?

Como mockar uma classe em C# .NET ?

Mock é uma técnica para simular o comportamento de estruturas de programação. A utilização desta técnica é fundamental para a validação do layout do código sem afetar ou depender o ambiente em questão.O termo Mock vem do ingles e significa algo como imitação, zombaria, falsidade.

Os testes unitários têm a responsabilidade de garantir que os retornos dos métodos estejam de acordo com as expectativas.Os testes unitários não podem depender da rede estar ativa, ou pastas de rede, servidores ou quaisquer outras dependencias externas. Os testes de integração são responsáveis por testar tais características do ambiente.

Quando existe a necessidade de testar unitáriamente um método que realize uma tarefa que dependa de algum recurso externo é necessário o uso de um Mock. É comum utilizar o neologismo mockar ("...é necessário mockar esta classe").

A seguir pode-se ver um exemplo de classe. Este exemplo refere-se ao código de uma aplicação que guarda um arquivo texto em um local temporário da maquina. A classe Archiver implementa a interface IArchiver. Ela é especialmente útil para que seja possível mockar esta classe.

namespace Anselme.Mock
{
    public class Archiver : Anselme.Mock.IArchiver
    {
        public ArchiverState Save(string filename, string file)
        {
            string path = System.IO.Path.GetTempPath();
            string completeFileName = string.Concat(path,filename);

            using (System.IO.StreamWriter sw = new System.IO.StreamWriter(completeFileName))
            {
                sw.Write(file);
            }
            return ArchiverState.Saved;
        }
        public string Load(string filename)
        {
            string path = System.IO.Path.GetTempPath();
            string completeFileName = string.Concat(path, filename);

            using (System.IO.StreamReader sr = new System.IO.StreamReader(completeFileName))
            {
                return sr.ReadToEnd();
            }
        }
    }
}

A inteface IArchiver, como eu disse, é um requisito para que eu possa testar unitariamente esta classe com Mock. A seguir, veja o código dela.

namespace Anselme.Mock
{
    public interface IArchiver
    {
        string Load(string filename);
        ArchiverState Save(string filename, string file);
    }
}

Note que o método Save possui um retorno do tipo ArchiverState. Este ArchiverState é uma Enumeração. Ela foi utilizada intensionalmente para gerar algum retorno nesta classe para que ela possa ser testada unitariamente sem a necessidade de verificar se o arquivo está armazenado no disco. Segue o código da enumeracao ArchiverState.

namespace Anselme.Mock
{
    public enum ArchiverState
    {
        Saved
    }
}

O que é MOQ?

Existem vários frameworks para auxiliar na criação de simulações de classes, ou mock. Estes frameworks são de empresas ou grupos independentes. Este tópico utiliza o Framework MOQ que é de simples utilização, bastante eficiente e gratuíto.

O moq possui estruturas para você simular alguma classe por meio da interface que a classe implementa. Com este framework é possível, por exemplo, configurar uma estrutura para que, toda vez que um determinado cenário for criado, um determinado retorno ocorra.

O framework moq pode ser baixado no link: MOQ Framework. Este tópico é feito com base na versão Moq.4.0.10827.Final, Checksum: c9626fcdd253c5a6e33056a2670911b6340cc302

 

Como funciona o Teste unitário com Mock, utilizando o Framework MOQ?

Para ver detalhes sobre como criar um teste unitário veja o link: O que é teste unitário? 
 
O teste unitário a seguir utiliza o Framework MOQ. Ele mostra um exemplo simples de teste do método Save, visto no código do inicio do post.

namespace ArchiverTest
{
    [TestClass()]
    public class ArchiverTest
    {
        [TestMethod()]
        public void Salvando_Um_Arquivo_Com_Texto_Pequeno()
        {

            string filename = string.Format("{0}.{1}",TestUtil.CreateRandomString(5), TestUtil.CreateRandomString(3));
            string file = TestUtil.CreateRandomString(5);

            var target = new Mock();
            target.Setup(t => t.Save(filename, file))
                .Returns(ArchiverState.Saved);

            IArchiver target_mock = target.Object;
            ArchiverState state = target_mock.Save(filename, file);
            Assert.AreEqual(ArchiverState.Saved, state);
        }
     }
}

Principais linhas comentadas

var target = new Mock();
Cria-se o Mock da interface IArchiver. Com isto é possível simular os método, propriedade e eventos contidos na interface.

target.Setup(t => t.Save(filename, file))
                .Returns(ArchiverState.Saved);
Com isto, toda vez que se chamar o método Save seu retorno será  ArchiverState.Saved, como já implementado.

IArchiver target_mock = target.Object;
Cria-se um Archiver mockado.

ArchiverState state = target_mock.Save(filename, file);
Obtem-se o resultado do método Save, já configurado.

Assert.AreEqual(ArchiverState.Saved, state);
Verificação se o retorno é o esperado.



Como funciona a arquitetura do Windows Workflow Foundation?

O Windows Workflow Foundation é um dos pilares do .NET Framework presente desde a versão 3.0. Ele foi desenhado para trabalhar em conjunto com os pilares de Apresentação (WPF), comunicação (WCF) e de gerenciamento de identidade (WCS que evoluiu para WIF).

O Windows Workflow Foundation foi desenhado para possibilitar uma manipulação mais eficiente das execuções das regras de negócio, em especial quando existe interação humana no decorrer. A colaboração é um dos principais motores do uso do WF.

O Windows Workflow Foundation foi imaginado inicialmente para quarto cenários básicos. Em todos os cenários os workflows são capazes de executar tarefas colaborativas como: roteamento de solicitações entre usuários, atribuição de atividades, definição de processos de aprovação, procedimento em escala (paralelização de atividades), colaboração com documentos e dados, entre outros.

 

SharePoint 2007 e Workflow

Os fluxos hospedados no SharePoint podem ser construídos no Visual Studio, no SharePoint Designer ou nativamente no próprio SharePoint. A escolha varia de acordo com a complexidade do fluxo em questão.

 

Workflow e Serviços WCF

É possível construir fluxos que fazem acesso a serviços WCF, ou serviços WCF que hospedem Workflows.

 

Apresentação de fluxo coordenado

Aplicações Windows, Web, Mobile ou quaisquer outras ferramentas de apresentação podem ser utilizadas como camadas de apresentação para workflows.

 

Projeto de workflow Re-hosting

Aplicações podem hospedar o Workflow Designer e possibilitar a edição de fluxos sem dependência de ferramentas como o Visual Studio. Isto é especialmente útil para usuários da área de processos.

 

Topologia

 

Divisão de camadas

Os workflows do .NET Framework possui uma topologia que garante que sempre sejam estruturados em pelo menos 3 camadas: Presentation Layer, Workflow Runtime e Business Logical Layer.

 

Presentation Layer

A camada de apresentação pode ser uma aplicação em ASP.NET, Windows Forms, WPF, Windows Mobile, Email ou outros. A apresentação pode exibir notificações enviadas pela Workflow Runtime para alertar sobre a mudança de alguma característica relevante de algum fluxo.

 

Workflow Runtime

Este é a principal camada sistêmica. Ela possui as definições específicas do workflow e suas regras. E ele é o responsável por realizar a persistência de seus dados e informações, além de persistir a história do fluxo.

 

Business Logical Layer

A camada de negócios é a responsável por aplicar regras inerentes ao negócio, chamadas a estruturas externas, chamadas a outros serviços, etc.

 

Conceitos importantes

Tasks / Notifications

O sistema possui duas formas de se comunicar com o humano em workflows do WF: Tarefas e Notificações. Quando o workflow solicita algo ao usuário ele gera uma tarefa, que cabe ao usuário resolver; quando o sistema deseja informar o usuário sobre alguma mudança ocorrida em algum fluxo faz-se uma notificação.

 

Activity

Atividades são blocos de códigos estruturados que possuem funções e parâmetros próprios. Um workflow é composto de várias atividades. A notificação ou a atribuição de uma tarefa para o usuário é uma atividade.

 

Persistence

A persistência é feita pelo WF quando as estruturas de código estão prontas para serem serializadas. Isto é especialmente importante em fluxos que podem demorar. Isto porque o workflow para de consumir a memória do computador para utilizar o banco de dados. Quando o dado em questão for novamente necessário ele é desserializado e reutilizado pelo workflow. O processo de serialização é conhecido como ‘Desidratação do código’ e o processo de desserialização é conhecido como ‘Reidratação do código’.

 

Tracking

À medida que as atividades vão acontecendo o Workflow Runtime pode armazenar estes dados para fins de auditoria, isto é chamado de tracking.

O que é ASP.NET Routing?

Roteando páginas com ASP.NET
É uma tecnologia do ASP.NET para realização das rotas. Através de customizações do global.asax o roteamento é possível.

Quais os principais conceitos relacionados ao ASP.NET Routing?

Como o HTTP trabalha com Rotas?
O que é Global.asax

Como seria uma aplicação de exemplo do ASP.NET Routing?
A seguir você poderá ver um exemplo de aplicação utilizando o ASP.NET Routing no cenário:
  • Windows 7
  • Visual Studio 2010
  • Aplicação Web Forms
  • NET 4
Primeiro passo: Customizando o WebConfig
Adicione o módulo de rota e o handle para rota, conforme indica a figura.
Alterando o web.config para trabalhar com Rotas Customizadas


Segundo passo: Customizando o Global.asax
No ApplicationStart adicione as rotas desejadas, utilizando o routes do System.Web.Routing.
Alterando o global.asax para trabalhar com Rotas Customizadas


Terceiro passo: Criando uma página de exemplo para rota
Nesta página de exemplo repare a utilização do RouteData[string]. Ele é um tipo de dicionário com as variáveis que compõe o nome da rota. Estas variáveis foram indicadas no segundo passo entre chaves.
Criando uma página de exemplo para Rotas Customizadas


Quarto passo: Verificando se funcionou

Abra o site e coloque uma endereço que seja passado por alguma rota disponível. Se funcionar, meus parabéns! Se não, poste aí!
Vendo o Resultado da página com Rotas Customizadas

O que é o Global.asax em ASP.NET?

Trabalhando com o global.asax
O Global.asax é um arquivo especial do ASP.NET que não pode ser baixado pelo usuário que acessa o site. De maneira opcional o programador pode escolher colocar este arquivo na aplicação. Este arquivo possui eventos do nível de aplicação e sessão (das camadas OSI).

Customizando o global.asax é possível fazer um site em ASP.NET que trate dinamicamente qual rota terá a solicitação realizada, por exemplo.

Como o protocolo HTTP trabalha com rotas?

Hyper Text Transfer Protocol e Rotas
O protocolo HTTP é utilizado para transferência do recursos através de solicitações. Recursos são quaisquer elementos trafegados , como documentos. E solicitações são comandos enviados do cliente para o servidor HTTP.

As solicitações são feitas através de verbos como GET, POST, PUT, DELETE, entre vários outros. E estas solicitações têm vários parâmetros, dentre eles o recurso a se trabalhado. Por exemplo:
GET /index.html?userid=anselme&password=it200* HTTP/1.1
Host: www.anselmeit.com
User-Agent: Mozilla/4.0

O endereço citado na linha HOST corresponde ao URL (Uniform Resource Locator) do destino e o endereço citado no GET corresponde ao URN (Uniform Resource Name) do endereço. Juntos são o URI (Uniform Resource Identifier) do recurso.

O cliente faz a solicitação e cabe ao servidor responder a esta solicitação. É neste momento que ocorre o roteamento. O Servidor é o responsável por entregar o recurso solicitado. O Servidor pode procurar por este recurso no disco (maneira mais comum), pode procurar no banco de dados, pode obter de outras fontes, pode até mesmo gerar o recurso dinamicamente.

O que é Razor no ASP.NET MVC 3?

Razor com ASP.NET MVC 3
Razor é uma View Engine criada pela equipe do ASP.NET para codificação da View de páginas ASP.NET. O próprio ASP.NET possui uma View Engine padrão, mas o Razor se mostra bastante eficiente. Existem outras View Engines, como NHaml ou Spark.


Onde encontro um exemplo de aplicação com Razor?
O Razor é bastante potente e dá suporte a inúmeras necessidades da View. Veja uma View básica:
@{
    string variavel = "Uma variável";
}
<b>@variavel</b>

É possível utilizar estruturas de programação junto a códigos HTML.
@{
    string variavel = "Uma variável";
    List usuarios = new List()
    {
        "José",
        "João",
        "Ana",
        "Julia"
    };
}

<h1>@variavel<h1>

@foreach (string usuario in usuarios)
{
    <i>Nome: <b>@usuario</b></i>

}

O Razor possui algumas estruturas características com benefícios específicos. Alguns exemplos comuns são: @RenderPage, @RenderBody, @RenderSection(), @PageData e @Helper.

A @RenderPage é uma Razor Global Helper que exibe uma View em específico. Tem função semelhante a Html.RenderParcial().

A @RenderBody é outra Razor Global Helper. Ela exibe o conteúdo de uma View. A View _Layout pode ter uma menção ao @RenderBody que é substituída por uma View específica quando utilizada. Isto lembra o Content Place Holder de uma Master Page.

A @RenderSection() é outra Razor Global Helper. Esta estrutura renderiza um bloco de código chamado de seção, que nada tem a ver com a seção do servidor web. Veja um exemplo:
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
</head>

<body>
@section top{<h1>Teste de Seção</h1>}

<div id="header">
@RenderSection("top")
</div>

<div id="main">
@RenderBody()
</div>
</body>
</html>

A @PageData é outra Razor Global Helper. A @PageData exibe dados. Ela é uma Lista de pares de chave-valor (KeyValuePair<object, dynamic>). Ela é utilizada para ter dados que sejam trabalhados por entre as Views. Os dados da @PageData não são persistidos. Para a persistência destes dados devem-se utilizar as técnicas conhecidas (como Querystring, Form fields, Cookies, Session) ou outras quaisquer.

A @Helper é uma Razor Global Helper que armazena várias helpers específicas. Helpers são funções para auxiliar na programação ou desenho de uma View. Existem helpers disponíveis para download, construídos por terceiros, como os de integração com o Twitter (@Helper.FollowButton()).

ASP.NET é compilado?


Sim, os sites escritos em qualquer linguagem da arquitetura do .NET Framework são compilados. Mas vários detalhes estão envolvidos.

Antes de tudo as páginas em ASP.NET são compiladas e são geradas DLLs. As DLL são geradas num código intermediário da Microsoft chamado MSIL (Microsoft Intermediate Language). Um mesmo site pode gerar uma ou mais DLLs. Em tempo de execução o .NET Framework traduz as instruções escritas em código intermediário para as instruções específicas do processador.

Existem alguns benefícios em compilar a página gerando DLL. As principais vantagens são Desempenho, Segurança, Estabilidade e Interoperabilidade. Nas DLLs os códigos são otimizados no momento da compilação, não criando este overhead em tempo de execução. Técnicas como engenharia reversa são dificultadas, além de ser possível fazer o ofuscamento das DLLs. A sintaxe contida nas DLLs é validada antes da compilação, que garante maior estabilidade do código a ser interpretado. E além de todo isto, as DLLs são interoperáveis, acessíveis por outras linguagens ou plataformas.

Existem algumas vantagens que são herdadas do próprio .NET Framework, como a capacidade de ter um mesmo projeto escrito em diversas linguagens de programação diferentes, se compatíveis a CLS (Commom Language Specifications). Com isto, um mesmo projeto pode ser desenvolvido por equipes diferentes, que programem ao mesmo tempo em C# e VB.NET

Os sites ASP.NET podem ser automaticamente compilados. Em toda primeira execução de um site ASP.NET, seus códigos e recursos ainda não pré-compilados são compilados. Normalmente o primeiro acesso a sites ASP.NET são mais lentos devido a este recurso.
Se seu site ASP.NET for pré-compilado não ocorrerá nenhuma compilação automática. A compilação automática pode facilitar o Deployment em diversos servidores, mas a pré-compilação evita grandes lentidões provenientes do primeiro acesso.
É possível pré-compilar seu site com a linha de comando ASPNET_compiler.exe, que dá
suporte a algumas opções:

In-Place Compilation
Realiza a mesma compilação que seria feita pelo processo dinâmico, em tempo de execução. Esta opção é válida quando o seu site já está em produção.

Non-updatable full precompilation
Esta forma de compilação deve ser utilizada para implantação em produção. Tudo é pré-compilado. As páginas ASPX também fazem parte do pacote gerado, mas não são editáveis.

Updatable precompilation

Semelhante ao non-updatable full precompilation, mas com a possibilidade de alterar os arquivos .ASPX gerados.

O que é ASP.NET?


ASP.NET é uma plataforma de desenvolvimento de sites e aplicações web. Criada pela Microsoft com base no .NET Framework oferece um grande leque de características para a provisão de sites. O Visual Studio .NET é a principal ferramenta de desenvolvimento para aplicações na plataforma .NET. É possível ainda criar sites com ferramentas gratuitas com o Visual Web Developer ou com o SharpDeveloper.

Existem implementações de estilos arquiteturais e estruturas específicas em cima do ASP.NET que trazem benefícios e características próprias. As principais estruturas de mercado hoje são ASP.NET WebForms e ASP.NET MVC.

Independentemente do estilo arquitetural, várias problemáticas acompanham a web como a criação de páginas que funcionem em todos os clientes, necessidade de entendimento de infraestrutura e protocolos HTTP / HTTPS, escalabilidade e segurança.

Os sites escritos em .NET comumente recebem a extensão .ASPX tornando fácil sua identificação. O ASP.NET prove de maneira mais eficiente recursos caraterísticos do protocolo HTTP quando hospedado no servidor Internet Information Server (IIS). Mas também pode ser portado para o APACHE com plugings de terceiros.

Hospedadas no IIS, página construídas em sites com ASP.NET WebForms são baseadas em formulários, com dinâmica semelhante à de aplicações Desktop. Assim como plataformas antigas como DELPHI, VB6, o ASP.NET WebForms tem foco na produtividade e na minimização do tempo médio de aprendizado, que pode ser bastante lucrativo, quando a qualidade não é o principal objetivo dos negócios.

Como o ASP.NET funciona sobre a arquitetura do .NET Framework, sua estrutura de funcionamento é baseado no paradigma orientado a objetos. Com isto, suas estruturas são baseadas em objetos com ciclos de vida próprios chamados Controles Web. Poderosos e extensíveis dão suporte a muitas necessidades comuns para aplicações web. Vale deixar claro que quanto maior a Automatização menor é a Flexibilidade, desta forma pode ser bastante penoso fazer extensões nos controles web existentes.

As páginas web funcionam de uma maneira bem peculiar: Toda comunicação é desconectada. Isto cria uma série de complicadores característicos como a complexa manutenção de estado. O ASP.NET WebForms faz automaticamente a manutenção do estado das páginas e controles com um custo de desempenho que deve ser controlado.

O desenvolvimento de páginas ASP.NET possui uma importante característica para separação dos interesses chamada Code-Behind. Com este recurso a página fica totalmente isolada da codificação de seus controles. Esta tecnologia é opcional mas é fortemente recomendada.  Outra tecnologia interessante é a MasterPage. Características visuais comuns a todas às páginas podem ser centralizadas numa masterPage e utilizadas em todas as paginas facilitando a manutenção.

As páginas construídas em ASP.NET possuem estruturas prontas para configuração como os arquivos GLOBAL.ASAX e WEB.CONFIG. Com estes arquivos é possível fazer controles característicos nas solicitações HTTP que chegam ao servidor HTTP, e parâmetros próprios da aplicação como String de Conexão ao banco de dados, nomes de usuários e outros. O Servidor IIS é preparado para entender estes arquivos como especiais. O próprio IIS possui arquivos de configuração como o MACHINE.config que tem características do WEB.config que velem para todas as aplicações web instaladas nele.

Qual é a História do SharePoint? O que é Tahoe?


Microsoft lança seu mais novo sistema de Portal, busca e serviço de gerenciamento de documentos neste ano. Seu nome de desenvolvimento é Tahoe, mas será chamado de SharePoint Portal Server participante da versão 10 do Office. Atualmente ele está em Beta Test, seguindo para o Release Candidate.

Ele está sendo anunciado como um Portal completo capaz de indexar todos seus documentos em servidores de arquivos, servidores web, public folders do Exchange, bancos de dados do Lotus Notes e outras fontes. Os críticos da área afirmam que este produto tem uma usabilidade ruim e será confuso para o usuário final, sendo difícil a adoção. Além de conflitar com alguns conceitos colaborativos já existentes no Exchange 2000 e no Office Server Extensions, agregado ao Microsoft Front Page. Entretando os colaboradores da microsoft afirmam esta ferramenta de Gestão de Conhecimento (conceito ainda pouco explorado) vai desafiar o Lotus, que concorrerá com o Discovery Server codenome Raven no inicio do próximo ano.

“Se comparado ao Revan, o Tahoe tem busca, portais e gerenciamento de documento num só produto.”, Trina Seinfeld, gerente de produto do SharePoint. O Lotus Discovery oferece estas funcionalidades separadamente.

Este novo produto juntamente com o Exchange 2000 incorporará o Microsoft Web Storage, suportando múltiplos formatos de arquivo. Integrado com o Windows 2000 possui um recurso chamado SharePoint TeamServices para criação de sites para equipes. Os sites criados pelo TeamServices é automaticamente indexado pelo Tahoe.

Recursos de check-in e check-out para documentos, controle de versão e roteamento de aprovação, além da engine de busca foram construídos pela equipe do Microsoft research. A interface da ferramenta é baseada no Microsoft Digital Dashboard.

A busca do SharePoint utiliza um complexo recurso de rastreamento de adaptação baseado em probabilidade, além da capacidade de lembrar os itens mais pesquisados, baseado no Microsoft SQL Server 7.0. A engine de busca consegue filtrar qualquer arquivo com a interface Ifilter; arquivos como Adobe PDF, Corel WordPerfect e o proprio Office, além de documentos HTML. A Microsoft em parceiria com a SAP cria Ifilters para documentos específicos da plataforma.

O Tahoe será lançado com 25 WebParts. São componentes gráficos, flexíveis, tais como mensagens instantaneas, conectadas no portal do TeamServices. Também é possível criar webparts customizadas com o Visual Studio 6.0. O Tahoe foi anunciado em janeiro de 1999 executado no Windows 2000 opcionalmente com Active Directory. Ele pode ser utilizado num domínio do Windows NT. Ele será lançado ainda este ano, mas sem preço definido.

Como funciona a lógica da União Europeia?

Não sei entender algumas coisas:

Se eu fizesse um emprestimo de R$ 200.000 e, digamos que, depois de pagar R$ 20.000 eu faça besteiras.
Besteiras como esbanjar o meu salário, e, de lambuja, perder o emprego.
Numa situação desta eu estaria enrolado para pagar minha dívida.

Mas imagine que o meu banco chegue para mim:
- Você não vai conseguir pagar esta dívida.
Você tem que pagar pq eu, banco IKAJÚ, contraí uma dívida com dezenas de bancos prometendo o seu dinheiro. Então, faço o seguinte:

Te pago uma pós graduação, um mestrado, cursos de especialização e contrato um headHunter para você se reempregar.
Assim, você consegue me pagar esta dívida em 300 meses a mais do que combinamos inicialmente. Então, te perdoo 100 prestações mantendo o mesmo júrus.

Isto não faz sentido para mim.
Porque faz para a União Européia?