676

(6 odpowiedzi, napisanych Miejsca w sieci)

Mam badę na telefonie i mi odpowiada bo system jest stabilny i szybki (mój Wave ma bebechy Samsung Galaxy S - SAMOLED, PowerVR itd za mniej niż 1000 zł - i ostatnio testowałem, wytrzymał bez szaleństw 12 dni na jednym ładowaniu). Ale marketingowym win'em nie jest, bo jednak ludzie wolą Angry Birds i milion innych aplikacji, których nie potrzebują. Nie wiem czy połączenie z tym MeeGoo coś pomoże, bo efekty sieciowe faworyzują faworytów i ciężko się przebić z czymś nowym, gdy nie ma się wystarczająco dużej bazy oprogramowania

677

(6 odpowiedzi, napisanych Miejsca w sieci)

Ładnie pięgnie, ale gdzie jest kreska tej bady? Patrzę się dwie minuty i nie widzę.

678

(10,041 odpowiedzi, napisanych Bałagan)

Ludzie. Skąd wy bierzecie siłę na zaglądanie do tego wątku? Ja już wymiękłem dawno temu.

679

(50 odpowiedzi, napisanych Bałagan)

Nikt nie każe Ci pisać bibliotek. W C++ można pisać prosto i wg mnie nawet łatwiej niż w C. Śmieszy mnie np co ostatnio przeczytałem, że Torvalds stwierdził, że goto w C jest dobre, oczywiście wywiązała się kłótnia, ale po wielu sporach okazało się, że w takim kernelu goto używają do czyszczenia w przypadku błędów (goto clean; itd), co w C++ dzieje się automatycznie dzięki wyjątkom i destrukcji obiektów przy zwijaniu stosu. Ot twardogłowość starych wyjadaczy...

680

(50 odpowiedzi, napisanych Bałagan)

Adam Klobukowski napisał/a:

Eetam. zrównoleglanie powinno być robione na dwóch poziomach:
a) języka (zrównoleglanie pętli, itp)

Nie zgodzę się. Ingerencja w język naprawdę nie jest do tego potrzebna. parallel_for_each + lambda z "nowoczesnego C++" ;) załatwia sprawę.

Adam Klobukowski napisał/a:

b) projektu (podział procesów na wątki, itp)

Tu też. Jeśli nie piszemy systemu czasu rzeczywistego czy innych cudów, to program dzielimy na zadania. Wątki to zbyt niskopoziomowy koncept, żeby zawracać sobie nim głowę.

Adam Klobukowski napisał/a:

To wszystko w nowoczesnym C (+biblioteki) już jest. Języki które maja zrównoleglanie natywnie, raczej załatwiaja tylko a), a b) i tak trzeba realizować bibliotekami.

"Nowoczesne C++" ma wszystko co potrzeba do wygodnego zrównoleglania pętli i podziału programu na zadania na poziomie biblioteki bez ingerencji w język (ot przykładzik).

Adam Klobukowski napisał/a:

Co do GPU: to jest fajne, ale tu raczej się nie da tak łatwo żeby jeden program działał na CPU+GPU (jeden, tj. w formie jednego kodu źródłowego). Dlatego wydaje mi się że GPU zostanie jak zostanie - do specjalizowanych zastosowań (tj. np. głowny kod w C i dodatkowy w specjalistycznym języku na GPU).

A zajawkę C++AMP czytał? Kod C++ bez mrugnięcia przekłada się na GPU i runtime sam dba o "gory details". Oj coś nie nadążacie panowie...

jellonek napisał/a:

co do c - malo ekonomiczny jezyk, trudniejsze w opracowaniu unit testy, dluzszy cykl pisanie/kompilowanie/debugowanie niz w jezykach dynamicznych

Ale za to błędy wychodzą u programisty podczas kompilacji, a nie u użytkownika podczas wykonania ;)

jellonek napisał/a:

ktore dzieki tracing jit potrafia byc wydajniejsze niz statycznie optymalizowany kod gcc/msvc ;)

Nie ma jak porównywać hipotetyczne wyniki po wyciskaniu siódmych potów w optymalnej sytuacji z JITera do niechlujnie skompilowanego kodu w C/C++ i to pewnie na debugu ;)
Czytam to już n-ty raz i chyba pythonowców to jakoś super jara.
Ale szkoda że to "potrafi" być nieprawdą, skoro "statyczniaki" mają Profile-guided optimization... ;)

681

(50 odpowiedzi, napisanych Bałagan)

"Trochę" utopijny i jak to z utopiami bywa najpewniej skończy się na manifeście. Ale skoro już fantazjujemy, to ja proponuję http://chapel.cray.com. Ten przynajmniej już jest ;)

682

(50 odpowiedzi, napisanych Bałagan)

