Ny Version2-debat - vi vil se din kode!

RELANCERING: Med et nyt debatsystem på version2.dk er det nu muligt i kommentarer at vise kodestumper, som præsenteres overskueligt og med links til yderligere dokumentation.

Den livlige og konstruktive debat til artikler og blog-indlæg er en af de ting, som gør os rigtig glade for vores læsere på Version2.

Men der har altid manglet noget, og det var, når diskussionen kom til det, mange it-professionelle bruger adskillige timer af deres hverdag på - programkoden.

Det er der forhåbentlig rettet op på med relanceringen af version2.dk.

Nu understøtter debatten nemlig såkaldt syntax highlighting, hvor koden præsenteres med farver og indrykning, så den er let at læse for andre debattører. Samtidig linkes de enkelte funktioner til onlinemanualen for det valgte sprog, hvis det er tilgængeligt.

Som standard understøttes flere end 70 sprog - heriblandt PHP, Python, Ruby, Java og C++.

For at vise eksempelvis PHP-kode i debatten, skal du blot sætte [code=php] foran din kode og [/code] efter. Under denne artikel er der link til vores debatguide, hvor du kan læse mere og se alle de sprog, der understøttes.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (24)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
#1 Casper Thomsen

Og her er så et lille eksempel på noget kode - andre skal være meget velkomne til at teste systemet af med andre eksempler.

[code=c] main() { printf("hello, world\n"); } [/code]

[code=php] <?php // Hello World in PHP echo 'Hello World!'; ?> [/code]

[code=fortran] C Hello World in Fortran

  PROGRAM HELLO  
  WRITE (*,100)  
  STOP  

100 FORMAT (' Hello World! ' /) END [/code]

[code=ruby]

Hello World in Ruby

puts "Hello World!" [/code]

  • 0
  • 0
#4 Jesper Lund Stocholm Blogger

[code=csharp] public static void Main(string[] args) { if (args.Length > 0) { Console.Write(args[0]); Console.Read(); } } [/code]

[code=xml] <?xml version="1.0" encoding="UTF-8" ?> value [/code]

  • 0
  • 0
#6 Kristian Thy

[code=scheme] (define (apply-mugshot img fg-layer frame-color) (let* ((current-color (car (gimp-context-get-foreground))))

(gimp-context-push)

(gimp-selection-none img)  
(gimp-drawable-transform-scale fg-layer 0 0 95 95 0 2 1 3 1)  
(gimp-image-resize img 95 95 0 0)  
(gimp-layer-resize fg-layer 95 95 0 0)  
(gimp-selection-all img)  
(gimp-selection-shrink img 1)  
(gimp-selection-invert img)  
(gimp-context-set-foreground frame-color)  
(gimp-edit-fill fg-layer 0)  
(gimp-context-set-foreground current-color)  
(gimp-selection-none img)  
(gimp-layer-set-opacity fg-layer 99.0)  
(gimp-context-pop)))

(define (script-fu-mugshot img fg-layer frame-color) (begin (gimp-image-undo-group-start img) (apply-mugshot img fg-layer frame-color) (gimp-image-undo-group-end img) (gimp-displays-flush)))

