Tiny Generic Code Generator ist da!



  • Tiny Generic Code Generator ist da!
    Preis:
    Nur 5000 Euro in der Vollversion.
    Unbeschränkte Trialversion kostenlos.

    Alleinstellungsmerkmal:
    Ohne kompletten Realitätsverlust!

    Erweiterbarkeit:
    Dank Open Source Technology unbeschränkt.

    Effekt:
    Hochwissenschafliche Schätzungen ergaben, daß mindestens 95% der Entwicklungszeit eingespart werden, wenn man den Tiny Generic Code Generator verwendet!

    Und damit keine Mißverständnisse aufkommen, der Tiny Generic Code Generator ist seit April 2000 (teils unter anderem Namen) veröffentlicht.

    Der Tiny Generic Code Generator ist als Plugin im MSVC6 zu verwenden. Zur Installation einfach die Datei besorgen (als Trialversion hier rauskopieren oder als identische Vollversion bei uns kaufen) und als Makro der IDE bekanntmachen und mit einem Smilie-Smarticon verknüpfen.

    Funktionweise (und die wird Euch umhauen):
    Man klickt als User auf den Smilie und der Tiny Generic Code Generator fragt zunächst, in welches Projekt die Datei(en) hinzugefügt werden sollen (natürlich nur, wenn mehrere Projekte offen sind, unnötige Fragen werden dank Intelligent If Technnologie (bald vielleicht zum Patent angemeldet) nicht gestellt. Im Folgenden wird ein Name gefragt; zu diesem Namen passend sollen dann Dateien erzeugt werden. Zur Beispiel nehmen wir uns folgende Templates:

    main.h
    //datei mit 0 bytes

    main.cpp

    #include <vhlib/vhlib.h>
    using namespace std;
    
    int main()
    {
            try
            {
                    cout<<"test"<<endl;
            }
            catch(Exception const& e)
            {
                    cerr<<e<<endl;
                    return 1;
            }
            catch(...)
            {
                    cerr<<"exception: unknown exception"<<endl;
                    return 1;
            }
            return 0;
    }
    

    default.h

    ////////////////////////////////////////////////////////////////////////////////
    // Copyright (c) 2004, Volkard Henkel
    
    #ifndef CLASS_H__UID
    #define CLASS_H__UID
    #pragma once
    
    class Class
    {
    private:
            CURSOR
    public:
    };
    
    #endif//CLASS_H__UID
    

    default.cpp

    ////////////////////////////////////////////////////////////////////////////////
    // Copyright (c) 2004, Volkard Henkel
    
    #include <vhlib/vhlib.h>
    #include "Class.h"
    
    CURSOR
    

    Sinnigerweise erzeugt der Tiny Generic Code Generator neue Dateien mit dem ersten Template passenden Namens, das er findet, während er den Verzeichnisbaum aufwärts geht. So lassen sich in höheren Verzeichnissen Vorgaben für mehr Kunden geben und für bestimmte Kunden in deren Verzeichnis andere Vorgaben oder sogar Projektbezogene Vorgaben. Alles durchsichtig und erweiterbar dank revolotionärer Use Whats Already There Technology! 0-Byte-Dateien sind simple Blockierer. Pro Verzeichnis wird zuerst der genau passende Name gesucht und dann das Default-Template (namens default). Der zuvor Eingegebene Name wird als Ersetzung für Class genommen, CLASS entsprechend in Großbuchstaben, UID ergibt einen Unique Identifier und der Cursor landet bei CURSOR.
    Es wurde bewußt auf unnötigen Bockmist verzeichtet, um eine ungeahnte Produktivitöt zu erreichen.
    Jederzeit mit viel Bockmist erweiterbar dank Open Source Technology.

    Der Tiny Generic Code Generator ist dank Open Source Technology gut erweiterbar und auch kinderleicht zum Beispiel in einen XML Data Binder umzufrickeln. Immerhin liegt eine vollwertige und praxisbewährte Programmiersprache darunter.

    Ihr wisst ja alle wie teuer XML Data Binder sind und ich glaube das wir mit diesem Beispiel euren Geschmack getroffen haben.

    Auf Beispiele wie Frameworks für 3D-Bibliotheken verzichten wir bewußt, da uns bekannte professionelle Programmierer wiederverwenbaren Code bauen und nicht Copy&Paste-Lösungen für sowas anstreben. Aus ähnlichen Überlegungen heraus verwendete unser Labor den Tiny Generic Code Generator nur bis Mitte 2004. Aber jeden Anfänger und alle Entwicklungsbüros mit mittelmäßigen Designern wird der Tiny Generic Code Generator deutlich produktiver machen. Darauf unser Wort mit Geld-Zurück-Garantie.

    Anhang (die Trial-Version):

    option explicit
    
    function IsNothing(x)
     if(TypeName(x)="Nothing") then
      IsNothing=True
     else
      IsNothing=False
     end if
    end function
    
    function CreateUid
     dim i,vResult
     for i=1 to 8
      vResult=vResult+chr(asc("0")+int(rnd*10))
     next
     CreateUid=vResult
    end function
    
    function GetProject()
     if(Application.Projects.Count=0) then
      MsgBox "Kein Projekt gefunden",vbOKOnly+vbCritical
      set GetProject=Nothing
      exit function
     end if
     if(Application.Projects.Count=1) then
      set GetProject=Application.ActiveProject
      exit function
     end if
     do
      Dim vProjectName
      vProjectName=InputBox("Name des Projekts","MakeClass",Application.ActiveProject.Name)
      if(vProjectName="") then
       set GetProject=Nothing
       exit function
      end if
      dim i
      For Each i in Application.Projects
       if(i.Name=vProjectName) then
        set GetProject=i
        exit function
       end if
      next
     loop 'endlos
    end function
    
    function FindFile(vFolder,vFso,vClassName,vFileType)
     dim vFilePath
     do
      vFilePath=vFolder.Path&"\"&vClassName&"."&vFileType
      if(vFso.FileExists(vFilePath)) then
       set FindFile=vFso.GetFile(vFilePath)
       exit function
      end if
      vFilePath=vFolder.Path&"\"&"default"&"."&vFileType
      if(vFso.FileExists(vFilePath)) then
       set FindFile=vFso.GetFile(vFilePath)
       exit function
      end if
      if(vFolder.IsRootFolder) then
       MsgBox "config file for "&vClassName&"."&vFileType&" not found",vbOKOnly+vbCritical
       set FindFile=Nothing
       exit function
      end if
      set vFolder=vFolder.ParentFolder
     loop
    end function
    
    function ProcessConfigFile(vConfigFile,vProject,vProjectFolder,vClassName,vFileType,vUid)
     dim vStream,vLine
     set vStream=vConfigFile.OpenAsTextStream(1,0)
     if vStream.AtEndOfStream then exit function
     vProject.AddFile vClassName&"."&vFileType
     Documents.Add "Text"
    
     do while not vStream.AtEndOfStream
      vLine=vStream.ReadLine
      vLine=replace(vLine,"UID",vUid)
      vLine=replace(vLine,"Class",vClassName)
      vLine=replace(vLine,"CLASS",UCase(vClassName))
      ActiveDocument.Selection=vLine
      ActiveDocument.Selection.NewLine
      ActiveDocument.Selection.StartOfLine
     loop
     ActiveDocument.Selection.FindText "CURSOR",dsMatchFromStart
     ActiveDocument.Selection.Delete
    
     ActiveDocument.Save vProjectFolder&"\"&vClassName&"."&vFileType
    end function
    
    sub MakeClass()
     randomize timer
     dim vProject,vClassName,vFso,vProjectFile,vConfigFileCpp,vConfigFileH,vUid
    
     set vProject=GetProject()
     if(IsNothing(vProject)) then exit sub
     vClassName=inputbox("Name der Klasse","MakeClass")
     if(vClassName="") then exit sub
    
     set vFso=CreateObject("Scripting.FileSystemObject")
     set vProjectFile=vFso.GetFile(vProject.FullName)
     set vConfigFileCpp=findFile(vProjectFile.ParentFolder,vFso,vClassName,"cpp")
     if(IsNothing(vConfigFileCpp)) then exit sub
     set vConfigFileH=findFile(vProjectFile.ParentFolder,vFso,vClassName,"h")
     if(IsNothing(vConfigFileH)) then exit sub
     vUid=CreateUid
     call ProcessConfigFile(vConfigFileCpp,vProject,vProjectFile.ParentFolder.Path,vClassName,"cpp",vUid)
     call ProcessConfigFile(vConfigFileH,vProject,vProjectFile.ParentFolder.Path,vClassName,"h",vUid)
    
    end sub
    


  • Kaufen, Marsch, Marsch! 😃

    MfG SideWinder



  • Danke für deine Antwort, wir freuen uns über jeden Beitrag.



  • du hast zu viel freizeit volkard



  • Darf man den auch bei Coding Contests verweden? Ich mein da haben ja die anderen keine Change mehr.



  • CodingStar schrieb:

    Darf man den auch bei Coding Contests verweden? Ich mein da haben ja die anderen keine Change mehr.

    hab noch keinen coding contest gesehen, der die verwendeten werkzeuge einschränkt. und ich hab den Tiny Generic Code Generator auch in wettbewerben verwendet. aber bei wettbewerben hat man nicht 95% zeitersparnis, sondern mitunter auch mal nur 90%, weil das keine real word examples sind (beispiel).



  • Wie integrierer ich das Programm in Visual C++ 6.0 ? WO muss ich die Trial Datei genau hinkopieren?



  • wegen der vielen anfragen nach einer download-version
    http://www.volkard.de/TGCG.dsm.rar
    und
    http://www.volkard.de/TGCG.dsm.bz2
    ein installer ist nicht in planung. CDs werden gegen eine schutzgebühr von 2Eu geliefert (zum benutzen CD-laufwerk erforderlich!).



  • Tristan.2 schrieb:

    Wie integrierer ich das Programm in Visual C++ 6.0 ? WO muss ich die Trial Datei genau hinkopieren?

    das ist egal. ich habs auf d:\source\lib\makeClass.dsm
    vielleicht hilft das hier:
    http://www.samspublishing.com/library/content.asp?b=Visual_C_PlusPlus&seqNum=154&rl=1



  • Ich führe ein erfolgreiches größeres Unternehmen. Wir sind auch international tätig und daher ist uns eine reibungslose Interoperabilität wichtig, damit unsere Produktivität und Business Security erhalten bleibt. Daher können wir natürlich auch nicht einfach schnell ein Tool einführen, sondern müssen dies vorher einem Review-Prozess unterziehen, damit wir unsere total cost of ownership nicht unnötig in die Höhe treiben. Doch zunächst habe ich ein paar einfache Fragen:

    • Existieren von diesem Tool lokalisierte Versionen? Da wir international tätig sind, möchten wir auch unseren hochqualifizierten Mitarbeitern aus aller Welt die größtmögliche user experience bieten.
    • Ist es möglich, Mehrbenutzerlizenzen zu erwerben, so dass wir nur einen Lizenz-Key in unserem qualifizierten und patentierten online-Tresor sicher ablegen müssen. Die Anzahl der Keys, die man in unserem sicheren Tresor ablegen kann ist begrenzt, um die größtmögliche Reliability zu bieten.
    • Gibt es von diesem Code generator auch ein Plugin, dass es zusammen mit dem Microsoft Visual Team Foundation Server benutzt werden kann? Und ein Outlook-Plugin wär auch nicht schlecht. 😃

    Mit freundlichem Gruß.



  • Ist es möglich jedliche Kundenwünsche mit dem Code Gererator in kürzerster Zeit zu realisieren, wieder komplet zu verwerfen und umzubauen, weil sich unsere Kunden ständig neue Ideen aus den Fingern saugen.



  • TGCG -> TGGC?



  • Optimizer schrieb:

    Ich führe ein erfolgreiches größeres Unternehmen. Wir sind auch international tätig und daher ist uns eine reibungslose Interoperabilität wichtig, damit unsere Produktivität und Business Security erhalten bleibt.

    das geht uns allen so. deine risk tolerance sollte aber mit TGCG nicht unbotmößig strapaziert werden, wie ich im folgenden darlegen werde. wir sehen auch gerne einem prospektiven benchmarking entgegen, anläßlich dessen du deine senior software architects und code review and leverage consultants mal zu und schicken kannst.

    Optimizer schrieb:

    [*]Existieren von diesem Tool lokalisierte Versionen? Da wir international tätig sind, möchten wir auch unseren hochqualifizierten Mitarbeitern aus aller Welt die größtmögliche user experience bieten.

    TGCG selbst ist wie C++ nicht lokalisierungsbedürftig. oder um genauer zu sein, versuche wie das eingedeutschte basic, in denen statt "print" "drucke" geschrieben wurde, waren nicht erfolgreich. die core technology bleibt mit gutem sinn englisch, um eine größtmögliche inter project communication zu erhalten. die user acceptance dürfte darunter nicht leiden. es steht dir aber frei, funktionen wie CreateUid zu lokalisieren und durch ErzeugeEkz zu ersetzen, alerdings mit einem durchaus erheblichen risk of astonishment. die lokalisierung ist möglich und trivial aber nicht sinnvoll.

    Optimizer schrieb:

    [*]Ist es möglich, Mehrbenutzerlizenzen zu erwerben, so dass wir nur einen Lizenz-Key in unserem qualifizierten und patentierten online-Tresor sicher ablegen müssen. Die Anzahl der Keys, die man in unserem sicheren Tresor ablegen kann ist begrenzt, um die größtmögliche Reliability zu bieten.

    ja. unsere lizenzen beziehen sich grundsätzlich auf juristische personen und umschließen die zweckgebundene benutzung durch beliebig viele mitarbeiter und erfüllungsgehilfen, solange die mitarbeiter und erfüllungsgehilfen mit der mietnehmenden person einen arbeits-, dienst- oder werkvertrag abgeschossen haben, der die benutzung des TGCG im sinne der auftragserfüllung sinnvoll erscheinen läßt. du hast sicherlich lokale unternehmen, dann muß leider jedes lokale unternehmen eine lizenz erwerben, da es der unmittelbare arbeitgeber ist. wenn die anzahl der benötigten unternehmenslizenzen dein limit überschreitet oder stark strapaziert, können wir ersatzlösungen finden. zum beispiel pro lizenz drei notarielle beglaubugungen aus verschiedenen ländern. wir helfen auch gerne, die capacity deines online-tresors zu erweitern, indem wir intrinsic scalability bottlenecks aufspüren und bei gleicher oder durch synergy effects erhöhter reliability beseitigen.

    Optimizer schrieb:

    [*]Gibt es von diesem Code generator auch ein Plugin, dass es zusammen mit dem Microsoft Visual Team Foundation Server benutzt werden kann?

    im sinne der code base maintenance ist TGCG als passive victim payload zu versehen. es wird behandelt wie jede quellcodedatei, kann von allen CMCUP herkömmlich eingebucht und ausgebucht werden. als code access policy hat sich bewährt, daß nur senior software architects schreibenden zugriff auf die core funtionality haben und bis herunter zu project managers schreibenden zugriff auf die templates.

    Und ein Outlook-Plugin wär auch nicht schlecht.

    man kann outlook verwenden, um beliebige teilmengen der active code base zu sharen und zu maintenancen.



  • zufall? schrieb:

    TGCG -> TGGC?

    nein. ich habe TGGC so viel zu verdanken, daß TGGC als kleine hommage an ihn zu verstehen ist.



  • Nach eingehender systemanalytischer Auswertung (Advanced Business
    Security Consideration) des Sachverhaltes wird der Generic Risk
    Exposure Level in einer Secondary Transitional Incidence Kategorie
    eingestuft. Das Aggregated Detriment verbleibt also im Admissible
    Range. Ein Grund, auf per se löchriger Fricklerware umzusteigen wäre
    eine drastische Gefährdung der Business Integrity, und würde, wie
    Studien gezeigt haben, bzgl. der Long-Term Profitability zu einer
    dramatischen verschlechtern führen. Betrachtet man den Zusammenhang
    zwischen Marktanteil und Meldung über Fehler, muss schlußendlich
    folgende Reasonable Business Conclusion getroffen werden: es wird
    uneingeschränkt empfohlen, TGCG zu verwenden.



  • BMVV schrieb:

    Ist es möglich jedliche Kundenwünsche mit dem Code Gererator in kürzerster Zeit zu realisieren, wieder komplet zu verwerfen und umzubauen, weil sich unsere Kunden ständig neue Ideen aus den Fingern saugen.

    ich antworte in teilen:

    BMVV schrieb:

    Ist es möglich jedliche Kundenwünsche mit dem Code Gererator in kürzerster Zeit zu realisieren

    ja, das ist doch der zweck des TGCG.

    BMVV schrieb:

    wieder komplet zu verwerfen

    dafür ist er nicht vorgesehen. außerdem ist verwerfen keine sache, die man einem automaten überlassen sollte. wie kommen auf anfrage gerne zu ihnen und verwerfen ihren code.

    BMVV schrieb:

    und umzubauen, weil sich unsere Kunden ständig neue Ideen aus den Fingern saugen

    nein, keinesfalls. nachdem dein code komplett verworfen wurde, kann er nicht mehr umgebaut werden. das liegt aber nicht an TGCG, sonder ist ein gesetzt der informationswissenschaft.



  • trollfreiesPremiumposting schrieb:

    Nach eingehender systemanalytischer Auswertung (Advanced Business
    Security Consideration) des Sachverhaltes wird der Generic Risk
    Exposure Level in einer Secondary Transitional Incidence Kategorie
    eingestuft. Das Aggregated Detriment verbleibt also im Admissible
    Range. Ein Grund, auf per se löchriger Fricklerware umzusteigen wäre
    eine drastische Gefährdung der Business Integrity, und würde, wie
    Studien gezeigt haben, bzgl. der Long-Term Profitability zu einer
    dramatischen verschlechtern führen. Betrachtet man den Zusammenhang
    zwischen Marktanteil und Meldung über Fehler, muss schlußendlich
    folgende Reasonable Business Conclusion getroffen werden: es wird
    uneingeschränkt empfohlen, TGCG zu verwenden.

    vielen dank. wir hätten nicht besser ausdrücken können, daß man bei ähnlichem effekt lieber 110 zeilen erprobten und offenen code kauft, als 110000 zeilen closed source.
    in unserer marketingabteilung ist noch eine stelle frei, hast du lust?
    kurzbewerbung an volkard@normannia.de



  • volkard schrieb:

    BMVV schrieb:

    wieder komplet zu verwerfen

    dafür ist er nicht vorgesehen. außerdem ist verwerfen keine sache, die man einem automaten überlassen sollte. wie kommen auf anfrage gerne zu ihnen und verwerfen ihren code.

    BMVV schrieb:

    und umzubauen, weil sich unsere Kunden ständig neue Ideen aus den Fingern saugen

    nein, keinesfalls. nachdem dein code komplett verworfen wurde, kann er nicht mehr umgebaut werden. das liegt aber nicht an TGCG, sonder ist ein gesetzt der informationswissenschaft.

    Schade. Da müsste der Generator noch verbessert werden, denn dieser Fall tritt doch sehr oft bei uns auf.

    Das verwerfen wird bei uns zur Zeit sehr häufig mit großer Perfektion von den oberen Etagen vorgenommen.



  • BMVV schrieb:

    Schade. Da müsste der Generator noch verbessert werden, denn dieser Fall tritt doch sehr oft bei uns auf.
    Das verwerfen wird bei uns zur Zeit sehr häufig mit großer Perfektion von den oberen Etagen vorgenommen.

    eine lösung innerhalb TGCG würde die Use Whats Already There Technology konterkariereren.
    wie bieten ein zusatztool an, das es erlaubt, wenigstens bestandteile alter code bases zu resurrecten.
    es besteht aus dem kommandozeilentool securitySafeAndBecomeAccessibleAfterChiefsBrainlag
    zu verwenden ist es ganz einfach. starte
    securitySafeAndBecomeAccessibleAfterChiefsBrainlag A B
    wobei A das zu rettende verzeichnis mit allen darin befindlichen dateien ist und B ein neuer name (am besten A mit drangehängtem datum).

    es ist unter
    http://www.volkard.de/securitySafeAndBecomeAccessibleAfterChiefsBrainlag.rar
    zu laden und kostenlos.

    die wiederzubelebenden inhalte kannst du dann unter oben definiertem verzeichnis B in deinem lieblings-dateimanager sehen, bearbeiten und sogar ins aktive projet zurückkopieren.



  • volkard schrieb:

    deine risk tolerance sollte aber mit TGCG nicht unbotmößig strapaziert werden, wie ich im folgenden darlegen werde.

    Sehr gut. Das hatte ich gehofft.

    wenn die anzahl der benötigten unternehmenslizenzen dein limit überschreitet oder stark strapaziert, können wir ersatzlösungen finden. zum beispiel pro lizenz drei notarielle beglaubugungen aus verschiedenen ländern.

    Das würde uns sehr helfen. Das wäre eine Lösung, die auch kein großartiges zurückrudern unserer bisherigen minimum license overhead policy mit sich bringen würde. Wir sehen diesbezüglich keine Integrationsprobleme, wie ein kurzes Gespräch mit meinen Prozessberatern ergeben hat.

    wir helfen auch gerne, die capacity deines online-tresors zu erweitern, indem wir intrinsic scalability bottlenecks aufspüren und bei gleicher oder durch synergy effects erhöhter reliability beseitigen.

    Die beschränkte capacity ist ein bewusst gewähltes Designziel, mit dem sich höchste Sicherheit und Performance im Einklang bringen lassen. Davon können wir auf keinen Fall abweichen. Einer wissenschaftlichen Studie zufolge sind 85% der Tresor-Benutzer nicht in der Lage, ihre Tresore so zu managen, dass gewisse Security-Regeln eingehalten werden, sobald dessen zahlreicher content ein häufiges login erfordert, was natürlich den Nutzen unserer patentierten SecureOnce® Internet Security Toolkit Suite ad absurdum führen würde. Wir würden also die oben genannte Lösung vorziehen.

    man kann outlook verwenden, um beliebige teilmengen der active code base zu sharen und zu maintenancen.

    Wir sind vor allem an einer reibungslosen Interoperabilität zwischen dem Code-Generator und gängigen IDEs und Software Engineering Tools interessiert, schließlich folgt nach dem development- der maintenance-Prozess, der sich über Jahre hinziehen kann. Unkalkulierbare Risiken können auf Grund der nicht abschätzbaren Zeitdauer des Prozesses dann erheblich an Bedeutung gewinnen. Beispielsweise benutzen wir zahlreiche UML advanced modeling tools, mit denen wir unsere Geschäftsprozesse jederzeit im Blick haben. Unsere Enterprise Web Architects haben bereits Bedenken angemeldet, da sie befürchten man könne nicht mehr so leicht von einem sauberen UML-basiertem Design ausgehen. Gibt es spezielle Zusatzkomponenten oder Plugins für gängige UML-Tools, die diese Bedenken entkräften können?


Anmelden zum Antworten