buy lasix http://all-treatment.org/buy-levitra-vardenafil/ http://all-treatment.org/buy-viagra-sildenafil-citrat/ isotretinoin online buy cialis online
7 maig 2017

Duplicar memòries USB amb dd

Author: Joaquim Perez Noguer | Filed under: Linux

Vist a https://www.linuxquestions.org

Plug in both USB pen drives and type: fdisk -l as root in terminal to see what their device names are. If they appear as /dev/sdb and /dev/sdc, type in a terminal: dd if=/dev/sdb of=/dev/sdc conv=notrunc.
To make an image of the entire drive including MBR (boot files), type in terminal: dd if=/dev/sdb of=/path/to/destination/image.dd conv=notrunc. To restore the image to a new drive which is seen as /dev/sdb: dd if=/path/to/image.dd of=/dev/sdb conv=notrunc

 



3 maig 2017

Java design patterns

Author: Joaquim Perez Noguer | Filed under: Ciència i tecnologia

Vist a  www.tutorialspoint.com/design_pattern



3 maig 2017

SQLJ – SQL dins de Java

Author: Joaquim Perez Noguer | Filed under: Ciència i tecnologia

SQLJ és una extensió del llenguatge Java per permetre executar-hi SQL dinàmic.

Entre altres coses permet

  • Interactuar fàcilment amb les variables i atributs del Java sense haver de fer l’enllaç amb l’espai de memòria SQL explícitament.
  • Permet declarar iteradors i interactuar amb el FETCH

Per desgràcia molts IDE  no reconeixen el llenguatge SQLJ encara. Tot i que sí que hi ha mòdul SQLJ per MAVEN i com a mínim es pot compilar bé.

 

 public Address getEmployeeAddress(int empno)              
    throws SQLException
  {
    Address addr;                                           
    #sql { SELECT office_addr INTO :addr FROM employees
           WHERE empnumber = :empno };
    // NOTA implícitament executa 
    //    addr= (Address) rs.getORAData(1, Address.getORADataFactory())); 
    return addr;
  }
                                                            
  public Address updateAddress(Address addr)
    throws SQLException
  {
    #sql addr = { VALUES(UPDATE_ADDRESS(:addr)) };          
    return addr;
  }

 

#sql private static iterator EmployeeIterator(String, String, BigDecimal);
...
EmployeeIterator iter;

#sql [ctx] iter = {
  SELECT LASTNAME, FIRSTNAME SALARY
    FROM DSN8710.EMP
   WHERE SALARY BETWEEN :min AND :max
};

do {
  #sql {
    FETCH :iter INTO :lastname, :firstname, :salary
  };

} while (!iter.endFetch());
iter.close();

 

Més informació:

Existeixen altres solucions per a Java, sense pre-compilador però que aleshores involucren haver de fer l’enllaç entre variables Java i SQL manualment:

 



3 maig 2017

A Better Query Language than SQL

Author: Joaquim Perez Noguer | Filed under: Ciència i tecnologia

SQL és un llenguatge declaratiu per manipular dades en una base de dades.

En l’article  A Better Query Language than SQL proposen eliminar algunes absurditats de la sintaxis SQL.

Us heu preguntat mai perquè la sintaxi és  SELECT … FROM … WHERE  quan potser seria més interessant tenir-ho en format  FROM … WHERE … SELECT … ?

FROM table
WHERE predicate
GROUPBY columns
SELECT columns
I per què quan es fan joins cal indicar com s’ha de fer la unió de les taules quan el model de dades ja declara quines són les PrimaryKey i les ForeignKey?
from post
key join user
key join comment
select *
I per què no simplificar la sintaxis de les vistes també ?
from dbo.users
with projection as (
  firstName, lastName, phoneNumber, email
)
select projection.*

3 maig 2017

Xtend – Java millorat

Author: Joaquim Perez Noguer | Filed under: Ciència i tecnologia

Eclipse proposa una millora del Java: Xtend

La sintaxi de Java és massa explícita:

  • si ja saps que la majoria de classes i mètodes són públics, perquè per defecte no són públics ?
  • si tens tens una llista de Strings per què cal indicar   for (String nom :  llista)  i no simplement  for (nom: llista)

i així moltes altres absurditats del llenguatge java…

27 gen. 2017

Antivirus ?

Author: Joaquim Perez Noguer | Filed under: Seguretat

Com a usuari de Linux des de fa vint anys, l’antivirus no el veig necessari ara per ara. El SO és prou robust i el nombre de virus per a Linux és molt més baix que per a altres SO.

Però alerta, que aquesta opinió de Robert O’Callahan diu que fins i tot pels usuaris de Windows seria millor que no fessin servir antivirus (excepte els que proporcionen Microsoft). I no és perquè en Robert treballi a Microsoft precisament. El motiu no és per temes de rendiment de l’Antivirus, sinó per com fa la funció d’Antivirus. Es queixa per exemple que alguns antivirus interfereixen en les mesures de seguretat dels productes, en aquest cas el Firefox, i els fan més vulnerables que sense antivirus.

