czwartek, czerwca 26, 2014

Sprawdzanie używanego japończyka


1. Sprawdzenie lakieru miernikiem (wcisnąć start i przytrzymać 5 sekund): błotniki, okolice drzwi koło błotników, środek drzwi, progi, drzwi przy progach, maska i klapa bagażnika, słupki i krawędź dachu. Wartości: 80um - spolerowany lakier np. żeby usunąć rysy, 120um - oryginalny lakier, 200um - druga warstwa lakieru, wszystko powyżej - szpachla. Niemieckie auta mają grubszy lakier (150/180/350). Lakier nie metalik jest cieńszy.






2. Sprawdzenie sygnatur na wszystkich szybach, czy są z jednej serii.

3. Sprawdzenie spalin ma wolnych obrotach i po przygazowaniu: kolor białawy, ciemny, woda w spalinach.

4. Sprawdzenie nakrętek pod maską, gwintów - czy geometria jest zachowana, czy nie było kręcenia na siłę, porysowania.

poniedziałek, czerwca 23, 2014

Modna firanka

Firanka Inspire Flock + klips magnetyczny Stolkar Kwiatek. Przez niepofałdowaną firankę lepiej widać świat na zewnątrz.

niedziela, czerwca 22, 2014

Afera taśmowa w pytaniach i odpowiedziach

1. Skąd wiadomo, że Sienkiewicza na rozmowę z Belką wysłał Tusk?
B. i S. wymieniają premiera jako partnera do rozmów i decydenta. S. nie ma takiej pozycji w partii, że mógłby na jej rzecz prowadzić takie negocjacje. Poza tym jest na tyle głupi, że jako szef służb dał się nagrać. Nie mógł być mózgiem operacji.

2. Skąd wiadomo, że Sienkiewicz steruje śledztwem?
Nasłany na Wprost prokurator był na tyle tępy, że nie znał prawa prasowego. Ślepo wypełniał odgórne nakazy. Trzymał się tej samej wersji, co Tusk na późniejszej konferencji.

3. Skąd wiadomo, że Tusk to przestępca w białym kołnierzyku?
Bo zostawił Sienkiewicza na stanowisku w celu zaduszenia afery. Bo zapłacił Relidze pieniędzmi za poparcie w wyborach.

czwartek, czerwca 19, 2014

Temat bieżący

Sienkiewicz boi się pokazać publicznie od czasu afery, żeby dziennikarze nie zapytali go o szczegóły rozmów. Wtedy mógłby powiedzieć coś sprzecznego z zawartością taśm. Musi ustalić co na niego mają i jak się tłumaczyć. W tym celu nasłał prokuraturę i ABW na Latkowskiego, żeby skonfiskowali mu WSZYSTKIE taśmy (potwierdził to Tusk na konferencji prasowej). Nasłał bezprawnie. Oprócz praw ogólnych istnieją szczegółowe: należy zabezpieczyć dowody w sprawie o podsłuchiwanie w taki sposób, żeby nie naruszyć prawa dziennikarzy do nieujawniania informatora. Prokuratura powinna wystąpić do sądu o wydanie opinii w tej sprawie w jaki sposób powinno to nastąpić. Wyrywanie Latkowskiemu latopa z wykręcaniem rąk i palców jest metodą w stylu Putina i Łukaszenki. Funkcjonariusze ABW nie umieli skopiować nagrać z Mac-a i dlatego chcieli zabrać całego latopa. Minister nadzorujący służby szlaja się po mieście bez osłony kontrwywiadowczej i prowadzi, zbliżone do mafijnych, rozmowy. Reszta rządu podobnie. Być może pierwszym i ostatnim ogniwem afery jest kelner porażony rozkładem państwa na szczytach jego władzy. Przekazał nagrania mediom. Teraz ściga go Sienkiewicz - sprawca i winny całej afery. Niekompetentny i bezczelny. Ten rząd musi odejść.

wtorek, czerwca 17, 2014

JMX query for Tibco BW

public static class VMStats {
 String nameOrDesc = "UNKNOWN";
 int memUsage = 0;
 int memMax = 0;
 int cpuUsage = 0;
 int gcUsage = 0;
 int cores = 0;
 int overloaded = 0;
  
