Group Details Private

administrators

Member List

  • Wprowadzenie do preprocesorów ~ SASS

    Cześć w dzisiejszym wpisie omówimy sobie jeden z preprocesorów jakim jest SASS.

    Co to jest SASS?

    Dobra wstęp mamy już za sobą, teraz czas na szybki przegląd - przede wszystkim istnieją dwie implementacje (jak wszystko w informatyce - nie ma jednej, jedynej słusznej drogi). Istnieje SCSS oraz SASS i takie też mamy rozszerzenia dla tych plików - różnią się praktycznie wyłącznie składnią i kilkoma mało istotnymi niuansami.

    Dla jasności w tym wprowadzeniu skupimy się głównie na SCSS z racji tego, że jest on bliższy temu co zapewne znacie czyli zwykłemu CSS'owi, składnia tego drugiego jest nieco bardziej przejrzysta ponieważ bazuje na wcięciach (nie klamrach) dlatego przypomina trochę pisanie w Python'ie.

    Aby zacząć praktycznie będziemy potrzebować wyłącznie VScode i dwóch dodatków Live Server oraz Live Sass Compiler. Instalacje dodatków jak i samego IDE pozostawiam Wam, nie ma chyba nic co mogłoby spędzić sen z powiek komukolwiek kto czyta ten tutorial.

    Myślę, że jest to najprostszy set-up bez kombinowania z skryptami w Node.js, Ruby czy dedykowanymi kompilatorami z GUI jak Koala i inne.

    Gdy to będziemy mieli tworzymy prosty plik HTML:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    
        <link rel="stylesheet" href="style.css">
    </head>
    <body>
    </body>
    </html>
    

    VS ma wbudowanego Emmet'a więc wystarczy utworzyć plik index.html a następnie napisać napisać ! i nacisnąć Tab potem wystarczy dopisać w head link:css i zrobić dokładnie analogicznie (lub ręcznie klepać całość).

    Oczywiście jeszcze nie mamy naszego pliku style.css ale tym się na razie przejmujemy za chwile go zbudujemy.

    Tak więc pozostaje nam stworzyć przykładowy plik z rozszerzeniem .scss i/lub .sass (w naszym przypadku style.scss) i dodać do niego przykładową zawartość:

    $dark: #333;
    
    body {
        background-color: $dark;
    }
    
    

    Wszystkie słowa rozpoczynające się od $ oznaczają zmienne do których możemy przypisywać własne wartości.

    Następnie będąc (wciąż w widoku dokumentu) nacisnąć w prawym dolnym rogu:
    Run sass compile

    Dzięki temu uruchomi się konsola która uruchomi kompilator.
    Watcher wygenerował nam plik style.css i dalej będzie śledził jego zawartość.

    Ok, czas na drugi etap, przechodzimy do naszego index.html i PPM (prawy przycisk myszy) i odpalamy :

    PPM > Live Server

    Powinno nam to uruchomić prosty serwer developerski i uruchomić go w przeglądarce (domyślnie na porcie 5500). Gdyby tak się nie stało możecie ręcznie udać się pod adres http://localhost:5500/.

    To co powinniśmy zobaczyć to efekt naszego stylowania, jak pamiętamy był to ciemny kolor tła, i taki też jest:

    Dark background

    Zagnieżdżanie elementów

    Dobra wydaje mi się, że nie było to większym zaskoczeniem - czas na coś ciekawszego, jak wspomniałem SASS ma sporo dodatkowych opcji jednak dzięki następnej świat staje się łatwiejszy, wyżej przedstawiliśmy sobie zmienne to teraz czas na zagnieżdżenia.

    Sporym ułatwieniem jest możliwość zagnieżdżenia kodu wewnątrz samego siebie, załóżmy taki scenariusz - mamy przycisk który ma być podświetlany w chwili najechania na niego. Tworzymy sobie prosty kod w naszym html:

    <button>Witaj Świecie</button>
    

    Ok, aby to ostylować a robimy to w taki sposób:

    // Colors
    $dark: #333;
    $blue: #20b2f7;
    $white: #fff;
    $red: #ff4e4e;
    $red-dark: #d24646;
    
    // Fonts size
    $sm: 0.5em;
    $md: 1em;
    $lg: 2em;
    
    button {
    	background-color: $red;
    	border-radius: 25px;
    	border: none;
    	padding: $sm $md;
    	color: $white;
    
    	&:hover {
    		background-color: $red-dark;
    	}
    }
    

    Sam przycisk (z kodu powyżej) zostanie przerobiony do takiej postaci:
    Red button

    button {
    	background-color: #ff4e4e;
    	border-radius: 25px;
    	border: none;
    	padding: 0.5em  1em;
    	color: #fff;
    }
    
    button:hover {
    	background-color: #d24646;
    }
    

    Jak się domyślanie zbyt wiele zagnieżdżeń wcale nie ułatwia analizy kodu a w przypadku składni scss nawet utrudnia, dlatego starajmy się je mimo wszystko ograniczać, tutaj przykład kodu który poszedł zdecydowanie za daleko:

    #menu {
    	ul{
    		list-style: none;
    		
    		li {
    			float: left;
    				
    			a {
    				display: block;
    				padding: 10px 20px;
    				background-color: #777;
    			}
    		}
    	}
    }
    

    Modułowość

    Dobra ale wróćmy do poprzedniego przykładu dodaliśmy sobie sporo dodatkowych zbędnych zmiennych (kolory, rozmiary fontów), pewnie już rodzi się Wam pytanie po co? Z bardzo prostej przyczyny, po pierwsze aby unaocznić nieco bardziej ich wykorzystanie a po drugie aby pokazać teraz modularność SASS'a.

    Swoją drogą jest to częściowo funkcjonalność zwykłego CSS'a jednak działająca nieco inaczej. Przy zwykłych importach CSS tworzy kolejne zapytania sieciowe natomiast SASS bierze wszystkie wymienione (zazwyczaj w głównym pliku) moduły i łączy w jeden plik który następnie przetwarza.

    Stwórzmy sobie folder modules (choć nazwa nie ma tak naprawdę znaczenia) i dodajmy sobie dwa pliki, tak to wyglądać będzie w naszej drzewku katalogów:

    App

    • modules
      • _colors.scss
      • _fonts.scss
    • index.html
    • style.scss
    • style.css

    W przypadku modułów ważne aby na początku w nazwie było słowo kluczowe _ mówiące SASS'owi, że jest to część (która może być dołączana w innym miejscu).

    Jak się domyślacie w jednym pliku będą znajdować się nasze kolory a w drugim wszystko co związane z czcionkami, rozmiary itd. Utwórzmy więc na bazie tego co sobie dotychczas powiedzieliśmy oba pliki:

    modules/_colors.scss:

    // Colors
    $dark: #333;
    $blue: #20b2f7;
    $white: #fff;
    $red: #ff4e4e;
    $red-dark: #d24646;
    

    modules/_fonts.scss

    // Fonts size
    $sm: 0.5em;
    $md: 1em;
    $lg: 2em;
    

    Ostatnim co nam pozostaje aby całość zadziałała to zmodyfikowanie głównego pliku o dodatkowe dwa wpisy:

    style.scss:

    @import 'modules/colors';
    @import 'modules/fonts';
    
    button {
    	background-color: $red;
    	border-radius: 25px;
    	border: none;
    	padding: $sm $md;
    	color: $white;
    
    	&:hover {
    		background-color: $red-dark;
    	}
    }
    

    Importy nie muszą już zawierać _ ani rozszerzenia. Oczywiście można by wrzucić powyższy plik do tego samego folderu co moduły ale my tego nie zrobimy - ze względu na dodatkowe konfigurowanie pluginu (domyślnie generuje plik css w folderze w którym znajduje się plik źródłowy scss).

    Mixins, funkcje

    Kolejną opcją którą przetestujemy są tzw. mixins czyli tak bardziej po naszemu są to (prawie) funkcje. Prawie bo jeżeli spojrzymy na jakikolwiek język programowania to funkcja zazwyczaj zwraca jakąś (jedną) wartość natomiast mixin zawiera kilka wartości które bezpośrednio dodaje do kodu CSS. Oczywiście zwykłe funkcje także istnieją i możemy je uzyskać poprzez znacznik @function.

    Pewnie zastanawiasz gdzie w CSS mogę mieć potrzebę używania takich struktur? Odpowiedź - wszędzie gdzie musimy wykonywać powtarzalną się zbędną prace.

    Przejdźmy do praktyki, stworzymy sobie kolejne dwa moduły w naszym folderze:

    modules/_mixins.scss

    // Mixins
    @mixin transform($property) {
      -webkit-transform: $property;
      -ms-transform: $property;
      transform: $property;
    }
    

    Działa to w bardzo prosty sposób nasza mixin nazywa się transform a wszystko co posiada w nawiasie nazywamy parametrem, mamy więc jeden parametr $property który jest widoczny jako zmienna ale tylko w obrębie tego mixinu (czyli tam gdzie zaczynają i kończą się klamry).

    Nie jest to może bardzo wyszukany przykład ~ pochodzi z dokumentacji projektu ale bardzo dobrze pokazuje istotę działania w warunkach bojowych.

    Jeżeli robiliście już coś w CSS3 to zapisy wewnątrz tego mixinu nie powinny być dla Was obce, a nawet jeśli są to całe działanie w tym przypadku polega na dodaniu prefix'ow dla odpowiednich przeglądarek (natywnie) nie wspierających danej funkcjonalności (obecnie można by było użyć jakiegoś auto-prefixera ale to innym razem).

    modules/_functions.scss

    // Functions
    @function divide($val){
    	@return  $val  /  2;
    }
    

    Podobnie jeżeli robimy zwykłą funkcje divide tak jak powyżej której zadaniem jest wziąć parametr $val i podzielić na 2. Oczywiście parametr jest w tej chwili dowolny i nie musi być to wcale liczba (można to także bardziej doprecyzować).

    Dobra czas to wreszcie wypróbować wbijamy do naszego głównego pliku i go lekko przerabiamy:

    style.scss

    @import  'modules/functions';
    @import  'modules/mixins';
    @import  'modules/colors';
    @import  'modules/fonts';
      
    button {
    	background-color: $red;
    	border-radius: 25px;
    	border: none;
    	padding: $sm  $md;
    	margin: divide(25px);
    	color: $white;
    	transition: .5s all;
    
    	&:hover {
    		background-color: $red-dark;
    		@include transform(scale(1.1));
    	}
    }
    

    Pamiętamy o imporcie na samej górze, dodatkowo tutaj dla niepoznaki dorzuciłem jeszcze transition: .5s all aby całość nie była taka sztywna.

    Z pomocą @include użyliśmy stworzonego przez nas mixin'a a także własnej funkcji - ale co tak naprawdę się stało możemy zobaczyć dopiero w wynikowym CSS:

    button {
    	background-color: #ff4e4e;
    	border-radius: 25px;
    	border: none;
    	padding: 0.5em  1em;
    	margin: 12.5px;
    	color: #fff;
    	-webkit-transition: .5s  all;
    	transition: .5s  all;
    }
    
    button:hover {
    	background-color: #d24646;
    	-webkit-transform: scale(1.1);
    	transform: scale(1.1);
    }
    

    Tutaj uwidacznia się również pierwsza różnica między scss i sass, chcąc zrobić to samo w sass zamiast @mixins użylibyśmy przedrostka = przed nazwą funkcji a chcąc ją wywołać wystarczyłoby ponownie użyć przedrostka + oraz nazwa funkcji.

    Dziedziczenie, rozszerzanie

    Kolejną świetną sprawą jest dziedziczenie oraz rozszerzanie elementów, wyobraźcie sobie proste pudełko albo nawet dwa. Zróbmy je dodając w index.html:

    <div id="box1">Box 1</div>
    <div id="box2">Box 2</div>
    

    Oba z nich mają mieć taki sam cień wokół pudełka oraz podobne style dotyczące wyświetlanego wewnątrz tekstu, różnica w tym wypadku polega jedynie na zmianie koloru tła. Niech tych właściwości będzie nieco więcej, kopiowanie tego (już nie mówię nawet o przepisywaniu) to droga donikąd. Kompletnie nieoptymalnie i karkołomnie - kompletnie wbrew wszelkim regułą jak np. DRY (Don't repeat yourself ~ nie powtarzaj się!).

    Dlatego robimy to w ten sposób:

    @import 'modules/functions';
    @import 'modules/mixins';
    @import 'modules/colors';
    @import 'modules/fonts';
    
    %universal {
    	width: calc(1/6  *  100vw);
    	height: calc(1/4  *  100vh);
    	margin: 2rem;
    	font-size: $lg;
    	display: flex;
    	justify-content: center;
    	align-items: center;
    	color: $white;
    	box-shadow: 0  4px  8px  0  rgba(0, 0, 0, 0.2), 0  6px  20px  0  rgba(0, 0, 0, 0.19);
    }
    
    #box1 {
    	background-color: $dark;
    	@extend  %universal;
    }
    
    #box2 {
    	background-color: $blue;
    	@extend  %universal;
    }
    
    button {
    	background-color: $red;
    	border-radius: 25px;
    	border: none;
    	padding: $sm  $md;
    	margin: divide(25px);
    	color: $white;
    	transition: .5s  all;
    
    	&:hover {
    		background-color: $red-dark;
    		@include  transform(scale(1.1));
    	}
    }
    

    Dzięki czemu mamy jeden kod który daje nam dwa identyczne pudełka w różnych kolorach ~ czyż to nie jest lepsze? Co więcej jeżeli zrobimy taki element ogólnego przeznaczenia i nigdzie go nie załączymy przez @extend to nie zostanie on zupełnie uwzględniony w kodzie.

    Two boxes

    Sass wspiera także wykonywania zwykłych działań matematycznych, to samo co możecie zobaczyć tutaj powyżej natywnie w funkcji calc można zrobić zwyczajnie przy zwykłych właściwościach, przykład:

    margin: 50px + 23px;
    

    Poza tym dostępne są także instrukcje warunkowe czy pętle na tym, jednak SASS się nie kończą zachęcam do dalszego odkrywania możliwości jakie daje zaglądając na oficjalną stronę projektu,

    posted in Kodowanie
  • Laptop Dell restartuje się po aktualizacji do Windows 10

    Ostatnimi czasy miałem możliwość aktualizować do Windows'a 10 większą liczbę komputerów biurowych marki Dell, w związku z tym raz trafiały się komputery stacjonarne a innym razem laptopy.
    Będąc już w temacie laptopów natrafiłem na jeden dość ciekawy laptop Dell Latitude z serii 5000 (dokładnego modelu niestety nie pamiętam - a żałuje, że nigdzie nie spisałem).

    Co ciekawe komputer ten po aktualizacji z Win 7 do Win 10 i zalogowaniu się na konto użytkownika samoczynnie się restartował (powtarzając to w nieskończoność). Dokładnie działo się to paręnaście / parędziesiąt sekund po uruchomieniu, zaraz po wyświetleniu konsoli (kto bardziej uważny ten wie, że podczas uruchamiania Windows 10 wyświetla się na kilka nanosekund wiersz poleceń a potem ginie).

    Na początku nie mając czasu na rozwiązywanie takich błahych problemów kolejno stawiałem wszystkie komputery od zera, wszystko konfigurując od podstaw, nieco żmudnie i całkowicie bez sensu (ale skuteczne - umożliwiając tym samym ludziom dalszą pracę, ponieważ gonił mnie czas) jednak w pewnym momencie stwierdziłem, że pasowało by coś z tym zrobić i dowiedzieć się dlaczego tak się dzieje.

    Robiąc trzeciego takiego samego laptopa, po prostu stwierdziłem koniec tego dobrego. Z racji tego, że na starcie było parę sekund zanim dell samoczynnie uruchamiał się od nowa i restartował w nieskończoność, było to wystarczające do tego aby błyskawicznie wejść w msconfig i uruchomić bezpieczny rozruch (z obsługą sieci). Oczywiście są inne sposoby na dostanie się do trybu awaryjnego (np. F8) - ale różnie to działa.

    O dziwo podczas bezpiecznego rozruchu (czy też inaczej trybu awaryjnego) laptop nie wykazywał żadnych nieprawidłowości i po prosu działał.
    Po dłużej chwili, wyłączając poszczególne usługi startujące zaraz po uruchomieniu systemu doszedłem do tego, co jest winowajcą całego zamieszania a jest nim ~ Unified Wireless Application od Qualcomma.

    Poza tym aktualizacja Windows 10 usunęła dwa programy: Intel USB 3.0 eXtensible Host oraz Dell Backup and Recovery co akurat na dobre wyszło bo nie jestem fanem autorskich rozwiązań do tworzenia kopii zapasowych - niemniej wydłużyło to sztucznie całą analizę problemu (zawsze to kolejne dwa programy mogły powodować nieoczekiwane problemy).

    Mam nadzieje, że dzięki temu opisowi osoby mające podobne problemy będą mogły odetchnąć z ulgą. Rozwiązanie to oczywiście wyłączenie wyżej wymienionego programu. Pytanie czy wy także spotkaliście się z podobnym problemem ? Koniecznie dajcie znać w komentarzu.

    posted in Sterowniki
  • Styl Vertigo [SMF2]

    Cześć!
    Ostatni już z serii przeróbek styl który edytowałem lata temu a który wciąż czekał na re-upload.
    Nazywa się Vertigo choć w oryginale jest to dobrze znany wszystkim Vertex, prosty i stonowany styl.

    Autorem oryginału jest MLM z forum VisualPulse.

    Screen'y:

    Board view

    Admin view

    Post view

    Chciałbym zwrócić uwagę, że nie jestem autorem oryginału ~ styl stworzył MLM!

    Info:

    • Wersja dla SMF: 2.0.* (testowane na ~ 2.0.15)

    Uwagi:

    • Styl archiwalny, brak dalszych aktualizacji / łatania błędów.
    • Dodatkowo dostępne tłumaczenia

    Instalacja:

    1. Logujemy się do ACP naszego forum
    2. Przechodzimy do PA/Konfiguracja/Zarządzanie stylami/Zarządzaj i instaluj, oraz wskazujemy pobraną wcześniej paczkę Vertigo.zip i wybieramy Instaluj!.
    3. Następnie z listy dostępnych stylów wybieramy Vertigo i zapisujemy zmiany.

    Link:

    posted in Prace użytkowników
  • Przesyłanie plików pomiędzy dwoma urządzeniami z pomocą sieci

    Przesyłanie plików pomiędzy dwoma urządzeniami z pomocą sieci

    Zastanawialiście się kiedyś czy jest możliwe przesyłanie plików bezpośrednio z komputera do komputera z użyciem zwykłej skrętki internetowej (popularnego zwanej kablem sieciowym)?

    Oczywiście jest to możliwe, natomiast w tym poradniku pokaże Wam jak w prosty sposób wykorzystując ten fakt możecie przesyłać ogromne pliki pomiędzy dwoma komputerami nie tracąc na transferze. Jedynym ograniczeniem w tym przypadku będą dyski obu urządzeń i karty sieciowe ograniczające prędkość - pomijając ten element będzie to niesamowicie wydajne łącze (lepsze niż ręczne zgrywanie plików na i z pendrive'a).

    Przede wszystkim należy sobie zdawać sprawę, że najlepszym kablem do tego typu połączenia będzie kabel skrosowany (crossover) czyli taki który z jednej strony jest zakończony standardem EIA/TIA 568A a z drugiej EIA/TIA 568B. Ale i bez tej wiedzy możemy sobie poradzić wystarczy znaleźć odpowiedni kabel ~ przykład: klik

    Kolejnym etapem będzie połączenie obu urządzeń kablem i odpowiednia konfiguracja, w zależności od systemu:

    Windows -> Windows

    W ustawieniach karty sieciowej (Właściwości > IPv4) na jednym z komputerów należy ustawić IP oraz maskę:
    Change IP/Mask Windows

    • PC1:
      IP: 192.168.1.1
      MASK: 255.255.255.0

    Analogicznie robimy na drugim ustawiając inny (wolny adres - w naszym przypadku 192.168.1.2)

    • PC2:
      IP: 192.168.1.2
      MASK: 255.255.255.0

    W razie problemów należy sprawdzić opcje udostępniania oraz odnajdywania sieci i katalogów sieciowych (Centrum sieci i udostępniania > Zmień zaawansowane ustawienia udostępniania).

    Share options

    Wszystko opcje ustawiamy na włączone przy wpisie obok którego pisze "obecny profil" - w naszym przypadku Publiczny choć wcale taki nie musi być. Ostatnią opcję (udostępnianie chronione hasłem wyłączamy).

    Ważne też aby oba komputery pracowały w tej samej grupie roboczej - najlepiej domyślnej WORKGROUP.

    Na koniec pozostaje stworzyć folder (np. Test ) na maszynie źródłowej który chcemy udostępnić drugiemu urządzeniu i w Właściwościach zmienić uprawniania do tego katalogu katalogu: (PPM > Właściwości, zakładka Udostępnianie)

    Directory share option

    Wybieramy "Udostępnij..." i dodajemy użytkownika "Wszyscy" oraz zwiększamy mu zakres uprawnień na "Odczyt/zapis".

    Oczywiście można bardziej zakroić uprawnienia czy też autoryzować wybranego użytkownika do z góry określonego folderu jednak do prostego przesyłania komputerów (offline) ta metoda jest najszybsza i najmniej problematyczna (po wszystkim należy pamiętać o wyłączeniu udostępniania!).

    Potem pozostaje jeszcze znaleźć nasz zasób poprzez zakładkę Sieć w eksploratorze windows (pod warunkiem że nazwy komputerów są różne) na drugim urządzeniu czy też wciskając odpowiednią kombinacje (Ctrl + R) oraz podać ścieżkę do katalogu sieciowego \192.168.1.X\Test (X podmieniamy na adres komputera źródłowego, Test to nazwa udostępnionego katalogu).

    Po całym procesie należy ponownie zmienić ustawienia kart sieciowych na automatyczne (jeżeli takie były).

    Windows -> Linux

    Tutaj sprawa wygląda dużo prościej na Linux'ie (Ubuntu, debian etc.) przechodzimy do Ustawień sieci przewodowej (i/lub bezprzewodowej) i ustawiamy tryb podstawowej karty sieciowej na Link-Local.

    Linux network link-local

    Drugi komputer jeżeli jest pod kontrolą Windows i był wcześniej odpowiednio skonfigurowany (automatycznie pobierany adres IP/maska) to powinien od razu załapać.

    Potem pozostaje konfiguracja Samby na linux'ie - no chyba, że korzystacie z Desktop'a to sprawa z głowy tworzymy katalog o dowolnej nazwie a następnie PPM -> Opcje współdzielenia i ustawiamy nazwę oraz zgadzamy się na Dostęp dla gości oraz Zezwalanie innym na zapisywanie oraz usuwanie plików...

    Share directory linux

    W przypadku ewentualnego komunikatu o uprawnienia zatwierdzamy go i gotowe. Oczywiście wszystkie pliki w przesłane w ten sposób otrzymają uprawnienia nobody oraz nogroup, należy je zmienić chcąc zrobić z nimi cokolwiek pod linux'em (wewnątrz katalogu z terminala wydajemy polecenie sudo chown -R $USER:$USER *).

    Jeżeli chcemy zrobić udostępnianie w drugą stronę robimy udostępnianie dokładnie tak jak w przykładzie Windows -> Windows a na maszynie linux'a możemy znaleźć nasz udział w zakładce Inne położenie jako "smb://192.168.1.X" (X podmieniamy na adres komputera źródłowego).

    Linux -> Linux

    Ostatnia już możliwość, choć zdawałoby się, że to Windows jest najbardziej user-friendly to w tym przypadku nie do końca tak jest. Aby dokonać udostępniania plików bezpośrednio z maszyny pod kontrolą Ubuntu etc. do drugiej takie samej należy jedynie zmienić ustawienia obu kart sieciowych na wspomniany wyżej Link-local.

    Link local ubuntu

    Dzięki temu oba komputery natychmiast po podłączeniu otrzymają adres'y z puli 169.254.X.X. W przypadku problemów należy wyłączyć i włączyć karty sieciowe (tak aby pobrały nowy adres). Sprawdzić to możemy albo w aplecie sieci:

    IP show
    albo z pomocą terminala Ctrl + Alt + T (gnome-terminal) oraz polecenie ifconfig:

    Terminal IP show

    Potem pozostaje już udostępnić zasób (np. samby) i przejść do Inne lokalizacje oraz wpisać odpowiedni adres drugiego z komputerów (w postaci smb://169.254.X.X).

    Można też tak jak w przypadku Windows'ow ustawic statyczny adres na jednej i drugiej maszynie z tą samą maską. Ponadto w przypadku linux'a mamy szereg innych metod transmisji danych jak konsolowy SCP czy nawet postawienie własnego serwera FTP/SFTP.

    MAC -> MAC

    W przypadku urządzeń z nadgryzionym jabłkiem dużo lepiej jest użyć dedykowanego kabla tzw. FireWire dzięki któremu transfer dużych partii danych będzie przebiegał szybko (porównywalnie z przesyłaniem przez LAN) i sprawnie a samo udostępnianie będzie natychmiastowe.

    Gdyby jednak chcieć skonfigurować komputery do przesyłania danych przez sieć powinno to wyglądać podobnie jak w przypadku linux'a.

    To tyle, mam nadzieje, że pomogłem - w razie ewentualnych pytań / problemów zapraszam do sekcji komentarzy poniżej.

    posted in Internet
  • Jak uruchomić maszynę wirtualną z pendrive'a (VirtualBox)

    Cześć dzisiaj pokaże Wam jak w prosty sposób możecie uruchomić maszynę wirtualną z bootowalnego pendrive'a. Jeżeli jeszcze nie wiecie jak go zrobić to szczegóły znajdziecie tutaj.

    Pendrive'y już od dawien dawna służą nie tylko przenoszeniu danych ale także umożliwiają uruchamianie obrazów systemu czy nawet tworzenie nośników z wieloma obrazami.
    Porozmawiajmy sobie trochę o tym jak zrobić z nich użytek w programie VirtuaBox:

    Istnieje kilka możliwości zamontowania pendrive'a w VirtualBox'ie, my jednak na szybko opiszemy sobie zaledwie dwa:

    1. Wykorzystanie ISO prostego boot-manager'a (metoda szybsza).

    Pierwsza opcja to skorzystanie z gotowego bootmanager'a o nazwie Plop którego obraz można pobrać tutaj (obecnie w wersji 5.0.15).
    Następnie rozpakowujemy pobrany plik i wewnątrz folderu powinniśmy znaleźć plik plpbt.iso.

    Teraz czas na stworzenie maszyny gdy to już zrobimy przechodzimy do Ustawień, tutaj będziemy mieli dwie rzeczy do zrobienia

    • Po pierwsze aby zamontować pendrive'a należy go przede wszystkim dodać w sekcji USB ustawień maszyny którą wcześniej stworzyliśmy, zrobimy to naciskając Add USB device obok listy i wskazując uprzednio podpięte urządzenie:
      USB Settings
    Uwaga, wymagane jest uruchomienie VirtualBox'a z prawami root'a/administratora (np. w linux'ie z terminala poprzez sudo virtualbox) - w przeciwnym razie program może nie wykrywać podłączonych urządzeń USB!

    Warto upewnić się czy pendrive jest umieszczony w odpowiednim porcie (USB 2.0 vs USB 3.0) oraz czy w ustawieniach BIOS naszego komputera jest włączone wsparcie dla odpowiedniego sterownika EHCI/xHCI.

    • Po drugie należy dodać nasz obraz do napędu z którego będzie startowała maszyna przy uruchamianiu, zrobimy to w zakładce Pamięć poprzez wskazanie na liście Select optical disk oraz naszego ISO:
      Select ISO Image
      Gotowe teraz wystarczy uruchomić naszą VM'ke i z menu wybrać USB:
      Run VM

    2. Stworzenie virtualnego dysku wskazującego na fizyczne urządzenie (metoda dłuższa)

    Druga opcja jest trochę bardziej wymagająca, po zainstalowaniu pendrive'a w slocie naciskamy (Ctrl + R) które wywoła okno uruchamiania w którym wpisujemy diskmgmt.msc, jest to standardowe narzędzie wbudowane w systemy Windows do zarządzania dyskami:
    Run diskmgmt.msc
    Następnie należy rozpoznać który dysk to nasza pamięć przenośna, najłatwiej po rozmiarze: (zazwyczaj jest zauważalnie mniejszy od pozostałych)
    Disk manager - find device
    Następnie odszukujemy cmd i uruchamiamy go jako administrator: (PPM > Uruchom jako administrator)
    Find cmd and run as administrator
    Przechodzimy do lokalizacji w której mamy zainstalowanego VirtuaBox'a:
    cd %programfiles%\Oracle\VirtualBox

    Teraz przyszedł czas na dość długą komendę która stworzy nam virtualny dysk wskazujący na fizyczne urządzenie:
    VBoxManage internalcommands createrawvmdk -filename "%USERPROFILE%"\Desktop\usb.vmdk -rawdisk \\.\PhysicalDrive1

    PhisicalDrive1 to inaczej nasz Dysk 1 (patrz obrazek wyżej) z narzędzia zarządzania dyskami, jak się domyślasz wadą tego rozwiązania jest możliwość podmiany urządzenia które otrzyma dokładnie taki sam identyfikator.
    W skrócie oznacza to, że można podmienić przez przypadek pendrive'a na innego w trakcie działania maszyny i tym samym sobie ją wywalić ;)

    Oczywiście wcale nie musi być to dysk pierwszy dlatego należy sprawdzić to w menadżerze.
    Mając już to zrobione powinniśmy zobaczyć taki komunikat:
    CMD success
    Dzięki temu na pulpicie powinien nam się pokazać plik usb.vmdk który należy dodać w konfiguracji maszyny i/lub podczas jej tworzenia.

    Aby to zrobić również należy uruchomić VirtualBox'a z prawami administrator'a a następnie podczas tworzenia maszyny wybrać nasz obraz:
    Create VM disk
    Uruchomi się menadżer zarządzania dyskami Virtuabox'a w którym z pomocą Add disk icon wskazujemy ścieżkę do naszego obrazu.
    VM Disk manager

    Linux

    Tutaj sprawa jest o wiele prostsza - wystarczy, że z terminala uruchomi się polecenie sudo fdisk -l oraz zlokalizuje swoje urządzenie (pendrive) a następnie analogicznie wyda polecenie:
    VBoxManage internalcommands createrawvmdk -filename "~/Desktop/usb.vmdk" -rawdisk /dev/sdX
    Pamiętając oczywiście o podmianie sdX na właściwy identyfikator dysku.


    Inne możliwe sposoby poza wyżej przedstawionymi zbootowania pendrive'a to na przykład skorzystanie z projektu VMUB.

    posted in Internet
  • Szybkie tworzenie Wirtualnych Hostów w Nginx

    Cześć dzisiaj chciałbym Wam przedstawić skrypt w bashu mojego autorstwa pozwalający na proste tworzenie tzw. vHost'ow inaczej zwanych też wirtualnymi hostami dla serwerów WWW.

    Projekt znajdziecie tutaj, na moim koncie na GitHub'ie.
    Obecnie działa on jedynie z Nginx, lecz nie wykluczone, że w przyszłości projekt rozwinie się nieco bardziej.

    Zasada jest prosta, wystarczy:

    1. Pobrać zawartość repo (właściwie jedynie plik nvhost.sh).
    2. Nadać mu odpowiednie uprawnienia do wykonania skryptu chmod +x nvhost.sh
    3. Uruchomić z uprawnieniami administratora sudo ./nvhost.sh <action> <name>

    Obecnie dostępne akcje <action> znajdziecie na stronie projektu, w miejscu <name> podajemy domenę na której chcemy widzieć nasz wirtualny host - przykładowo testowo.local.

    Do działania wymagany jest:

    • serwer WWW (w tym przypadku Nginx)
    • instalacja PHP-FPM (domyślnie działa z wersją 7.2 - w przypadku innej należy zaktualizować skrypt).

    Jeżeli podoba Ci się projekt, mile widziana pomoc w rozwoju ;)

    posted in Prace użytkowników
  • Zrzutka na utrzymanie serwisu TcgForum

    Cześć
    Tworzenie forum i/lub strony nie jest łatwym zadaniem i doskonale wie o tym każdy kto miał kiedykolwiek swój własny serwis/stronę.
    Aby nasze forum mogło dobrze funkcjonować i zachować ciągłość niezbędnym elementem jest jego utrzymanie.

    Jak to kiedyś powiedział ktoś mądry, czym jest forum bez użytkowników?
    To przecież społeczność tworzy forum.

    Zrzutka

    Dlatego też, aby umożliwić Wam drodzy użytkownicy wsparcie naszego forum od dzisiaj istnieje możliwość przekazywania darowizn / datków z pomocą platformy LiberaPay.


    (w tym miejscu znajduje się przycisk - w przypadku problemów z widocznością odśwież stronę)

    Oczywiście wszelkie wpłaty są dobrowolne i w 100% niezobowiązujące.
    Zebrane w ten sposób środki w całości zostaną przeznaczone na opłacenie hostingu/domeny naszego forum.

    Polecenie

    Innym sposobem zarezerwowanym dla dość wąskiej grupy użytkowników (klientów mydevil.net) jest użycie kodu polecającego podczas składania nowego zamówienia / przedłużania usług: ROXBDYNCOQ
    Alternatywnie można również skorzystać z tego linku podczas zakładania nowego konta w w/w serwisie.

    Za wszelkie wsparcie (niezależnie od wybranej formy) z góry dziękujemy.

    posted in Ogłoszenia
  • Styl MinDI ~ green [SMF2]

    Cześć!
    Oto jedna z pierwszych przeróbek stylów jakie wykonałem dla silnika SMF, aż łezka się w oku kręci.

    Autorem oryginału jest Diego Andrés z forum Smf Tricks (wcześniej ~ smfhispano).
    Od strony wizualnej styl został zaprojektowany przez buhthc.

    Właściwie jest to niewielka przeróbka kolorystyczna, na tą chwile nic znaczącego natomiast w tamtym czasie kiedy dopiero zaczynałem swoją przygodę z przerabianiem stron to było coś. Mam nadzieje, że przypadnie Wam ona do gustu.

    Screen'y:

    MinDI - Board Index

    MinDI - Thread View

    MinDI - Admin Section

    Chciałbym zwrócić uwagę, że nie jestem autorem oryginału!

    Info:

    • Wersja dla SMF: 2.0.* (testowane na ~ 2.0.15)

    Uwagi:

    • Styl archiwalny, brak dalszych aktualizacji / łatania błędów.
    • Dla porównania oryginalny styl znaleźć można tutaj.

    Instalacja:

    1. Całą zawartość archiwum wrzucamy do głównego folder na naszym FTP root_folder/Themes/MinDI_green.
    2. Przechodzimy do PA/Konfiguracja/Zarządzanie stylami/Zarządzaj i instaluj, oraz podajemy ścieżkę do katalogu i wybieramy Instaluj!.
    3. Następnie z listy dostępnych stylów wybieramy MinDI_green i zapisujemy zmiany.

    Link:

    posted in Prace użytkowników
  • Jak zrobić bootowalnego pendrive'a bez użycia programów? [Poradnik]

    Jak zrobić bootowalnego pendrive'a bez użycia programów?

    Siema! Dziś zajmiemy się stworzeniem bootowalnego pendrive'a. Przedstawiony sposób nie będzie wymagał żadnych programów a jedynie konsoli Windows i minimum wiedzy na temat jej używania.
    Jeżeli więc nie przeraża was widok czystej konsoli systemowej  - zaczynajmy!

    1. Skrótem klawiszowym Win + R wywołujemy szybkie uruchamianie i wpisujemy "cmd".

    Open cmd

    1. Po uruchomieniu konsoli wpisujemy "diskpart" i klikamy enter.

    Run diskpart

    Diskpart jest to narzędzie konsolowym z pomocą którego możemy w Windows'ie zarządzać
    swoimi dyskami i nośnikami wymiennymi, tworzyć partycje, formatować, przypisywać im litery itd.

    1. Zostaniemy poproszeni o uprawnienia administracyjne ~ oczywiście ich udzielamy.
    2. Następnym krokiem będzie podłączenie do komputera naszego nośnika (czyt. pendrive'a) i wpisanie "list disk".

    Diskpart - list disk

    4.1. Ukaże nam się lista dostępnych dysków:

    Diskpart - disk table
    *UWAGA - na liście widnieją również dyski twarde zamontowane w naszym PC'ie!

    Wybieramy oczywiście ten który ma mniejszy rozmiar (w moim przypadku dysk 6).

    Dla jasności podaje tabele jednostek:
    1 Megabajt (MB) = 1024 Kilobajtów (KB)
    1 Gigabajt (GB) = 1024 Megabajtów (MB)
    1 Terabajt (TB) = 1024 Gigabajtów (TB)

    4.2. Gdy już wiemy który z dysków to nasz pendrive wydajemy polecenie "select disk X".
    Znak X odpowiada numer'owi dysku z tabeli.

    Diskpart - select disk

    1. Kolejno po tej czynności wykonujemy czyszczenie - "clean".

    Polecenie to usunie z urządzenia wszystkie dane a wraz z nimi informacje na temat obecnych partycji / woluminów

    Diskpart - clean

    1. Następnie "create partition primary" co oznacza utwórz partycje podstawową w wolnym tłumaczeniu.

    1. Teraz należy aktywować naszą podstawową partycję - komendą "active".

    8. W końcowej fazie formatujemy pendrive'a - "format fs=fat32 quick" (czekamy chwile aż proces się zakończy).
    Przy czym fat32 to oczywiście oznaczenie rodzaju systemu plików na podstawie którego urządzenie będzie od teraz działać.

    1. Ostatnią czynnością jest przypisanie litery do naszego woluminum co robimy wpisując "assign".

    1. W zasadzie to tyle - możemy teraz wyjść z programu i konsoli wpisując "exit" bądź ręcznie zamykając okna. Ostatnim krokiem jest załadowanie naszych plików systemowych (np. zawartości obrazu windows'a / linux'a).

    Zauważcie, że zrobiliśmy to samo co wykonało by się przy udziale jakiegoś programu tyle, że szybciej i bez zaprzątania sobie komputera zbędnym oprogramowaniem.
    Od teraz nasza pamięć przenośna powinna być automatycznie uruchamiana od razu po zadokowaniu w porcie.

    ~red~Poradnik napisany dla TcgForum.pl i zabrania się jego kopiowania!~

    posted in Systemy
  • Styl MineZ [SMF2]

    Cześć!
    Ponownie wrzucam kolejny styl jaki przerobiłem dla silnika SMF, tym razem nazwałem go MineZ.

    Autorem oryginału jest MLM z forum VisualPulse.

    Styl dedykowany forum o tematyce Minecraft'owej, wszelkie podobieństwo do prawdziwych sieci gier jest mylne - logo stworzone na potrzeby motywu, natomiast tło pochodzi z nieistniejącej już strony o tej samej tematyce (autor nieznany).

    Screen'y:
    MineZ - Board Index
    MineZ - Thread View
    MineZ - Admin Section
    Chciałbym zwrócić uwagę, że nie jestem autorem oryginału ~ styl stworzył MLM!

    Info:

    • Wersja dla SMF: 2.0.* (testowane na ~ 2.0.15)
    • Szablon dodatkowo został spolszczony

    Uwagi:

    Zaznaczam też, że styl nie będzie dalej aktualizowany ani naprawiany jeżeli znalazłyby się w nim jakiekolwiek błędy (jest to wersja archiwalna).

    Instalacja:

    1. Całą zawartość archiwum wrzucamy do głównego folder na naszym FTP root_folder/Themes/MineZ.
    2. Przechodzimy do PA/Konfiguracja/Zarządzanie stylami/Zarządzaj i instaluj, oraz podajemy ścieżkę do katalogu i wybieramy Instaluj!.
    3. Z listy dostępnych stylów wybieramy MineZ i zapisujemy zmiany.

    Link:

    posted in Prace użytkowników