PDA

Se fuld version : Vil nogen være med til at kigge på open source


CommanderRed
10-13-2004, 03:31 AM
jeg syntes det er meget fint at sætte sig på røven og brokke sig over APG, men jeg vil finde det spændende hvis der er nogen der vil være med til at kigge på de mange problemer der er omkring de åbne licenser, GPL, LGPL, BSD, Apache license etc., man finder ofte proprietært software hvor man lige tilfældigt opdager at de sidder på et åbent POSIX lag (e.g. cygwin) eller et stykke software der er udgivet under en OS licens er pludseligt inkluderet i et stykke software der har en anden (evt. strengere) licens.

Og så den anden ting, hvornår har du sidst stykket noget sammen og gjort det tilgængeligt for dine omgivelser, er vi ikke også selv slemme til at sætte os på alt guld koden ? Vil vi selv dele ?

CMDRED

Pest
10-13-2004, 12:38 PM
Jeg har personligt intet problem med at dele alt hvad jeg laver.
Spørgsmålet er jo så bare hvor nyttigt det er det jeg laver ;)

Kan du fx regne ud hvad her gør?

<?
if($number) {
$a=$number;
}
else {
$a=4;
}
if($root) {

if($root< 1 && $number> 0) { $idiotsikring = "-"; } else { $idiotsikring = ""; }
if($root< 1 && $number< 1) { $abs = "1"; }
$b= abs($root);
}
else {
$b=2;
}
$x=1; //seed;
$z=0.00000000001; //acc;
$i=0; //itterationer

$t=microtime(true);
do{
$d=($a*pow($x,1-$b)-$x)/$b;
$x+=$d;
$i++;
}
while (abs($d)>$z);
$t=round((microtime(true)-$t)*1000000);
if($abs== 1) { $x = abs($x); }
print "Den ".$idiotsikring.$b.". rod af ".$a." er ".$idiotsikring.$x.".
Resultat fundet ved ".$i." itterationer, over ca. ".$t." µs";
?>

Athas
10-13-2004, 01:00 PM
Er du da helt vild, jeg er en ren GNU, tillad mig at tilbyde en multithreaded Hello World:


// HELLO WORLD 2
// The quest for the point.

#include <boost/thread/thread.hpp>
#include <boost/thread/mutex.hpp>
#include <boost/thread/condition.hpp>
#include <stdexcept>
#include <iostream>
#include <vector>

using namespace std;
using namespace boost;

int cur_str = 0;
int max_cur_str = 0;
condition cond;

mutex io_mutex;
// We wouldn't want to mess with Don std::cout.
mutex cur_str_mutex;
// cur_str might bitch otherwise.

class Printer
{
public:
Printer(int i, string str):
my_str_no(i), my_str(str)
{};

~Printer(){};

void operator() ()
{
mutex::scoped_lock lock(cur_str_mutex);
while(cur_str!=my_str_no)
{
cond.wait(lock);
}
mutex::scoped_lock iolock(io_mutex);
cout << my_str;
if(max_cur_str!=cur_str)
cur_str++;
else
cur_str = 0;
cond.notify_all();
}

protected:
int my_str_no;
string my_str;
};

int main(int argc, char* argv[])
{
try{
vector<thread*> thrdvec;
for(int i = 0; i+1<=argc;i++)
thrdvec.push_back(new thread(Printer(i,argv[i+1])));

// Wait and clean up the mess:
for(vector<thread*>::iterator it = thrdvec.begin();
it!=thrdvec.end();
it++)
(*it)->join();
} catch (...){
cout << endl;
return 0; // God damn fuckass exception.
}


// Get back in line, you damn dirty apes.
cout << endl;
return 0;
}


Bemærk venligst mit elegante hack omkring de exceptions mine threads kaster til højre og venstre.