 public void toStdout() {
  System.out.println(String.format("%s|%d|%d|%d|%d|%d|%d", nameOrDesc, memUsage, memMax, cpuUsage, gcUsage, cores, overloaded));   
 }
}

public final static VMStats query(VirtualMachineDescriptor vmd, CyclicBarrier sync) throws Exception {
 VirtualMachine vm = VirtualMachine.attach(vmd);
 long timeStart = System.currentTimeMillis();
 try {
  String address = vm.getAgentProperties().getProperty("com.sun.management.jmxremote.localConnectorAddress");
  MBeanServerConnection conn = null;
  for (int i=0; i < 2; i++) {
   try {
    if (address == null) {
     String javaHome = vm.getSystemProperties().getProperty("java.home");
     File managementAgentJarFile = new File(javaHome + File.separator + "lib" + File.separator + "management-agent.jar");
     vm.loadAgent(managementAgentJarFile.getAbsolutePath());
     address = vm.getAgentProperties().getProperty("com.sun.management.jmxremote.localConnectorAddress");
    }
    JMXServiceURL jmxUrl = new JMXServiceURL(address);
           conn = JMXConnectorFactory.connect(jmxUrl).getMBeanServerConnection();
   }
   catch (Exception e) {
    if (i==0) {
     address = null; /* try to reload agent */
    }
    else
     throw e;
   }
  }
  String file = vm.getSystemProperties().getProperty("wrapper.tra.file");
         MemoryMXBean memBean = ManagementFactory.newPlatformMXBeanProxy(conn, ManagementFactory.MEMORY_MXBEAN_NAME, MemoryMXBean.class);
         RuntimeMXBean rtBean = ManagementFactory.newPlatformMXBeanProxy(conn, ManagementFactory.RUNTIME_MXBEAN_NAME, RuntimeMXBean.class);
         OperatingSystemMXBean osBean = ManagementFactory.newPlatformMXBeanProxy(conn, ManagementFactory.OPERATING_SYSTEM_MXBEAN_NAME, OperatingSystemMXBean.class);
         
         long memMax = (memBean.getHeapMemoryUsage().getMax() + memBean.getNonHeapMemoryUsage().getMax());
  int memUsage = (int)(100.0 * (memBean.getHeapMemoryUsage().getUsed() + memBean.getNonHeapMemoryUsage().getUsed()) / memMax);
         int memMB = (int) (memMax / 1024 / 1024);
         long time0 = osBean.getProcessCpuTime();
         long refTime0 = System.currentTimeMillis();
         Thread.sleep(1000);
         double load = (osBean.getProcessCpuTime() - time0) / (System.currentTimeMillis() - refTime0) / 10000.0;
         if (Double.isInfinite(load) || Double.isNaN(load) || load < 0)
          load = 0;
  load = Math.round(load);
         String appId = "PID|"+vm.id() + "|"+rtBean.getSystemProperties().get("user.dir");
   if (file!=null) {
          appId = file.endsWith(".tra") ? "TRA|"+file.substring(file.lastIndexOf(File.separator+"")+1) : appId;
  }
         long gcDiff = 0;
  List gcmbList = ManagementFactory.getGarbageCollectorMXBeans();
  long[] gcTime = new long[gcmbList.size()];
         for (int i=0; i < 5; i++) {
          for (int j=0; j < gcmbList.size(); j++) {
           GarbageCollectorMXBean gcBean = ManagementFactory.newPlatformMXBeanProxy(conn, gcmbList.get(j).getObjectName().toString(), GarbageCollectorMXBean.class);
           if (i > 0)
     gcDiff += (gcBean.getCollectionTime() - gcTime[j]);
           gcTime[j] = gcBean.getCollectionTime();
          }
          if (i!=4)
           Thread.sleep(1000);
         }
         VMStats stats = new VMStats();
         stats.nameOrDesc = appId;
         stats.memUsage = memUsage;
         stats.memMax = memMB;
         stats.cpuUsage = (int) load;
         stats.gcUsage = (int) gcDiff;
         stats.cores = osBean.getAvailableProcessors();
         stats.overloaded = System.currentTimeMillis() - timeStart >= 60000 ? 1 : 0;
         if (vm.getSystemProperties().getProperty("VMSTAT_TOKEN", "").equals(System.getProperty("VMSTAT_TOKEN")))
          stats.nameOrDesc = ""; /* this is me */
         return stats;
 }
 finally {
  vm.detach();
 }
}