OpenMP jest potworkiem zaimportowanym z FORTRANa do zrównoleglania prostych pętli przy obliczeniach numerycznych. Jeśli jest się lowlevelowym hakerem i potrzebuje się tylko tego, to proszę bardzo. Nie rozszerza się to jednak specjalnie poza bardzo specyficzne przypadki masywnych obliczeń (które teraz już raczej powinno się robić na GPU np za pomocą C++AMP). Współcześnie powinno się raczej definiować oprogramowanie jako zbiór zadań powiązanych siecią zależności, które można rozwiązywać równolegle. Tylko takie podejście daje nadzieję na sensowną skalowalność na przyszłych maszynach. Cytat:

Herb Sutter napisał/a:

To continue enjoying the free lunch of shipping an application that runs well on today's hardware and will just naturally run faster or better on tomorrow's hardware, you need to write an app with lots of juicy latent parallelism expressed in a form that can be spread across a machine with a variable number of cores of different kinds - local and distributed cores, and big/small/specialized cores.

683

(50 odpowiedzi, napisanych Bałagan)

OpenMP to boczna ścieżka ewolucji. Taki neandertalczyk programowania wielowątkowego. Ja bym się od tego trzymał z daleka.

684

(87 odpowiedzi, napisanych Emulacja - 8bit)

Niestety ddraw.lib ani dinput.lib nie są dostępne bez instalowania archaicznych SDKów. Trochę pohakowałem i odpaliłem, ale pierwszy raz od nie pamiętam kiedy musiałem zresetować komputer - po (w sumie przypadkowym) włączeniu trybu 1024x768, full display, bo nie dało się nic zrobić. Aplikacja zamarła i zabijanie procesów nie pomagało. Te ustawienia naprawdę są niebezpiecznie i trzeba się ich pozbyć. Wg mnie w dzisiejszych czasach tryb full-screen powinien nie zmieniać rozdzielczości desktopu. Nie wspomnę, że odhaczenie GDI (a więc używanie ddraw) wyłącza mi aero pod win7.
Popatrzę się trochę na to i zastanowię jakie kosztowne byłoby całkowite wyrzucenie ddraw. Może da się zrobić to tanim kosztem, bo z tego co widzę, to cała magia sprowadza się do wyświetlenia bufora spod adresu Screen_atari.

685

(87 odpowiedzi, napisanych Emulacja - 8bit)

Spróbowałem przekompilować źródła u siebie, ale zobaczyłem, że projekt korzysta z ddraw.lib i dinput.lib i zapłakałem...

Te liby są tak deprecated, że aż usunięte z najnowszego (acz półtorarocznego) DXSDK.

Jakby co nie sieję defetyzmu, tylko sygnalizuję miejsca do potencjalnego odświeżenia.


Co do Thread Spawn vs Thread Pool, to Parallel Patterns Library zarządza wątkami lepiej, niż zwykły programista jest w stanie, więc o to bym się nie bał...

686

(87 odpowiedzi, napisanych Emulacja - 8bit)

Microsoft C++AMP zrobił na bazie swojego DX11. Nie ma żadnej przeszkody, aby ludzie od gcc zrobili swoją implementację na bazie OpenCL (mam nadzieje, że tak się stanie), wówczas C++AMP na GCC będzie wszędzie tam, gdzie jest OpenCL - nie wiem czy można być bardziej niezależnym od systemu.
A z tym krokiem obok, to masz rację. Niekiedy wdepną w g***, ale często wytyczają nowe ścieżki. Ten pomysł akurat wydaje mi się trafiony - programowanie masowo heterogeniczne ( i to niezależne od wendora sprzętu ) trafia pod strzechy.

687

(87 odpowiedzi, napisanych Emulacja - 8bit)

@Dracon i @Adam: Microsoft lubi być o krok do przodu i w VS11 będzie C++AMP, czyli kod akcelerowany zintegrowany z kodem C++ - nie trzeba będzie pisać kerneli w osobnym języku (np OpenCL czy DirectCompute) i kodu odpalającego te kernele, tylko wszystko będzie wprost kodowane i kompilowane jako C++.

688

(87 odpowiedzi, napisanych Emulacja - 8bit)

seban napisał/a:

myślałem że smooth to karta graficzna robi a nie software-owo emulator ;P

I dziwisz się swoim 237% procentom? ;)

Oryginalny atari800 jako multiplatformowy musi robić wszystko softwarowo, ale port pod windowsa operacje na obrazie (szczególnie takie proste) powinien robić na karcie. Już skończyły się czasy homogenicznych komputerów. Teraz karta graficzna to koprocesor z niezłą mocą, który ma każdy. Nawet zintegrowany intel na laptopie potrafi całkiem dużo, a takie APU od AMD są całkiem wypaśne (zintegrowane HD6xxx).

689

(87 odpowiedzi, napisanych Emulacja - 8bit)

Jaskier napisał/a:

@laoo
A potem będą wymagania: DX10, Radeon 5xxx lub GF5xx :)

Nie zrzędź ;) Wystarczająco mocne do tego celu GPU mają już karty nie produkowane od 2004 roku.

