» »

MSH

MSH

64202 ::

Shows | Microsoft Learn

Hehe, kej tacga pa od MS res ni bi clovek pricakoval. Kot da bi poskinal bash s perlom :D. Stvar ma celo neslavni $_ OMFG
I am NaN, I am a free man!

BigWhale ::

Cakaj, da se povedo, da je MS nekaj novega pogruntal in naredil nekaj revolucionarnega! ;)

64202 ::

Drugace bodo cevi podpirale strukturirane podatke, recimo stolpce ali kake druge objekte, kar je izboljsava glede na unix cevi (newline/tab/null terminated podatki). Ampak to verjetno pomeni, da se bodo morali ljudje kar precej potruditi pri svojih programih, da bodo command line friendly. Glavno zapreka na zacetku bo verjetno GUI mentaliteta win programerjev, sploh ne to, da bi bil shell slab. Zdajle sicer nimam ene bukle pri roki (windows app. development, Microsoft press), samo gre uvodni stavek za 'CreateWindow' poglavje priblizno tkole: "Unlike old fashioned text-only UNIX programs, Windows relies on GUI...".
I am NaN, I am a free man!

noraguta ::

Drugace bodo cevi podpirale strukturirane podatke, recimo stolpce ali kake druge objekte, kar je izboljsava glede na unix cevi (newline/tab/null terminated podatki). Ampak to verjetno pomeni, da se bodo morali ljudje kar precej potruditi pri svojih programih, da bodo command line friendly.


hmm , ugibam sicer, ampak najbrz bo serializacija objektov izvedena preko soapa, or sth like that. spucat izpis pa tudi potem nebi smel biti prehud problem. (ampak ugibam).
Pust' ot pobyedy k pobyedye vyedyot!

64202 ::

Mislim da bo stvar kar direkt .NET objekte okol nosila, SOAP bi bil ultrafejstoverkill. Treba se malo prebrat. Sicer ne mislim na problem serializacije ampak na to, da se rm * sprevrze v System.CurrentDirectory.GetFiles() | System.FileFilter(System.FsTypes.File) | System.Delete. To je seveda samo extremen nerealen primer! Vse je v tem, kako se stvar na koncu uporablja.
I am NaN, I am a free man!

Zgodovina sprememb…

  • spremenilo: 64202 ()

noraguta ::

jah objekte bo u vsakem primeru treba serializerat al binarno(ta najbrzda že odpade saj je potem stream v file praktično popolnoma neuporaben) al prek soapa al prek kake indigo pogruntavščine, saj gre za medprocesno komunikacijo. seveda pa stvar podpira tudi plain text argumente(tolk sem v enem demotu ze videl).
Pust' ot pobyedy k pobyedye vyedyot!

64202 ::

Recimo tegale :) ziher noces pisat v cmdline. Tole bi pa ze slo:
return $source =~ m,title>(.*)</title,i ? $1 : '';
I am NaN, I am a free man!

noraguta ::

recimo like this(spet hipotetično)

getdoc \\www\193.9x.32.32\3kure.html | $_.title ?

če gremo objektno.

http://channel9.msdn.com/ShowPost.aspx?...
Pust' ot pobyedy k pobyedye vyedyot!

Zgodovina sprememb…

  • spremenilo: noraguta ()

64202 ::

Sem malo razmisljal kak bi bil "unix way", da obdelas XML dokument. Recimo mel bi tool, ki bi imel intergriran sax parser (-> expat) in bi ga lahko tako uporabljal:

Tkole dobis title:
$ curl http://1.2.3.4/enpejdz.html | xmltool --descend-to 'html/head' --filter-tag 'title' --content
--descend-to: opises pot po drevesu navzdol
--filter-tag: vraca samo elemente s podanim tagom
--content: odreze zunanji element in vrne vsebino (v tem primeru skenslas <title>)

Potem bi se dalo tko kombinirat, da dobis vse linke iz pejdza ven
$ curl pedjz | xmltool --filter-tag a | xmltool --get-attribute href

curl pejdz:
<html>....<a href='asas.html'>df</a><a href='sff.html'>fff</a>...


xmltool --filter-tag a:
<a href='asas.html'>df</a>
<a href='sff.html'>fff</a>


xmltool --get-attribute href:
asas.html
sff.html


Potem pa samo nrdis standarden while read line; do komanda ali pa xargs komanda

Zdaj pa, glede na to, da obstajajo standardi za kopanje po XML-ju (XML path/query?), tak tool ziher ze obstaja.
I am NaN, I am a free man!

64202 ::

