Witamy na 4programmers.net

4programmers.net jest serwisem www stworzonym dla programistów, administratorów, webmasterów, słowem - dla ludzi związanych z branżą IT. Jeżeli jesteś zainteresowany tym jak działa nasz serwis to zapraszamy do zapoznania się z naszym przewodnikiem

Zarejestruj się i dołącz do naszej społeczności. Aktywne uczestnictwo w życiu społeczności zwiększa Twoje punkty reputacji.
Czytaj więcej

Czym jest programowanie?

Czym jest programowanie komputerowe? Na pewno spotkałeś się z tym określeniem nie raz — czy to podczas oglądania telewizji, czy przeglądając prasę, czy też w życiu codziennym. Z drugiej strony wiele osób w ogóle nie wie, co to pojęcie tak naprawdę oznacza. Jest to dziedzina zajmująca się tworzeniem oprogramowania. Niezłym przykładem jest liczydło. Liczydło służy do wspomagania człowieka w poważniejszych obliczeniach matematycznych. Celem programisty jest napisanie programu, który wspomoże człowieka w wykonywaniu codziennych czynności.

Czytaj więcej

Jak zacząć programować?

Jednym z najczęstszych pytań, stawianych przez początkujących, to: jaki język wybrać? Jak zwykle w takich przypadkach, odpowiedź nie jest jednoznaczna. Głownym czynnikiem, który należy brać pod uwagę jest to, co planujemy zrobić. Czy interesuje Cię tworzenie stron WWW? Gier? Aplikacji mobilnych? A może aplikacji finansowych? Przed podjęciem odpowiedniej decyzji, należy zadać sobie kilka pytań? Jakich? Jakie jest Twoje zadanie? Pod jaką platformą ma działać? Czy zamierzasz pracować sam, czy w grupie?

Czytaj więcej

Kim jesteśmy

Czyli gdzie ja trafiłem i czym się tutaj zajmujecie?

Czym jest programowanie?

Dowiedz się czym tak właściwie jest programowanie?

Jak zacząć programować?

Obowiązkowo, dla każdego początkującego.

Co nowego na forum?

471 wyświetleń Studia a praca Kariera dzisiaj, 13:54
188 wyświetleń C# Zamiana stringa na hex. C# i .NET dzisiaj, 14:06
478 wyświetleń Porównywacz słów - czy da się uniknąć IFów? Java 2014-07-23 10:32
151 wyświetleń Argument unii w funkcji C/C++ 2014-07-23 14:05
177 wyświetleń kopiowanie wyrazow tablica C/C++ 2014-07-23 12:09
570 wyświetleń Jakie aplikacje by Wam się przydały? Newbie dzisiaj, 17:18
  1. RobertX utworzył wątek BlueTooth w Perlu: skrypt nie wysyła wiadomości

    4 minuty temu
  2. mkr dodał odpowiedź w wątku Koncepcja programu generującego pliki ofertowe

    6 minut temu
  3. somekind dodał nowy komentarz do postu w wątku Dla jakiego rodzaju konsumenta komputery Apple?

    7 minut temu Wystarczy to odznaczyć podczas instalacji, a nie klikać "Next...
  4. n0name_l dodał nowy komentarz do postu w wątku Dla jakiego rodzaju konsumenta komputery Apple?

    8 minut temu No... jak sie korzysta z syfiastego softu, to sie syfiaste in...
  5. DibbyDum dodał odpowiedź w wątku Znalezienie nazwy Service Reference po nazwie serwisu WCF

    16 minut temu
  6. janusz1302 dodał odpowiedź w wątku Algorytm genetyczny - optymalizacja wykorzystania miejsca w magazynie

    17 minut temu
  7. jammasterz utworzył wątek Szukanie pierwszej możliwej kombinacji stałych liczb z wieloma warunkami

    31 minut temu
  8. LukeJL dodał nowy komentarz do postu w wątku Dla jakiego rodzaju konsumenta komputery Apple?

    33 minuty temu jak to potem odinstalować? Przydałby się jakiś anty-antywirus...
  9. Svenson dodał odpowiedź w wątku Server properties w EMS SqlManagement Lite

    33 minuty temu
  10. LukeJL dodał nowy komentarz do postu w wątku Dla jakiego rodzaju konsumenta komputery Apple?

    34 minuty temu To, że ściągasz aplikacje z jakichś lewych serwisów to jest T...
  11. Florian dodał odpowiedź w wątku Dlaczego program czeka na kolejna wartość?

    37 minut temu
  12. furious programming dodał nowy komentarz do postu w wątku Zmiana koloru tła określonego rekordu w DBGrid

    37 minut temu Aha, no to dobrze - coś się nauczy :)
  13. furious programming dodał nowy komentarz do postu w wątku Dlaczego program czeka na kolejna wartość?

    38 minut temu !@Florian - dyskusję na temat prowadź w postach, nie w koment...
  14. grzegorz_so dodał nowy komentarz do postu w wątku Zmiana koloru tła określonego rekordu w DBGrid

    38 minut temu poprawiony przez Ciebie fragment kodu to kod Kazika1 , ja go ...
  15. Shalom dodał odpowiedź w wątku Dlaczego program czeka na kolejna wartość?

    40 minut temu

Mikroblogi

W tym miejscu wyświetlane są wpisy z mikroblogów użytkowników.
Sortowane są one według popularności, na którą składa się ilość oddanych ocen w stosunku do daty opublikowania wpisu. Aby zobaczyć wszystkie wpisy lub opublikować własny, przejdź do modułu Mikroblogów X

Shalom

Chcesz wygodnie korzystać z javowych bibliotek w Pythonie (bo brakuje ci np. Apache Tika)? Dziś już mozesz! http://pyjnius.readthedocs.org/en/latest/ (o ile uda ci sie to zainstalować, co wcale proste nie jest :P)
Składnia jest bardzo prosta:

from jnius import autoclass
 
Stack = autoclass('java.util.Stack')
stack = Stack()
stack.push('hello')
stack.push('world')
Shalom
: Korzystałeś kiedyś? Jython jest zwykle daleko w tyle za składnią pythona, poza tym nie wspiera większości bibliotek i do tego się ślimaczy...
Koziołek
: na cale szczęście nie :)

furious programming

Kolejne aktualizacje projektu TreeStructInfo za nami - poniżej mocno skrócony wprowadzonych zmian zarówno w samym formacie, jak i w oficjalnym API;


1. Format TreeStructInfo 1.0

Największą i najwazniejszą nowością jest wprowadzenie nowej strony kodowej - od kilku dni specyfikacja formatu informuje, że pliki tekstowe i łańcuchy znaków w plikach binarnych powinny być kodowane w UTF-8; Zmiana strony kodowej nie wpłynie na wsteczną kompatybilność, o ile stworzone pliki kodowane w ANSI nie posiadały znaków spoza ASCII; Jeśli posiadały - muszą być przekonwertowane odpowiednimi funkcjami na kodowanie UTF-8 (pod FPC jest to funkcja AnsiToUtf8 lub inne);

Ze zmianą strony kodowej plików konfiguracyjnych wiązała się także obsługa zapisu/odczytu pojedynczych znaków, dlatego też rozróżnienie pojedynczych znaków od łańcuchów zostało zlikwidowane; Obecnie pojedyncze znaki są równoważne z ciągami znaków, dlatego że znaki spoza zakresu ASCII są wielobajtowe;


2. Oficjalne API

Zmiana obsługiwanej strony kodowej nie przyniosła wiele zmian w API - parser sam sie przystosował, klasy do obsługi plików także; Jedynymi zmianami było usunięcie wszystkiego, co powiązane było z zapisem pojedynczych znaków; Metoda TSimpleTSInfoFile.ReadString została rozszerzona i umożliwia konwersję wielkości liter w odczytywanych łańcuchach, co wcześniej nie było możliwe;


3. Strona projektu

Materiały znajdujące się na stronie projektu zostały zaktualizowane, więc posiadają aktualną specyfikację oraz dokumentację opisującą najnowszą wersję oficjalnej biblioteki; W najbliższym czasie zostaną wprowadzone kolejne usprawnienia w API, więc obsługa plików konfiguracyjnych stanie się jeszcze wygodniejsza;

Szerszy opis nowości w dedykowanym wątku: TreeStructInfo - format tekstowych i binarnych plików konfiguracyjnych

#treestructinfo
Trebuh
: Może mnie zaciekawi TS i zacznę tego "dziecka" używać ;)
furious programming
: API jest dotępne na stronie projektu, więc śmiało możesz już próbować :)

Na stronie jest dostępna specyfikacja formatu, jest szczegółowa dokumentacja, jest też dwuczęściowy tutorial, opisujący sposoby użycia wszystkich składowych klas TSimpleTSInfoFile i TTSInfoFile, więc jest się z czego uczyć; Kolejne aktualizacje API wniosą nowe funkcje, więc wsteczna kompatybilność nadal będzie zachowana;

mychal

Dzisiaj zainstalowałem Appmethod od Embarcadero. Jest to narzędzie, dzięki któremu według producenta można tworzyć aplikacje na wiele platform, również mobilnych. Przy czym wersja dla Androida z C++ jest darmowa. Po zajęciu mi 13GB na dysku zaczynam "pracę". Uruchamiam program, wisi przez minutę, po czym pyta, czy chcę przestać wykonywać skrypt, ponieważ mój komputer może przestać być responsywny. Po zatrzymaniu skryptu, pełen nadziei klikam: File->New project->3D Mobile Application->OK. Moim oczom ukazało się okno z komunikatem "Application has stopped working" i seria AVek. Widzę, że od czasów, gdy próbowałem zrobić aplikację mobilną w Delphi XE 3 nic się nie zmieniło (wtedy AV poleciał po położeniu pierwszego labela).

Azarien

Reverse engineering kodu x86-64 jest o dziwo łatwiejszy niż x86.

Mam dwa „takie same” exeki: 32- i 64-bitowy. Naprawienie buga w wersji 64-bitowej wymagało zmiany kodu w 23 miejscach, w wersji 32-bitowej w 82 miejscach.

To dlatego że kod 32-bitowy znacznie częściej odwołuje się do RAM-u, a ponieważ powiększyłem tablicę statyczną (na stosie) to poprzesuwało się wiele innych zmiennych lokalnych w tej funkcji.
Kod 64-bitowy większość zmiennych lokalnych trzyma w rejestrach, stąd mniej adresów trzeba było zmienić.

Na dodatek w 32 bitach szybko skończył mi się stos (mniejszy zapas) - stack overflow.
vpiotr
: Jeśli była potrzeba zmiany z 4 do kilkuset kB to nasuwa się pytanie - czy za miesiąc nie będzie potrzebne kilka MB?... Ale babrania się w ASM bez źródeł nie zazdroszczę... Można ew. miejsce z zaoszczędzonych rozkazów wykorzystać do wywołania czegoś innego (innej wersji funkcji) - takie gdybanie. Z ciekawości - czego używasz do deasemblacji?
Azarien
: nie sądzę by było potrzeba dalej zwiększać, ale limit 4 kB był już nie do zniesienia. przepisanie całej funkcji by alokowała na stercie to już byłoby grubsze grzebanie...
użyłem: Visual Studio 2010, drukarki, zakreślacza, kalkulatora i programu Tiny Hexer.
Pokaż więcej

Reputacja użytkowników