public void invoke() { 
 List list = VirtualMachine.list();
 ExecutorService es = Executors.newFixedThreadPool(list.size()+1);
 final CyclicBarrier sync = new CyclicBarrier(list.size()+1);
 final ConcurrentLinkedQueue result = new ConcurrentLinkedQueue();  
 System.setProperty("VMSTAT_TOKEN", System.currentTimeMillis()+"X"+Thread.currentThread().getId());
  
 for (final VirtualMachineDescriptor vmd : list) {
  Runnable r = new Runnable() {
   public void run() {
    try {
     VMStats stats = query(vmd, sync);
     if (!("".equals(stats.nameOrDesc)))
      result.add(stats);
    }
    catch (Exception e) {
     new RuntimeException("Error while querying JMX for "+vmd.id(), e).printStackTrace();
     VMStats vms = new VMStats();
     vms.nameOrDesc = "PID|"+vmd.id()+"|"+vmd.id();
     vms.overloaded = 1;
     result.add(vms);
    }
    finally {
     try {
      sync.await(180, TimeUnit.SECONDS);
     }
     catch (Exception e) {}
    }
   }
  };
                es.execute(r);  
 }
 try {
  sync.await(180, TimeUnit.SECONDS);
 }
 catch (Exception te) {}
 es.shutdownNow();
 try {
  Thread.sleep(1000);
 }
 catch (InterruptedException e) {}
 
 while (result.size() > 0) {
         result.remove().toStdout();
 }
}
 
public final static void main(String[] args) {
 new VMStat().invoke();
 try {
  Thread.sleep(1000);
 }
 catch (InterruptedException e) {}
 System.exit(0);  
}

poniedziałek, czerwca 16, 2014

How to check number of threads per Tibco BW instance

ps -efT | grep tibco | awk '{print $13}' > /tmp/all-proc.txt; for f in `ps -efT | grep tibco | awk '{print $13}' | sort -u`; do echo $f; grep -c $f /tmp/all-proc.txt; done

Temat zastępczy Chazan

Straszliwe kolejki do specjalistów w służbie zdrowia. Chorzy czekają latami - jeśli dożyją. Ludzi ze szpitala wyrzuca się zaraz po zabiegu, bo NFZ płaci tylko za pierwsze dni. No i tutaj trafia się Arłukowiczowi szansa żeby zabłysnąć: próbuje się wmówić ludziom, że jest taki wymóg prawny, żeby lekarz na życzenie pacjentki zabijał dzieci, a jeśli lekarz odmawia to łamie prawo i jest to niehumanitarne, skandaliczne i oburzające. Ponadto lekarz nie powinien odmawiać, bo to państwo płaciło za jego studia. Chazan pownien powiedzieć wprost, że nieudolny minister i rząd szukają tematów zastępczych. Dziecko też jest pacjentem. Arłukowicz pomyślał, że zarządzi kontrole, znajdzie kwity na cały szpital, uratuje ludzi od straszliwego "doktora sumienie" i dzięki temu notowania mu wzrosną, bo ludzie zapomną o sytuacji w służbie zdrowia. Porażający cynizm i głupota.

wtorek, czerwca 10, 2014

Klauzula sumienia

Art. 31.1. Wolność człowieka podlega ochronie prawnej.
Art. 31.2. Każdy jest obowiązany szanować wolności i prawa innych. Nikogo nie wolno zmuszać do czynienia tego, czego prawo mu nie nakazuje.
Art. 32.2. Nikt nie może być dyskryminowany w życiu politycznym, społecznym lub gospodarczym z jakiejkolwiek przyczyny.
Art. 38. Rzeczpospolita Polska zapewnia każdemu człowiekowi prawną ochronę życia.
Art. 47. Każdy ma prawo do ochrony prawnej życia prywatnego, rodzinnego, czci i dobrego imienia oraz do decydowania o swoim życiu osobistym.
Art. 53.1. Każdemu zapewnia się wolność sumienia i religii.
Art. 54.1. Każdemu zapewnia się wolność wyrażania swoich poglądów oraz pozyskiwania i rozpowszechniania informacji.
Art. 72.1. Rzeczpospolita Polska zapewnia ochronę praw dziecka. Każdy ma prawo żądać od organów władzy publicznej ochrony dziecka przed przemocą, okrucieństwem, wyzyskiem i demoralizacją.