Jaskier napisał/a:

Algorytm Hi-end bez wątpienia dobrze się skaluje na procesory. Nie wiem jednak kto to miał by robić.

Ty? Przecież to trywialne. Instalujesz VS 10 (np express). Inkludujesz  <ppl.h> i używasz funkcji parallel_for. Runtime zrobi całą brudną robotę za Ciebie łącznie z wykryciem ile korów jest w systemie i odpaleniem optymalnej liczby wątków. Programowanie wielokorowe nie jest już poletkiem dla dziwolągów...

690

(87 odpowiedzi, napisanych Emulacja - 8bit)

Jaskier napisał/a:

Biorąc pod uwagę jak skomplikowany to algorytm...
Ciekaw jestem jak wydajnościowo wyjdzie wersja 4x :) Może trzeba będzie zaangażować kilka rdzeni?

Jeżeli rdzenie, to tylko vs10 i Parallel Patterns Library i np parallel_for_each.
Nie czytałem algorytmu, ale z opisu wynika, że to proste lookup, to na pewno nie da się go zaimplementować na GPU?

691

(5 odpowiedzi, napisanych Programowanie - 8 bit)

MADS docs should be pasted to atariki and translated collectively. I've started the translation a year ago or so myself, but the idea left me as fast as it approached after a dozen of paragraphs. But with help of a wiki that can seamlessly distribute the effort to few people it's perfectly doable.

692

(10,041 odpowiedzi, napisanych Bałagan)

Kler nie ma żadnej roli. W Polsce to on rozdaje karty i rząd musi włazić mu do dupy, jak chce pozostać przy korycie. Całe pokolenia polaków są indoktrynowane do bronienia interesów Kościoła i jeszcze długo się to nie zmieni.

693

(62 odpowiedzi, napisanych Bałagan)

Statyczne typowanie jest wadą... i wie o tym obecnie już więcej niż jedna osoba... fascynujące ;)

694

(62 odpowiedzi, napisanych Bałagan)

Punkt widzenia na to co ssie, a co nie, zależy także od punktu siedzenia. Pół tego wątku padło ofiarą faktu, że git nie jest przenośny: Torvalds napisał go dla siebie, żeby łatwiej zarządzać developowaniem kernela i miał w nosie inne zastosowania, w tym to, że ktoś chciałby uruchamiać go sobie pod windą. Wątpię, żeby taka pythonowa proteza mu się podobała, skoro głównym featurem gita jest prędkość działania (albo zużywanie mało prądu, jeśli chcemy być trendy). Do silnie rozproszonego developingu projektów opensourcowych, gdzie każdy lubi mieć swojego brancha, jak najbardziej, ale do innych zastosowań mam wątpliwości.

695

(62 odpowiedzi, napisanych Bałagan)

Jestem staroświecki, ale nie kumam VCSów, w których rewizja nie jest kolejnym numerem. Niby ten numer nic nie znaczy, ale jednak...

696

(81 odpowiedzi, napisanych Zloty)

Pics, or didn't happen ;)

697

(14 odpowiedzi, napisanych Bałagan)

Ja na takie sformułowanie historii języków programowania w pigułce bym się nie odważył ;)
A ten przełącznik musi być gdzieś bardzo głęboko. Próbowałem pisać kiedyś pluginy do GIMPa w jego dialekcie Scheme i wymiękłem.

698

(8 odpowiedzi, napisanych Bałagan)

Wow. Jak byłem mały, opisywany w książce TVG-10 był na stanie klubu rolnika w mojej rodzinnej wsi. Nie miałem jednak nigdy śmiałości na tym pograć - najbliżej byłem w momencie pokręcenia jednym wiosełkiem, jak nikt nie patrzył.

699

(8 odpowiedzi, napisanych Bałagan)

sqward napisał/a:

Nie zwracanie wartości w funkcji, która powinna ją zwracać to jest warning kompilatora i moim zdaniem poważny błąd.

Z wyjątkiem funkcji main, która nawet w super ścisłym C++ może nie mieć returna:

ISO/IEC 14882:2011 napisał/a:

3.6.1.5:
A return statement in main has the effect of leaving the main function (destroying any objects with automatic
storage duration) and calling std::exit with the return value as the argument. If control reaches the end
of main without encountering a return statement, the effect is that of executing return  0;

Podobnie wartość zwarana jest też zdefiniowana od standardu C99. Wcześniej main bez returna zwracał śmieci. Ale to nigdy nie było i nie jest błędem.

700

(8 odpowiedzi, napisanych Bałagan)

Pod względem wpływu na współczesny świat Jobsa przewyższał kilkukrotnie. Bez C i Unixów nic by nie było!
Rest in peace dmr.

PS. Widać, że, grzeniu, dawno nie pisałeś w C, bo wyjadacz C napisałby raczej:

#include <stdio.h>

int main(void)
{
   printf("Bye, bye WORLD!");
}