Skoraj prvi zadetek na guglu stran na xmlstar.sourceforge.net :))
I am NaN, I am a free man!

64202 ::

> jah objekte bo u vsakem primeru treba serializerat al binarno(ta najbrzda že odpade saj je potem stream v file praktično popolnoma neuporaben) al prek soapa al prek kake indigo pogruntavščine, saj gre za medprocesno komunikacijo. seveda pa stvar podpira tudi plain text argumente(tolk sem v enem demotu ze videl).

Obcutek imam, da bo to vse inprocess znotraj ene instance .NET VM-ja (==> torej msh-ja). Najnizji 'atom' je CmdLet, ki se ga nrdi tko:
namespace Demo
{
   [Cmdlet("do", "something")]
   public class MyFirstCommandLet : Cmdlet
   {
      public override void ProcessRecord()
      {
         WriteObject("Hello galaxy!");
      }
   }
}

The trick is to override the ProcessRecord method of the Cmdlet class. In fact, there are 3 overridable methods in there: StartProcessing, ProcessRecord, EndProcessing. When this file is built using csc.exe (version 2.0.31113 required) and registered with Monad using the "registercommand.exe" tool inside the same folder as msh.exe (the shell executable), the assembly will be registered in the MSH shell. It can be pretty helpful to provide a response file for csc.exe to add references to all of the assemblies of Monad (a .rsp file, see earlier post on this on my blog).
When Monad is started now, you can invoke the "do-something" commandlet by typing "do-something" and pressing <Enter> (big surprise for a shell environment, isn't it?). The result looks even more promising: the shell displays "Hello galaxy!".
I am NaN, I am a free man!

64202 ::

Baje da MSH ne bo niti v longhornu niti v lh serverju do leta 2007. Heh
I am NaN, I am a free man!

noraguta ::

jah tisto objektno varjanto sem si recimo izmislil , ampak z winfs , beaglom , ifiltrom za indexing service, ali cim podobnim je zadeva potem najbrz trivialna , oziroma dobi vecji simisel samo indexiranje. glede in procesa v .net pa dvomim samostojne aplikacije ne moreš predelat v karkoli drugega kot proces , vsaj jaz nevem , da bi bilo mogoče hendlanje konteksta v takšni nameri.vsaj v "klasičnih" operacijskih sisemih, potem izgubi zašita memorije vsak smisel. mogoče je kaj takega smiselno realizirati v movitzu ali singularty, kje drugje pa najbrzda ze ne.in tudi dvomim da bi ms povozil vse obstoječe toole katere so ustvarili ali pa so jih ustvarili uporabniki.


nekje sem prebral da naj bi izšel z naslednjo verzijo exchangeta , kar bi bilo dobrodošlo.
Pust' ot pobyedy k pobyedye vyedyot!

Zgodovina sprememb…

  • spremenilo: noraguta ()

64202 ::

> glede in procesa v .net pa dvomim samostojne aplikacije ne moreš predelat v karkoli drugega kot proces , vsaj jaz nevem , da bi bilo mogoče hendlanje konteksta v takšni nameri.vsaj v "klasičnih" operacijskih sisemih, potem izgubi zašita memorije vsak smisel. mogoče je kaj takega smiselno realizirati v movitzu ali singularty, kje drugje pa najbrzda ze ne.in tudi dvomim da bi ms povozil vse obstoječe toole katere so ustvarili ali pa so jih ustvarili uporabniki.

Verjetno bodo ti cmdleti preferred way in bo edin (pameten) nacin, da hendlas kompleksne (=> .NET) objekte. Recimo precej naraven je pristop z istim procesom, ce imas tool, ki zgenerira seznam procesov (objektov, ki predstavljajo procese) ali pa kaj podobnega sistemskega in potem direkt na njih izvedes nek ukaz. Memory zascito ti dela .NET VM, ni treba, da se OS mesa zraven. Eh, mogoce malo slab primer, se mi zdi, da se da reprezentacije sistemskih resursov dokaj na izi okol nosit, vsaj v teoriji... Trenutni procesno narejeni tooli bodo pac isto kot do zdaj, text-only. Drugace kar se pa tice prehajanje sistemskih resursov iz procesa v procesa, ma nekaj clo unix, posljes lahko socket iz enega v drug proces preko unix domain socketa IIRC. Mogoce pa nisem cisto razumel, kaj si mislil povedat s singularity, ker ne poznam...
I am NaN, I am a free man!

64202 ::

Zanimiv primer se mi zdijo tudi LISP masine iz 80-tih. Hardver/OS sploh ni podpiral zascite RAMa in virtual mema, kot je to v navadi danes. Tam je bil OS komplet LISP in vse je laufalo v VM-ju in je sam LISP runtime poskrbel za vso zascito. Posledicno so bili sistemski klici, IPC in podobne (danes pocasne) stvari izredno hitre -> cena je bila na ravni funkcijskega klica + malo za menjanje kakih security parametrov IIRC. .NET je pac en tak napol back-to-the-future :))