czwartek, czerwca 05, 2014

EMS: 40 sessions in 1 connection or 40 connection with 1 session

final TibjmsQueueConnectionFactory cf = new TibjmsQueueConnectionFactory();
cf.setServerUrl("tcp://localhost:7222");
cf.setUserName("admin");
cf.setUserPassword("Adm1n");

final QueueConnection qc = cf.createQueueConnection();
QueueSession qs = qc.createQueueSession(false, Session.CLIENT_ACKNOWLEDGE);
QueueSender qsnd = qs.createSender(qs.createQueue("1n_n1"));
qc.start();

final AtomicInteger toDo = new AtomicInteger(0);
final AtomicInteger[] sum = new AtomicInteger[2];

int[] sessionPerConnIters = { 1, 0 };

for (final int mode : sessionPerConnIters) {
sum[mode] = new AtomicInteger(0);
for (int i=0; i < 100; i++) {
TextMessage msg = qs.createTextMessage(MESSAGE);
msg.setIntProperty("TEST", 1);
qsnd.send(msg);
}
toDo.set(100);
final CyclicBarrier cb = new CyclicBarrier(41);
for (int i=0; i < 40; i++) {
new Thread() {
public void run() {
try {
QueueConnection _qc = (mode == 1) ? cf.createQueueConnection() : qc;
_qc.start();
QueueSession _qs = _qc.createQueueSession(false, Session.CLIENT_ACKNOWLEDGE);
QueueReceiver _qr = _qs.createReceiver(_qs.createQueue("1n_n1"), "TEST=1");

long t1 = System.currentTimeMillis();

while (toDo.get() > 0) {
TextMessage m = (TextMessage) _qr.receive(100);
long t2 = System.currentTimeMillis();
if (m!=null) {
if (mode == 1)
System.out.println("Message recv time = "+(t2-t1)+" ms");
else
System.err.println("Message recv time = "+(t2-t1)+" ms");
sum[mode].addAndGet((int) (t2-t1));
m.acknowledge();
toDo.decrementAndGet();
t1 = t2;
}
}
cb.await();
_qs.close();
if (mode == 1)
_qc.close();
}
catch (Exception exc) {
exc.printStackTrace();
}
}
}.start();
}
cb.await();
}
qc.close();
for (int i=0; i < sum.length; i++) {
System.out.println("Full time of all threads: "+sum[i].get()+", sessionPerConn="+sessionPerConnIters[i]);
}
}

Full time of all threads: 46554, sessionPerConn=1
Full time of all threads: 53262, sessionPerConn=0
20 threads, 4MB

Full time of all threads: 262, sessionPerConn=1
Full time of all threads: 403, sessionPerConn=0
20 threads, 4KB

Full time of all threads: 79, sessionPerConn=1
Full time of all threads: 72, sessionPerConn=0
 5 threads, 4KB

--
Full time of all threads: 14866, sessionPerConn=1 Full time of all threads: 26016, sessionPerConn=0 20, 1MB Full time of all threads: 6486, sessionPerConn=1 Full time of all threads: 9073, sessionPerConn=0 15, 1MB Full time of all threads: 4181, sessionPerConn=1 Full time of all threads: 6366, sessionPerConn=0 10, 1MB Full time of all threads: 2249, sessionPerConn=1 Full time of all threads: 2646, sessionPerConn=0 5, 1MB Full time of all threads: 1870, sessionPerConn=1 Full time of all threads: 2093, sessionPerConn=0 4, 1MB Full time of all threads: 1391, sessionPerConn=1 Full time of all threads: 1246, sessionPerConn=0 3, 1MB --- Full time of all threads: 192, sessionPerConn=1 Full time of all threads: 251, sessionPerConn=0 20, 1KB Full time of all threads: 181, sessionPerConn=1 Full time of all threads: 165, sessionPerConn=0 15, 1KB Full time of all threads: 163, sessionPerConn=1 Full time of all threads: 137, sessionPerConn=0 10, 1KB
--
Conclusion: When using above 20 sessions per connection 1:1 connection/session model is faster than 1:n approach.

poniedziałek, czerwca 02, 2014

Czersk