Manveru

Reputacja

4,224

Głosów ogółem

użytkownik głosował za tyle razy
293
Użytkownik głosował przeciw tyle razy
112
  • Roczniak
  • Popularne pytanie
  • Organizator
  • Uczony
  • Autobiograf
  • Cofnął głos
  • Nauczyciel
  • Patrol obywatelski
  • Komentator
  • Wsparcie
  • Krytyk
  • Student
  • Redaktor
Prawdziwe imię
Michał
Członek od
2 lata, 5 miesięcy
Ostatnio widziany
11 miesięcy, 2 tygodnie temu
Witryna
http://www.manv...
Miejscowość
Pod Wawelem
Wiek
32

O mnie

Znudzony programista urządzeń telekomunikacyjnych intensywnie pythonizujący testy i probujący posklecać emulatory z g*nego kodu.

Fan fotografii. Miłośnik dobrego kina. Koneser muzyki.

Pytania: 16

Odpowiedzi: 287

  • 2010-03-11 14:32:25 Administrator Linuxa lub Solaris

    Na początku znać z 200 poleceń charakterystycznych dla UNIX, być biegłym w bash/ksh/zsh a do tego znać Perl (to lubią twoi przyszli szefowie, mimo, iż Perl stary jest, ale mnóstwo administracyjnego stuffu jest w Perlu).

    Potem trzeba umieć zarządzać użytkownikami, grupami, uprawnieniami, dobrze rozumieć znaczenie sticky bitu, atrybutów rozszerzonych, list dostępu ACL. Umieć zainstalować każdy z tych systemów samodzielnie (to oznacza jakieś 50 instalacji treningowych). Umieć wybrać pakiety i co najważniejsze umieć wywalić z systemu to co kompletnie nie potrzebne do jego pracy w charakterze serwera. Umieć konfigurować firewall'e, dhcp, bind'a; stawiać bazy MySQL i Postgresql oraz najlepiej Oracle'a też; postawić Apache'a i skonfigurować wirtualki; postawić Sambę i skonfigurować kontroler domeny na niej (tego nie umiem, dlatego ostatecznie przeszedłem na programowanie). Umieć uruchomić program Płatnik pod Wine.

    Umieć skonfigurować programową i sprzętową macierz RAID 0, 1, 5; umieć skonfigurować HotSwap w macierzy; umieć tworzyć backupy na taśmach i przywracać je; umieć napisać do tego wszystkiego instrukcję w zrozumiałym angielskim.

    Umieć zakupić i dołożyć pamięć RAM w serwerach; zakupić i wymienić dyski w macierzy po padzie; zakupić i wymienić procesory lub karty procesorów w przypadku serwerów Sun/HP/IBM.

    Znać perfekcyjnie protokoły Ethernet i IP; umieć konfigurować przełączniki sieciowe zarządzalne; znać podstawy konfiguracji routerów, przede wszystkim Cisco.

    Znać podstawy działania schedulerów w jądrach zarządzanych systemów; umieć zarządzać przydziałem procesów do procesorów (affinity); rozumieć strukturę procesów w systemie; znać i rozumieć poziomy uruchomienia (runlevel).

    Znać system pakietów w danej dystrybucji systemu i umieć nim wydajnie zarządzać bez doprowadzania systemu do ruiny.

    Umieć przygotować mechanizmy zabezpieczenia logów systemowych przed nadpisaniem oraz ochrona systemowych plików konfiguracyjnych poprzez minimalizację ryzyka wprowadzania zmian bez wiedzy administratora.

    (Geez... i ja to wiem co wymieniłem... masakra)

    Umieć pracować po 24 godziny na dobę ze świadomością, że 5 godzin temu wszystko się rozpie*ło i nadal nic nie działa. Umieć pracować pod presją. Umieć być chamskim wobec ludzi zawracającym Ci głowę, że coś nie działa, gdy Ty dobrze wiesz, że coś nie działa...

    X Window to opcja.

    Mam nadzieję, że skutecznie Cię przekonałem, że jeżeli zadałeś to pytanie, to znaczy, że nie nadajesz się do tej roboty. A i tak pewnie pominąłem z milion istotnych rzeczy.

  • 2010-03-24 11:17:46 Pytanie dotyczące rekurencji w c++.

    Pokazany przykład nie jest rekurencją ogonową, więc każdy powrót z funkcji odliczanie() w 7 wierszu powoduje dalsze wykonywanie kodu w kolejnych wierszach, aż do zwinięcia całego stosu wywołań tej funkcji.

    Zrozumienie problemu wymaga zrozumienia działania stosu w operacjach wywołań funkcji.

  • 2010-02-18 16:09:23 Czy lepiej być programistą webowym czy desktopowym?

    A może wbudowanym? Ew. naukowym? Dokonujecie granulacji binarnej branży programistycznej, zapominając o ważnych działkach.

    Proponuję popróbować wszystkiego przez parę lat, nawet kupić jakiś mikrokontroler i zaprogramować miganie LED, a nóż Cię wciągnie pisanie aplikacji automatyzujących zamki w drzwiach, czy działanie ekspresu do kawy.

    A może rozwiążesz jakiś problem matematyczny w oparciu o obliczenia rozproszone, też ciekawy temat. Dobry programista zna się na każdej z działek choć odrobinę i specjalizację zaczyna po kilku latach nabierania obycia z branżą.

  • 2010-03-12 16:13:09 C# program-obiektowo

    IMVHO to powinno lecieć jakoś tak:

    using System;
    
    namespace ConsoleApplication
    {
    
    class Dane
    {
        public int a;
        public int b;
    
        public Dane(){}
        public Dane(int aa, int bb)
        {
            a = aa;
            b = bb;
        }
        public void WypiszSume()
        {
            return a + b;
        }
    }
    class KlasaGlowna
    {
        static void Main(string[] args)
        {
            Dane a = new Dane(1,2);
            a.WypiszSume();
        }
    }
    
    
    }
    

    jeśli w szczegółach jest poprawne, np. ten namespace...

  • 2009-12-16 12:48:47 Jaka jest różnica pomiędzy cos == None a cos is None? [zamknięte]

    W Pythonie operator is jest operatorem tożsamości, a operator == jest operatorem porównania.

    Operator porównania

    Jest to dla typów wbudowanych operacja porównania arytmetycznego i jest prawdziwa, gdy obie wartości są identyczne. Dla wszystkich pozostałych obiektów wywołanie tego operatora oznacza wywołanie metody __cmp__() lub __eq__().

    Operator tożsamości

    W przypadku operatora tożsamości porównywane są ze sobą obiekty (prawdopodobnie na podstawie adresu w pamięci), czy są tym samym obiektem. Jeżeli tak jest zwracana jest wartość True.

    None jest obiektem wbudowanym, zawsze rezydującym pod tym samym adresem, stąd stosowanie operatora is powinno być szybsze, gdyż nie jest wywoływane na nim porównanie.

  • 2010-01-27 16:00:05 W jaki sposób działają komputery kwantowe?

    Idea komputera kwantowego opiera się na możliwości wykorzystania kwantowych stanów cząsteczek do wykonywania złożonych operacji matematycznych. Fizycznie aktualnie najczęściej stosuje się elektrony, które nazywa się qbitami. Problemem jest to, że qbit nie posiada tylko stanu 0 i 1, ale również stany pośrednie, wynikające z prawdopodobieństw występujących w fizyce kwantowej do określania stanu cząstek elementarnych.

    Wykonanie obliczenia kwantowego polega na wielokrotnym powtórzeniu tej samej ewolucji układu, a następnie określeniu najbardziej prawdopodobnego wyniku. Oznacza to, że komputer kwantowy nie jest deterministyczny jak komputer binarny.

    Innym problemem jest stabilność stanu reprezentującego wynik (problem dekoherencji), który jest nie trwały, jakikolwiek kontakt ze otaczającym światem prowadzi do zniszczenia wyniku - w tym sama operacja odczytania/określenia stanów.

    Rozumienie problemów obliczeń kwantowych wymaga zrozumienia czym jest równanie Równanie Schrödingera, czyli podstawy fizyki kwantowej.

    Więcej na Wikipedii

  • 2010-01-30 22:09:47 Aplikacje webowe w Pythonie

    Sprawdź czym jest WSGI - to najważniejsza dziś metoda komunikacji aplikacji webowej w Pythonie z serwerem web. Alternatywą tam, gdzie WSGI nie daje rady jest klasyczne CGI z podłączonym Python'em.

  • 2010-02-01 15:28:09 VS Express a VS Professional

    Główne obszary gdzie edycjom Express VS'a brakuje funkcjonalności w stosunku do Professional.

    • Brak dodatków i makr
    • Brak niektórych narzędzi dla Win32 (wsparcie niski poziom)
    • brak wsparcia dla Team Explorer'a
    • ograniczone wsparcie refaktoringu
    • ograniczone możliwości debugowania (głównym problemem jest brak zdalnego debugowania do rozwijania serwerów)
    • braki wsparcia do ustawiania projektów
    • brak narzędzi do reportów
    • brak wsparcie dla rozwoju Office'a
    • brak wsparcia dla platform mobilnych
    • ograniczony zestaw designerów
    • ograniczony zestaw narzędzi dla baz danych
    • brak profilowania kodu i wsparcia dla szkieletu testowego
    • brak wsparcia dla MFC i ATL
    • niemożność kompilowania C++ dla platformy 64 bitowe

    UWAGA: często powtarza się, że licencja Express nie pozwala na dewelopment komercyjny, co zgodnie z punktem 7 FAQ do Visual Studio Express nie jest prawdą:

    Can I use Express Editions for commercial use? Yes, there are no licensing restrictions for applications built using Visual Studio Express Editions.

    A więcej szczegółów w Visual Studio 2008 Product Comparison Guide.

  • 2010-02-04 12:35:13 Jak dobrze zbudować aplikację o wielu wersjach językowych?

    Zanim rozpoczniesz wymyślanie koła na nowo, zapoznaj się z najbardziej rozpowszechnioną technologią w tej materii, czyli GNU gettext. Myślę, że może rozwiązać twoje problemy, a do tego istnieją sprawdzone techniki narzędzia do dokonywania tłumaczeń. Tłumacze ze środowiska open source znają to narzędzie bardzo dobrze. Myślę, że rządzi... :-)

    A, żeby nie było, że walę ściemę: Using GNU Gettext for i18n in C# and ASP.NET.

  • 2010-02-09 09:42:46 Kodowanie LZW i kompresja danych

    RLE to metoda najbardziej prymitywna; szybka, lecz mało skuteczna.

    Kodowanie Huffmana jest metodą starą, stosowaną szeroko ze względu na brak ograniczeń patentowych, m.in. w JPEG, MP3; jest szybka.

    LZ77 nie patentowana metoda kodowania strumieniowego; słownikowa; stosowana m.in. w programie gzip.

    LZW nie jest najmłodszy, jest względnie prosty, ale był objęty patentami; stosowany w GIF, był przyczyną powołania formatu PNG. Powoli wychodzi z użycia; jest bardzo wydajny, jednak są lepsze metody i modyfikacje.

    Deflate troszkę słabszy kuzyn powyższego; standaryzowany w RFC, co czyni go szeroko stosowanym w internecie; dostępny pod postacią zlib'a. Warty zainteresowania.

    LZMA to algorytm o rosnącej popularności, aktualnie wcielany pod postacią xz; znany z programu 7-zip. Narzędzia i biblioteki xz są warte zainteresowania.

    Myślę, że powyżej odpowiedziałem na punkty 4. i 3.

    Odpowiadając na pytanie 2.: RFC2616 (protokół HTTP/1.1) dopuszcza trzy metody kompresji:

    • gzip (formalnie LZ77)
    • compress (formalnie LZW)
    • deflate

    Odpowiedź na pytanie 1. kryje się właściwie gdzieś między wierszami tego co napisałem powyżej. Wgryziesz się w temat, to zrozumiesz.

    Dodając odpowiedź na pytanie 5.: Zasadą w algorytmach kompresji jest to, że możesz przepchnąć przez nie każdy ciąg bitów (lub bajtów - w zależności od konstrukcji), jednak w efekcie otrzymasz różne rezultaty. Powszechnie wiadomo, że najlepiej kompresują się długie pliki tekstowe oraz binarne pliki rzadkie (brak hasła w Wikipedii; to takie pliki, które mają długie ciągi powtarzalnych bitów, czyli albo same 0x00 albo 0xFF w bajtach). Ponieważ wszelkie formaty kompresji stratnej (JPEG, MPEG22, MPEG 1 Audio Layer 3, etc.) mają w którymś z końcowych kroków zastosowanie algorytmu kompresji bezstratnej (jednego ze wzmiankowanych powyżej), to pliki z danymi w tych standardach kompresują się bardzo słabo - ponowna kompresja już skompresowanych danych daje bardzo niski, żaden, albo nawet przyrost rozmiaru).