生产KeyGenerator的时候为什么产生异常

bon_jovi 2004-03-04 03:24:10
KeyGenerator keygen = KeyGenerator.getInstance("DESede");
产生异常:
Generating key. This may take some time...java.security.NoSuchAlgorithmException: Algorithm DESede not available


我用的jdk142,应该包含jce了。
...全文
68 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
相关推荐
Soft computing and nature-inspired computing both play a significant role in developing a better understanding to machine learning. When studied together, they can offer new perspectives on the learning process of machines. The Handbook of Research on Soft Computing and Nature-Inspired Algorithms is an essential source for the latest scholarly research on applications of nature-inspired computing and soft computational systems. Featuring comprehensive coverage on a range of topics and perspectives such as swarm intelligence, speech recognition, and electromagnetic problem solving, this publication is ideally designed for students, researchers, scholars, professionals, and practitioners seeking current research on the advanced workings of intelligence in computing systems. Chapter 1 ApplicationofNatured-InspiredAlgorithmsfortheSolutionofComplexElectromagnetic Problems................................................................................................................................................. 1 Massimo Donelli, University of Trento, Italy Inthelastdecadenature-inspiredOptimizerssuchasgeneticalgorithms(GAs),particleswarm(PSO), antcolony(ACO),honeybees(HB),bacteriafeeding(BFO),firefly(FF),batalgorithm(BTO),invasive weed(IWO)andothersalgorithms,hasbeensuccessfullyadoptedasapowerfuloptimizationtools inseveralareasofappliedengineering,andinparticularforthesolutionofcomplexelectromagnetic problems.Thischapterisaimedatpresentinganoverviewofnatureinspiredoptimizationalgorithms (NIOs)asappliedtothesolutionofcomplexelectromagneticproblemsstartingfromthewell-known geneticalgorithms(GAs)uptorecentcollaborativealgorithmsbasedonsmartswarmsandinspired byswarmofinsects,birdsorflockoffishes.Thefocusofthischapterisontheuseofdifferentkind ofnaturedinspiredoptimizationalgorithmsforthesolutionofcomplexproblems,inparticulartypical microwavedesignproblems,inparticularthedesignandmicrostripantennastructures,thecalibration ofmicrowavesystemsandotherinterestingpracticalapplications.Startingfromadetailedclassification andanalysisofthemostusednaturedinspiredoptimizers(NIOs)thischapterdescribesthenotonly thestructuresofeachNIObutalsothestochasticoperatorsandthephilosophyresponsibleforthe correctevolutionoftheoptimizationprocess.Theoreticaldiscussionsconcernedconvergenceissues, parameterssensitivityanalysisandcomputationalburdenestimationarereportedaswell.Successively abriefreviewonhowdifferentresearchgroupshaveappliedorcustomizeddifferentNIOsapproaches forthesolutionofcomplexpracticalelectromagneticproblemrangingfromindustrialuptobiomedical applications.ItisworthnoticedthatthedevelopmentofCADtoolsbasedonNIOscouldprovidethe engineersanddesignerswithpowerfultoolsthatcanbethesolutiontoreducethetimetomarketof specific devices, (such as modern mobile phones, tablets and other portable devices) and keep the commercialpredominance:sincetheydonotrequireexpertengineersandtheycanstronglyreducethe computationaltimetypicalofthestandardtrialerrorsmethodologies.Suchusefulautomaticdesigntools basedonNIOshavebeentheobjectofresearchsincesomedecadesandtheimportanceofthissubject iswidelyrecognized.Inordertoapplyanaturedinspiredalgorithm,theproblemisusuallyrecastas aglobaloptimizationproblem.Formulatedinsuchaway,theproblemcanbeefficientlyhandledby naturedinspiredoptimizerbydefiningasuitablecostfunction(singleormulti-objective)thatrepresent thedistancebetweentherequirementsandtheobtainedtrialsolution.Thedeviceunderdevelopment  canbeanalyzedwithclassicalnumericalmethodologiessuchasFEM,FDTD,andMoM.Asacommon feature,theseenvironmentsusuallyintegrateanoptimizerandacommercialnumericalsimulator.The chapterendswithopenproblemsanddiscussiononfutureapplications. Chapter 2 AComprehensiveLiteratureReviewonNature-InspiredSoftComputingandAlgorithms:Tabular andGraphicalAnalyses........................................................................................................................ 34 Bilal Ervural, Istanbul Technical University, Turkey Beyzanur Cayir Ervural, Istanbul Technical University, Turkey Cengiz Kahraman, Istanbul Technical University, Turkey SoftComputingtechniquesarecapableofidentifyinguncertaintyindata,determiningimprecisionof knowledge,andanalyzingill-definedcomplexproblems.Thenatureofrealworldproblemsisgenerally complexandtheircommoncharacteristicisuncertaintyowingtothemultidimensionalstructure.Analytical modelsareinsufficientinmanagingallcomplexitytosatisfythedecisionmakers’expectations.Under thisviewpoint,softcomputingprovidessignificantflexibilityandsolutionadvantages.Inthischapter, firstly,themajorsoftcomputingmethodsareclassifiedandsummarized.Thenacomprehensivereviewof eightnatureinspired–softcomputingalgorithmswhicharegeneticalgorithm,particleswarmalgorithm, antcolonyalgorithms,artificialbeecolony,fireflyoptimization,batalgorithm,cuckooalgorithm,and greywolfoptimizeralgorithmarepresentedandanalyzedundersomedeterminedsubjectheadings (classificationtopics)inadetailedway.Thesurveyfindingsaresupportedwithcharts,bargraphsand tablestobemoreunderstandable. Chapter 3 SwarmIntelligenceforElectromagneticProblemSolving................................................................... 69 Luciano Mescia, Politecnico di Bari, Italy Pietro Bia, EmTeSys Srl, Italy Diego Caratelli, The Antenna Company, The Netherlands & Tomsk Polytechnic University, Russia Johan Gielis, University of Antwerp, Belgium ThechapterwilldescribethepotentialoftheswarmintelligenceandinparticularquantumPSO-based algorithm,tosolvecomplicatedelectromagneticproblems.Thistaskisaccomplishedthroughaddressing the design and analysis challenges of some key real-world problems. A detailed definition of the conventionalPSOanditsquantum-inspiredversionarepresentedandcomparedintermsofaccuracyand computationalburden.Sometheoreticaldiscussionsconcerningtheconvergenceissuesandasensitivity analysisontheparametersinfluencingthestochasticprocessarereported. Chapter 4 ParameterSettingsinParticleSwarmOptimization........................................................................... 101 Snehal Mohan Kamalapur, K. K. Wagh Institute of Engineering Education and Research, India Varsha Patil, Matoshree College of Engineering and Research Center, India Theissueofparametersettingofanalgorithmisoneofthemostpromisingareasofresearch.Particle SwarmOptimization(PSO)ispopulationbasedmethod.TheperformanceofPSOissensitivetothe parametersettings.Intheliteratureofevolutionarycomputationtherearetwotypesofparametersettings  - parametertuningandparametercontrol.Staticparametertuningmayleadtopoorperformanceas optimalvaluesofparametersmaybedifferentatdifferentstagesofrun.Thisleadstoparametercontrol. Thischapterhastwo-foldobjectivestoprovideacomprehensivediscussiononparametersettingsandon parametersettingsofPSO.Theobjectivesaretostudyparametertuningandcontrol,togettheinsight ofPSOandimpactofparameterssettingsforparticlesofPSO. Chapter 5 ASurveyofComputationalIntelligenceAlgorithmsandTheirApplications...................................133 Hadj Ahmed Bouarara, Dr. Tahar Moulay University of Saida, Algeria Thischaptersubscribesintheframeworkofananalyticalstudyaboutthecomputationalintelligence algorithms.Thesealgorithmsarenumerousandcanbeclassifiedintwogreatfamilies:evolutionary algorithms(geneticalgorithms,geneticprogramming,evolutionarystrategy,differentialevolutionary, paddyfieldalgorithm)andswarmoptimizationalgorithms(particleswarmoptimisationPSO,antcolony optimization(ACO),bacteriaforagingoptimisation,wolfcolonyalgorithm,fireworksalgorithm,bat algorithm,cockroachescolonyalgorithm,socialspidersalgorithm,cuckoosearchalgorithm,waspswarm optimisation,mosquitooptimisationalgorithm).Wehavedetailedeachalgorithmfollowingastructured organization(theoriginofthealgorithm,theinspirationsource,thesummary,andthegeneralprocess). Thispaperisthefruitofmanyyearsofresearchintheformofsynthesiswhichgroupsthecontributions proposedbyvariousresearchersinthisfield.Itcanbethestartingpointforthedesigningandmodelling newalgorithmsorimprovingexistingalgorithms. Chapter 6 OptimizationofProcessParametersUsingSoftComputingTechniques:ACaseWithWire ElectricalDischargeMachining..........................................................................................................177 Supriyo Roy, Birla Institute of Technology, India Kaushik Kumar, Birla Institute of Technology, India J. Paulo Davim, University of Aveiro, Portugal MachiningofhardmetalsandalloysusingConventionalmachininginvolvesincreaseddemandof time,energyandcost.Itcausestoolwearresultinginlossofqualityoftheproduct.Non-conventional machining,ontheotherhandproducesproductwithminimumtimeandatdesiredlevelofaccuracy.In thepresentstudy,EN19steelwasmachinedusingCNCWireElectricaldischargemachiningwithpredefinedprocessparameters.MaterialRemovalRateandSurfaceroughnesswereconsideredasresponses forthisstudy.Thepresentoptimizationproblemissingleandaswellasmulti-response.Consideringthe complexitiesofthispresentproblem,experimentaldataweregeneratedandtheresultswereanalyzed byusingTaguchi,GreyRelationalAnalysisandWeightedPrincipalComponentAnalysisundersoft computingapproach.Responsesvarianceswiththevariationofprocessparameterswerethoroughly studiedandanalyzed;also‘bestoptimalvalues’wereidentified.Theresultshowsanimprovementin responsesfrommeantooptimalvaluesofprocessparameters.  Chapter 7 AugmentedLagrangeHopfieldNetworkforCombinedEconomicandEmissionDispatchwith FuelConstraint.................................................................................................................................... 221 Vo Ngoc Dieu, Ho Chi Minh City University of Technology, Vietnam Tran The Tung, Ho Chi Minh City University of Technology, Vietnam This chapter proposes an augmented Lagrange Hopfield network (ALHN) for solving combined economicandemissiondispatch(CEED)problemwithfuelconstraint.IntheproposedALHNmethod, theaugmentedLagrangefunctionisdirectlyusedastheenergyfunctionofcontinuousHopfieldneural network(HNN),thusthismethodcanproperlyhandleconstraintsbybothaugmentedLagrangefunction andsigmoidfunctionofcontinuousneuronsintheHNN.Fordealingwiththebi-objectiveeconomic dispatchproblem,theslopeofsigmoidfunctioninHNNisadjustedtofindthePareto-optimalfrontand thenthebestcompromisesolutionfortheproblemwillbedeterminedbyfuzzy-basedmechanism.The proposedmethodhasbeentestedonmanycasesandtheobtainedresultsarecomparedtothosefrom othermethodsavailabletheliterature.Thetestresultshaveshownthattheproposedmethodcanfind goodsolutionscomparedtotheothersforthetestedcases.Therefore,theproposedALHNcouldbea favourableimplementationforsolvingtheCEEDproblemwithfuelconstraint. Chapter 8 SpeakerRecognitionWithNormalandTelephonicAssameseSpeechUsingI-Vectorand Learning-BasedClassifier................................................................................................................... 256 Mridusmita Sharma, Gauhati University, India Rituraj Kaushik, Tezpur University, India Kandarpa Kumar Sarma, Gauhati University, India Speaker recognition is the task of identifying a person by his/her unique identification features or behaviouralcharacteristicsthatareincludedinthespeechutteredbytheperson.Speakerrecognition dealswiththeidentityofthespeaker.Itisabiometricmodalitywhichusesthefeaturesofthespeaker thatisinfluencedbyone’sindividualbehaviouraswellasthecharacteristicsofthevocalcord.Theissue becomesmorecomplexwhenregionallanguagesareconsidered.Here,theauthorsreportthedesignof aspeakerrecognitionsystemusingnormalandtelephonicAssamesespeechfortheircasestudy.Intheir work,theauthorshaveimplementedi-vectorsasfeaturestogenerateanoptimalfeaturesetandhaveused theFeedForwardNeuralNetworkfortherecognitionpurposewhichgivesafairlyhighrecognitionrate. Chapter 9 ANewSVMMethodforRecognizingPolarityofSentimentsinTwitter.......................................... 281 Sanjiban Sekhar Roy, VIT University, India Marenglen Biba, University of New York – Tirana, Albania Rohan Kumar, VIT University, India Rahul Kumar, VIT University, India Pijush Samui, NIT Patna, India Onlinesocialnetworkingplatforms,suchasWeblogs,microblogs,andsocialnetworksareintensively beingutilizeddailytoexpressindividual’sthinking.Thispermitsscientiststocollecthugeamountsof dataandextractsignificantknowledgeregardingthesentimentsofalargenumberofpeopleatascale thatwasessentiallyimpracticalacoupleofyearsback.Therefore,thesedays,sentimentanalysishasthe potentialtolearnsentimentstowardspersons,objectandoccasions.Twitterhasincreasinglybecome  a significantsocialnetworkingplatformwherepeoplepostmessagesofupto140charactersknownas ‘Tweets’.Tweetshavebecomethepreferredmediumforthemarketingsectorasuserscaninstantlyindicate customersuccessorindicatepublicrelationsdisasterfarmorequicklythanawebpageortraditional mediadoes.Inthispaper,wehaveanalyzedtwitterdataandhavepredictedpositiveandnegativetweets withhighaccuracyrateusingsupportvectormachine(SVM). Chapter 10 AutomaticGenerationControlofMulti-AreaInterconnectedPowerSystemsUsingHybrid EvolutionaryAlgorithm...................................................................................................................... 292 Omveer Singh, Maharishi Markandeshwar University, India Anewtechniqueofevaluatingoptimalgainsettingsforfullstatefeedbackcontrollersforautomatic generationcontrol(AGC)problembasedonahybridevolutionaryalgorithms(EA)i.e.geneticalgorithm (GA)-simulatedannealing(SA)isproposedinthischapter.ThehybridEAalgorithmcantakedynamic curveperformanceashardconstraintswhicharepreciselyfollowedinthesolutions.Thisisincontrast tothemodernandsinglehybridevolutionarytechniquewheretheseconstraintsaretreatedassoft/hard constraints.Thistechniquehasbeeninvestigatedonanumberofcasestudiesandgivessatisfactorysolutions. Thistechniqueisalsocomparedwithlinearquadraticregulator(LQR)andGAbasedproportionalintegral (PI)controllers.Thisprovestobeagoodalternativeforoptimalcontroller’sdesign.Thistechniquecan beeasilyenhancedtoincludemorespecificationsviz.settlingtime,risetime,stabilityconstraints,etc. Chapter 11 MathematicalOptimizationbyUsingParticleSwarmOptimization,GeneticAlgorithm,and DifferentialEvolutionandItsSimilarities.......................................................................................... 325 Shailendra Aote, Ramdeobaba College of Engineering and Management, India Mukesh M. Raghuwanshi, Yeshwantrao Chavan College of Engineering, India Tosolvetheproblemsofoptimization,variousmethodsareprovidedindifferentdomain.Evolutionary computing(EC)isoneofthemethodstosolvetheseproblems.MostlyusedECtechniquesareavailable likeParticleSwarmOptimization(PSO),GeneticAlgorithm(GA)andDifferentialEvolution(DE). Thesetechniqueshavedifferentworkingstructurebuttheinnerworkingstructureissame.Different namesandformulaearegivenfordifferenttaskbutultimatelyalldothesame.Herewetriedtofindout thesimilaritiesamongthesetechniquesandgivetheworkingstructureineachstep.Allthestepsare providedwithproperexampleandcodewritteninMATLAB,forbetterunderstanding.Herewestarted ourdiscussionwithintroductionaboutoptimizationandsolutiontooptimizationproblemsbyPSO,GA andDE.Finally,wehavegivenbriefcomparisonofthese. Chapter 12 GA_SVM:AClassificationSystemforDiagnosisofDiabetes.......................................................... 359 Dilip Kumar Choubey, Birla Institute of Technology Mesra, India Sanchita Paul, Birla Institute of Technology Mesra, India Themodernsocietyispronetomanylife-threateningdiseaseswhichifdiagnosisearlycanbeeasily controlled.Theimplementationofadiseasediagnosticsystemhasgainedpopularityovertheyears.The mainaimofthisresearchistoprovideabetterdiagnosisofdiabetes.Therearealreadyseveralexisting methods,whichhavebeenimplementedforthediagnosisofdiabetes.Inthismanuscript,firstly,Polynomial Kernel,RBFKernel,SigmoidFunctionKernel,LinearKernelSVMusedfortheclassificationofPIDD.  SecondlyGAusedasanAttributeselectionmethodandthenusedPolynomialKernel,RBFKernel, SigmoidFunctionKernel,LinearKernelSVMonthatselectedattributesofPIDDforclassification.So, herecomparedtheresultswithandwithoutGAinPIDD,andLinearKernelprovedbetteramongallof thenotedaboveclassificationmethods.ItdirectlyseemsinthepaperthatGAisremovinginsignificant features,reducingthecostandcomputationtimeandimprovingtheaccuracy,ROCofclassification. Theproposedmethodcanbealsousedforotherkindsofmedicaldiseases. Chapter 13 TheInsectsofNature-InspiredComputationalIntelligence............................................................... 398 Sweta Srivastava, B.I.T. Mesra, India Sudip Kumar Sahana, B.I.T. Mesra, India Thedesirablemeritsoftheintelligentcomputationalalgorithmsandtheinitialsuccessinmanydomains haveencouragedresearcherstoworktowardstheadvancementofthesetechniques.Amajorplunge inalgorithmicdevelopmenttosolvetheincreasinglycomplexproblemsturnedoutasbreakthrough towardsthedevelopmentofcomputationalintelligence(CI)techniques.Natureprovedtobeoneofthe greatestsourcesofinspirationfortheseintelligentalgorithms.Inthischapter,computationalintelligence techniquesinspiredbyinsectsarediscussed.Thesetechniquesmakeuseoftheskillsofintelligent agentbymimickinginsectbehaviorsuitablefortherequiredproblem.Thediversitiesinthebehaviorof theinsectfamiliesandsimilaritiesamongthemthatareusedbyresearchersforgeneratingintelligent techniquesarealsodiscussedinthischapter. Chapter 14 Bio-InspiredComputationalIntelligenceandItsApplicationtoSoftwareTesting............................ 429 Abhishek Pandey, UPES Dehradun, India Soumya Banerjee, BIT Mesra, India Bioinspiredalgorithmsarecomputationalprocedureinspiredbytheevolutionaryprocessofnature andswarmintelligencetosolvecomplexengineeringproblems.Intherecenttimesithasgainedmuch popularityintermsofapplicationstodiverseengineeringdisciplines.Nowadaysbioinspiredalgorithms arealsoappliedtooptimizethesoftwaretestingprocess.Inthischapterauthorswilldiscusssomeof thepopularbioinspiredalgorithmsandalsogivestheframeworkofapplicationofthesealgorithmsfor softwaretestingproblemssuchastestcasegeneration,testcaseselection,testcaseprioritization,test caseminimization.Bioinspiredcomputationalalgorithmsincludesgeneticalgorithm(GA),genetic programming (GP), evolutionary strategies (ES), evolutionary programming (EP) and differential evolution(DE)intheevolutionaryalgorithmscategoryandAntcolonyoptimization(ACO),Particle swarmoptimization(PSO),ArtificialBeeColony(ABC),Fireflyalgorithm(FA),Cuckoosearch(CS), Batalgorithm(BA)etc.intheSwarmIntelligencecategory(SI).  Chapter 15 Quantum-InspiredComputationalIntelligenceforEconomicEmissionDispatchProblem.............. 445 Fahad Parvez Mahdi, Universiti Teknologi Petronas, Malaysia Pandian Vasant, Universiti Teknologi Petronas, Malaysia Vish Kallimani, Universiti Teknologi Petronas, Malaysia M. Abdullah-Al-Wadud, King Saud University, Saudi Arabia Junzo Watada, Universiti Teknologi Petronas, Malaysia Economicemissiondispatch(EED)problemsareoneofthemostcrucialproblemsinpowersystems. Growingenergydemand,limitedreservesoffossilfuelandglobalwarmingmakethistopicintothe centerofdiscussionandresearch.Inthischapter,wewilldiscusstheuseandscopeofdifferentquantum inspiredcomputationalintelligence(QCI)methodsforsolvingEEDproblems.Wewillevaluateeach previouslyusedQCImethodsforEEDproblemanddiscusstheirsuperiorityandcredibilityagainst othermethods.WewillalsodiscussthepotentialityofusingotherquantuminspiredCImethodslike quantumbatalgorithm(QBA),quantumcuckoosearch(QCS),andquantumteachingandlearningbased optimization(QTLBO)techniqueforfurtherdevelopmentinthisarea. Chapter 16 IntelligentExpertSystemtoOptimizetheQuartzCrystalMicrobalance(QCM)Characterization Test:IntelligentSystemtoOptimizetheQCMCharacterizationTest............................................... 469 Jose Luis Calvo-Rolle, University of A Coruña, Spain José Luis Casteleiro-Roca, University of A Coruña, Spain María del Carmen Meizoso-López, University of A Coruña, Spain Andrés José Piñón-Pazos, University of A Coruña, Spain Juan Albino Mendez-Perez, Universidad de La Laguna, Spain Thischapterdescribesanapproachtoreducesignificantlythetimeinthefrequencysweeptestofa QuartzCrystalMicrobalance(QCM)characterizationmethodbasedontheresonanceprincipleofpassive components.Onthistest,thespenttimewaslarge,becauseitwasnecessarycarryoutabigfrequency sweepduetothefactthattheresonancefrequencywasunknown.Moreover,thisfrequencysweephas greatstepsandconsequentlylowaccuracy.Then,itwasnecessarytoreducethesweepsanditssteps graduallywiththeaimtoincreasetheaccuracyandtherebybeingabletofindtheexactfrequency.An intelligentexpertsystemwascreatedasasolutiontothedisadvantagedescribedofthemethod.This modelprovidesamuchsmallerfrequencyrangethantheinitiallyemployedwiththeoriginalproposal. Thisfrequencyrangedependsofthecircuitcomponentsofthemethod.Then,thankstothenewapproach oftheQCMcharacterizationisachievedbetteraccuracyandthetesttimeisreducedsignificantly. Chapter 17 OptimizationThroughNature-InspiredSoft-ComputingandAlgorithmonECGProcess................ 489 Goutam Kumar Bose, Haldia Institute of Technology, India Pritam Pain, Haldia Institute of Technology, India Inthepresentresearchworkselectionofsignificantmachiningparametersdependingonnature-inspired algorithmisprepared,duringmachiningalumina-aluminuminterpenetratingphasecompositesthrough electrochemical grinding process. Here during experimentation control parameters like electrolyte concentration(C),voltage(V),depthofcut(D)andelectrolyteflowrate(F)areconsidered.Theresponse dataareinitiallytrainedandtestedapplyingArtificialNeuralNetwork.Theparadoxicalresponseslike  highermaterialremovalrate(MRR),lowersurfaceroughness(Ra),lowerovercut(OC)andlowercutting force(Fc)areaccomplishedindividuallybyemployingCuckooSearchAlgorithm.Amultiresponse optimizationforalltheresponseparametersiscompiledprimarilybyusingGeneticalgorithm.Finally, inordertoachieveasinglesetofparametriccombinationforalltheoutputssimultaneouslyfuzzy basedGreyRelationalAnalysistechniqueisadopted.Thesenature-drivensoftcomputingtechniques corroborateswellduringtheparametricoptimizationofECGprocess. Chapter 18 AnOverviewoftheLastAdvancesandApplicationsofArtificialBeeColonyAlgorithm.............. 520 Airam Expósito Márquez, University of La Laguna, Spain Christopher Expósito-Izquierdo, University of La Laguna, Spain SwarmIntelligenceisdefinedascollectivebehaviorofdecentralizedandself-organizedsystemsofa naturalorartificialnature.Inthelastyearsandtoday,SwarmIntelligencehasproventobeabranchof ArtificialIntelligencethatisabletosolvingefficientlycomplexoptimizationproblems.SomeofwellknownexamplesofSwarmIntelligenceinnaturalsystemsreportedintheliteraturearecolonyofsocial insectssuchasbeesandants,birdflocks,fishschools,etc.Inthisrespect,ArtificialBeeColonyAlgorithm isanatureinspiredmetaheuristic,whichimitatesthehoneybeeforagingbehaviourthatproducesan intelligentsocialbehaviour.ABChasbeenusedsuccessfullytosolveawidevarietyofdiscreteand continuousoptimizationproblems.InordertofurtherenhancethestructureofArtificialBeeColony, thereareavarietyofworksthathavemodifiedandhybridizedtoothertechniquesthestandardversion ofABC.Thisworkpresentsareviewpaperwithasurveyofthemodifications,variantsandapplications oftheArtificialBeeColonyAlgorithm. Chapter 19 ASurveyoftheCuckooSearchandItsApplicationsinReal-WorldOptimizationProblems........... 541 Christopher Expósito-Izquierdo, University of La Laguna, Spain Airam Expósito-Márquez, University of La Laguna, Spain ThechapterathandseekstoprovideageneralsurveyoftheCuckooSearchAlgorithmanditsmost highlightedvariants.TheCuckooSearchAlgorithmisarelativelyrecentnature-inspiredpopulationbasedmeta-heuristicalgorithmthatisbaseduponthelifestyle,egglaying,andbreedingstrategyof somespeciesofcuckoos.Inthiscase,theLévyflightisusedtomovethecuckooswithinthesearch spaceoftheoptimizationproblemtosolveandobtainasuitablebalancebetweendiversificationand intensification.Asdiscussedinthischapter,theCuckooSearchAlgorithmhasbeensuccessfullyapplied toawiderangeofheterogeneousoptimizationproblemsfoundinpracticalapplicationsoverthelast fewyears.Someofthereasonsofitsrelevancearethereducednumberofparameterstoconfigureand itseaseofimplementation.
英文第二版 Preface This book is designed for a two-semester sequence in computer science, beginning with what is typically known as Data Structures (CS-2) and con- tinuing with advanced data structures and algorithm analysis. The content of the CS-2 course has been evolving for some time. Although there is some general consensus concerning topic coverage, con- siderable disagreement still exists over the details. One uniformly accepted topic is principles of software development, most notably the concepts of encapsulation and information hiding. Algorithmically, all CS-2 courses tend to include an introduction to running-time analysis, recursion, basic sorting algorithms, and elementary data structures. An advanced course is offered at many universities that covers topics in data structures, algorithms, and running-time analysis at a higher level. The material in this text has been designed for use in both levels of courses, thus eliminating the need to pur- chase a second textbook. Although the most passionate debates in CS-2 revolve around the choice of a programming language, other fundamental choices need to be made, including whether to introduce object-oriented design or object-based design early, the level of mathematical rigor, the appropriate balance between the implementation of data struc- tures and their use, and programming details related to the language chosen. My goal in writing this text was to provide a practical introduction to data structures and algorithms from the viewpoint of abstract thinking and problem solving. I tried to cover all of the important details concerning the data structures, their analyses, and their C++ implementations, while staying away from data structures that are theoretically interesting but not widely used. It is impossible to cover in a single course all the different data struc- tures, including their uses and the analysis, described in thi
Cyber attribution is the process by which the identity of an actor or aggressor in a cyberactivity is determined. Conducting this process presents several unique problems; chief among them are that the technical artifacts produced by cyberattacks are difficult to understand, and it is easy (and quite useful) for an actor to perform deception. The process, flaws, outcomes, and methodology of cyber attribution have become a subject of increasingly broad interest over the past few years. Part of this is due to the increase in cyberactivity and the intersection of that cyberactivity with the public sphere. For example, it used to be that a major company being hacked would be of concern only to that company and its customers; however, the compromise of Sony Pictures allegedly by North Korea in late 2014 elevated public interest in the accurate attribution of cyberaggression to the national level. The analysis that underpins cyber attribution involves many diverse sources of data: network forensics, host forensics, malware analysis, and code similarity, to name a few. Like intelligence analysis, independent and diverse sources of reporting strengthen an analytic argument. In cybersecurity, an adversary might find that they have complete control over which hosts they use across the campaigns they conduct but very little control over which malware they use. An attribution analysis that considers only network level data would be inadequate against such an adversary. Why do we perform cyber attribution, and who is the customer of cyber attribution decisions? Law enforcement and the courts care about cyber attribution decisions when making investigative or legal decisions. In other spheres, attribution decisions can be used to help determine the direction and proportion of an organizational response. For example, if a commercial company can determine if an attacker is part of an unsophisticated hacktivist gang rather than a sophisticated criminal enterprise, they could simply re-install the compromised computers as a defensive response rather than engaging with law enforcement. Likewise, according to Wheeler et al., “many offensive techniques, such as computer network attack, legal action (e.g., arrests and lawsuits), and kinetic energy attacks, can only be deployed if the source of the attack can be attributed with high confidence” [7]. © The Author(s) 2018 1 E. Nunes et al., Artificial Intelligence Tools for Cyber Attribution, SpringerBriefs in Computer Science, https://doi.org/10.1007/978-3-319-73788-1_1 2 1 Introduction In the spring of 2017, the internet was gripped by a widespread ransomware attack, dubbed WannaCry; the ransomware spread as a worm affecting 300,000 machines in 150 countries, holding files hostage with encryption and promising decryption if a payment was made to a Bitcoin address. Hackers took advantage of the fact that many systems were not updated with the patch released by Microsoft, leaving them vulnerable. The attack was in fact discussed on darkweb forums in several languages including English and Russian as identified by cybersecurity company CYR3CON [6]; they also reported that hackers choose medical institutions as prime targets based on the history of paid ransom from similar institutions. Both the distributed nature of the attack and the use of Bitcoin as payment obscure the true source and authorship of the worm. These features also limited the data available to perform attribution, because no central or hosted command and control systems were needed. In this setting, the only artifacts available for attribution were the linguistic properties of the ransom message, and the code that made up the worm itself. An initial analysis and comparison of the ransomware code identified similarity in the code between WannaCry and malware that had previously been attributed to the “Lazarus Group.” However, other explanations exist for this one point of similarity: perhaps the WannaCry authors borrowed from the Lazarus code after it was published; perhaps both authors copied from a third-party open source repository; perhaps this line was copied without the intent to deceive, because it is well known that developers will copy and paste code whenever possible. Our research has focused on establishing a more rigorous and scientific basis for making attribution decisions. When the stakes are high, it is important to either make the correct decision, or understand the possibilities for deception and gather the additional information needed to make the correct decision. Having a single data point, as in the WannaCry example, could bias the analysis by giving too much weight to a single source. In addition to researching and applying artificial intelligence tools to cyber attribution, we also ask: how do researchers train and evaluate these tools? Using data gathered from the real world is problematic for a few reasons. First, it is difficult to get real-world data due to the sensitive nature of the data. Additionally, even if the data were available, it is difficult to trust ground truth about that data. Could attackers’ deceptions go unnoticed in this data? Who can say? To enable researchers to develop and evaluate their tools, we used data from capture-the-flag (CTF) contests, where access to the ground truth is available. We also present frameworks for executing and gathering your own CTF based data, while encouraging and monitoring attempts at deception. In this book, we present the results of a research program that focuses on using artificial intelligence tools to enhance the cyber attribution process. In Chap. 2, we introduce a dataset collected from the capture-the-flag (CTF) event at DEFCON that has the identity of the attacker team (ground truth); the lack of such ground truth has limited previous studies to evaluate proposed models. As a first step, we use standard classification techniques to identify the attacker and summarize the results discussed in [1]. References 3 In Chap. 3, we propose a probabilistic structured argumentation framework that arises from the extension of Presumptive Defeasible Logic Programming (PreDeLP) with probabilistic models, and argue that this formalism is especially suitable for handling such contradictory and uncertain data. The framework has been demonstrated—via a case study—to handle cyber attribution [4]. In Chap.4, we continue developing the DeLP3E model introduced in the previous chapter. We first propose a non-prioritized class of revision operators called AFO (Annotation Function-based Operators), and then go on to argue that in some cases it may be desirable to define revision operators that take quantitative aspects into account. As a result, we propose the QAFO (Quantitative Annotation Function-based Operators) class of operators, a subclass of AFO, and study the complexity of several problems related to their specification and application in revising knowledge bases. we present an algorithm for computing the probability that a literal is warranted in a DeLP3E knowledge base, and discuss how it could be applied towards implementing QAFO-style operators that compute approximations rather than exact operations [5]. In Chap. 5, we build argumentation models based on a formal reasoning frame- work called DeLP (Defeasible Logic Programming). The models are evaluated on the CTF data discussed in Chap. 2, comparing the performance of standard machine learning techniques with the proposed framework [2]. Finally, we discuss a capture-the-flag based framework to produce data with deception that can be used to evaluate proposed cyber attribution models—this framework is available as open source software [3].
ICS - Internet Component Suite - V8 - Delphi 7 to RAD Studio 10 Seattle ======================================================================= (Aka FPIETTE's Components) Revised: March 3, 2016 http://www.overbyte.be/ http://wiki.overbyte.be/ Table of content: ----------------- - Legal issues - Donate - Register - Contributions - Latest Versions - Version Control repository - Installation - Available VCL Components - Sample applications - About SSL - Support - Release notes - Midware - Known problems - Special thanks Legal issues: ------------- Copyright (C) 1997-2016 by Fran鏾is PIETTE Rue de Grady 24, 4053 Embourg, Belgium SSL implementation includes code written by Arno Garrels, Berlin, Germany, contact: ICS is freeware. This software is provided 'as-is', without any express or implied warranty. In no event will the author be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented, you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. 4. You must register this software by sending a picture postcard to the author. Use a nice stamp and mention your name, street address, EMail address and any comment you like to say. 5. As this code make use of OpenSSL, your rights are restricted by OpenSSL license as soon as you use any SSL feature. See http://www.openssl.org for details. Donate ------ ICS is freeware. You can use it without paying anything except the registration postcard (see "register" below). But of course donations are welcome. You can send cash (Euro currency or US Dollars) in an envelop to my street address or buy a gift certificate at Amazon in the UK. I will then use it to buy books. Here is the direct URL at Amazon UK (nearest to my home, please don't use another): http://www.amazon.co.uk/exec/obidos/gc-email-order1/ref=g_gc_email/202-6198323-6681414 For more generous amount, contact me by email. Register -------- ICS is freeware. If you use the components, you must register by sending a picture postcard showing the area you live in and some beautiful stamps for my kids who are stamp collectors. Do not use an envelop, I collect USED postcards sent to me. Write on the postcard that it is your ICS registration. Address your card to: Francois PIETTE, rue de Grady 24, 4053 Embourg, Belgium. Don't forget to mention your name, street address, EMail and web site. Contributions: -------------- ICS has been designed by Fran鏾is PIETTE but many other peoples are working on the components and sample programs. The history of changes in each source file list all developers having contributed (When no name is given, the change is by F. Piette). I can't list all contributors here but I want to specially thanks two specially active contributors: - Arno Garrels - Angus Robertson Latest versions: --------------- The latest versions of ICS can be downloaded from the ICS Wiki web site: http://wiki.overbyte.be/wiki/index.php/ICS_Download ICS V5 and V6 are archive releases no longer updated, last supported release was 2007. ICS V7 is a stable release that may still be updated for major bugs, but not for new releases of Delphi, latest it supported was XE3. ICS V8 is the current development release which is held in a public Version Control repository that is zipped each night for easy download. The download page above also includes the OpenSSL binaries needed to support SSL. ICS V8 supports Delphi 64-bit and Mac OS-X projects. Note that latest C++ Builder version supported is XE3 (lack of spare time, sorry). ICS V9 is in early development and is planned to support Android. There are no current plans for ICS for iOS. Version Control repository: --------------------------- svn://svn.overbyte.be/ics or http://svn.overbyte.be:8443/svn/ics (Usercode = ics, password = ics) Installation: ------------- ICS V8 has been designed for Embarcadero Delphi 2009 and up, and C++ Builder 2009 and up, but is fully compatible with Borland Delphi 7 and CodeGear 2006 and 2007. Embarcadero RAD Studio includes Delphi and C++ Builder. http://www.embarcadero.com/ With Delphi XE2 and later, VCL 64-bit Windows targets are supported for Delphi only. Currently FireMonkey is partly supported for Delphi only (there are still a few non-ported components). ICS for Mac OSX is currently experimental. The zip file has sub-directories in it. You must use the WinZip "Use folder names" option to restore this directory tree or you will have problems because the files would not be in their proper subdirectories. Please note most of these directories are differently named to ICS V7 and earlier, to ease support of multiple versions of Delphi and platforms, and to ease location of similar sample projects. Please don't install V8 over an existing V7 installation, it will be a mess of old and new. This is the new V8 sub-directory layout: .\ Info directory .\Install Component packages project groups for all versions .\Packages (was Delphi\Vc32) Delphi (7 and up) and C++Builder (2006 and up) packages projects .\Source (was Delphi\Vc32) ICS Delphi source code built into packages .\Source\Include (was Delphi\Vc32) .inc files (including OverbyteIcsDefs.inc) .\Source\Extras (was Delphi\Vc32) Extra source code not built into packages .\Source\zobj125 (was Delphi\Vc32) ZLIB C OBJ include files .\Lib Unit output directories for all package builds, subdirectories | for 2007+ will be created on building the packages \$(Config) Release / Debug | \$(Platform) Win32 / Win64 / OSX32 | \ D7..XE8, 10 Seattle includes .dcu and .dfm files for Delphi and .obj and .hpp files for C++ Builder .\Samples Delphi Win32/Win64 common source for all demos .\Samples\delphi\BroswerDemo Delphi Win32/Win64 Web Browser sample application (all Delphi versions) .\Samples\delphi\BroswerDemo\Resources Resource file, web pages and movie linked into browser demo .\Samples\delphi\FtpDemos Delphi Win32/Win64 FTP sample applications (all Delphi versions) .\Samples\delphi\MailNewsDemos Delphi Win32/Win64 SMTP, POP3, NNTP sample applications (all Delphi versions) .\Samples\delphi\MiscDemos Delphi Win32/Win64 Miscellaneous applications (all Delphi versions) .\Samples\delphi\OtherDemos Delphi Win32/Win64 DNS, Ping, SNMP, Syslog sample applications (all Delphi versions) .\Samples\delphi\PlatformDemos Delphi FireMonkey and cross-platform samples (Delphi XE2+) .\Samples\delphi\SocketDemos Delphi Win32/Win64 Socket sample applications (all Delphi versions) .\Samples\delphi\sslinternet Delphi Win32/Win64 SSL-enabled sample applications (all Delphi versions) .\Samples\delphi\WebDemos Delphi Win32/Win64 HTTP sample applications (all Delphi versions) .\Samples\delphi\WebDemos\WebAppServerData Directory for WebAppServ demo data files .\Samples\delphi\WebDemos\WebServData Directory for WebServ demo data files .\Samples\cpp\internet C++Builder sample applications .\Samples\cpp\internet\cb2006 C++Builder 2006 projects .\Samples\cpp\internet\cb2007 C++Builder 2007 projects .\Samples\cpp\internet\cb2009 C++Builder 2009 projects .\Samples\cpp\internet\cb2010 C++Builder 2010 projects .\Samples\cpp\internet\cbXE C++Builder XE projects .\Samples\cpp\internet\cbXE2 C++Builder XE2 projects UPGRADING and REINSTALLING Uninstall an existing ICS package (Menu | Component | Install Packages, select the component package and click Remove). Rename the old ICS directory and unzip to a new or empty directory, remove the old path from the library path and add either the new .\Source directory to the library path under Tools | Options |... or the appropriate .\Lib subdirectory according to version, ie .\Lib\Debug\Win32\D2007 for Delphi 2007. The latter has the advantage that the ICS source code won't be recompiled whenever your project is build. Also under Tools | Options |... add the new .\Source directory to the Browsing path. All DELPHI and C++ BUILDER VERSIONS/WIN32 Always upgrade your compiler with the latest update available from Embarcadero. Always update your system with http://windowsupdate.microsoft.com SSL or not SSL? By default the SSL code is compiled into the run-time package and additional SSL- enabled components are installed. In order to not compile the SSL code into the run-time package and to not install the SSL-Enabled components you need to remove the conditional define USE_SSL from both the run-time and design-time package. However if you do not build your applications with run-time packages it is recommended to build the packages with default settings. The SSL code will the be compiled into your applications depending on whether the conditional define USE_SSL is set in the project options or not (this requires having the .\Source directory in either in the library path or in projects Search path). Actual use of SSL in your applications also requires the OpenSSL files LIBEAY32.DLL and SSLEAY32.DLL being available somewhere in the path. Note different DLLs are needed for Win32 and Win64 applications. The ICS distribution includes the latest Win32 OpenSSL files in the .\OpenSSL-Win32 directory and the two main DLLs duplicated in .\Samples\delphi\sslinternet. Other OpenSSL files, including older and Win64, may be downloaded from: http://wiki.overbyte.be/wiki/index.php/ICS_Download INSTALLATION USING THE INSTALL PROJECT GROUPS For each Delphi and C++ Builder version one project group is provided in directory .\Install: Delphi 7 : D7Install.bpg Delphi 2006 : D2006Install.bdsgroup Delphi 2007 : D2007Install.groupproj Delphi 2009 : D2009Install.groupproj Delphi 2010 : D2010Install.groupproj Delphi XE : DXeInstall.groupproj Delphi XE2 : DXe2Install.groupproj // VCL only, no FireMonkey components Delphi XE2 : DXe2InstallVclFmx.groupproj // Both VCL and FireMonkey components Delphi XE3 : DXe3Install.groupproj // VCL only, no FireMonkey components Delphi XE3 : DXe3InstallVclFmx.groupproj // Both VCL and FireMonkey components Delphi XE4 : DXe4Install.groupproj // VCL only, no FireMonkey components Delphi XE4 : DXe4InstallVclFmx.groupproj // Both VCL and FireMonkey components Delphi XE5 : DXe5Install.groupproj // VCL only, no FireMonkey components Delphi XE5 : DXe5InstallVclFmx.groupproj // Both VCL and FireMonkey components Delphi XE6 : DXe6Install.groupproj // VCL only, no FireMonkey components Delphi XE6 : DXe6InstallVclFmx.groupproj // Both VCL and FireMonkey components Delphi XE7 : DXe7Install.groupproj // VCL only, no FireMonkey components Delphi XE7 : DXe7InstallVclFmx.groupproj // Both VCL and FireMonkey components Delphi XE8 : DXe8Install.groupproj // VCL only, no FireMonkey components Delphi XE8 : DXe8InstallVclFmx.groupproj // Both VCL and FireMonkey components Delphi 10 Seattle : D10SInstall.groupproj // VCL only, no FireMonkey components Delphi 10 Seattle : D10SInstallVclFmx.groupproj // Both VCL and FireMonkey components C++ Builder 2006 : CB2006Install.bdsgroup C++ Builder 2007 : CB2007Install.groupproj C++ Builder 2009 : CB2009Install.groupproj C++ Builder 2010 : CB2010Install.groupproj C++ Builder XE : CBXeInstall.groupproj C++ Builder XE2 : CBXe2Install.groupproj // VCL only no FireMonkey components C++ Builder XE2 : CBXe2InstallVclFmx.groupproj // Both VCL and FireMonkey components C++ Builder XE3 : CBXe3InstallVclFmx.groupproj // Both VCL and FireMonkey components 1 - Do a File/Open Project, navigate to the Install directory, select the correct file and open it. The project manager view should now display two package projects, one run-time and one design-time package. The run-time package name contains the "Run" suffix. The design-time package name contains the "Design" suffix. 2 - Select and Build the run-time package (do not install). 3 - Select and Install the design-time package. After a few seconds, you should have a dialog box telling you the package has been installed with a bunch of new components registered in the Tool Palette under "Overbyte ICS" and "Overbyte ICS SSL". Then do a "Save All" and a "Close All". 4 - One package is installed, called 'Overbyte ICS Design-Time Package for Delphi xxx'. 5 - Various directories under .\Samples\delphi\ include samples that illustrate use of all the ICS components, see later. FIREMONKEY CROSS PLATFORM PACKAGES: 1 - For XE2 and later, DXe?Install (where ? is the version) installs VCL components only, while DXe?InstallVclFmx also installs FireMonkey cross platform components (three run time packages). In order to use this feature first uninstall the old design-time package. 2 = Build all three run-time packages for all available platforms (32-bit and 64-bit Windows and Mac OS X) in the order they are listed in project manager. 3 - Next build and install the three design-time packages in the order they are listed in project manager. 4 - Three packages are installed, called: 'Overbyte ICS Common Design-Time Package for Delphi xxx' 'Overbyte ICS FMX Design-Time Package for Delphi xxx' 'Overbyte ICS VCL Design-Time Package for Delphi xxx' Note that the new packaging is still beta/alpha, both package names and included units might change in a future beta drop. The old VCL packages are still there however they do no longer support FireMonkey and of course only one set of packages can be installed in the IDE at the same time, if you want both VCL and FMX install DXe2InstallVclFmx.groupproj only. Currently the XE2 package cache is buggy and should be disabled by adding the -nocache parameter. 5 - The .\Samples\delphi\PlatformDemos\ folder contains FireMonkey sample projects that may all be built with FireMonkey for Mac OS X (and Windows). ALTERNATE INSTALLATION USING THE PACKAGE PROJECT FILES: For each Delphi and C++ Builder version two package project files exist in the .\Packages directory. One run-time and one design-time package project file. The run-time file name contains the "Run" suffix. The design-time file name contains the "Design" suffix. PACKAGE PROJECT FILE NAMES - VCL: Delphi 7 : OverbyteIcsD7Run.dpk, OverbyteIcsD7Design.dpk Delphi 2006 : OverbyteIcsD2006Run.bdsproj, OverbyteIcsD2006Design.bdsproj Delphi 2007 : OverbyteIcsD2007Run.dproj, OverbyteIcsD2007Design.dproj Delphi 2009 : OverbyteIcsD2009Run.dproj, OverbyteIcsD2009Design.dproj Delphi 2010 : OverbyteIcsD2010Run.dproj, OverbyteIcsD2010Design.dproj Delphi XE : OverbyteIcsDXeRun.dproj, OverbyteIcsDXeDesign.dproj Delphi XE2 : OverbyteIcsDXe2Run.dproj, OverbyteIcsDXe2Design.dproj Delphi XE3 : OverbyteIcsDXe3Run.dproj, OverbyteIcsDXe3Design.dproj Delphi XE4 : OverbyteIcsDXe4Run.dproj, OverbyteIcsDXe4Design.dproj Delphi XE5 : OverbyteIcsDXe5Run.dproj, OverbyteIcsDXe5Design.dproj Delphi XE6 : OverbyteIcsDXe6Run.dproj, OverbyteIcsDXe6Design.dproj Delphi XE7 : OverbyteIcsDXe7Run.dproj, OverbyteIcsDXe7Design.dproj Delphi XE8 : OverbyteIcsDXe8Run.dproj, OverbyteIcsDXe8Design.dproj Delphi 10 Seattle : OverbyteIcsD10SRun.dproj, OverbyteIcsD10SDesign.dproj C++ Builder 2006 : OverbyteIcsCB2006Run.bdsproj, OverbyteIcsCB2006Design.bdsproj C++ Builder 2007 : OverbyteIcsCB2007Run.cbproj, OverbyteIcsCB2007Design.cbproj C++ Builder 2009 : OverbyteIcsCB2009Run.cbproj, OverbyteIcsCB2009Design.cbproj C++ Builder 2010 : OverbyteIcsCB2010Run.cbproj, OverbyteIcsCB2010Design.cbproj C++ Builder XE : OverbyteIcsCBXeRun.cbproj, OverbyteIcsCBXeDesign.cbproj C++ Builder XE2 : OverbyteIcsCBXe2Run.cbproj, OverbyteIcsCBXe2Design.cbproj C++ Builder XE3 : OverbyteIcsCBXe3Run.cbproj, OverbyteIcsCBXe3Design.cbproj PACKAGE PROJECT FILE NAMES - FireMonkey and VCL: Delphi XE2 FMX/VCL : IcsCommonDXe2Run.dproj, IcsCommonDXe2Design.dproj Delphi XE2 VCL : IcsVclDXe2Run.dproj, IcsVclDXe2Design.dproj Delphi XE2 FMX : IcsFmxDXe2Run.dproj, IcsFmxDXe2Design.dproj Delphi XE3 FMX/VCL : IcsCommonDXe3Run.dproj, IcsCommonDXe3Design.dproj Delphi XE3 VCL : IcsVclDXe3Run.dproj, IcsVclDXe3Design.dproj Delphi XE3 FMX : IcsFmxDXe3Run.dproj, IcsFmxDXe3Design.dproj Delphi XE4 FMX/VCL : IcsCommonDXe4Run.dproj, IcsCommonDXe4Design.dproj Delphi XE4 VCL : IcsVclDXe4Run.dproj, IcsVclDXe4Design.dproj Delphi XE4 FMX : IcsFmxDXe4Run.dproj, IcsFmxDXe4Design.dproj Delphi XE5 FMX/VCL : IcsCommonDXe5Run.dproj, IcsCommonDXe5Design.dproj Delphi XE5 VCL : IcsVclDXe5Run.dproj, IcsVclDXe5Design.dproj Delphi XE5 FMX : IcsFmxDXe5Run.dproj, IcsFmxDXe5Design.dproj Delphi XE6 FMX/VCL : IcsCommonDXe6Run.dproj, IcsCommonDXe6Design.dproj Delphi XE6 VCL : IcsVclDXe6Run.dproj, IcsVclDXe6Design.dproj Delphi XE6 FMX : IcsFmxDXe6Run.dproj, IcsFmxDXe6Design.dproj Delphi XE7 FMX/VCL : IcsCommonDXe7Run.dproj, IcsCommonDXe7Design.dproj Delphi XE7 VCL : IcsVclDXe7Run.dproj, IcsVclDXe7Design.dproj Delphi XE7 FMX : IcsFmxDXe7Run.dproj, IcsFmxDXe7Design.dproj Delphi XE8 FMX/VCL : IcsCommonDXe8Run.dproj, IcsCommonDXe8Design.dproj Delphi XE8 VCL : IcsVclDXe8Run.dproj, IcsVclDXe8Design.dproj Delphi XE8 FMX : IcsFmxDXe8Run.dproj, IcsFmxDXe8Design.dproj Delphi 10 Seattle FMX/VCL: IcsCommonD10SRun.dproj, IcsCommonD10SDesign.dproj Delphi 10 Seattle VCL : IcsVclD10SRun.dproj, IcsVclD10SDesign.dproj Delphi 10 Seattle FMX : IcsFmxD10SRun.dproj, IcsFmxD10SDesign.dproj C++ Builder XE2 FMX/VCL : IcsCommonCBXe2Run.dproj, IcsCommonDXe2Design.dproj C++ Builder XE2 VCL : IcsVclCBXe2Run.dproj, IcsVclCBXe2Design.dproj C++ Builder XE2 FMX : IcsFmxCBXe2Run.dproj, IcsFmxCBXe2Design.dproj C++ Builder XE3 FMX/VCL : IcsCommonCBXe3Run.dproj, IcsCommonDXe3Design.dproj C++ Builder XE3 VCL : IcsVclCBXe3Run.dproj, IcsVclCBXe3Design.dproj C++ Builder XE3 FMX : IcsFmxCBXe3Run.dproj, IcsFmxCBXe3Design.dproj 1 - Open and Build the run-time package project (do not install!). 2 - Open and Install the design-time package project. (Do a File/Open Project, browse to the .\Packages directory. Select the correct file and open it. Then in the project manager view, right-click on the package, then click on either the Build or Install button.) 3 - For Delphi XE2 and later, a 64-bit run-time package can be built by changing the package target platform to 64-bit Windows. This has the same name as the 32-bit package, so a different package output directory needs to be specified in Tools / Options / Delphi Options for 64-bit Windows. After a few seconds, you should have a dialog box telling you the package has been installed with a bunch of new components registered in the Tool Palette under "Overbyte ICS" and "Overbyte ICS SSL". Then do a "Save All" and a "Close All". DELPHI 2006/WIN32, 2007/WIN32, 2009/WIN32, 2010/WIN32, XE/WIN32: Having installed the package, verify that the appropriate Win32 Library Path (Tools / Options / Delphi Options / Library - Win32 / Library Path) has been added, .\Lib subdirectory according to version, ie .\Lib\Debug\Win32\D2007 for Delphi 2007. If not, add it manually. It is not mandatory to add .\Lib to the global Delphi path, but it will be much easier for you because otherwise you'll have to add it to each project. DELPHI XE2/WIN32, XE3/WIN32, XE4/WIN32, XE5/WIN32, XE6/WIN32, XE7/WIN32, XE8/WIN32, 10 Seattle/WIN32, XE2/WIN64, XE3/WIN64, XE4/WIN64, XE5/WIN64, XE6/WIN64, XE7/WIN64, XE8/WIN64, 10 Seattle/WIN64: Similar to above, but the Library path is specified separately for 32-bit and 64-bit Windows Platforms. DELPHI 7: Add VC32 directory path to your library path (Tools menu / Environment Options / Library / Library Path. Add .\Lib\Debug\Win32\D7 path at the end of the existing path). SAMPLE DELPHI PROJECTS Once the package is installed, you may open the sample projects. The samples are split into several directories according to protocols, most with a project group that can be opened in all versions of Delphi. .\Samples\delphi\BroswerDemo .\Samples\delphi\FtpDemos\FtpDemos.bpg .\Samples\delphi\MailNewsDemos\MailNewsDemos.bpg .\Samples\delphi\MiscDemos\MiscDemos.bpg .\Samples\delphi\OtherDemos\OtherDemos.bpg .\Samples\delphi\PlatformDemos\XSamples.groupproj .\Samples\delphi\SocketDemos\SocketDemos.bpg .\Samples\delphi\sslinternet\SslDemos.bpg .\Samples\delphi\WebDemos\WebDemos.bpg Full details of the sample projects are shown later in this document. You might get some dialog box telling you that resource files are missing (they may not have been included in the zip file to save space) and are recreated by Delphi. It is OK. Any other error message is a problem you should fix. After all resource files have been recreated, you should see in the project manager a group of projects. To compile all samples in the group at once, do Project / Build all projects. This may take a few minutes. Note 1: Delphi may run out of memory if you ask to compile all projects at once. If you have not enough RAM, then compile each project individually. Note 2: Delphi has warnings which triggers a lot of messages for 100% OK code. You can turn those warnings off in the project/ options / Compiler messages and deselecting: "Deprecated symbol", "Platform symbol", "unsafe type", "unsafe code", "unsafe typecast". Those are intended for .NET and Linux portability. You can safely ignore them if you run windows. For you facility, I included a utility SetProjectOptions (source code, you must compile it) in the internet directory. This utility will update project options to disable the warnings. Once the components are all installed, you may open the sample projects each one after the other and compile them. For each project, do file/open and select the dpr file in the internet directory. Then Project/Build All. C++ BUILDER 2006, 2007, 2009, 2010, XE, XE2, XE3: Follow the installation procedure described for Delphi 2006. Just change the project group and package name: use CB2006, CBXe, etc, see above. You can't have Delphi 2006 and CBuilder 2006 packages installed at the same time in the IDE. So when switching from one to the other, be sure to remove the one you don't need. Building the FireMonkey CBXE2InstallVclFmx C++ packages for OSX may trigger an ILINK32 error, this is a bug in C++ Builder reported as QC #103668 the Win32 packages should build without errors. Once the components are all installed, you may open the sample projects each one after the other and compile them. For each project, do file/open and select the dpr file in the internet directory. Then Project/Build All. Projects are located in SAMPLES\CPP\INTERNET\CB2006\ (or CB2006, CBXE, etc) with a project group in each directory, OverbyteIcsCB2006Sam.bdsgroup, OverbyteIcsCBXe2Sam.groupproj, etc. It is likely that for each project, C++ Builder complains about a missing .res file. This is not a problem, C++ Builder will recreate it as needed. They have not been included to save space in the zip file. Once the components are all installed, you may open the sample projects each one after the other and compile them. For each project, do file/open and select the dpr file in the internet directory. Then Project/Build All. NOTES: - You may have an error message, using Delphi or C++ Builder complaining about Font.Charset, OldCreateOrder and other properties. Those are new properties in newer Delphi or C++ Builder versions, newer than the version you use. You can safely ignore those errors because those properties are not used by the components nor sample programs. You may encounter this error at run time. To avoid it, you must open each form at design time and ignore the error. Then recompile. If you don't ignore the error at design time, you'll have it at runtime ! - If you have Delphi or C++ Builder complaining about a file not found, add .\source directory to your library path. - If you are using C++ Builder you may encounter an error at link time such as "Unable to open file MWBCB30.LIB" (or other libs). This is a bug in C++ Builder. To solve it, you can edit project option file (right click in project manager) and remove any reference to the missing libraries. - Don't forget that the C++Builder components are located in .\delphi\vc32 which is object pascal source code (not a problem for C++Builder, just indicate that the *.pas files are displayed when installing). C++Builder will create the *.hpp files. There are some on-line help files in the VC32 directory. Available VCL Components ------------------------ - The following is a list of the files that should be installed in order to properly add all of the available components in this collection: > OverbyteIcsCharsetComboBox.pas Provides easy MIME charset selection > OverbyteIcsDnsQuery DNS lookup component - useful for getting MX records > OverbyteIcsDprUpdFix.pas IDE plugin for Delphi 2009 and 2010 to update old projects > OverbyteIcsEmulVT.pas ANSI terminal emulation in a control > OverbyteIcsFingCli.pas FINGER client protocol - Find information about user > OverbyteIcsFtpCli.pas FTP client protocol - file transfer > OverbyteIcsFtpSrv.pas FTP server protocol - file transfer > OverbyteIcsFtpSrvT.pas FTP server protocol - helpers > OverbyteIcsHttpAppServer.pas HTTP server protocol - used to build advanced web servers > OverbyteIcsHttpProt.pas HTTP client protocol - used by the web > OverbyteIcsHttpSrv.pas HTTP server protocol - used to build web servers > OverbyteIcsLogger.pas A component to log information > OverbyteIcsMimeDec.pas MIME component - decode file attach, use with POP3 > OverbyteIcsMultiProgressBar.pas A segmented progress bar > OverbyteIcsMultipartFtpDownloader.pas FTP client protocol - download one file using simultaneous connections to speedup download > OverbyteIcsMultipartHttpDownloader.pas HTTP client protocol - download one file using simultaneous connections to speedup download > OverbyteIcsNntpCli.pas NNTP client protocol - send and receive newsgroups messages > OverbyteIcsPing.pas ICMP echo protocol - ping a host > OverbyteIcsPop3Prot.pas POP3 client protocol - get mail from mail server > OverbyteIcsReg.pas Register design components > OverbyteIcsSmtpProt.pas SMTP client protocol - send mail to server > OverbyteIcsSmtpSrv.pas SMTP server protocol - receive mail from client > OverbyteIcsSnmpCli.pas SNMP client protocol - network management > OverbyteIcsSnmpMsgs.pas SNMP client protocol - message helper > OverbyteIcsSysLogClient.pas Syslog Client Protocol - receive syslog messages > OverbyteIcsSysLogDefs.pas Syslog Protocol - helpers > OverbyteIcsSysLogServer.pas Syslog Server Protocol - send syslog messages > OverbyteIcsTnCnx.pas TELNET client protocol - terminal emulation protocol > OverbyteIcsTnEmulVT.pas TELNET and ANSI terminal emulation combined > OverbyteIcsTnOptFrm.pas TELNET Client configuration form > OverbyteIcsTnScript.pas TELNET client protocol - with automation > OverbyteIcsWSocket.pas Winsock component - TCP, UDP, DNS,... > OverbyteIcsWSocketE.pas Register procedure and property editor for TWSocket > OverbyteIcsWSocketS.pas Winsock component for building servers > OverbyteIcsWSocketTS.pas Winsock component for building multithreaded servers - The following list support and utilities units: > OverbyteIcsAsn1Utils.pas ASN1 utilities (for TSnmpClient component) > OverbyteIcsAvlTrees.pas Implements a fast cache-like data storage > OverbyteIcsCharsetUtils.pas MIME-charset functions > OverbyteIcsCookies.pas Client Cookie Handling > OverbyteIcsCRC.pas 32 bit CRC computation > OverbyteIcsCsc.pas character set routines > OverbyteIcsDES.pas Implementation of the Data Encryption Standard (DES) > OverbyteIcsDigestAuth.pas HTTP Digest Access Authentication > OverbyteIcsFormDataDecoder.pas Decode a MIME data block as generated by a HTML form > OverbyteIcsHttpCCodZLib.pas Supports GZIP coding for HttpContCod > OverbyteIcsHttpContCod.pas HTTP Content Coding support, uses extra units > OverbyteIcsIcmp.pas ICMP protocol support, used by the PING component > OverbyteIcsIconv.pas Headers for iconv library (LGPL) > OverbyteIcsLIBEAY.pas Delphi encapsulation for LIBEAY32.DLL (OpenSSL) > OverbyteIcsMD4.pas Implementation of the MD4 Message-Digest Algorithm > OverbyteIcsMD5.pas Implementation of the MD5 Message-Digest Algorithm > OverbyteIcsMimeUtil.pas Support routines for MIME standard > OverbyteIcsMLang.pas A few header translations from MS mlang.h > OverbyteIcsNtlmMsgs.pas Client NTLM authentification messages used within HTTP protocol > OverbyteIcsNtlmSsp.pas Server NTLM authentification of user credentials using Windows SSPI > OverbyteIcsOneTimePw.pas One Time Password support functions, used by FTP > OverbyteIcsSHA1.pas Implementation of US Secure Hash Algorithm 1 (SHA1) > OverbyteIcsSocketUtils.pas Cross platform socket utilities for ICS > OverbyteIcsSSLEAY.pas Delphi encapsulation for SSLEAY32.DLL (OpenSSL) > OverbyteIcsSslSessionCache.pas A very fast external SSL-session-cache component > OverbyteIcsSslThrdLock.pas Implementation of OpenSsl thread locking (Windows); > OverbyteIcsSspi.pas A few header translations from MS sspi.h and security.h > OverbyteIcsStreams.pas Fast streams for ICS > OverbyteIcsThreadTimer.pas A custom timer class using custom timer messages from one or more threads > OverbyteIcsTicks64.pas GetTickCount64 support for all versions of Windows > OverbyteIcsTimeList.pas List of items with expiry times, used for WebSessions > OverbyteIcsTypes.pas Common types, mainly for backward compiler compatibility > OverbyteIcsURL.pas Support routines for URL handling > OverbyteIcsUtils.pas Vast number of common utilities, many supporting Unicode for D7/2007 > OverbyteIcsWSockBuf.pas FIFO buffers for TWSocket > OverbyteIcsWebSession.pas Web session support for THttpAppSrv and MidWare > OverbyteIcsWinnls.pas A few header translations for Unicode Normalization in winnls.h > OverbyteIcsWinsock.pas Some Winsock initialisations > OverbyteIcsWndControl.pas A class that encapsulates a windows message queue and a message map > OverbyteIcsZLibDll.pas Zlib support, interface to external zlib.dll functions > OverbyteIcsZlibHigh.pas Zlib support, high level interface for compression and decompression > OverbyteIcsZLibObj.pas Zlib support, interface to zlib linked C OBJ functions FireMonkey Cross Platform Support: ---------------------------------- For Delphi and C++ Builder XE2 and later, FireMonkey Desktop applications are an alternate to VCL Forms applications, supporting cross platforms of Windows 32-bit and 64-bit and Mac OS X (and perhaps other platforms in future). FireMonkey uses different visual components to VCL, while some non-visual components can be used for both VCL and FMX projects, while other components need special versions, such as ICS. Earlier betas of V8 used the conditional define "FMX" which is *no longer required in project options. Instead in your existing ICS FireMonkey app. add either "Ics.Fmx" to the unit scope names in project options or apply the following changes in the uses clause, rename: OverbyteIcsWndControl -> Ics.Fmx.OverbyteIcsWndControl OverbyteIcsWSocket -> Ics.Fmx.OverbyteIcsWSocket OverbyteIcsFtpCli -> Ics.Fmx.OverbyteIcsFtpCli OverbyteIcsFtpSrv -> Ics.Fmx.OverbyteIcsFtpSrv OverbyteIcsHttpProt -> Ics.Fmx.OverbyteIcsHttpProt OverbyteIcsWSocketS -> Ics.Fmx.OverbyteIcsWSocketS OverbyteIcsSmtpProt -> Ics.Fmx.OverbyteIcsSmtpProt.pas OverbyteIcsPop3Prot -> Ics.Fmx.OverbyteIcsPop3Prot.pas OverbyteIcsNntpCli -> Ics.Fmx.OverbyteIcsNntpCli.pas OverbyteIcsPing -> Ics.Fmx.OverbyteIcsPing.pas OverbyteIcsDnsQuery -> Ics.Fmx.OverbyteIcsDnsQuery.pas OverbyteIcsFingCli -> Ics.Fmx.OverbyteIcsFingCli.pas OverbyteIcsSslSessionCache -> Ics.Fmx.OverbyteIcsSslSessionCache.pas OverbyteIcsSslThrdLock -> Ics.Fmx.OverbyteIcsSslThrdLock.pas OverbyteIcsHttpSrv -> Ics.Fmx.OverbyteIcsHttpSrv.pas OverbyteIcsSocketUtils -> Ics.Fmx.OverbyteIcsSocketUtils.pas OverbyteIcsMultipartFtpDownloader -> Ics.Fmx.OverbyteIcsMultipartFtpDownloader.pas OverbyteIcsMultipartHttpDownloader -> Ics.Fmx.OverbyteIcsMultipartHttpDownloader.pas OverbyteIcsHttpAppServer -> Ics.Fmx.OverbyteIcsHttpAppServer.pas OverbyteIcsThreadTimer -> Ics.Fmx.OverbyteIcsThreadTimer.pas OverbyteIcsCharsetComboBox -> Ics.Fmx.OverbyteIcsCharsetComboBox.pas { Demo units } OverbyteIcsWebAppServerCounter -> Ics.Fmx.OverbyteIcsWebAppServerCounter OverbyteIcsWebAppServerMailer -> Ics.Fmx.OverbyteIcsWebAppServerMailer The list above is also the list of units that now have different names in the FireMonkey framework however most of them share the same source file. Dropping a ICS component on the form will add the correct unit name for each framework automatically (don't forget to disable the package cache as described above). Unit OverbyteIcsLibrary.pas has been *deprecated* and ICS IPv8 doesn't use it anymore. If you used it in your own code read the comment in OverbyteIcsLibrary.pas, search for "deprecated". Sample applications: -------------------- With V8, the sample applications are now grouped into directories according to general functionality, to make it easier to compare related samples. Many samples are similar. When searching for something, always look at the date the demos where created. The most recent is always the best code! In the lists below, ACTIVE!! indicates applications that are actively maintained to test and support new functionality in the ICS components. These may not be simplest samples, but are usually the first to try when learning about a component. Delphi Win32/Win64 Web Browser sample application ------------------------------------------------- .\Samples\delphi\BroswerDemo > FrameBrowserIcs.dpr Web Browser using HtmlViewer component - ACTIVE!! Note this sample needs HtmlViewer component installed Delphi Win32/Win64 FTP sample applications ------------------------------------------ .\Samples\delphi\FtpDemos\FtpDemos.bpg - Project group > OverbyteIcsBasFtp.dpr Basic FTP client program > OverbyteIcsConFtp.dpr Basic console mode FTP client > OverbyteIcsFtpAsy.dpr Example of asynchronous FTP client > OverbyteIcsFtpMulti.dpr Demo to do several FTP downloads in parallel to get a list of files > OverbyteIcsFtpMultipartDownload.dpr Demo to FTP download a single large file in several parts in parallel > OverbyteIcsFtpServ.dpr General purpose FTP server, uses TSocketServer - ACTIVE!! > OverbyteIcsFtpThrd.dpr Demo of multithreaded FTP client, see also FTPASY > OverbyteIcsFtpTst.dpr Basic graphical FTP client - ACTIVE!! Delphi Win32/Win64 SMTP, POP3, NNTP sample applications ------------------------------------------------------- .\Samples\delphi\MailNewsDemos\MailNewsDemos.bpg - Project group > OverbyteIcsBasNntp.dpr Basic NNTP client program > OverbyteIcsConPop3.dpr Basic console mode demo for POP3 (mail receive) > OverbyteIcsConSmtp.dpr Basic console mode demo for SMTP (mail send) > OverbyteIcsMailHtml.dpr Example of HTML formatted EMail sending, including embedded images - ACTIVE!! > OverbyteIcsMailRcv.dpr Internet EMail access using POP3 protocol - ACTIVE!! > OverbyteIcsMailSnd.dpr Example of EMail sending using SMTP, including file attach - ACTIVE!! > OverbyteIcsMailSndAsync.dpr Example of parallel EMail sending with multiple connections > OverbyteIcsMimeDemo.dpr Example of EMail decoding (attached files are extracted) - ACTIVE!! > OverbyteIcsNewsReader.dpr Example of TNntpCli component (Send/receive newsgroups) - ACTIVE!! > OverbyteIcsSmtpServer.dpr Internet EMail server using SMTP protocol - ACTIVE!! Delphi Win32/Win64 Miscellaneous applications --------------------------------------------- .\Samples\delphi\MiscDemos\MiscDemos.bpg - Project group > OverbyteIcsBufStrmTst.dpr Test of buffered stream classes > OverbyteIcsCacheTest.dpr Test of TCacheTree class used in TSslAvlSessionCache > OverbyteIcsMD4Test.dpr Test program for MD4 unit > OverbyteIcsMD5File.dpr Example of MD5 unit: computer MD5 checksum for files > OverbyteIcsMD5Test.dpr Test program for MD5 unit > OverbyteIcsOneTimePassword.dpr One Time Password test routines for OverByteIcsOneTimePw unit > OverbyteIcsSHA1Test.dpr Test program for SHA unit > OverbyteIcsThreadTimerDemo.dpr Demo for TIcsThreadTimer > OverbyteIcsTicks64Demo.dpr GetTickCount64 test routines for OverbyteIcsTicks64 unit > OverbyteIcsTimerDemo.dpr Very simple demo for TIcsTimer > OverByteIcsWndControlTest.dpr Test program for windows and threads Delphi Win32/Win64 DNS, Ping, SNMP, Syslog sample applications -------------------------------------------------------------- .\Samples\delphi\OtherDemos\OtherDemos.bpg - Project group > OverbyteIcsBatchDnsLookup.dpr Batch async DNS lookup using DnsLookup (IPv6 and IPv4) > OverbyteIcsConPing.dpr Basic console mode demo for ping component > OverbyteIcsDll1.dpr Demo showing how to use a TWSocket component in a DLL > OverbyteIcsDll2.dpr Demo showing how to use a THttpCli component in a DLL > OverbyteIcsDllTst.dpr Test program calling ICSDLL1 and ICSDLL2 > OverbyteIcsDnsLook.dpr Example of name resolution (IPv6 and IPv4) > OverbyteIcsDnsResolver.dpr Batch async DNS lookup event driven using DnsQuery > OverbyteIcsFinger.dpr Example of TFingerCli component > OverbyteIcsNsLookup.dpr Demo for the DnsQuery component > OverbyteIcsPingTst.dpr Demo for the ping component, includes trace route > OverbyteIcsSnmpCliTst.dpr Demo for SNMP (simple network management protocol) component > OverbyteIcsSysLogClientDemo.dpr Demo for SysLog client component > OverbyteIcsSysLogServerDemo.dpr Demo for SysLog server component Delphi FireMonkey cross-platform samples (Delphi XE2 and later) --------------------------------------------------------------- All these samples may be built for Mac OS X (and Windows). .\Samples\delphi\PlatformDemos\XSamples.groupproj > IcsCliDemo.dproj Example of client for SRVDEMO, IPV4 only > IcsTcpSrvIPv6.dproj Basic server without client forms, event-driven, IPv4/IPV6 > IcsConSmtp.dproj Basic console mode demo for SMTP (mail send) > IcsMailSnd.dproj Example of EMail sending using SMTP, including file attach > IcsMailRcv.dproj Internet EMail access using POP3 protocol > IcsHttpsTst.dproj Example of THttpCli component (GET), show many features > IcsWebServ.dproj Demo of HTTP server, uses TSocketServer > IcsWebAppServ.dproj Advanced HTTP server demo, uses WebServ, adds sessions > IcsFtpTst.dproj Basic graphical FTP client > IcsFtpServ.dproj General purpose FTP server, uses TSocketServer > IcsUdpLstn.dproj UDP listen demo > IcsUdpSend.dproj UDP send demo > IcsBatchDnsLookup.dproj Batch async DNS lookup using DnsLookup (IPv6 and IPv4) > IcsDll1.dproj Demo showing how to use a TWSocket component in a DLL > IcsDll2.dproj Demo showing how to use a THttpCli component in a DLL > IcsDllTst.dproj Test program calling ICSDLL1 and ICSDLL2 > IcsThreadTimerDemo.dproj Very simple demo for TIcsTimer Delphi Win32/Win64 Socket sample applications --------------------------------------------- .\Samples\delphi\SocketDemos\SocketDemos.bpg - Project group > OverbyteIcsBinCliDemo.dpr Client program to receive binary and delimited text data. Works with BinTcpSrv demo. > OverbyteIcsCliDemo.dpr Example of client for SRVDEMO, IPV4 only - ACTIVE!! > OverbyteIcsClient5.dpr Basic client GUI applications > OverbyteIcsClient7.dpr Simple client application demonstrating TWSocket > OverbyteIcsConCli1.dpr Basic client/server console applications > OverbyteIcsConCli2.dpr Basic client/server console applications with thread > OverbyteIcsConSrv1.dpr Basic server application in console mode > OverbyteIcsConUdpLstn.dpr Console application to listen for UDP messages > OverbyteIcsDynCli.dpr Demo of dynamically created TWSocket components > OverbyteIcsMtSrv.dpr Basic server, multi-threaded, see THRDSRV for better code > OverbyteIcsRecv.dpr Simple file receive (server), use with SENDER demo (client) > OverbyteIcsSender.dpr Simple file send (client), use with RECV demo (server) > OverbyteIcsServer5.dpr Basic server GUI applications > OverbyteIcsSocksTst.dpr How to use TWSocket with SOCKS protocol (firewall traversing) > OverbyteIcsSrvDemo.dpr Example of server using a TTable - ACTIVE!! > OverbyteIcsSrvTcp.dpr Basic server without client forms, event-driven > OverbyteIcsSvcTcp.dpr Same as SRVTCP but as an NT/2K/XP service > OverbyteIcsTWSChat.dpr Chat program (both client and server in a single program) > OverbyteIcsTcpSrv.dpr Basic server without client forms, event-driven, IPv4 only - ACTIVE!! > OverbyteIcsTcpSrvIPv6.dpr Basic server without client forms, event-driven, IPv4/IPV6 - ACTIVE!! > OverbyteIcsTelnetClient.dpr Telnet client using a TnEmulVT > OverbyteIcsThrdSrv.dpr Basic multithreaded TCP server, banner sent in main thread > OverbyteIcsThrdSrvV2.dpr Basic multithreaded TCP server, banner sent in worker thread > OverbyteIcsThrdSrvV3.dpr Basic TCP server showing how to use TWSocketThrdServer > OverbyteIcsTnDemo.dpr Telnet client using a TMemo > OverbyteIcsTnSrv.dpr Basic TCP server with client forms, event-driven > OverbyteIcsUdpLstn.dpr UDP listen demo > OverbyteIcsUdpSend.dpr UDP send demo Delphi Win32/Win64 SSL-enabled sample applications -------------------------------------------------- .\Samples\delphi\sslinternet\SslDemos.bpg - Project group > OverbyteIcsHttpsTst.dpr Example of TSslHttpCli component (GET) - ACTIVE!! > OverbyteIcsPemTool.dpr ICS Pem Certificate Tool - Create and import certificates in OpenSLL PEM format > OverbyteIcsSimpleSslCli.dpr Example of simple SSL client using TSslWSocket - ACTIVE!! > OverbyteIcsSimpleSslServer.dpr Example of SSL server using TSslWSocket - ACTIVE!! > OverbyteIcsSslFtpServ.dpr General purpose FTP SSL server, uses TSocketServer - ACTIVE!! > OverbyteIcsSslFtpTst.dpr Basic graphical FTP SSL client - ACTIVE!! > OverbyteIcsSslMailRcv.dpr Internet EMail access using POP3 protocol and SSL - ACTIVE!! > OverbyteIcsSslMailSnd.dpr Example of EMail sending using SMTP and SSL - ACTIVE!! > OverbyteIcsSslNewsRdr.dpr Example of TSslNntpCli component (Send/receive newsgroups) - ACTIVE!! > OverbyteIcsMsVerify.dpr Verify and show an OpenSSL certificate or certificate chain using class TMsCertChainEngine which uses MS crypto API - ACTIVE!! > OverbyteIcsSslSniSrv.dpr Test of Server Name Indication (SNI) in server mode - ACTIVE!! > OverbyteIcsSslWebServ.dpr Demo of HTTPS server, uses TSocketServer - ACTIVE!! > OverbyteIcsSslWebAppServer.dpr Advanced HTTPS server demo, uses WebServ, adds sessions - ACTIVE!! > OverbyteIcsSslSmtpServer.dpr Internet EMail server using SMTP protocol and SSL - ACTIVE!! Delphi Win32/Win64 HTTP sample applications ------------------------------------------- .\Samples\delphi\WebDemos\WebDemos.bpg - Project group > OverbyteIcsConHttp.dpr Basic console mode HTTP client > OverbyteIcsHttpAsp.dpr Example of THttpCli component with cookie (POST to an ASP page) > OverbyteIcsHttpAsy.dpr Example of THttpCli component with multiple async requests (GET) > OverbyteIcsHttpChk.dpr Example of THttpCli to check for valid URL using HEAD request > OverbyteIcsHttpDmo.dpr Simple HTTP client demo with proxy > OverbyteIcsHttpGet.dpr Example of THttpCli component (GET into a file) > OverbyteIcsHttpMultipartDownload.dpr Demo application for TMultipartHttpDownloader to download files using simultaneous connections > OverbyteIcsHttpPg.dpr Example of THttpCli component (POST to CGI script) > OverbyteIcsHttpPost.dpr Example of THttpCli component (POST), work with WebServ sample - ACTIVE!! > OverbyteIcsHttpThrd.dpr Example of THttpCli component (multi-threaded GET) > OverbyteIcsHttpTst.dpr Example of THttpCli component (GET), show many features - ACTIVE!! > OverbyteIcsIsapi.dll Example of FTP client component within an ISAPI extension > OverbyteIcsWebAppServer.dpr Advanced HTTP server demo, uses WebServ, adds sessions - ACTIVE!! > OverbyteIcsWebServ.dpr Demo of HTTP server, uses TSocketServer - ACTIVE!! Two samples are not in the project group since they need extra components installed > OverbyteIcsRestDemo.drp Demo program showing how to use REST API from Google and Yahoo > OverbyteIcsRestJsonDemo.drp Demo program showing how to use REST API from Google Search and JSON Sample Notes ------------ Note 1: Not all samples have been rewritten in C++ for C++ Builder. And those rewritten are frequently much simpler. So C++ Builder user: have a look at the Delphi sample too ! Note 2: Follow "UserMade" link on ICS web site to find more sample programs written by ICS users. As explained in the component installation, you may encounter an error loading a sample application or running it. This may be because the last time I loaded the form, I was using another Delphi or C++ Builder version which has new properties. You can safely ignore messages related to those new properties. They are not used in the samples. (The properties are CharSet, OldCreateOrder and others). You can also encounter error about duplicate resources. You can ignore them safely. If you have those errors, open each form in the IDE, ignore the error then recompile. If you don't open the form in the IDE, you'll get the errors at runtime and your program will abort. When installing a new version, always delete old dcu, obj, dcpil and always recompile everything ! Close everything before recompiling the library or packages. When installing a new version, be sure to unzip it in the same directory tree as the old one or you'll mess both versions. About SSL: ---------- TSslWSocket and TSslWSocketServer component are derived from the standard TWSocket and TWSocketServer component. The SSL code is compiled into the component only if you define USE_SSL symbol to your packages and projects. Just add USE_SSL to the defines in the project or package options and recompile everything. The components make use of LIBEAY32.DLL and SSLEAY32.DLL to handle SSL protocol stuff. The DLLs are dynamically loaded at runtime. It means that the DLLs will only be required at runtime when you first make use of a SSL function. Your applications will run on systems without OpenSSL DLLs as long as you don't call any SSL function. The files may be downloaded from: http://wiki.overbyte.be/wiki/index.php/ICS_Download Most ICS components have their SSL enabled counter part. They work exactly the same way as the regular component except when SSL specific stuff is needed, for example certificates. To support SSL stuff, the SSL-enabled version use some new properties, events and methods. Many sample programs have their SSL-enabled counter part in a separate sources located in SslInternet folder. SSL certificates: To make use of SSL, you frequently need certificates. I provide some demo certificates I built using command line OpenSSL tool. PEM certificates can be opened by a text editor, LF as well as CRLF are allowed as line breaks. CACERT.PEM : A demo certificate for "Example CA" 01CERT.PEM : A demo certificate which is signed by CACERT.PEM 01KEY.PEM : A demo private key for 01CERT.PEM Passphrase is "password". CLIENT.PEM : A demo certificate and private key. Passphrase is "password". SERVER.PEM : A demo certificate and private key. Passphrase is "password". ROOT.PEM : A demo CA certificate. Passphrase is "password". TRUSTEDCABUNDLE.PEM : A demo CA file in PEM format containing multiple well known root CA certificates to be specified in property CA Path of the demo applications. Read the comments included in this file. 6F6359FC.0 : Located in sub directory SslInternet\TrustedCaStore, it's the file CACERT.PEM stored with a hashed file name. Directory TrustedCaStore can be specified in property CA Path of the demo applications. For details about certificate, see the excellent book: "Network security with OpenSSL", O'Reilly, ISBN 10: 0-596-00270-X The SSL demo project OverbyteIcsPemTool may be used to create self signed PEM certificates, certificate requests for commercial use, to convert existing certificates in the Windows Certificate Store to PEM format understood by OpenSSL and to examine PEM certificates. You will find more information in IcsSslHowTo.txt file. Commercial SSL certificates: To avoid browsers giving certificate warning messages, you need to purchase a SSL certificate from one of numerous companies, such as Verisign, Thawte GeoTrust or RapidSSL. Prices vary dramatically and are often cheaper from resellers such as Servertastic than from the main issuing companies. The main purpose of an SSL certificate is to prove the identity of the owner of a web site, ideally the company behind the web site. That usually requires paper work identifying the company is submitted and also proof the domain being protected is owned by that company, it usually also involves telephone calls. Such certificates are usually called fully validated and cost $120 or more each year for a single domain, ie secure.website.com. Wild card certificates cost $350 or more, but protect multiple sub-domains, ie web.website.com as well. Extended Validation certificates cost from $450 a year, and show the company name in green in the address bar. For testing and simple use, instant issued SSL certificates cost from $15 per year and protect a single domain only with automated checking reducing the cost (an email to admin@website.com to prove you receive email for the domain, perhaps a telephone call as well). Note these instant certificates do not include a company name. To buy and install an SSL certificate for use with ICS and OpenSSL follow these steps: 1 - Build the SSL demo project OverbyteIcsPemTool. Take Extras, Create Certificate Requests, fill in the various fields (check other certificates if uncertain, the Common Name is the domain to protect, ie secure.website.com and E-Mail should be an email address at the than domain, ideally admin or administrator, 2048 bits. Click Create, and specify two file names, first for the private key (mykey.pem) then the certificate request file (myreq.pem). The request can also be done using OpenSSL command line arguments, or you can build it into your own application. 2 - Choose you SSL supplier and certificate type, at some point during the ordering process you will be asked for the certificate request, so open the PEM file you saved with a text editor and copy the base64 encoded block starting -BEGIN CERTIFICATE REQUEST- into the web form. It should be decoded and displayed so you check it's correct. The private key is not needed for the certificate to be issued. At this point the validation process starts as mentioned above, which might take hours or weeks to complete. 3 - Eventually the SSL certificate should be issued, either by email or made available to download from the supplier's web site. It should be in X.509 format in a base64 encoded block starting -BEGIN CERTIFICATE- which should be saved as a PEM file (mycert.pem). There should also be an Intermediate CA certificate, with which your new certificate was signed, which should also be saved as a file (mycacert.pem). This may also be downloadable from the supplier as a bundle file and should be common to any certificates they issue, ie RapidSSL_CA_bundle.pem. 4 - The OverbyteIcsPemTool tool has a View PEM button that allows examination of your new PEM files. 5 - The three PEM files now need to be attached to the SslContext component in your application, with properties SslCertFile, SslPrivKeyFile and SslCAFile. The request certificate file has no further use. Support: -------- There is a mailing list to discuss F. Piette's components and applications. To subscribe surf to http://lists.elists.org/mailman/listinfo/twsocket. Do not use an aliased EMail address, use your real EMail address, the one you'll use to post messages. After asking for subscription, you'll receive a confirmation email you must reply to it or you will _not_ be added to the subscriber's list (this is to check for email path and also make sure someone doesn't subscribe you without your consent). Once you have been registered with the mailing list processor, you can send messages to twsocket@elists.org. Every subscriber will receive a copy of your message. I will respond, but anybody is welcome to respond to each other's messages. So every body can share his expertise. There are many other useful mailing lists at http://www.elists.org ! Before asking a question, browse the message archive you can download from the support page on the web site (click the "support" button from main page) and from the mailing list web site http://lists.elists.org/mailman/listinfo/twsocket. Google is also archiving the list with some delay. If you found a bug, please make a short program that reproduces the problem attach it to a message addressed to me. If I can reproduce the problem, I can find a fix ! Do not send exe file but just source code and instructions. Always use the latest version (beta if any) before reporting any bug. You are also encouraged to use the support mailing list to ask for enhancements. You are welcome to post your own code. The support mailing list has sometimes a heavy traffic. If it is too much for you, you can select "digest" mode in which mailing list processor will mail you only one big message per day. To select digest mode goto http://lists.elists.org/mailman/listinfo/twsocket. You can also subscribe to another mailing list called twsocket-announce which will receive only very few messages when major bug fixes or updates are done. The subscription process is the same as for the other mailing list. See above procedure. Release notes ------------- There is no global release notes. Each component and sample has his own history. You can find those histories in the comment in the beginning of each source file. There are also a bunch of useful comments in the source code. You should at least browse the source for the components you are interested in. MidWare ------- If you wants to build client/server applications using TCP/IP protocol, you can do it easily with ICS. But you can do it much more easily using another freeware product from Fran鏾is Piette: MidWare. Available from the same web site http://www.overbyte.be. francois.piette@overbyte.be francois.piette@swing.be http://www.overbyte.be/ http://wiki.overbyte.be/
ct. 18, 1995 v. 1.00 =========================================================================== + First release of CurveExpert 1.0. Oct. 26, 1995, v. 1.01 =========================================================================== New Features: + More attractive help file, with more keywords for searching + new help search facility available directly from CurveExpert Bug Fixes: + If a polynomial was already calculated, selecting another polynomial of a differing degree incorrectly pulled results from the cache instead of recalculating the curve fit. Fixed. + running two versions of CurveExpert is prevented, since two simultaneous instances cause stack faults. + if the data set is sorted, all interpolations are now marked invalid as they should be. + "Apply to All" did not necessarily force the current attributes of a graph to the current graph (only if the user clicks OK). Fixed. + The scrollbar did not get reset to the top when the user read in a new data file. Fixed. + The structure of the code has been undergone some major changes to ease porting to Windows 95 and Windows NT. I was exceedingly careful, but I hope this didn't introduce new bugs! :-) + For some reason, the help file didn't have any single or double quotes in it. This has been corrected, so it is now easier to read. + The help file was not terminated when CurveExpert was. Fixed. + The Window and Help menus were moved to more conventional positions on the menu bar. Nov. 4, 1995, v. 1.10: =========================================================================== New Features: + Previously undocumented logical functions can be used in the user-defined models. See the help documentation. + Current filename now appears in the title bar. + QuickCalc has been expanded to find the x-value, given the y-value. + Optimizations have been applied to many routines, making the user interface more responsive and the algorithms quicker. Changes: + File reading system has been revamped. + the color scheme on all windows now conforms strictly to the user defined system colors. + Dialogs were expunged of all Borland controls (except for buttons) since they conflicted with user defined color schemes. + The QuickCalc dialog now automatically shifts focus back to the edit control and selects all text after the OK button is pushed. This makes it easier to calculate many points at a time. Bug Fixes: + pressing the tab key to force the built-in spreadsheet sometimes added points onto the end of the data set. Fixed. + If a graph window was closed and then reopened (except after a CurveFinder operation), the comments in the Graph Info dialog were not correct. Fixed. + The Cut Last Row/Undo pair now functions properly. + The the graph of a polynomial fit would be reset if the data was changed in the data window. Fixed. + The scaling procedure did not grab the latest data out of the data window's edit control if it was active, resulting in one point not being scaled or translated. Fixed. + A constant starting with a decimal (eg, .25) caused CurveExpert to bomb (when defining a user model). This has been fixed so that these constants are accepted. + A comma-delimited data file was not read correctly. A new file reading system was implemented to read files with any type of (unspecified) delimiter between the data columns + if a data file was not read correctly, the filename in the status bar showed the unreadable file instead of the previous file. Fixed. + the common dialogs (file open/save, print) did not accept keystokes until after they were clicked with the mouse, which makes it terribly hard for non-mouse users. Fixed. + If the current path was changed from CurveExpert, the help file was not found. Fixed. Nov. 9, 1995, v. 1.11 =========================================================================== New Features: + the data point markers on graphs can now be changed to filled or unfilled circles, squares, triangles, pluses, or crosses. Changes: + Small optimizations made to the speed of the user interface + The main window is now fully resizable + The position and size of the main window is saved on exit and restored the next time CurveExpert runs Bug Fixes: + Whoops! The new file reading procedure masked out all minus and minus signs in the data, so that numbers like -10 and 10e-3 were not read correctly. Fixed. + the exception reporting dialog box did not properly draw the exclamation point's background, which should match the dialog color. Fixed. + the single-precision version still read files incorrectly sometimes. Fixed. + the initial guess dialog sometimes opened unconditionally on the next fit performed after a CurveFinder evaluation. Fixed. Nov. 13, 1995, v. 1.12 =========================================================================== New Features: + Differentiation and integration of a calculated curve fit is now supported, similar to the implementation of QuickCalc. Changes: + If background processing is enabled, during iteration the cursor is a combined arrow/hourglass to inform the user that he/she can still perform operations. + editing points in the spreadsheet is now prohibited while any iteration is taking place. + Drawing of data points on a graph is internally clipped if it is outside of the graphing window. This allows for faster graph drawing if many points are outside of the graph pane. + A separate set of application-wide defaults are maintained for the single-precision and double-precision versions (registered version only) Bug Fixes: + Periods by themselves in the user models were parsed as the value zero instead generating a syntax error. Fixed. + A plot that was copied to the clipboard failed to "clip" data points that were outside of the graphing pane, resulting in points being drawn outside of the intended area. Fixed. + The information button on a graph window would sometimes disappear if a window was sized smaller. Fixed. + After copying a plot to the clipboard, the current graph resolution was incorrectly reset to 1. Fixed. + Extremely small parameter guesses were not allowed in the parameter guess dialog, since its precision was limited to six places. Fixed. Nov. 25, 1995, v. 1.13 =========================================================================== Changes: + The data manipulation tools have now been merged into one organized, tabbed dialog. + The model analytical tools have now been merged into one organized, tabbed dialog. + Cascading a large number of windows would sometimes result in some windows being moved off of the screen. Now, the cascade restarts at the top left if a window might be moved off-screen. + The built-in models have been reordered so that operations such as calculations and window manipulations naturally fall into a grouped arrangement. + the graph autoscaling algorithm has been rewritten to be more reliable + The info button on the graphing window has been changed and moved to be less obtrusive. + sizing restrictions on the graphing windows have been removed. Bug Fixes: + Whoops! Another problem with the file reading engine caused columns starting with a negative number to be discarded. Fixed. + Entering a user model with no parameters was allowed when it shouldn't have been. Now, a syntax error is generated. + the Window|Tile command sometimes worked strangely if graphing windows had been closed prior to invoking it. Fixed. + the Window|Cascade command did not properly cascade windows that were minimized. Fixed. + the last tick and label sometimes wasn't shown on the x/y axes of plots. Fixed. + the implementation of filled points didn't produce a filled entity for the circle or triangle when printed. Fixed. + The user was still asked whether to save a file or not upon exiting, even if the file had just been saved. Fixed. + CurveExpert will now run even if ctl3dv2.dll is not found. Dec. 2, 1995, v. 1.14 (Shareware Only) =========================================================================== Bug Fixes: + Graph Attributes/Graph Scaling Dialogs were not initialized properly in the Shareware version. Fixed. Dec. 31, 1995, v. 1.15 (Not Released) =========================================================================== Changes: + Sometimes, resizing a graph would result in the line width being drawn incorrectly (not the user-specified line width, screen only). Fixed. + delayed rendering of plots is now supported, to greatly increase drawing performance with user model plots and/or plots with a large number of data points + (registered only) the single precision package has now been optimized for single-precision arithmetic + the directions on the graph window are now removed if they will be collide with the error information. This leads to cleaner plots, especially with small graphing windows. Bug Fixes: + if one minor tick was selected (on either axis), there was a chance that one too many tick labels would be printed. Fixed. + some stray (and inappropriate) directions were left on the differentiate and integrate dialogs. Removed. Jan. 14, 1996, v. 1.20 =========================================================================== New Features: + many new graphing features and easier-to-use graphing properties interface has been added + the covariance matrix and residual plot are now available in the revamped information dialog + much faster nonlinear regression performance over version 1.1 (between 17% to 45% improvement in speed, depending on the number of parameters) Changes: + each graphing window no longer appears in the Win31 tasklist; and each window no longer shows up in the Win95 taskbar. + weighting values by 1/y^2 during nonlinear regression is now implemented Jan. 25, 1996, v. 1.21 =========================================================================== Bug Fixes: + the equation bitmaps in the initial guess and/or information dialog did not update properly at times. Fixed. + if the ctl3dv2 module could not be loaded, the info dialog GPF'ed when opened. Fixed. March 5, 1996, v. 1.22 =========================================================================== New Features: + the Preferences dialog has been revamped, with many new user- defineable options added for printing, regression/math options, and application options. + added right-click menus to all main window regions Changes: + The limitation of two-line titles in metafiles has been removed. + new and improved debugging console with a nicer appearance and more information. Necessary because of the ongoing port to Win32. + a button that coordinates the foreground (frame) color and the text colors was added to the graph properties dialog + the ability to draw grid lines at each minor tick mark was added + drag-and-drop from the file manager to CurveExpert is now supported + data information dialog box was widened to accommodate large numbers. + a new and much faster data clipping algorithm is now used + clipping and sorting operations now take place in the background, instead of hogging the CPU + two new symbols added to the graphing properties dialog Bug Fixes: + if the "Weight by Y^2" option was turned on, the results of nonlinear regression were likely to be a local minima or not converge at all. Fixed. + It was not possible to put a single percent sign in an axis label without typing '%%' in the axis label edit field. Fixed. + if the graph extents were set just right on the x or y axis, then one grid line would not draw. Fixed. + if the main window was minimized when CurveExpert was exited, the window was not restored to the correct position the next time CurveExpert was run. Fixed. + a GPF occurred if a data set with over 8192 data points was sorted. Fixed. + corrected an erroneous reading of the allocated memory (in bytes) that occurred if the quadratic fit was ever used. + if a residual table of an extremely large data set was copied to the clipboard in the info dialog, a GPF occurred. Fixed. + if a large data file with very large numbers was read, the first examination of that file would cause a program abort due to an overflow. Fixed. May 20, 1996, v. 1.23 =========================================================================== New Features: + 32 BIT VERSION FOR WINDOWS 95 AND WINDOWS NT RELEASED! + added x/y averages, minima, maxima, and standard deviations to the variables available for custom regressions + added the capability to swap the x and y data + (32 bit only) new tooltips feature gives quick access to a toolbar button's function Changes: + All BWCC controls have been removed, and as a result, several dialogs were redesigned. This gives a more consistent feel to the application, eases the port to Win32, and frees CurveExpert from having the BWCC.DLL library distributed with it. + (16 bit only) draws the missing line between the toolbar and menus if running under Windows 95. + added code to properly shut down CurveExpert if the user logs off while it is running. + fit type has been added to the caption of a residual plot window to make it clear where the window originated. + even if no changes were made to the graph from the Graph Properties dialog, the plot was re-rendered. Now, a check is made to see if any changes were made to determine if the graph should be redrawn. + the help file has undergone some formatting changes and additions + support for multiple-copy printouts was added Bug Fixes: + the table-generation and export-file mechanisms printed all zeros if a number was too small. Fixed. Now, the numbers are printed properly in exponential format. + the Preferences dialog would cause a program abort if no printer was installed. Fixed. + the function that draws the graph title had a potential memory leak. This would manifest itself also in the Residual page from the information dialog. Fixed. + the path field in the application preferences dialog would not allow horizontal scrolling, so the user was limited to a short data file path name. Fixed. + the ranking chart would sometimes get corrupted during a CurveFinder operation on a small data set (at unpredictable times). Fixed. + the underline style was ignored if it was specified for a font that would appear on a graph. Fixed. + a memory leak that caused a "floating point error" in the lagrangian interpolation routine was fixed + if a x or y axis label contained more than 50 characters, a subsequent display of the plot would cause a crash. Fixed. June 2, 1996, v. 1.24 =========================================================================== Changes: + when the 32-bit version opened a help file under Win32s, it went straight to the help file contents. Now, it opens the help file contents dialog box. + while reading a file, the progress is reported in the status bar Bug Fixes: + under Windows NT, all of the tabbed dialog boxes (preferences, graph properties, graph analyze, graph information) were blank. Fixed. + the history (dump) file did not have the last iteration written to it if the iteration converged. Fixed. + CurveExpert might not detect that it is running under Win32s correctly. Fixed. + if a line in a data file started with a +, it was not recognized as a number. Fixed. November 7, 1996, v. 1.30 =========================================================================== New Features: + uncertainties (standard deviations) in each data point can now be used + built-in spreadsheet facility has been enhanced -- now looks and behaves *much* more like a spreadsheet + spreadsheet facility has multilevel undo/redo capability + cut/copy/paste of ranges in the built-in spreadsheet and between other spreadsheets (Excel, Quattro Pro, etc.) is now implemented + enhanced file import facility gives more flexibility for reading data files + a most-recently-used file list is maintained in the File menu + [32-bit, '95 interface only] Internet-aware links in the Help menu directly access the CurveExpert home page(s) Changes: + the splash screen is now drawn in the correct user-defined color, instead of being hard-coded to light gray. + the graphs now comply with the user-defined color scheme unless set explicitly by the user. + there is no longer any limit on the number of data points that can be entered manually (previously 100) + the main window now responds appropriately when certain system settings change, such as the scroll bar width + more info was added to the debugging facility + the status bar now shows what degree of polynomial is being computed + some menu items have been rearranged to form a more consistent user interface + if the file is modified, an asterisk appears beside the filename in the title bar; when the file is saved, the asterisk is removed + typing a title in the "Graph Properties" dialog now automatically deselects the "Show Header" checkbox. Bug Fixes: + certain curve fits were turned off when they shouldn't have been if zeros or negatives existed in the x data. Fixed. + strange "NAN"s would occasionally appear in the released 32-bit version. This was due to a Microsoft optimizer bug; a workaround has been implemented. + On Windows NT, if a table file was to overwrite an already existing file, CurveExpert would terminate. Fixed. + if a two-column data file had a one-column entry later in the data file, CurveExpert would crash. Fixed. + an internal error that might cause a termination while using the CurveFinder was fixed + CurveExpert would crash soon after invoking the preferences dialog, if the polynomial window was open and the degree in it did not match the selected degree in the preferences dialog + the CurveFinder tool now correctly handles polynomial calculations when the Polynomial family is selected + if a data set line began with spaces or tabs, it could be misinterpreted as having one more column than it did. Fixed. + the help button for the ArcLength page in the "Analyze Graph" dialog did not work. Fixed. + the new-style help is now used unter Windows NT 3.51 by default + if a malformed file was attempted to be read, the toolbar was (mistakenly) reenabled anyway. Fixed. + various and sundry misspellings, typos, and formatting errors have been corrected in the on-line documentation. November 18, 1996, v. 1.31 =========================================================================== Changes: + [32-bit only] Bessel functions of first and second kind added to available user model functions + ceil and floor functions added to available user model functions Bug Fixes: + [32-bit only] When installing to a WinNT 3.51 platform. no Program Manager group and icons would be created unless the user was the administrator. Fixed. + [16-bit only] If a math error occurred and was handled in CurveExpert and 3d dialogs were being used, dialogs became transparent and unusable until CurveExpert was restarted. Fixed. February 24, 1997, v. 1.32 =========================================================================== New Features: + A history page has been added to the Graphing Information dialog to give the chi-square and parameter histories for each regression. + a preview plot gives quick access to visualization of various regressions on the ranking chart Changes: + if the y column is scaled and STD data is also present, the STD data is scaled by the same factor as the y column + the ranking chart interface has been changed to mesh smoothly with the preview plot + comments in the information dialog were not available after running CurveFinder or closing/reopening a window. This data is now stored with the fit coefficients, so the comments are available at any time for a valid curve fit result + various speedups implemented in the nonlinear regression routine Bug Fixes: + when sorting data and the standard deviation column is active, the STD data would not be carried with the data point. Fixed. + if pasting more than 25 points, CurveExpert would freeze. Fixed. + Several memory and resource leaks fixed. + if an exception occurred when plotting a graph, the message stating so would be misplaced on the window/metafile/printout. Fixed. + the keyboard interface on the File Import Dialog was nonexistant. Added. + After clipping the data set, if the user tried to undo a previous action, CurveExpert would crash. Now, the undo is disabled in this situation. + When dragging and dropping a file on CurveExpert, the title of the file became "TITLE.ERR". Fixed. + when a file was opened off of the MRU menu or dropped on CurveExpert, it could not be saved to the same file. Fixed. February 26, 1997, v. 1.33 =========================================================================== Bug Fixes: + For users with an international version of Windows where the comma is used for the decimal point, CurveExpert would not read files properly. Fixed. + In help file, correlation coefficient was documented incorrectly. Corrected. March 19, 1997, v. 1.34 =========================================================================== Bug Fixes: + [16 bit only] plots with a log x axis were not plotting correctly. Fixed. + Corrections made to keyboard interface in File Import Dialog. March 1, 1998, v. 1.36 =========================================================================== New Features: + a facility to transform a column of data at a time by selected functions was added Changes: + the initial viewable state of the CurveExpert window now reacts correctly to external control of the process spawning it + a switch was added to toggle the solid line at X=0 and Y=0 on the graph + some additions and changes to the help documentation Bug Fixes: + a 19th order polynomial fit caused a crash; fixed. Jan 1, 2001, v. 1.37 ============================================================================ Changes: + updates to address and payment information June 13, 2003, v. 1.38 ============================================================================ New Features: + added setting to curves.ini file to allow international users to set the decimal point appropriately based on their locale Changes: + Updated contact information and order form
发帖
Java SE

6.2w+

社区成员

Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
帖子事件
创建了帖子
2004-03-04 03:24
社区公告
暂无公告