Gå til innhold

dayslepr

Medlemmer
  • Innlegg

    463
  • Ble med

  • Besøkte siden sist

Innlegg skrevet av dayslepr

  1. hvilken side er det snakk om?

     

    teknisk sett: om de har et godt API ("webservices" o.l.), slik som f.eks. amazon.com og andre litt større sider gjerne har bør dette gå greit.. alternativet er å lese av siden og parse, noe som fort blir himmla styrete og "brekker" lett når de gjør endringer på siden

     

    etter en kjapp tur innom qxl.no ser det ikke ut til at de har et API tilgjengelig :( .. (kanskje man skulle tatt kontakt og tipset dem om at dette hadde vært kjekkt)

  2. ting som file permissions er ikke definert i C eller C++-standarene, så det er OS-spesifikt hvordan man gjør dette .. jeg vet ikke hvordan man gjør det under Windows, men under Linux:

     

    Skjult tekst: (Marker innholdet i feltet for å se teksten):

    CHMOD(2)                                                Linux Programmer’s Manual                                                CHMOD(2)

     

    NAME

          chmod, fchmod - change permissions of a file

     

    SYNOPSIS

          #include <sys/types.h>

          #include <sys/stat.h>

     

          int chmod(const char *path, mode_t mode);

          int fchmod(int fildes, mode_t mode);

     

    DESCRIPTION

          The mode of the file given by path or referenced by fildes is changed.

     

          Modes are specified by or’ing the following:

     

                  S_ISUID  04000 set user ID on execution

     

                  S_ISGID  02000 set group ID on execution

     

                  S_ISVTX  01000 sticky bit

     

                  S_IRUSR (S_IREAD)

                            00400 read by owner

     

                  S_IWUSR (S_IWRITE)

                            00200 write by owner

     

                  S_IXUSR (S_IEXEC)

                            00100 execute/search by owner

     

                  S_IRGRP  00040 read by group

     

                  S_IWGRP  00020 write by group

     

                  S_IXGRP  00010 execute/search by group

     

                  S_IROTH  00004 read by others

     

                  S_IWOTH  00002 write by others

     

                  S_IXOTH  00001 execute/search by others

     

          The  effective  UID  of the calling process must match the owner of the file, or the process must be privileged (Linux: it must have

          the CAP_FOWNER capability).

     

          If the calling process is not privileged (Linux: does not have the CAP_FSETID capability), and the group of the file does not  match

          the  effective  group ID of the process or one of its supplementary group IDs, the S_ISGID bit will be turned off, but this will not

          cause an error to be returned.

     

          As a security measure, depending on the file system, the set-user-ID and set-group-ID execution bits may be turned off if a file  is

          written.  (On  Linux  this  occurs if the writing process does not have the CAP_FSETID capability.)  On some file systems, only the

          superuser can set the sticky bit, which may have a special meaning.  For the sticky bit, and for set-user-ID and  set-group-ID  bits

          on directories, see stat(2).

     

          On  NFS  file systems, restricting the permissions will immediately influence already open files, because the access control is done

          on the server, but open files are maintained by the client.  Widening the permissions may be delayed for other clients if  attribute

          caching is enabled on them.

     

    RETURN VALUE

          On success, zero is returned.  On error, -1 is returned, and errno is set appropriately.

     

    ERRORS

          Depending on the file system, other errors can be returned.  The more general errors for chmod() are listed below:

     

          EACCES Search permission is denied on a component of the path prefix.  (See also path_resolution(2).)

     

          EFAULT path points outside your accessible address space.

     

          EIO    An I/O error occurred.

     

          ELOOP  Too many symbolic links were encountered in resolving path.

     

          ENAMETOOLONG

                  path is too long.

     

          ENOENT The file does not exist.

     

          ENOMEM Insufficient kernel memory was available.

     

          ENOTDIR

                  A component of the path prefix is not a directory.

     

          EPERM  The  effective  UID  does  not  match  the  owner of the file, and the process is not privileged (Linux: it does not have the

                  CAP_FOWNER capability).

     

          EROFS  The named file resides on a read-only file system.

     

          The general errors for fchmod() are listed below:

     

          EBADF  The file descriptor fildes is not valid.

     

          EACCES Search permission is denied on a component of the path prefix.  (See also path_resolution(2).)

     

          EFAULT path points outside your accessible address space.

     

          EIO    An I/O error occurred.

     

          ELOOP  Too many symbolic links were encountered in resolving path.

     

          ENAMETOOLONG

                  path is too long.

     

          ENOENT The file does not exist.

     

          ENOMEM Insufficient kernel memory was available.

     

          ENOTDIR

                  A component of the path prefix is not a directory.

     

          EPERM  The  effective  UID  does  not  match  the  owner of the file, and the process is not privileged (Linux: it does not have the

                  CAP_FOWNER capability).

     

          EROFS  The named file resides on a read-only file system.

     

          The general errors for fchmod() are listed below:

     

          EBADF  The file descriptor fildes is not valid.

     

          EIO    See above.

     

          EPERM  See above.

     

          EROFS  See above.

     

    CONFORMING TO

          The chmod() call conforms to SVr4, SVID, POSIX, X/OPEN, 4.4BSD.  SVr4 documents EINTR, ENOLINK and EMULTIHOP returns, but no ENOMEM.

          POSIX.1 does not document EFAULT, ENOMEM, ELOOP or EIO error conditions, or the macros S_IREAD, S_IWRITE and S_IEXEC.

     

          The  fchmod()  call  conforms to 4.4BSD and SVr4.  SVr4 documents additional EINTR and ENOLINK error conditions.  POSIX requires the

          fchmod() function if at least one of _POSIX_MAPPED_FILES and  _POSIX_SHARED_MEMORY_OBJECTS  is  defined,  and  documents  additional

          ENOSYS and EINVAL error conditions, but does not document EIO.

     

    SEE ALSO

          chown(2), execve(2), open(2), path_resolution(2), stat(2)

     

  3. KDE er ikke én vanlig pakke eller étt vanlig program, KDE er en desktopløsning bestående av flere programmer _og_ biblioteker som de programmene trenger for å kjøre .. jeg ville ikke fjernet den meta-pakken, men i stedet tålt at det kanskje følger med litt mer enn det du har bruk for i den (jeg orker ikke forklare hvorfor, men det er veldig gode grunner til at man ikke bør fjerne slike metapakker ........)

     

    skjønner ikke helt hvilke problemer du har med Opera under Dapper, for du har ikke tatt med nok informasjon om hva som går galt.. det skal ikke være nødvendig å installere det xlib-greiene

     

    http://www.opera.com/download/index.dml?op...%20i386&local=y

    (det står Breezy, men den fungerer under Dapper også)

     

    dpkg -i pakkenavn.deb

     

    (sist jeg installerte startet forresten Firefox et frontend-program til dpkg som gjorde det over automatisk btw.)

  4. *shrug* .. det er vel mest sansynlig at siden bruker HTTP GET eller POST til å sende inn brukernavn/passord: http://www.jmarshall.com/easy/http/ / http://en.wikipedia.org/wiki/HTTP

     

    disse bibliotekene kan f.eks. gjøre dette: http://www.cliki.net/web%20client

     

    (det du ser etter for ditt favoritt-språk er et bibliotek for en "HTTP klient", eller "web client" .. eller bindinger til det ganske så vanlige libcurl-biblioteket)

  5. ..fikk lyst til å skrive en rant, så her er den..

     

    jeg synes i grunn man kan hoppe over hele C++ i sammenheng med det meste av (spesiellt) applikasjonsutvikling og heller bruke andre bedre og mer moderne (feature-wise) høynivåspråk

     

    ...når det gjelder C kontra C++, om man _absolutt_ trenger hastigheten, nå, med én gang: C er lettere (for ikke å si mulig) å kalle fra disse andre høynivåspråkene når man finner områder (tight inner loops o.l.) man ønsker å optimalisere siden .. i tillegg er C mye ("alltid"?) brukt i sammenheng med operativsystemer, noe som gjør det mulig å bruke høynivåspråkene uten å miste muligheten til å kalle OS-spesifike funksjoner (så denne muligheten er ikke et argument for å holde seg til C++ i det hele tatt egentlig)

     

    cl-user> (foreign-funcall "strlen" :string "Hello World!" :int)
    12

     

    C++ er dog mulig å bruke ved å passe på å ikke kreve at man må skrive nye klasser for å bruke biblioteket (f.eks. subklasse+metoder for å definere event-håndterere), og ved å legge til extern "C"-deklarasjoner forran funksjoner .. men man mister liksom litt av poenget da; altså om man videre velger å skrive _hele_ applikasjonen i "portabel assembler" (en C++ som nærmest kan kallest C)

     

    vel, IMHO er det rimelig høl i hue at vi i Y2K bruker et språk som dette, eller for ikke å si i denne familien, frivillig (jeg er klar over de sosiale "problemene"), når man f.eks. allerede i 1960 hadde myemye bedre språk med kun ett problem; dårlig hardware

     

    ... dette problemet har vi ikke lengre ...

     

    edit:

    "n00bs" som ikke tror på meg som enkeltperson kan spørre hvilke som helst andre med litt peil her; kan man virkelig ikke uttrykke det samme, eller uttrykke seg på samme vis, med C++ som med språk som har eksistert i flere tiår før C++?

     

    ("turing complete" tells _IKKE_ ... de som ikke vet hva dette innebærer (ASM-freaks og andre 14iser) når de skal svare kan like gjerne la være ....)

     

    til resten; hva er egentlig grunnen til at dere kaller C++ "avansert"? .. er det fordi man kan gjøre masse "crazy shit" i språket, eller er det, egentlig, fordi det er tungvinnt og gammeldags? ..

     

    ... hallo? - ingen som ser dette? ...

     

    ..irriterer meg grenseløst over programmererer som akkurat har kommet over første kneika.. de kan så vidt lage noe litt mer avansert enn Hello World i C++, og kommer så med råd til nybegynnere der de forklarer at "C++ er kanskje litt for avansert i starten, men det er språket man må satse på i fremtiden" ... :roll: ... når da? i 2060 (også!) eller?

     

    ....nei, jeg synes folk skal være veldig kritiske når de vurderer C++ (eller C)....

  6. hm, det er ikke noen som har litt greie på AJAX/JavaScript i Opera her?

     

    denne applikasjonen http://nostdal.org:6123/hello-world/hello-world.html skal oppdatere tallet ved siden av "The time is: " hvert sekund, men under Opera så skjer ikke dette

     

      debugMsg("debug", "server-initiated: about to send new request");
     window.xhr_si.onreadystatechange = siHandler;
     window.xhr_si.open("POST", "?type=server-initiated", true);
     window.xhr_si.setRequestHeader('Content-Type',
                                    'application/x-www-form-urlencoded; charset=UTF-8');
     window.xhr_si.setRequestHeader('User-Agent', navigator.userAgent);
     window.xhr_si.send("");
     debugMsg("debug", "server-initiated: new request sent");

     

    siHandler, readyState: 1

    server-initiated: about to send new request

    siHandler, readyState: 4

    siHandler, readyState: 3

    updateElements, response_text: '[["setElement","time",3357397454],["setElement","session-id","4677"]]'

    sndReq: '[["redraw"]]'

    queueReq: '[["redraw"]]'

    server-initiated: new request sent

    siHandler, readyState: 1

    server-initiated: about to send new request

     

    siste debug-melding er øverst .. det som er snedig, er at etter jeg har kallt abort og skal resende http-requesten (ajax dette) så sender den ikke, den blokker og siste melding blir da "about to send new request" - altså den blir aldri sendt .. har noen peil på dette? IE og FF fungerer som de skal

     

    edit: rop om mer info trengs!

  7. Skjønner mindre og mindre jeg! Nå sku jeg prøve å brenne en cd i K3b også får jeg ikke lagt til wma eller mp3 filer! Mariunae (fra forumet) har hulpi meg men det eneste er vel dette med flere servere og at jeg klarte for det meste alt under Lame  (sudo apt-get install lame) eller så var det lime.

    Snart gir jeg opp altså og insalerer bare Windows her. Tror jeg skal ha begge plattformer men det er noe problemer med Windows install som jeg ikke har sett noe mere på...

    6141241[/snapback]

     

    fjern det døde repoet fra /etc/apt/sources.list .. meldingene betyr at den ikke finner filene på de rette stedene der lengre (det er heller ikke et offesiellt Ubuntu-repo; bare noe en eller annen tilfeldig fyr har satt opp på Internett et sted) .. følg i stedet Ubuntus guider på DEN OFFESIELLE wikien når du skal fikse ting m.t.p. codecs o.l.: https://wiki.ubuntu.com/RestrictedFormats

     

    angående mp3 og k3b:

     

    apt-get install libk3b2-mp3

     

    ..gjorde susen i dapper

  8. ting er som eller av sirkler .. både tid og rom, ingen kan plassere "når", "hvor" og "hva" -- derfor er ting i "virkeligheten" uendelige

     

    dette er min oppfattelse av ting så klart, uten at det beviser noe mer eller mindre endelig enn noen av de andre mer eller mindre seriøse teoriene noen gang har gjordt.. dette fordi hver av dem rekker bare så langt ned eller så langt opp; ingen av dem er komplette..

     

    forsøker man å strekke seg for langt i en av retningene risikerer man å bli gal; gjerne fordi man må plassere seg selv i situasjonene/virkelighetene man finner eller strekker seg mot for å greie og forstå dem

     

    edit:

    ment som en tilfeldig (uendelig? ..hah..) rant så klart

  9. SATA på laptopen her; det fungerer utmerket med Ubuntu (både Breezy og Dapper), men jeg har et Intel-basert SATA/IDE-chipset da :)

     

    ...

    0000:00:1f.2 IDE interface: Intel Corporation 82801FBM (ICH6M) SATA Controller (rev 03)

    ...

     

    generellt sett er det fint å teste med en Live-CD når man er usikker; da får man som regel bekreftet hva som fungerer "out of the box", og hva man kanskje må tukkle litt med for at det skal fungere

  10. http://swchat.nostdal.org:6123/swchat/main.html

     

    kildekode:

    Skjult tekst: (Marker innholdet i feltet for å se teksten):

    ;;;; http://nostdal.org/SWChat/ ;;;;

     

    (defpackage SWChat

      (:use :cl :SymbolicWeb :AmUtil))

    (in-package :SWChat)

     

     

    (defparameter *max-length* 100000)

     

     

    (defclass SWChat (Application)

      ((username :accessor username-of

                :initform (concatenate 'string "anonymous-" (SW::generateID)))

     

      (messages :accessor messages-of :allocation :class

                :initform "")

     

      (participants :accessor participants-of :allocation :class

                    :initform (make-instance 'AppGroup)))

     

      (:default-initargs

      :name "SWChat"

      :static-path "/home/lars/programming/lisp/swchat/static/"))

    (export 'SWChat)

     

     

     

    (defmethod initialize-instance :after ((app SWChat) &key)

      ;; TODO: Some way the instances get removed from the group.

      (add app (participants-of app))

     

      ;; Set up handlers.

      (setf (handler-of app "say") 'say)

      (setf (handler-of app "redraw") 'redraw))

     

     

     

    (defmethod scrollView ((app Ajax))

      "Scroll view so one sees the last message arrived."

      (evalJS app "getElt('messages').scrollTop = getElt('messages').scrollHeight;"))

     

     

     

    (defmethod redraw ((app SWChat))

      (setElement app "messages" (messages-of app))

      (setValue app "nick" (mkstr "anonymous-" (SW::generateID)))

      (scrollView app))

     

     

     

    (defmethod say ((app SWChat) (message string) (nick string))

      (setf message (mkstr "<br/>" nick ": " (AmWeb:escapeHTML (AmWeb:urlDecode message))))

     

      ;; Update server side..

      (setf (messages-of app)

            (concatenate 'string (messages-of app) message))

     

      ;; ..but make sure it doesn't store too much.

      (when (> (- (length (messages-of app)) *max-length*) 0)

        (setf (messages-of app)

              (subseq (messages-of app)

                      (- (length (messages-of app)) *max-length*)

                      (length (messages-of app)))))

     

      ;; Send message to `app' (the one who sent the message originally).

      (appendToElement app "messages" message)

      (scrollView app)

     

      ;; Send message to every other client.

      (appendToElement (participants-of app) "messages" message)

      (scrollView (participants-of app))

      (dispatch (participants-of app) app))

     

    edit:

    oh, jeg har kun bekreftet at denne fungerer under Firefox og Opera (noen småbugs i Opera fortsatt, men ok) .. en på IRC nevnte at den fungerte under Safari og Konqueror også

     

    om noen er interesserte i et samarbeid m.t.p. design eller lignende er det bare å ta kontakt :) (jeg har et par andre eksempler liggende også ..)

×
×
  • Opprett ny...