(script-fu-register "script-fu-mugshot" _"_Fix Mugshot" "Takes a square photo, resizes it to 95px square, sets transparency at 99% and adds a 1px border." "Kristian Thy" "Kristian Thy" "2006" "RGB,RGBA" SF-IMAGE "Image" 0 SF-DRAWABLE "Drawable" 0 SF-COLOR _"Frame color" '(0 0 0)) [/code]

  • 0
  • 0
#8 Casper Thomsen

Hej Søren.

Det er selvfølgelig ærgerligt med den manglende understøttelse af Erlang, men sproget er desværre ikke standard i Geshi, som er den software, vi benytter.

Hvis du kan finde en Geshi-fil til Erlang (vi kan ikke være de eneste med interesse for Erlang), er vi dog meget villige til at tilføje den, så også Erlang-kode kan blive en del af Version2.

Efter at have ledt lidt rundt, kan vi ikke umiddelbart finde en Geshi-fil til Erlang - det kan være, at du kan spørge i forummet i Erlang-gruppen og få hjælp til eftersøgningen der?

Mvh Casper, Version2

  • 0
  • 0
#10 Poul-Henning Kamp Blogger

[code=intercal] (10) PLEASE DON'T GIVE UP (1) DO .2 <- '?.1$#64'~'#0$#65535' DO .2 <- '&"'.1~.2'~'"?'?.2~.2'$#32768"~"#0$#65535"'"$".2~.2"'~#1 DO .3 <- '?#91$.1'~'#0$#65535' DO .3 <- '&"'#91~.3'~'"?'?.3~.3'$#32768"~"#0$#65535"'"$".3~.3"'~#1 DO (11) NEXT DO (2) NEXT DO (12) NEXT (11) DO (13) NEXT PLEASE FORGET #1 DO (12) NEXT (13) DO (14) NEXT PLEASE FORGET #2 DO (12) NEXT (14) DO STASH .1 DO .1 <- .3 DO (1000) NEXT DO .1 <- .3 DO .2 <- #1 PLEASE DO (1000) NEXT DO RETRIEVE .1 PLEASE RESUME .3 ... [/code]

  • 0
  • 0
#19 Kristian Thy

hvis det bliver et problem med for store tekstbidder, så kan I jo skrue lidt ned for størrelsen på fonten.

Hvis man bruger Ildræven med Fedtaben kan man installere dette userscript og styre det selv:

[code=javascript] // ==UserScript== // @name Version2 Customizer // @namespace http://quovadis.dk/ // @description Customize V2 layout. // @include http://version2.dk // ==/UserScript==

function xpath(query, context) { var cx = (arguments.length < 2) ? document : context; return document.evaluate(query, cx, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); }

var posts = xpath('//blockquote[@class="code"]'); for (var i = 0; i < posts.snapshotLength; i++) { var block = posts.snapshotItem(i); block.style.fontFamily = "Consolas"; block.style.fontSize = "9px"; } [/code]

  • 0
  • 0
#20 Claus Waldersdorff Knudsen

Må lige prøve dette:

[code=c]

pragma src
pragma asm

// the assembler macros below do the following two 'C' statements: // 1) ByteBits = abs(gnqx)>>8; // 2) gnqsum = abs(gnq1)>>8 + abs(gnq2)>>8 // and do it in only 1.0 to 1.1 usec, compared to 1.5 to 1.8 usec $GEN ; Expand macro in listfile

; 1) TAKE_HIGH_OF_ABS MACRO SOURCE, DEST local ADDONE, EXIT MOV DPTR,#SOURCE MOVX A,@DPTR MOV R6, A INC DPTR MOVX A, @DPTR ADD A, #0 JZ ADDONE MOV A, R6 JNB ACC.7, exit CPL A JMP exit ADDONE: MOV A, R6 JNB ACC.7, exit CPL A INC A exit: MOV DEST, A ENDM

; 2) MAKESUM macro GNQ1, GNQ2, GNQSUM TAKE_HIGH_OF_ABS GNQ1,R7 ; Store abs(gnqx) in R7 TAKE_HIGH_OF_ABS GNQ2,R6 ; Store abs(gnqx) in R6 mov A, R7 add A, R6 mov GNQSUM, a ENDM

pragma endasm

...

pragma asm
         MAKESUM g1q1, g1q2, g1qsum      // 2.0 to 2.2 usec  
         MAKESUM g2q1, g2q2, g2qsum  
         MAKESUM g3q1, g3q2, g3qsum  
         MAKESUM g4q1, g4q2, g4qsum  
         MAKESUM g5q1, g5q2, g5qsum  
         MAKESUM g6q1, g6q2, g6qsum  
         MAKESUM g7q1, g7q2, g7qsum  

#ifdef DTMF16 MAKESUM g8q1, g8q2, g8qsum #endif

pragma endasm
ifdef FLOATTEST
         // Floating point test. For informational tests only  
         fqsum = abs(fq1) + abs(fq2);     // 30 to 37 usec  
endif
         DTMFBins = -1;  
         FoundHighBin = 0;

[/code]

Hvor gemmer preview knappen sig?

  • 0
  • 0
#21 Søren Lund

Hvis det var svært at skrive, skal det vel også være svært at læse ;-)

[code=perl]

:: .|-| .-| :||:-| .|:|:-| .::-| |.|-| ||-: ||-. :||

open(Q,$0);while(){if(/^#(.)$/){for(split('-',$1)){$q=0;for(split){s/| /:.:/xg;s/:/../g;$Q=$?length:$;$q+=$q?$Q:$Q20;}print chr($q);}}}print"\n";

:. |||-| |.|-| 0-| .-: |:|.|-. |:|-:: 0-| .-| |::|-| ::::

[/code]

Ja, jeg har snydt, og bearbejdet kode, jeg fandt her: http://mysite.verizon.net/les.peters/id2.html

  • 0
  • 0
#23 Johnny Fribert Lauridsen

Mener jeg har et sekscifret antal kodelinier fra mine kodedage i 80serne. Her er et snippet. Der var vist også npget med noget TCP OOB low level kode som jeg må prøve at finde frem. Det var vist dengang nogle mente at tcp oob var ret hip. Måske der skulle laves et separat retro programmør forum :-) [code=c] main(argc,argv) /* Old style for AIX V. 1.1 compatibility */ int argc; char *argv[]; { long value = 0;

ifndef AIX1 /* No basename() in AIX 1 */

if ( 0 == strcmp(basename(argv[0]),"d2x") )

else

if ( 0 == strcmp(rindex(argv[0], '/')+1,"d2x") )

endif
  printf("%lx\n",atoi(argv[1]));  

else { sscanf(argv[1],"%x",&value); printf("%ld\n",value); } } [/code]

lol...

  • 0
  • 0
Log ind eller Opret konto for at kommentere