Popravek: na LISP masinah je bil VM verjetno dokaj majhen, ker je hardver direkt izvajal subset LISPa
I am NaN, I am a free man!

Zgodovina sprememb…

  • spremenilo: 64202 ()

thor984 ::

CCfly ::

Jaz prav rad vidim, da bodo ukazi enaki.
"My goodness, we forgot generics!" -- Danny Kalev

thor984 ::

Ne sj to je čist kul, sam d ne bojo še tega patentiral :P

64202 ::

Tko kot so patentiral XML sheme za Word? Ti bojo zaracunal za to, da s svojo pet vrsticno skripto importas tabelo iz weba v Word 8-O
I am NaN, I am a free man!

Myth ::

A lahko kdo pove po domače kaj pomeni MSH in kaj počne? Malce sem tisti link kliknil pa samo čudno gledam. :)
¤ Space is Mystery. And Myth is on Earth. ¤

64202 ::

noraguta je dal link na video, kjer (avtor?) pokaze osnovno uporabo shella. Moj link je pa sintaksa skriptnega jezika, ki ga zna shell direktno izvajat (vsaj predvidevam da se ne bo prevajal v .net vmesno kodo...)
I am NaN, I am a free man!

Myth ::

Pogledal video in komentarje. Novi CMD? Wow.. 8-O Pa kaj vse bi lahko počel not. Me res zanima, kot iqw.... če se bo dalo res čisto v detajle it.
¤ Space is Mystery. And Myth is on Earth. ¤

CCfly ::

Za "v detajle jit" imaš kakšen močnejši programski jezik, namesto skriptnega.
"My goodness, we forgot generics!" -- Danny Kalev

Nerdor ::

Sicer offtopic, ampak a je kdo opazil tole povezavo do filma "Linux at Microsoft, Part I" :))
... for lifetime!

64202 ::

A je kje transcript? Katastrofa od posnetka
I am NaN, I am a free man!

BigWhale ::

RTV Slo novica:

bigwhale@capybara ~ $ man rmr
No manual entry for rmr
bigwhale@capybara ~ $


Hihi.

;)

noraguta ::

64202 na zalost(ali sreco) .net nima nic pri hendlanju procesov, saj .net vm ni nicesar drugega kot abstrakcija za implementacijo. v končnifazi pri izvajanju med c-jevsko aplikacijo ali .net ni neke razlike , oboje je navade binary , ok .net je šeopremljen komunalcem , katerega pa lahko pošljemo celo na dopust.
addrese se virtualizirajo se vedno na osu.
singualrty naj bi počel , kot so to lisp mašine včasih http://channel9.msdn.com/ShowPost.aspx?... .

sem šel gledat tele cmd-lete vredu zadeva če jo gledaš kot plugine za konzolo , malo manj mi je pa všeč generičnost rešitve.
Pust' ot pobyedy k pobyedye vyedyot!

thor984 ::

BW:A to je biu kao rm mišljen?

64202 ::

noraguta: Kar sem hotel povedat - .net je OS za managed kodo
I am NaN, I am a free man!

Zgodovina sprememb…

  • spremenilo: 64202 ()

64202 ::

Ok, mogoce se glede .neta motim, samo jvm recimo ti garantira varnost rama.
I am NaN, I am a free man!

noraguta ::

noraguta: Kar sem hotel povedat - .net je OS za managed kodo


meni se zdi prej malo bolj nabrekel crt, vsekakor pa v obstoječem stanju ne os.
Pust' ot pobyedy k pobyedye vyedyot!

darkolord ::

btw, vceri je prisel ven MSH Beta 1

pecorin ::

je kje kaksen test?
saj bi preizkusil, samo nimam win...


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[C#] MP3 fingerprint

Oddelek: Programiranje
5594 (427) black ice
»

Silverlight

Oddelek: Programiranje
161482 (1139) hodor
»

Naprednješa knjiga o programiranju (koncepti, ...)

Oddelek: Programiranje
365374 (4545) noraguta
»

MIX06 @ Las Vegas

Oddelek: Novice / Ostala programska oprema
82523 (1921) Looooooka
»

rm -r v Windows? (strani: 1 2 )

Oddelek: Novice / Operacijski sistemi
774940 (4940) MasterMind

Več podobnih tem