Re: [Pharo-users] OrderedCollection remove:
On 04/01/2015 11:22 PM, Peter Uhnák wrote: col := #(1 2 3 4 5) asOrderedCollection. col do: [ :each | col remove: each. ]. col As a general rule in Smalltalk, a lot of hassle can be avoided avoiding loops. If you think you need a loop, stop and find a better way, it likely already exists, in this case as someone else already mentioned either #removeAll: or #removeSuchThat:. Smalltalk isn't procedural, loops aren't your bread and butter. -- Ramon Leon
Re: [Pharo-users] [Pharo-dev] Pharo sprint on Friday, 3rd April
On 28 Mar 2015, at 09:20, Marcus Denker marcus.den...@inria.fr wrote: This means having a look at the issue tracker to find some issue that are interesting to work on could be an idea. Maybe a trello board could be used to sync for the remote sprinters. https://trello.com/b/OQ2k210W https://trello.com/b/OQ2k210W It is public for viewing, for editing I think we need to add people. I started to add cases that people can look at. Marcus
Re: [Pharo-users] Voyage performance issue
could be. Write is not a fast action now with the mongo driver. Take into account that each object generates a graph of dictionaries who are committed to the DB. Depending on the complexity of that graph, you will have larger write times. you can try measuring time of two separated operations: [ serialized := VORepository current serializer serialize: theObject ] timeToRun. [ VORepository current resolver insert: theObject serialized: serialized withId: OID nextOID ] timeToRun. that might give you a better idea of what happens (you can also use the TimeProfiler to see where your time is consumed) if you have to write such collections in a regular basis, from there you can explore ways to speed up the process. Sorry not being able to help more, but the amount of information you give me is like going to the doctor and say “it hurts!” :P cheers, Esteban On 03 Apr 2015, at 01:25, Josefina Arcidiacono josefine2...@hotmail.com wrote: Hi! I'm using Voyage with MongoDB. I need to store an object with a large collection. Since both are voyageRoot, there is a Mongo table with all the collection objects and another with the first object pointing to them. With 20,000 objects in the collection it's taking 30 min to save. ¿Is that normal? Josefina -- View this message in context: http://forum.world.st/Voyage-performance-issue-tp4817087.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
[Pharo-users] Non-evaluating and / or
Hello I would like to ask how to do non-evaluating and. As far as I know, should be evaluating and and: should be non-evaluating. However, I need to find a way how to use it properly. In conventional languages I would expect to work it like in following example... false and: Transcript open Since false is... false... there is no reason to evaluate Transcript open. But when I run this one in playground, transcript opens. Any help is appreciated. Jan -- View this message in context: http://forum.world.st/Non-evaluating-and-or-tp4817211.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Re: [Pharo-users] [Pharo-dev] Pharo sprint on Friday, 3rd April
On 03 Apr 2015, at 13:07, Jigyasa Grover grover.jigya...@gmail.com wrote: Hey Marcus Anything up there for the beginners ? Not really yet… I am focusing myself on Pharo4… where we are not in a state that simple things are done (which often are cleanups). On Fri, Apr 3, 2015 at 4:35 PM, Marcus Denker marcus.den...@inria.fr mailto:marcus.den...@inria.fr wrote: On 28 Mar 2015, at 09:20, Marcus Denker marcus.den...@inria.fr mailto:marcus.den...@inria.fr wrote: This means having a look at the issue tracker to find some issue that are interesting to work on could be an idea. Maybe a trello board could be used to sync for the remote sprinters. https://trello.com/b/OQ2k210W https://trello.com/b/OQ2k210W It is public for viewing, for editing I think we need to add people. I started to add cases that people can look at. Marcus
Re: [Pharo-users] [Pharo-dev] Pharo sprint on Friday, 3rd April
On Fri, Apr 3, 2015 at 1:07 PM, Jigyasa Grover grover.jigya...@gmail.com wrote: Hey Marcus Anything up there for the beginners ? I often find it interesting to try to tackle more complex issues even though I know I will not be able to fix it - because I always learn a lot about the system from it. Peter
Re: [Pharo-users] [Pharo-dev] Pharo sprint on Friday, 3rd April
On 03 Apr 2015, at 14:36, Jigyasa Grover grover.jigya...@gmail.com wrote: Ohk. No issues :) Looking forward to other Pharo Sprints focusing on beginners :D Yes… maybe other people have ideas? Marcus
Re: [Pharo-users] Oracle on Linux
Am 03.04.2015 um 00:19 schrieb Esteban A. Maringolo emaring...@gmail.com: My position is that OpenDBX as a library, independently of Pharo, is a dead end. It might have been a good candidate in the past, but today it has no real use. But it is also true that for Pharo it is the only option you have to run it on Linux. Ok, understood. Thanks! Regards, ps: I would also avoid Oracle altogether as well, but given the fact it seems to be a requirement I didn't bring it to the discussion. I would avoid using an SQL engine if I could decide. But if a customer has an existing database there is nothing to think about. I only need a few things out of the database. So to me it appears I give it a try with pharo. If it does not succeed within a certain time I might be better off doing the database part with another language providing a HTTP interface which I can access from pharo. Norbert El abr 2, 2015 11:04 AM, Norbert Hartl norb...@hartl.name mailto:norb...@hartl.name escribió: Am 02.04.2015 um 13:55 schrieb Esteban Lorenzano esteba...@gmail.com mailto:esteba...@gmail.com: On 02 Apr 2015, at 13:13, Norbert Hartl norb...@hartl.name mailto:norb...@hartl.name wrote: Am 02.04.2015 um 12:52 schrieb Esteban A. Maringolo emaring...@gmail.com mailto:emaring...@gmail.com: I don't know if you need full fledged access or just to read a few tables. If it the latest you can use PostgreSQL Foreign Data Wrappers (FDW) and access the pgsql instance using the existing PGv2 driver. I know it might look convoluted, and maybe it is, but you avoid using DBX. I would also avoid using oracle which is a prerequisite, right? :) So DBX is to avoid? Sorry, I didn't care very much about SQL engines the last years. why DBX is to avoid? I don't know. I read the sentence I know it might look convoluted, and maybe it is, but you avoid using DBX. as avoiding DBX is something positive. So I want to know as well. in linux, it is your only chance for connecting to oracle (in windows you could also use odbc). and it should be working, AFAIK I'm fine with using DBX as long as it works. I understood also that it is one of the higher prioritized tasks for the consortium. Norbert Esteban Norbert Regards. Ps: FDW are amazing. El abr 2, 2015 6:07 AM, Norbert Hartl norb...@hartl.name mailto:norb...@hartl.name escribió: I see from time to time topics like SQL popping up. Most of the time DBXTalk seems to be a requirement. It is also something that is considered necessary for a lot of people. Now have the need to access an oracle database. Is that possible? And if yes does it also work on linux? Norbert
[Pharo-users] Tabs in Playground ?
Hi ! Is it possible to have multiple tabs on the playground ? It seems so but i don't find how to do it simply. -- Cheers Cyril Ferlicot
Re: [Pharo-users] [Pharo-dev] Pharo sprint on Friday, 3rd April
Hey Sean Sure ! Am up for it Could you suggest any specific task ? Thanks Jigyasa Grover On Fri, Apr 3, 2015 at 6:06 PM, Jigyasa Grover grover.jigya...@gmail.com wrote: Ohk. No issues :) Looking forward to other Pharo Sprints focusing on beginners :D On Fri, Apr 3, 2015 at 6:00 PM, Marcus Denker marcus.den...@inria.fr wrote: On 03 Apr 2015, at 13:07, Jigyasa Grover grover.jigya...@gmail.com wrote: Hey Marcus Anything up there for the beginners ? Not really yet… I am focusing myself on Pharo4… where we are not in a state that simple things are done (which often are cleanups). On Fri, Apr 3, 2015 at 4:35 PM, Marcus Denker marcus.den...@inria.fr wrote: On 28 Mar 2015, at 09:20, Marcus Denker marcus.den...@inria.fr wrote: This means having a look at the issue tracker to find some issue that are interesting to work on could be an idea. Maybe a trello board could be used to sync for the remote sprinters. https://trello.com/b/OQ2k210W It is public for viewing, for editing I think we need to add people. I started to add cases that people can look at. Marcus
Re: [Pharo-users] [Pharo-dev] Pharo sprint on Friday, 3rd April
Ohk. No issues :) Looking forward to other Pharo Sprints focusing on beginners :D On Fri, Apr 3, 2015 at 6:00 PM, Marcus Denker marcus.den...@inria.fr wrote: On 03 Apr 2015, at 13:07, Jigyasa Grover grover.jigya...@gmail.com wrote: Hey Marcus Anything up there for the beginners ? Not really yet… I am focusing myself on Pharo4… where we are not in a state that simple things are done (which often are cleanups). On Fri, Apr 3, 2015 at 4:35 PM, Marcus Denker marcus.den...@inria.fr wrote: On 28 Mar 2015, at 09:20, Marcus Denker marcus.den...@inria.fr wrote: This means having a look at the issue tracker to find some issue that are interesting to work on could be an idea. Maybe a trello board could be used to sync for the remote sprinters. https://trello.com/b/OQ2k210W It is public for viewing, for editing I think we need to add people. I started to add cases that people can look at. Marcus
Re: [Pharo-users] Tabs in Playground ?
Hi Cyril, Maybe it is sufficient for you to work with an inspector. For example, define the method gtInspectorExampleIn: composite gtInspectorPresentationOrder: 30 ^ composite table title: 'Example'; display: [ { #one - 'hello' . #two - 'world'} ]; column: 'Key' evaluated: #key; column: 'Value' evaluated: [ :each | each value printString ]; send: #value in the class SmallInteger and doit: 10 inspect Cheers, Alexandre On Apr 3, 2015, at 9:24 AM, Cyril Ferlicot cyril.ferli...@gmail.com wrote: Hi ! Is it possible to have multiple tabs on the playground ? It seems so but i don't find how to do it simply. -- Cheers Cyril Ferlicot -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Re: [Pharo-users] Non-evaluating and / or
Hello, You should but a block after and:. If you don't, the instruction will be always executed... The block represents a kind of conditional action. So if you want to do it works : false and: [ Transcript open ] Hoping that it will help, Best, Vincent BLONDEAU -Message d'origine- De : Pharo-users [mailto:pharo-users-boun...@lists.pharo.org] De la part de Jan B. Envoyé : vendredi 3 avril 2015 12:10 À : pharo-users@lists.pharo.org Objet : [Pharo-users] Non-evaluating and / or Hello I would like to ask how to do non-evaluating and. As far as I know, should be evaluating and and: should be non-evaluating. However, I need to find a way how to use it properly. In conventional languages I would expect to work it like in following example... false and: Transcript open Since false is... false... there is no reason to evaluate Transcript open. But when I run this one in playground, transcript opens. Any help is appreciated. Jan -- View this message in context: http://forum.world.st/Non-evaluating-and-or-tp4817211.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com. Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité de Worldline ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis. This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Worldline liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.
Re: [Pharo-users] Non-evaluating and / or
Hi, that's because you need to pass a block, since you want to postpone to execution. i.e. false and: [Transcript open]. (otherwise the binary operation Transcript open will take precedence over keyword false and:) You can always look at the implementation of those things — I always learn something from it. :) »and: alternativeBlock« Peter On Fri, Apr 3, 2015 at 12:10 PM, Jan B. blizn...@fit.cvut.cz wrote: Hello I would like to ask how to do non-evaluating and. As far as I know, should be evaluating and and: should be non-evaluating. However, I need to find a way how to use it properly. In conventional languages I would expect to work it like in following example... false and: Transcript open Since false is... false... there is no reason to evaluate Transcript open. But when I run this one in playground, transcript opens. Any help is appreciated. Jan -- View this message in context: http://forum.world.st/Non-evaluating-and-or-tp4817211.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Re: [Pharo-users] [Pharo-dev] Pharo sprint on Friday, 3rd April
Hey Marcus Anything up there for the beginners ? On Fri, Apr 3, 2015 at 4:35 PM, Marcus Denker marcus.den...@inria.fr wrote: On 28 Mar 2015, at 09:20, Marcus Denker marcus.den...@inria.fr wrote: This means having a look at the issue tracker to find some issue that are interesting to work on could be an idea. Maybe a trello board could be used to sync for the remote sprinters. https://trello.com/b/OQ2k210W It is public for viewing, for editing I think we need to add people. I started to add cases that people can look at. Marcus
Re: [Pharo-users] [Pharo-dev] Pharo sprint on Friday, 3rd April
Thanks Dmitri ! Will try to contribute as much as I can :) On Fri, Apr 3, 2015 at 9:58 PM, Dmitri Zagidulin dmi...@zagidulin.net wrote: Ideas for beginners, for Sprints etc: * Adding class comments/documentation, as mentioned, is a fantastic idea. Maybe we can provide some code snippets, that will bring up a list of classes with missing comments (or with too-short comments, less than X characters). People can coordinate (on IRC, or via something like EtherPad) on who's working on which classes. * Not related to core Pharo code itself, but still very helpful: Test various libraries for compatibility with Pharo 4.0. Pick your favorite pharo-related project or library off of SmalltalkHub (or SqueakSource, etc), try to load it into Pharo 4. Run the unit tests. Fix stuff until it loads fine in 4.0.Try and use the library in a simple demo project. Best yet, write a blog post about it. The success of Pharo largely depends on the success of its ecosystem of libraries and projects. * Benchmark things. Which JSON library (of the several available) is faster at parsing large json objects in Pharo 4? That sort of thing. * Write blog posts in general! Write tutorials and walkthroughs on how to use some of the new 4.0 features. Do programming puzzles / interview questions and post about em. Share tips on how you theme and customize your Pharo images, which tools you use most, and so on. * As mentioned before, at least browse the open 4.0 issues on the pharo FogBugz. Try to think about how you'd go about discovering how to solve them. You'll learn a lot about the system. Also, once the issues are fixed, you can help test and confirm the fix (if you can figure out the 'how to reproduce' steps). Follow the 'to reproduce' steps to make sure you reproduce the error/issue. Then load the slice containing the fix from the pharo inbox repo, and redo the steps again to make sure it was fixed. On Fri, Apr 3, 2015 at 8:54 AM, Marcus Denker marcus.den...@inria.fr wrote: On 03 Apr 2015, at 14:36, Jigyasa Grover grover.jigya...@gmail.com wrote: Ohk. No issues :) Looking forward to other Pharo Sprints focusing on beginners :D Yes… maybe other people have ideas? Marcus
Re: [Pharo-users] [Pharo-dev] Pharo sprint on Friday, 3rd April
Ideas for beginners, for Sprints etc: * Adding class comments/documentation, as mentioned, is a fantastic idea. Maybe we can provide some code snippets, that will bring up a list of classes with missing comments (or with too-short comments, less than X characters). People can coordinate (on IRC, or via something like EtherPad) on who's working on which classes. * Not related to core Pharo code itself, but still very helpful: Test various libraries for compatibility with Pharo 4.0. Pick your favorite pharo-related project or library off of SmalltalkHub (or SqueakSource, etc), try to load it into Pharo 4. Run the unit tests. Fix stuff until it loads fine in 4.0.Try and use the library in a simple demo project. Best yet, write a blog post about it. The success of Pharo largely depends on the success of its ecosystem of libraries and projects. * Benchmark things. Which JSON library (of the several available) is faster at parsing large json objects in Pharo 4? That sort of thing. * Write blog posts in general! Write tutorials and walkthroughs on how to use some of the new 4.0 features. Do programming puzzles / interview questions and post about em. Share tips on how you theme and customize your Pharo images, which tools you use most, and so on. * As mentioned before, at least browse the open 4.0 issues on the pharo FogBugz. Try to think about how you'd go about discovering how to solve them. You'll learn a lot about the system. Also, once the issues are fixed, you can help test and confirm the fix (if you can figure out the 'how to reproduce' steps). Follow the 'to reproduce' steps to make sure you reproduce the error/issue. Then load the slice containing the fix from the pharo inbox repo, and redo the steps again to make sure it was fixed. On Fri, Apr 3, 2015 at 8:54 AM, Marcus Denker marcus.den...@inria.fr wrote: On 03 Apr 2015, at 14:36, Jigyasa Grover grover.jigya...@gmail.com wrote: Ohk. No issues :) Looking forward to other Pharo Sprints focusing on beginners :D Yes… maybe other people have ideas? Marcus
Re: [Pharo-users] Pharo 3.0 Refactoring
On Fri, Apr 3, 2015 at 11:56 PM, Hartmut krasem...@acm.org wrote: The Debugger complains that the pushed instance variable were there two times: Hi Hartmut, Thanks for letting us know. However with limited resources the focus is on Pharo 4 being released very soon. I'd suggest downloading Pharo 4 and seeing if the problem has been fixed, and report if it is still an issue. cheers -ben
Re: [Pharo-users] [Pharo-dev] Pharo sprint on Friday, 3rd April
On Fri, Apr 3, 2015 at 12:41 PM, Martin Bähr mba...@email.archlab.tuwien.ac.at wrote: nice ideas. though beginners may not have any favourite projects. are there any stats on which projects are popular so those can be chosen for testing? You're right. I think by 'favorite', I meant more like 'areas you care about in general, even outside of Pharo'. For example, say you're interested in data processing in general. You can ask, How would I go about downloading a comma-separated (CSV) file, read it into Pharo, and display a graph? This involves learning how to do File I/O, checking to see if there's a CSV library compatible with Pharo, and checking to see what sort of graphing libraries exist (I believe one was mentioned recently on the mailing list, Roassal or something). In similar vein, you can check out XML parsers, JSON parsers, etc, etc. Or you can ask How do I connect to a relational database? I've heard Glorp mentioned, and OpenDBX, etc, so which of these would actually work in Pharo 4?. Or, For example, maybe you care about social media APIs. You can then think, Hey I wonder if there are any Twitter or Facebook client libraries for Pharo. Maybe there's an Open Social API ( http://en.wikipedia.org/wiki/OpenSocial ) library that I can check out. That sort of thing. * Write blog posts in general! Write tutorials and walkthroughs on how to use some of the new 4.0 features. same problem here, being new to pharo, i would not even know what the new features are. this should be documented in release-notes probably. Of course, understood. Then write posts about new user impressions of Pharo 4 (keeping in mind the usual this is open source software / the devs are busy so don't be too harsh on them sort of stuff). Or short tutorials on the various small things that you've figured out to do. (Like a cron job that fires up your Pharo image on the command line).
Re: [Pharo-users] Devnology presentation slides
Hi stefan what were the reactions of the audience? Stef Le 2/4/15 23:18, Stephan Eggermont a écrit : Yesterday, Diego and I presented Pharo at the Devnology meeting in Arnhem. http://www.slideshare.net/StephanEggermont/pharo-devnology20150401 Stephan
Re: [Pharo-users] Non-evaluating and / or
Of course, how could I have missed it before, thank you both :) Jan Blondeau Vincent wrote Hello, You should but a block after and:. If you don't, the instruction will be always executed... The block represents a kind of conditional action. So if you want to do it works : false and: [ Transcript open ] Hoping that it will help, Best, Vincent BLONDEAU Peter Uhnák wrote Hi, that's because you need to pass a block, since you want to postpone to execution. i.e. false and: [Transcript open]. (otherwise the binary operation Transcript open will take precedence over keyword false and:) You can always look at the implementation of those things — I always learn something from it. :) »and: alternativeBlock« Peter -- View this message in context: http://forum.world.st/Non-evaluating-and-or-tp4817211p4817419.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Re: [Pharo-users] DynaCASE
With Alex and a student visiting my lab at the moment, we are working on BPMN visualisation. We would certainly be interested in that. Unfortunately it was completely out of me scope to implement BPMN this semester time-wise, that's why we settled for BORM and partially DEMO. Peter
Re: [Pharo-users] Devnology presentation slides
On 03/04/15 19:30, stepharo wrote: Hi stefan what were the reactions of the audience? We managed to make them think. We had a very small, and very knowledgable group, so we had lots of difficult and interesting questions and discussions. The thing that impressed them the most was the incredibly short feedback loop when doing debugger driven design, and the way you talk to your objects. We pretty much followed the slides with the exercises, having a short sample of each of the complexity reducing things we do in Pharo. Stephan
Re: [Pharo-users] DynaCASE
I'm sorry for not replying for such long time. Thank you for sharing. I recommend loading via my baseline from github, which automatically loads all prerequisites including DynaCASE itself: Gofer new url: 'http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo40/main'; configurationOf: 'GitFileTree'; loadDevelopment. Metacello new baseline: 'DynaCASEPetriNets'; repository: 'github://bliznjan/dynacase-petrinets/repository'; load You can take a look. As I mentioned before, it is far from complete, but I keep improving it every day so it should be usable in few weeks (petri nets model and visualisation, i.e. without simulation, much sooner). Jan SergeStinckwich wrote On Tue, Mar 31, 2015 at 4:02 PM, Jan B. lt; bliznjan@.cvut gt; wrote: Hi Thank you for CC-ing me, Peter, since I don't watch Pharo developers mailing list. Hi Jan, About petri nets... My main goal is to implement simulation for DynaCASE (i.e. make it move) and Petri nets are for me more like a tool for trying simulation prototypes than goal itself. I'm currently stuck with them on developing simulation itself and on Roassal (visualisation engine from Moose which we use) problems with composite shapes. Anyway, Serge, I will improve them in time and I would be glad to hear what do you expect from it - what should it support, do etc. Can't promise anything, but it might help us both. At the moment, I'm quite interested to be able to do Process Mining: http://www.processmining.org/ The idea is to be able to extract from logs a process. I have already done some experiments some time ago. I'm using a basic alpha algorithm and build a Petri net that represent the process: https://www.youtube.com/watch?v=wdf80t32v-0 The repo is here: http://smalltalkhub.com/#!/~SergeStinckwich/Moose-XES Maybe I can use your Petri Nets viz instead of mine. How I can load your P/N viz code in my image ? Regards -- Serge Stinckwich UCBN UMI UMMISCO 209 (IRD/UPMC) Every DSL ends up being Smalltalk http://www.doesnotunderstand.org/ -- View this message in context: http://forum.world.st/DynaCASE-tp4816281p4817416.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
[Pharo-users] Loading specific commits from ConfigurationOf
Hi, is it possible to depend on a specific commit instead of preconfigured? For example I would like to load Roassal2, where one of the packages is Trachel, and I want to load 'Trachel-AlexandreBergel.265'. Currently I have in my ConfigurationOfMyProject ~ project: 'Roassal2' with: [ spec className: #ConfigurationOfRoassal2; versionString: #'development'; repository: 'http://smalltalkhub.com/mc/ObjectProfile/Roassal2/main/' ]; ~~ I could replace versionString: with one of the specified in ConfigurationOfRoassal2, however the newest one is too old, and #development is too new. So is it possible for me to specify what versions of the packages will be loaded? Thanks, Peter
[Pharo-users] Pharo 3.0 Refactoring
To whom it may concern while refactoring I try to push down an instance variable. The Debugger complains that the pushed instance variable were there two times: TopVO ist the subclass ... -- Hartmut Krasemann Königsberger Str. 41 c D 22869 Schenefeld Tel. 040.8307097 Mobil 0171.6451283 krasem...@acm.org smime.p7s Description: S/MIME Cryptographic Signature