sobota, 15 października 2022

Gradle

Some of them like transitive dependency but not me

Wiadomo są tacy co kochają dependency transitive - ale nie ja

Simple total fuck off transitive dependency for all configuration in build.gradle

Chyba najprostszy sposób i całkowicie globalny aby to wywalić jak to mówią at all

...
configurations {
    forEach {
        c -> c.setTransitive(false)
    }
}

> Custom function for disable transitive dependency
Let's try definne metod for switch off transitive dependency ... of course possible many way as below

Taki mam pomysł aby zrobić to przez funkcję która opakowuje dependency... dla fanów wyższości c++ nad c=c+1 da to uproszczenie! Wystarczy dodać do definiowanego dependency prefix noTransitive, a "fantastyczność" groovy załatwi nam to że zamieni się to na funkcję (metodę) która zmieni nasze dependendcy w nietranzytywne

Based on cloure definition... for groovy looks not so good to long to say is good
Patrząc na podstawową konstrukcję definicji dependency bez tranzytywności przy pomocy colusure albo setera żadna nie wypada przyjażnie

dependencies {
   runtimeOnly("com.haulmont.cuba:cuba-global:7.2.15") {
      setTransitive(false) }
...

or

dependencies {
   runtimeOnly("com.haulmont.cuba:cuba-global:7.2.15")
      .setTransitive(false)
...

So look at alternative solution with function version...

def noTransitive(def dep) { return dep.setTransitive(false) }
def noTransitive(def dep) { dep.setTransitive(false) }
def noTransitive(def dep) { dep.transitive = false }
def noTransitive(dep) { dep.transitive = false }
def noTransitive = { d -> d.setTransitive(false) }

Next define our dependecy in clasic clousure method ... with transitive version
Zdefiniujmy więc jakieś dependency co tak na oko ze 64 pozycje tranzytywne oczywiście wszystko nam będzie "potrzebne" i "niezbędne" bo nie wypada mieć paczki co waży 20M tylko minimum 200M

dependencies {
   runtimeOnly("com.haulmont.cuba:cuba-global:7.2.15")
...

or without tranisitive
a tak by to wyglądało bez transitive

dependencies {
   noTransitive runtimeOnly("com.haulmont.cuba:cuba-global:7.2.15")
...

wtorek, 4 stycznia 2022

log4j 2.x vs 1.2.x jakość kodu

CVE-2021-44228

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228

Apache Log4j2 2.0-beta9 through 2.15.0 (excluding security releases 2.12.2, 2.12.3, and 2.3.1) JNDI features used in configuration, log messages, and parameters do not protect against attacker controlled LDAP and other JNDI related endpoints. An attacker who can control log messages or log message parameters can execute arbitrary code loaded from LDAP servers when message lookup substitution is enabled. From log4j 2.15.0, this behavior has been disabled by default. From version 2.16.0 (along with 2.12.2, 2.12.3, and 2.3.1), this functionality has been completely removed. Note that this vulnerability is specific to log4j-core and does not affect log4net, log4cxx, or other Apache Logging Services projects.

Z wersji 2.x tylko 2.12.2, 2.12.3 oraz 2.3.1 tego nie miały

Podpierając się wydaniami:
https://logging.apache.org/log4j/1.2/changes-report.html

log4j 2.x chamges

 
log4j 2.x problem start

https://logging.apache.org/log4j/2.x/changes-report.html

log4j 1.x changes

 

policzmy jak ktoś miał pecha 2021 - 2013?? = 8 lat z taka dziurą?

fajnie ze przez 8 lat ktoś na to nie wpadł
i się nawet nad tym nie zastanowił
przecież atak jest jak sql injection

U nas czasem błędy też wychodzą po paru latach...
tu na takim mega projekcie przez 8 nie wyszło?
o co comman?

Ktoś może celowo ma teraz lepsza lukę
i tą postanowił poświecić aby podrzucić lepsza


... ale to już taki durny żart hihi

Tak na marginesie w grudniu koniecznie trzeba było wersje zmienić na 2.15 dziś już trzeba na 2.17 ... oby tylko tą

Wersja 1.2 jest od 2002 do 2012 bez krytycznych problemów. Większość projektów korzysta z rolling file appender i pattern formater - problemy jakie tu były na poziomie appederów socket i jms które większość z nas nie używa....

Tak na marginesie jedyne poważne problemy



środa, 14 października 2020

Windows 10 - tasbar przypięcie programu

Interesuje mnie taskbar, to dlatego że przypięty program do taskbara na domyślnie skrót wywołania, który działa ^W (window) + numer kolejny zacząwszy od menu (Windows ikona). Skróty przypisane do ikony nie działają zbyt dobrze – tzn czasem działają a czasem nie i mają nawiedzony format ^C + ^A + litera, tu dla taskbara skróty są lepsze ^W + nr i wydają się działać. Niestety skortcut do bat nie da się przypiąć do taskbara. Z tego wynika że da się przypiąć tylko exe i jego skrót.
Przypiąć do taskbar się da nawet dla skrót, ale nie dla wszystkiego. Wygląd na to że musi być to skrót do exe. Skrót do bat, vbs, cmd nie ma tej opcji – nie da się go przypiąć nigdzie tzn. ani taskbar, ani ekran startowy. 


Przypięty exe jest unikalny w skali taskbar, więc wydaje się że nie da się go parametryzować. Pojawia się na pasku jako 1 pozycja dla takiego exe, drugi skrót do tego samego exe powoduje, że dostajemy zamiast przypnij, tylko opcje odepnij, czyli przypinanie działa tylko na nazwę programu exe, a nie na skrót. 

Okazuje się że shortcut do exe łyka przekazane parametry. Więc można zrobić wiele shortcutów, które są do tego samego exe, który łyka różne parametry. Ale konieczny jest pewien zabieg dodatkowy, trzeba albo skopiować ten sam exe pod inną nazwą albo skorzystać z mklink i utworzyć link z inną nazwą. 


Puenta…. Czy to nie jest przykład słabego rozwiązania? Cóż … jakoś to oszukałem… ale jest to frustrujące, pomysł był dobry ale wykonanie nie najlepsze, po następnej aktualizacji będzie pewnie gorzej … tego się spodziewaj, więc carpe diem bo nie wiesz kiedy będzie!

czwartek, 8 października 2020

Libre Office

> Libre Office czy Open Office
Dziś już nie ma raczej wyboru - Open Office to historia

> Instalacja dla Windows 7 bez SP1
Stare wersje dla win7 bez SP1 nie pójdzie więcej niż 5.4
https://downloadarchive.documentfoundation.org/libreoffice/old/

> Wyłączenie sprawdzania aktualizacji
    Narzędzia / Opcje / Libre Office / Aktualizacja Online

> Wyłączenie podkreślania wszystkiego na bieżąco gdy są błędy
    Narzędzia / Opcje / Ustawienia języka / Pisownia / Opcje / Automatyczne sprawdzanie

> Podstawowe skróty klawiatury
https://help.libreoffice.org/3.6/Writer/Shortcut_Keys_for_Writer/pl

> Własne skróty klawiatury - np wykorzystanie własnych skrótów do styli
Trzeba przedefiniować skróty klawiszowe, Zwykle do podstawowych styli nagłówka przypisano ^C+1,2,3.. chciałbym dla własnego stylu zarezerwować ^C+4. Można to zrobić tak:
    Narzędzia / Dostosuj / Klawiatura /
    szukamy potencjalnego klawisza (raczej nie ma innych niż dozwolone z listy) /
    Kategoria - Style / rodzaj np akapit / wybieramy ten który nas interesuje /
    dajemy guzik modyfikuj

> Wyłączenie sprawdzania pisowni dla bloku
    Wybrać i zaznaczyć blok
    Narzędzia / Język / Dla zaznaczenia / Brak

niedziela, 15 marca 2020

Instagram browser

Simple script utility for instagram browser.

Not required any software only Browser. Firefox or Chrome

Little stupid by very simple and do what is require... scroll page automaticaly, and allow get image, video from post.

In console window (F12) simply put code. After then you see this buttons and global window key down handlers
  • D - scroll down page
  • S - stop scroll
  • U - scroll up
  • I - dump image url if selected - global function imgu()
Page is scroll down by 400px, or more but if to fast instagram wait for loading images
Big instagram hashtag or @ has problem. Browser alocate a lot of memmory, it slow down computer, event can't scroll more for example #instagood or #flamingo.

With document body is associated global key handler and some function




Just open Firefox console (F12)  and Copy - paste

środa, 23 maja 2018

Windows - użyteczne polecenia

Manager urządzeń (device manager)

Można odpalić z cmd przez  
devmgmt.msc lub  
mmc devmgmt.msc albo
control /name Microsoft.DeviceManager
control hdwwiz.cpl

źródło https://www.lifewire.com/how-to-access-device-manager-from-the-command-prompt-2626360 po szukaniu How to Access Device Manager From the Command Prompt

Właściwości komputera (mój komputer) z cmd 

windows computer properties from command line

https://www.windows-commandline.com/launch-system-properties-from-command/

sysdm.cpl
systeminfo 

Gdy odpalone z konsoli cmd z prawami adm to można np zmienić path

 Kontrola usług


Zatrzymanie (podobnie jak net stop...)
Wyłączenie autostartu
Wywalenie z listy usług Windows
sc stop "GslShmSrvc"
sc config "GslShmSrvc" start= disabled
sc delete "GslShmSrvc"
services.msc
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Schedule Start=4

zrzut procesów do pliku z linią komend
> Lista usług
sc queryex type= service state= all | find "_NAME"

Disable the Windows Store service
Open Registry Editor and navigate to HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\WSService. Select the Start value in the right-hand pane and set its value to 4.

Disable Time Broker
In Registry Editor, navigate to HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\TimeBroker. Select the Start value in the right-hand pane and set its value to 4.


W przypadku Windows 8 warto wiedzieć jak wyłączyć weryfikację podpisu dla sterowników. Da się to zrobić tylko w specjalnym trybie.

Definiowanie arp trzeba robić inaczej

http://superuser.com/questions/101293/windows-7-the-arp-entry-addition-failed-access-is-denied

netsh interface ip delete neighbors "Network card name here" "Gateway.IP.goes.here"

netsh interface ip add neighbors "Network card name here" "Gateway.IP.goes.here" "MAC-address-of-gateway-with-dash-here"

HTC instalacja ADB - koniecznie do instalacji telefonu
https://plus.google.com/103583939320326217147/posts/BQ5iYJEaaEH

W miarę sensowny opis usług windows

http://traxter-online.net/optymalizacja-uslug-w-systemie-windows/

Nie można wyłączyć usługi Schedule

>sc config "Schedule" start= disabled
[SC] OpenService NIEPOWODZENIE 5:
Odmowa dostępu.

>sc stop Schedule
[SC] OpenService NIEPOWODZENIE 5:
Odmowa dostępu.

>net stop Schedule
Wystąpił błąd systemu 5.
Odmowa dostępu.

Można spróbować wyłączyć w rejestrze
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Schedule| Start
Automatic - 2
Manual - 3
Disabled - 4
Automatic (Delayed Start) - 2


Domyślnie jest 2 i jest nie do zmiany szare

modyfikacja wsadowa rejestru
REG add "HKLM\SYSTEM\CurrentControlSet\services\Schedule" /v Start /t REG_DWORD /d 4 /f




Zmienia się na wyłączony po tem ale nie zatrzymuje się - prawdopodobnie conieco przestanie działać.

Można to jeszcze modyfikować przez msconfig

Dell accelerometerP11 to ustrojstwo do zabezpieczenia twardego dysku.




Sieć wifi  - hostspot

http://www.wikihow.com/Create-a-WiFi-Hotspot-Using-the-Command-Prompt
http://www.blog.ravns.net/windows-7-jako-access-point-wi-fi-hot-spot-wireless-hosted-networks/
netsh wlan show drivers

Wsparcie dla sieci obsługiwanej: Tak

netsh wlan set hostednetwork mode=allow ssid=kcz1 key=qweASD321

netsh wlan start hostednetwork

netsh wlan stop hostednetwork


Icon cache
Skasować plik C:\Users\User-Name\AppData\Local\IconCache.db ubić proces explorer z managera zadań i wystartować na nowo

Poprawa bezpieczeństwa domyślnych uprawnień
Można usunąć uprawnienie dla zalogowani użytkownicy.
http://www.sevenforums.com/general-discussion/137659-how-restrict-write-access-c-root.html
W moim wypadku ma to sens, aby partycja była dostępna do zapisu tylko dla określonych osób.
W sumie w moim wypadku konieczne było zabranie uprawnień zapisu dla użytkowników (w wersji HOME było to załączone). Podczas zabierania uprawnień pojawiły się błędy że nie można zastosować zmian do niektórych plików (folderów), co jest raczej normalne, ale do reszty wydaje się działać.

Klonowanie profilu użytkownika
W przypadku większej ilości kont może być problem z ustawianiem wszystkich ustawień.
https://technet.microsoft.com/pl-pl/library/cc781200(WS.10).aspx

W windows 7 nie ma możliwości kopiowania profilu tak jak to było w wersjach XP i serwer.
http://www.irongeek.com/i.php?page=security/windows-7-copy-default-profile

Ograniczenia dostosowania profilu
http://blogs.technet.com/b/askcore/archive/2010/03/16/how-to-customize-the-windows-7-start-menu-and-taskbar-using-unattend-xml.aspx

Z tego co widzę to ważny jest plik Unattend.xml
http://blogs.technet.com/b/askcore/archive/2010/03/16/how-to-customize-the-windows-7-start-menu-and-taskbar-using-unattend-xml.aspx

Wyciąganie zawartości z instalatora
Instalator Inno Setup installer
http://constexpr.org/innoextract/

innoextract.exe -e plik.exe

Wyciąganie zawartości z msi
msiexec /a f:\zenworks\zfdagent.msi /qb TARGETDIR=c:\zfd701
nie zadziałało na zwykłym userze
7-zip podobno potrafi

7-zip

https://superuser.com/questions/131899/how-to-make-7-zip-faster

7z.exe a -tzip -mx=1 -mmt=off t:\backup.zip d:\folderToBackup\*

Linki

mklink <flag> link target
 <no flag> - file symbolic link
 /H        - file hard link
 /D        - directory symbolic link
 /J        - directory junction (hard link, essentially)
Więc w takim wypadku symboliczny link do katalogu może wglądać tak
mklink /D java8 d:\java\jdk\jdk8.91.x64
W przypadku takich linków widać z cmd na co wskazują
dir d:\java\jdk\ 
...
2016-04-24  18:51    <SYMLINKD>     jdk8 [jdk8.91.x64]

Listowanie szczegółów linka (szczególnie tych hard i junction) bieżącego katalogu
dir /AL /S

Rozszerzenia dla windows do tworzenia linków (Link Shell Extension) http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html#contact

Dla starego windows XP
http://superuser.com/questions/484061/how-to-create-an-ntfs-junction
Junction https://technet.microsoft.com/en-us/sysinternals/bb896768

Windows rebuild ikons cache

Dość często zdarzało się że ikony plików linków ulegały uszkodzeniu w przypadku gdy programy są na dysku który nie jest widoczny na starcie systemu.
Jak  to naprawić.
Ikony znajdują się w pliku.
Cache ikon dla widnows 7 jest przechowywany w
C:\Users\<your username>\AppData\Local\IconCache.db

Ubić z managera zadań proces explorer
Potem ręcznie odpalić explorer

Kilowanie zadania

Oczywiście można skorzystać z process managera albo ręcznie
taskkill /f /im ccc.exe


SHA1 MD5 

https://support.microsoft.com/pl-pl/help/841290/availability-and-description-of-the-file-checksum-integrity-verifier-utility

Dostęp uprzywilejowany

cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" "%1""

Czy da się zamontować wirtualny dysk po ssh?
http://stackoverflow.com/questions/443732/how-do-i-mount-a-remote-linux-folder-in-windows-through-ssh

http://www.swish-sftp.org/

netdrive -> WebDrive -> webdrive64_16_00_4368_en.exe lub webdrive32_16_00_4368_en.exe

Powiększanie partycji NTFS

Podpisywanie sterowników

Może to być problem gdy instalowane jest duża ilość driverów jak np podczas instalacji virtualbox https://support.hidemyass.com/hc/en-us/articles/202723596-How-to-disable-Driver-Signing-check-on-Windows


Zmienne związane z procesorem

>set |findstr PROC
NUMBER_OF_PROCESSORS=2
PROCESSOR_ARCHITECTURE=AMD64
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 15 Stepping 11, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=0f0b

Co to jest ~dp0

http://stackoverflow.com/questions/5034076/what-does-dp0-mean-and-how-does-it-work
Faktycznie opis jest w komendzie for /? na którejś kolejnej stronie
%~dpI       - rozwija %I tylko do litery dysku i ścieżki
W pliku bat %~dp0 (that’s a zero) variable when referenced within a Windows batch file will expand to the drive letter and path of that batch file.
Dzieki temu pliki mogą być bardziej portable.

Interface sieciowe zarządzanie

netsh interface ip show interfaces
netsh interface set interface ifvbox0 disabled
netsh interface set interface ifvbox0 enabled

Linkowanie katalogów i plików
mklink
w katalogu C:\Windows\System32 linki i baty
edit.bat
@echo off
START /B CMD /C CALL cmd /c EmEditor.bat %1 %2 %3

EmEditor..bat
@echo off
C:\Tools\EmEditor-x64-15.1.7-portable\EmEditor.exe %1 %2 %3

ln.bat
@echo off
mklink %2 %1

pageant.bat
@echo off
START /B CMD /C CALL cmd /c "%DIR%\key.prv.ppk"

traceroute.bat
@echo off
tracert -d -w 1 %1


Nie da się linkować bezpośrednio do programów bo często potrzebują swojej ścieżki i umieszczenie ich w głównym katalogu daje im do zrozumienia że to jest ich katalog, a nie ma tam odpowiednich plików, dlatgo lepiej robić bat-y.

W takiej postaci z cmd da się używać np ssh root@ip i autryzować się kluczami po odpaleniu pageant.
Daje to prawie działającą atrapę konsoli.

Loop w bat
Star backgroud process 
start.bat
@echo off
for /f "tokens=2 delims==; " %%a in (' wmic process call create "notepad.exe" ^| find "ProcessId" ') do set PID=%%a
echo "%PID%"
pause


wmic
co to jest i do czego?
WMIC - Take Command-line Control over WMI
Windows Management Instrumentation Command-line (WMIC)
Windows Management Instrumentation (WMI)
https://msdn.microsoft.com/en-us/library/bb742610.aspx
since Microsoft Systems Management Server (SMS) 2.0
CIM Studio
WMI Query Language (WQL)
useraccount list brief
useraccount  -> Win32_Useraccount 
https://technet.microsoft.com/en-us/library/cc181062.aspx
http://download.cnet.com/WMI-Administrative-Tools/3000-2383_4-75452613.html
WMI Code Creator
WMITools.exe search in google
https://www.microsoft.com/en-us/download/confirmation.aspx?id=8572
Example query:
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM Win32_UserAccount",,48)
For Each objItem in colItems
    Wscript.Echo "-----------------------------------"
    Wscript.Echo "Win32_UserAccount instance"
    Wscript.Echo "-----------------------------------"
    Wscript.Echo "AccountType: " & objItem.AccountType
    Wscript.Echo "Caption: " & objItem.Caption
    Wscript.Echo "Description: " & objItem.Description
    Wscript.Echo "Disabled: " & objItem.Disabled
    Wscript.Echo "Domain: " & objItem.Domain
    Wscript.Echo "FullName: " & objItem.FullName
    Wscript.Echo "InstallDate: " & objItem.InstallDate
Next


Aliasy do wmic
https://www.1e.com/blogs/2009/09/23/wmic-aliaswmi-class-mapping/

process
ProcessId

printer list status

Iteracja pozycji z pliku
https://stackoverflow.com/questions/206114/batch-files-how-to-read-a-file

FOR /F %i IN (file.txt) DO @echo %i 
Parser for ini files
http://www.ericphelps.com/batch/samples/getini.txt

Switch - case
https://stackoverflow.com/questions/18423443/switch-statement-equivalent-in-windows-batch-file
IF "%1"=="red" echo "one selected" & goto exit
IF "%1"=="two" echo "two selected" & goto exit
...

echo "Options: [one | two | ...]
:exit

Jest też bardziej złożona wersja...
https://stackoverflow.com/questions/28103532/how-to-parse-command-line-arguments-with-switch-in-batch-file

funkcje w bat
http://steve-jansen.github.io/guides/windows-batch-scripting/part-7-functions.html < całkiem fajne opisy
Da się na podstawie call do labela i wykorzystania goto:eof
call:myDosFunc 100 YeePEE
call:myDosFunc 100 "for me"
call:myDosFunc 100,"for me"
call:myDosFunc 100,for me
echo.&pause&goto:eof
::--------------------------------------------------------
::-- Function section starts below here
::--------------------------------------------------------

:myDosFunc    - here starts my function identified by it`s label
echo. here the myDosFunc function is executing a group of commands
echo. it could do a lot of things
GOTO:EOF

Blok funkcji jest na końcu
Zamiast goto:eof można wykorzystać EXIT /B

:: do something cool, then log it
CALL :tee "%me%: Hello, world!"
:: force execution to quit at the end of the "main" logic
EXIT /B %ERRORLEVEL%
:: a function to write to a log file and write to stdout
:tee
ECHO %* >> "%log%"
ECHO %*
EXIT /B 0


Wyrażenia logiczne w bat
https://stackoverflow.com/questions/2143187/logical-operators-and-or-in-dos-batch
AND v1
if %age% geq 2 (
    if %age% leq 12 (
        set class=child
    )
)

AND v2
if %age% geq 2 if %age% leq 12 set class=child
OR v1
set res=F
if %hour% leq 6 set res=T
if %hour% geq 22 set res=T
if "%res%"=="T" (
    set state=asleep
)

Aby zrobić or raczej trzeba korzystać z zamiany na negację and
set warner=true
if not "%name%"=="Yakko" if not "%name%"=="Wakko" if not "%name%"=="Dot" set warner=false
if "%warner%"=="true" echo Warner brother or sister


IF potrafi dziwnie wyglądać
IF "!arg:~0,1!" equ "-"
Wyjaśnienie...

Dokumentacja dla bat
https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/batch.mspx?mfr=true


Odczyt argumentów wywołania
Pliki bat mają limit argumentów dostępnych bezpośrednio przez zmienne 1-9 (0 nazwa bat-a)
Kolejne parametry trzeba czytać przy pomocy SHIFT

doskey
Wykorzystanie do podmiany komendy cd tak aby pamiętała historię i dało się użyć mechanizmu jak na linux cd -
https://superuser.com/questions/129969/navigate-to-previous-directory-in-windows-command-prompt

pushd, popd

dism
Wielki rozmiar katalogu c:\Windows\winsxs 

DISM.exe /Online /English /Get-Features /Format:Table
SimpleTCP                                   | Enabled
WindowsGadgetPlatform                       | Enabled
IIS-WebServerRole                           | Enabled
IIS-WebServer                               | Enabled
IIS-CommonHttpFeatures                      | Enabled
IIS-HttpErrors                              | Enabled
IIS-StaticContent                           | Enabled
IIS-DefaultDocument                         | Enabled
IIS-DirectoryBrowsing                       | Enabled
MediaPlayback                               | Enabled
WindowsMediaPlayer                          | Enabled
MediaCenter                                 | Enabled
OpticalMediaDisc                            | Enabled
NetFx3                                      | Enabled
TabletPCOC                                  | Enabled
Printing-Foundation-Features                | Enabled
Printing-Foundation-InternetPrinting-Client | Enabled
FaxServicesClientPackage                    | Enabled
MSRDC-Infrastructure                        | Enabled
Printing-XPSServices-Features               | Enabled
Xps-Foundation-Xps-Viewer                   | Enabled
SearchEngine-Client-Package                 | Enabled
Internet-Explorer-Optional-amd64            | Enabled


DISM.exe /Online /Disable-Feature /featurename:WindowsGadgetPlatform/Remove

autoupdate
sc config "wuauserv" start= auto
 sc config "wuauserv" start= disabled

regedit
Zamiast przeszukiwać regedit - export rejestru i przeszukiwania edytorem tekstu

Dodanie curl
curl
U mnie zagadało https://skanthak.homepage.t-online.de/curl.html 

środa, 9 listopada 2016

Java Generic - Collection casting case

Java Generic - Collection casting case


import java.util.*;
public class J1
{
  public static void main(String[] args)
  {
    class a1 { public String toString() { return "a1";} }
    class b extends a1 { public String toString() { return "b";} }
    class c extends a1 { public String toString() { return "c";} }
    class d extends a1 { public String toString() { return "d";} }
    List<a1> l1 = new ArrayList<a1>();
    l1.add(new a1());
    l1.add(new b());
    l1.add(new c());
    l1.add(new d());
   
//    l1.
    List<b> l2 = new ArrayList<b>();
    l2.add(new b());
    l2.add(new b());
   
   
    for (a1 a : l1)
    {
      // to nie dziala
//      B b = a;
//      l2.add(a);
    }
//      l2 = l1;
   
    for(b b : l2)
    {
      l1.add(b);
    }
   
    System.out.println("l1:" + l1);
    for (a1 a: l1)
    {
      System.out.println("l1.a:" + a);
    }
//    l1 = l2;
//    l2 = l1;
   
    l2 = (List)l1;
    System.out.println("l2:" + l2);
    List l3 = l1;
    for (a1 b: l2)
    {
      System.out.println("l2.b:" + b);
    }
   
    l1 = (List)l2;
    System.out.println("l1:" + l2);
  }
}



l1:[a1, b, c, d, b, b]
l1.a:a1
l1.a:b
l1.a:c
l1.a:d
l1.a:b
l1.a:b
l2:[a1, b, c, d, b, b]
l2.b:a1
l2.b:b
l2.b:c
l2.b:d
l2.b:b
l2.b:b
l1:[a1, b, c, d, b, b]