En el meu cas, en la meva feina, també puc dir que alguns antivirus interferien  en les mesures de seguretat i anti-phishing que vam desenvolupar en una web segura. I la resposta del fabricant de antivirus va ser de negativa total i supèrbia.

La veritat és que no es pot generalitzar i si fos usuari de Windows ara mateix tampoc seria gaire partidari de treure l’antivirus. Però és una opinió que cal tenir en compte.

Origen: Eyes Above The Waves: Disable Your Antivirus Software (Except Microsoft’s)

19 gen. 2017

three.js – Javascript 3D library

Author: Joaquim Perez Noguer | Filed under: General

Vegeu three.js – Javascript 3D library  un mòdul javascript per a fer impressionants animacions 3D com aquest simulador de cotxes 3D (feu anar els cursors i les tecles W, A, S, D )

19 gen. 2017

Motion .js Graphics For The Web

Author: Joaquim Perez Noguer | Filed under: Web

Vegeu  mojs.io – Motion Graphics For The Web un altre mòdul javascript per a fer animacions en les vostres pàgines web.

 

 

19 gen. 2017

CSS Features queries + Grid layout + Native variables

Author: Joaquim Perez Noguer | Filed under: Web

Origen: 3 New CSS Features to Learn in 2017

Aquest 2017 es pot dir que el CSS per fi ho té tot!

1. Feature Queries

Fins ara es mirava si el navegador era Firefox, IE o Chrome, mòbil i es feia un CSS especialitzat per a cada tipus de navegador. Amb Feature Queries només caldrà un sol CSS, en el qual podrem preguntar al navegador si sap o no sap fer una cosa.

@supports ( display: flexbox ) 
          and 
          ( not ( display: flex ) ) {
  .foo { display: flexbox; }
}

2. Grid Layout + flexible lengths + gutters

Per definir les parts de la pantalla vam utilitzar TABLE, DIV amb float:left i moltes coses més. Però ara per fi tenim una forma decent i fàcil de definir-ho.

.hg__header { grid-area: header; }
.hg__footer { grid-area: footer; }
.hg__main { grid-area: main; }
.hg__left { grid-area: navigation; }
.hg__right { grid-area: ads; }

.hg {
    display: grid;
    grid-template-areas: "header header header"
                         "navigation main ads"
                         "footer footer footer";
    grid-template-columns: 150px 1fr 150px;
    grid-template-rows: 100px 
                        1fr
                        30px;
    min-height: 100vh;
}

@media screen and (max-width: 600px) {
    .hg {
        grid-template-areas: "header"
                             "navigation"
                             "main"
                             "ads"
                             "footer";
        grid-template-columns: 100%;
        grid-template-rows: 100px 
                            50px 
                            1fr
                            50px 
                            30px;
    }
}

3. Native Variables

Què és un llenguatge sense variables ? Doncs això CSS després de tants anys per fi permet definir variables.

:root {
  --theme-colour: cornflowerblue;
}

h1 { color: var(--theme-colour); }  
a { color: var(--theme-colour); }  
strong { color: var(--theme-colour); }  

….

const rootEl = document.documentElement;  
rootEl.style.setProperty('--theme-colour', 'plum');  

12 gen. 2017

String.intern

Author: Joaquim Perez Noguer | Filed under: Ciència i tecnologia

Java ofereix un sistema intern per optimitzar la memòria utilitzada quan llegeixes grans quantitats de texts i té molts repetits: String.intern, però cal anar amb compte.

Vegeu les recomanacions String.intern in Java 6, 7 and 8 – string pooling  – Java Performance Tuning Guide

  • Stay away from String.intern() method on Java 6 due to a fixed size memory area (PermGen) used for JVM string pool storage.
  • Java 7 and 8 implement the string pool in the heap memory. It means that you are limited by the whole application memory for string pooling in Java 7 and 8.
  • Use -XX:StringTableSize JVM parameter in Java 7 and 8 to set the string pool map size. It is fixed, because it is implemented as a hash map with lists in the buckets. Approximate the number of distinct strings in your application (which you intend to intern) and set the pool size equal to some prime number close to this value multiplied by 2 (to reduce the likelihood of collisions). It will allow String.intern to run in the constant time and requires a rather small memory consumption per interned string (explicitly used Java WeakHashMap will consume 4-5 times more memory for the same task).
  • The default value of -XX:StringTableSize parameter is 1009 in Java 6 and Java 7 until Java7u40. It was increased to 60013 in Java 7u40 (same value is used in Java 8 as well).
  • If you are not sure about the string pool usage, try -XX:+PrintStringTableStatistics JVM argument. It will print you the string pool usage when your program terminates.