Skocz do zawartości

Bartosz Wójcik

Administracja
  • Postów

    364
  • Dołączył

  • Days Won

    14

Posty napisane przez Bartosz Wójcik

  1. Naprawdę polecam zajrzeć w źródła jednej z wymienionych przeze mnie bibliotek, strzelanie na chybił trafił nie ma szans z solidnymi rozwiązaniami, stosujesz 3 metody sprawdzania liczb pierwszych, z czego sprawdzanie przez pierwsze 78000 wydaje się jakimś nieporozumieniem i chyba nigdzie nie widziałem, aby tak sprawdzane były liczby pierwsze, dzielenie i jeszcze przez 78k liczb = spore obciążenie dla procesora.

    Polecałbym też, abyś w kodzie wrzucił badanie prędkości poszczególnych fragmentów kodu, na Windows np. przez QueryPerformanceCounter:

    http://msdn.microsoft.com/en-us/library/windows/desktop/dn553408(v=vs.85).aspx

  2. Skorzystaj z dedykowanej biblioteki, dla C/C++ będzie to np. MIRACL (komercyjna, ale darmowa do darmowych projektów) lub darmowa biblioteka znana z Linuxa GMP (GNU Multi Precision) lub np. darmowa LibTomMath.

    1. Dla MIRACL - używa się funkcji nxprime()
    2. Dla GMP - będzie to mpz_nextprime()
    3. LibTomMath - mp_prime_random_ex()

    Algorytmy generowania liczb pierwszych masz w tych bibliotekach z kodem źródłowym, więc możesz także spojrzeć jak robią to inni, jednak polecam dedykowane biblioteki do bigintów, bo zaoszczędza to czas i po prostu są one już przetestowane przez wielu ludzi.

  3. Witajcie, właśnie ukazał się nowy numer Magazynu Programista 11/2014, w którym znajdziecie m.in. mój artykuł opisujący najpopularniejsze i te trochę mniej znane narzędzia wykorzystywane w reverse engineeringu, wszystkich zainteresowanych tematem zachęcam do wizyt w Empikach.

    Zachęcam również do zadawania tutaj pytań związanych z takmi tematami jak:

    • reverse engineering
    • analiza malware
    • programowanie w assemblerze

     

  4. Na blogu Antyweb pojawił się ciekawy wpis, komentujący sytuację na rynku programistycznym, z którego wynika, że niekwestionowanym królem języków programowania, który pozwala na największe zyski jest Ruby on Rails, co o tym sądzicie? Warto przeczytać też komentarze pod oryginalnym artykułem.

    http://antyweb.pl/w-czym-warto-programowac-by-jak-najwiecej-zarabiac-oto-ranking-najlepiej-oplacanych-umiejetnosci/

  5. Jakie firmy z własnego doświadczenia możecie polecić innym programistom do szukania tam pracy?

    Bez ofert HR z copy&paste, jedynie miejsca, gdzie sami pracujecie lub słyszeliście, że są warte polecenia.

    Prosiłbym także o kilka słów:

    1. Lokalizacja, gdzie znajduje się firma i forma współpracy
    2. Czym się zajmują
    3. Na jakim sprzęcie będzie się pracować, czy są Aerony :P
    4. Jakie są warunki, benefity etc.
    5. Dlaczego warto tam pracować i zostać na dłużej
  6. Microsoft zrobił wczoraj wszystkim niespodziankę

    • Visual Studio 2013 - za darmo do komercyjnego użytku dla pojedynczych programistów - http://www.visualstudio.com/en-us/products/visual-studio-community-vs
    • Otwarcie źródeł .NET framework - http://blogs.msdn.com/b/dotnet/archive/2014/11/12/net-core-is-open-source.aspx
    • Dalszy rozwój technologii WPF - http://blogs.msdn.com/b/dotnet/archive/2014/11/12/the-roadmap-for-wpf.aspx
    • Visual Studio 2015 Preview z emulatorem Androida - http://blogs.msdn.com/b/vcblog/archive/2014/11/12/visual-studio-2015-preview-now-available.aspx

    Rok 2015 zapowiada się pod znakiem MS jeśli chodzi o programowanie :)

  7. Korzystasz z regular expression w funkcji REPLACE, a z tego co widzę w dokumentacji np. na:

    http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_replace

    nie ma nic o używaniu regular expressions. Po prostu użyj pojedynczych wywołań REPLACE dla tych znaków lub pomyśl o pobraniu tej wartości stringa i skorygowaniu jej np. w PHP.

  8. Proponuję po prostu unsigned char, 8 bitowa, bez znaku, typ całkowity.

    Zawsze możesz też zrobić rzutowanie na jaki inny typ tylko chcesz:

    unsigned char oryginalna = 1;
    
    unsigned int liczba = reinterpret_cast<unsigned int>(oryginalna);
    
    

     

  9. equals służy do porównywania stringów, == służy do porównywania obiektów (a nie ich wartości), może to być mylące, bo w niektórych językach programowania == także służy do porównywania stringów, jednak w C# musisz używać equals

  10. Moim zdaniem dobre cechy, aby być skutecznym programistą to dociekliwość i elastyczność. Dociekliwość ponieważ problemy na jakie natrafisz czasami zmuszają do poszukiwań nietypowych rozwiązań, często żeby zrozumieć te nietypowe rozwiązania trzeba samemu chcieć dążyć do zrozumienia sedna problemu, a nie skorzystać z copy&paste znalezionego rozwiązania w Internecie.

    Elastyczność ponieważ języki programowania ciągle ewoluują, trzeba szybko umieć dostosować się do nowych technologii, języków programowania, systemów operacyjnych i narzędzi, z których korzystasz.

    Jednak jeśli jesteś pasjonatem to przyjdzie Ci to naturalnie i docenisz te nowe umiejętności. W dzisiejszych czasach trudno być programistą tylko od 1 technologii, bo w pracy zawodowej natkniesz się na całą gamę rozwiązań, jak np. bazy danych i język SQL, usługi WebAPI, interakcję pomiędzy komponentami stworzonymi w różnych językach jak np. Java i JNI, trzeba mieć otwarty umysł :)

    Co do pytań to nigdy to nie jest zły pomysł, niepotrzebnie się obawiasz, wiadomo, że jeśli wdrażasz się w nową ekipę i produkt nie znasz jego wszystkich cech i pytania są jak najbardziej na miejscu.

×
×
  • Utwórz nowe...