tag:blogger.com,1999:blog-44980757606796008862024-03-05T13:42:40.672+01:00Stefan KrecherLifehack. Productivity. Code. Smalltalk.Stefan Krecherhttp://www.blogger.com/profile/14318562125954469101noreply@blogger.comBlogger27125tag:blogger.com,1999:blog-4498075760679600886.post-69165243046889627132015-05-22T17:35:00.000+02:002015-05-22T17:35:21.925+02:00Smalltalkify GroovyBy adding some Mixins to a groovy script, it is possible to use some smalltalk-like expressions like
<br /><br />
<code>
ifTrue: [ do something ] ifFalse: [do something else]
</code>
<br />
<br />
Or do some smalltalk-like exception handling like<br /><br />
<code>
[ aBlock ] on: #Error do: [ something ]
</code>
<br /><br />
In groovy this would look like:<br />
<br />
<script src="https://gist.github.com/StefanKrecher/50254defdc6454601384.js"></script>
Find the full source here: <a href="https://gist.github.com/StefanKrecher/a5b7f92b32815cce3be7">gist on github</a>Stefan Krecherhttp://www.blogger.com/profile/14318562125954469101noreply@blogger.comtag:blogger.com,1999:blog-4498075760679600886.post-85497122968173660092012-10-10T23:17:00.000+02:002012-10-10T23:17:25.442+02:00Using Processing.js with Amber<br />
"<i>The Processing language was originally created at MIT as part of the Media lab and Aesthetics and Computation group. They needed a way to bridge the gap between software developers, artists, data visualizers, etc., and to do so in a way that allowed new programmers (or non-programmers) to do complex visual work easily. Processing was built using Java, and can be thought of as a simplified Java, with a simplified Java API for drawing and graphics</i>." (<a href="http://processingjs.org/" target="_blank">source</a>)<br />
<br />
Since it is possible to write Processing code with pure JavaScript, it should be possible to use <a href="http://amber-lang.net/" target="_blank">Amber</a> with Processing.<br />
And so it is - with some little tricks.<br />
First, Processing should get initialized in the html page like <a href="https://github.com/StefanKrecher/amber/blob/master/examples/processing/index.html" target="_blank">this</a><br />
<br />
A Processing instance will be created, it can get accessed via Amber in this way:<br />
<br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">processing := <Processing.instances[0]>.</span><br />
<br />
After fetching this instance, it can be used like any other Smalltalk Object:<br />
<br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">processing background: 224.</span><br />
<br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">processing line: centerX y: centerY dX: myDX dY: myDY.</span><br />
<br />
I converted the clock-example to Amber, you can find it in the Example-section of my <a href="https://github.com/StefanKrecher/amber" target="_blank">Amber Git repo</a>. And maybe soon in the "official" Amber-Examples.<br />
<div>
<br /></div>
<div>
You can try it out <a href="http://dl.dropbox.com/u/132452/processing/examples/processing/index.html" target="_blank">here</a>.</div>
Stefan Krecherhttp://www.blogger.com/profile/14318562125954469101noreply@blogger.com2tag:blogger.com,1999:blog-4498075760679600886.post-29339070249578876122012-06-27T17:44:00.000+02:002012-06-27T17:44:10.753+02:00Android-Binding for GNU Smalltalk ready!<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIoa_-C5fGplg-KlPxPp9OP7seoVLk9tCR0OL1c6PPMwDCutIvwRC13ASTFdmnblVqqsNf76UHrBC5VKYCnu4qAslN6BkJ0b5n1m7GnOHUmVIJHjyrelVMln4b7NJHWz6IJP1_xJVhstc/s1600/sl4apic.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIoa_-C5fGplg-KlPxPp9OP7seoVLk9tCR0OL1c6PPMwDCutIvwRC13ASTFdmnblVqqsNf76UHrBC5VKYCnu4qAslN6BkJ0b5n1m7GnOHUmVIJHjyrelVMln4b7NJHWz6IJP1_xJVhstc/s320/sl4apic.jpg" width="193" /></a></div>
Essentially it's no big thing - just a few lines of Smalltalk-code: i created a GNU Smalltalk star Package including the "Android" class that gives access to the full Android API via <a href="https://code.google.com/p/android-scripting/">SL4A</a>.<br />
Usage is simple. First file in the package with:<br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">PackageLoader fileInPackage: 'Android'.</span><br />
<br />
Then you can use it like this:<br />
<br />
<div style="font-family: "Courier New",Courier,monospace;">
| android |</div>
<div style="font-family: "Courier New",Courier,monospace;">
android := Android new.</div>
<div style="font-family: "Courier New",Courier,monospace;">
android makeToast: 'Hello World!'.</div>
<br />
A more complex example, using some dialogs, is included in the <a href="https://github.com/downloads/StefanKrecher/smalltalk_for_android/smalltalk_for_android.apk">smalltalk_for_android.apk</a> (you can use the QR-Code below to install the apk - but remember that you need to install sl4a before. See my previous blog-post).<br />
To get an idea what is possible, see the the <a href="http://code.google.com/p/android-scripting/wiki/ApiReference">API reference</a>. I think it is a wonderful perspective to write full blown Android apps with Smalltalk.<br />
Coding Smalltalk on a phone or tablet is fun - the sl4a editor is a big help because it contains an api reference. If you want to hack more complex scripts, you can remote control your phone or emulator, just follow <a href="http://code.google.com/p/android-scripting/wiki/RemoteControl">this</a> instructions. Only one difference: you need to set the environment-variable AP_HANDSHAKE to some arbitrary value.<br />
With this setup you can execute your script with "gst myscript.st" or just call the api via the gst console.<br />
Sourcecode etc. is available on <a href="https://github.com/StefanKrecher/smalltalk_for_android">github</a>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://chart.googleapis.com/chart?cht=qr&chs=300x300&chl=https://github.com/downloads/StefanKrecher/smalltalk_for_android/smalltalk_for_android.apk" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="https://chart.googleapis.com/chart?cht=qr&chs=300x300&chl=https://github.com/downloads/StefanKrecher/smalltalk_for_android/smalltalk_for_android.apk" width="200" /></a></div>
<br />Stefan Krecherhttp://www.blogger.com/profile/14318562125954469101noreply@blogger.com2tag:blogger.com,1999:blog-4498075760679600886.post-67523689436353870932012-06-13T23:54:00.000+02:002012-06-14T13:18:19.001+02:00GNU Smalltalk on Android<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCTy9zxlB434AIT9nIgNdP1HBjNrdkSeLSIGreNN10CE6JIrXRqFuxJ4mQkD4gXZyR97QV5ePo_qbogkoo61lSyGP1wJ5r6gP8_mZdmHq2uu7U9dqoKVDjNhqKEJUWqxOKSS2zWE3IuA8/s1600/gnu_smalltalk_ready.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="185" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCTy9zxlB434AIT9nIgNdP1HBjNrdkSeLSIGreNN10CE6JIrXRqFuxJ4mQkD4gXZyR97QV5ePo_qbogkoo61lSyGP1wJ5r6gP8_mZdmHq2uu7U9dqoKVDjNhqKEJUWqxOKSS2zWE3IuA8/s320/gnu_smalltalk_ready.png" width="320" /></a></div>
I crosscompiled <a href="http://smalltalk.gnu.org/">GNU Smalltalk 3.2.4</a> with the <a href="http://developer.android.com/sdk/ndk/index.html">Android NDK</a> (r8).<br />
Because interaction with GST on Android was complicated (couldn't read stdout/ stderr reliable), i decided to use the <a href="http://code.google.com/p/android-scripting/">Android Scripting Framework</a>.<br />
So if you want to try it, first you need to install SL4A. You should install the <a href="http://android-scripting.googlecode.com/files/sl4a_r5.apk">sl4a_r5.apk</a> (not r4!)<br />
After installing SL4A, you can download and install <a href="https://github.com/downloads/StefanKrecher/smalltalk_for_android/smalltalk_for_android.apk">smalltall_for_android.apk</a>. Remember to allow installation from untrusted sources.<br />
I tested "smalltalk for android" with an android virtual device running Android 2.3.3. The Screenshot was made on my Samsung Galaxy S3.<br />
Currently there is no binding for the SL4A API - you can execute Smalltalk code, but there is no interaction with the Android API.<br />
So, if anyone would like to help implementing the JSON-RPC bridge to SL4A - that would be really great.<br />
<a href="https://github.com/StefanKrecher/smalltalk_for_android">The Source is on github</a>.Stefan Krecherhttp://www.blogger.com/profile/14318562125954469101noreply@blogger.com0tag:blogger.com,1999:blog-4498075760679600886.post-44018135443837015142012-01-21T00:07:00.000+01:002012-01-21T00:07:02.438+01:00Domain-Verification mit Schlund Technologies für Google Apps<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixBap61JD5kcV00Gbr7qGU2jdgdDSbILBfPEUudOQZfvSnTJ2FvTk4bDu6xeGnT9VjXHcXafYdUfMtKBkO3gtEhuzEuKuMIw9OF406YV6LSM1Gal6AlOibWpGv6ApImMrS9MbxtBhksxM/s1600/schlundtech.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixBap61JD5kcV00Gbr7qGU2jdgdDSbILBfPEUudOQZfvSnTJ2FvTk4bDu6xeGnT9VjXHcXafYdUfMtKBkO3gtEhuzEuKuMIw9OF406YV6LSM1Gal6AlOibWpGv6ApImMrS9MbxtBhksxM/s1600/schlundtech.png" /></a></div>
Ich habe ein Google Apps Konto für eine Non-Profit Organisation eingerichtet. Die Domain, die ich mit dem Konto nutzen möchte habe ich bei Schlund Technologies gekauft.<br />
Um nun die Domain mit dem Google Apps Konto nutzen zu können, muss diese verifiziert werden - das war aber in meinem Fall eine echte Herausforderung. Dieser Spezialfall scheint auch nicht dokumentiert zu sein.<br />
Es gibt verschiedene Möglichkeiten der Verifikation, so kann man z.B. auf der Homepage der Domäne spezielle HTML-Tags einfügen oder auf dem Server eine präparierte Datei ablegen. Das Vorhandensein dieser Informationen impliziert, dass man Eigentümer der Domäne ist.<br />
Das funktioniert nur leider nicht, wenn man nur die Domain hat und keinen zugehörigen Webspace (den will man ja gerade mit Google Apps verwalten).<br />
Die andere Variante ist, bei der Domänenkonfiguration einen TXT-Record mit einem speziellen Wert anzulegen. Google fragt den TXT-Record beim Nameserver ab und kann so das Eigentum an der Domäne verifzieren. Die Konfiguration des speziellen TXT-Records ist bei Google Apps für einige Domain-Provider beschrieben - leider nicht für Schlund.<br />
Nach mehrstündigem rumprobieren und diversen Forensuchen konnte ich das Problem lösen: Bei Schlundtech kann für den neuen TXT-Record ein Name angegeben werden. Hier muss "@" eingetragen werden.<br />
Interessanterweise konnte ich den TXT-Record speichern und die Google-Verifikation erfolgreich zum Abschluß führen. Beim nächsten Aufruf der Domain-Konfigurationsmaske bei Schlund war das @-Zeichen wieder verschwunden.Stefan Krecherhttp://www.blogger.com/profile/14318562125954469101noreply@blogger.com2tag:blogger.com,1999:blog-4498075760679600886.post-57755531537692681812012-01-05T18:30:00.000+01:002012-01-06T17:02:01.158+01:00AmbrhinoToday i'd like to announce my newest Project "Ambrhino". Ambrhino integrates <a href="http://amber-lang.net/">Amber</a> Smalltalk with the Java Virtual Machine.<br />
Ambrhino can act as a Server to serve Amber and persist changes to the filesystem (you could use it instead of node.js).<br />
It can also act as a runtime to execute Amber-Programs.<br />
Ambrhino is written in Java and uses JSR223 to execute Javascript with the <a href="http://www.mozilla.org/rhino/">Mozilla Rhino Engine</a><br />
An interesting feature is, that you can directly call Java classes from a compiled Amber Smalltalk, e.g.:<br />
<span style="font-family: 'Courier New', Courier, monospace;"><br /></span><br />
<span style="font-family: 'Courier New', Courier, monospace;">buttonPrintit := <new it')="" jbutton('print="">.</new></span><br />
<span style="font-family: 'Courier New', Courier, monospace;">buttonPanel add: buttonPrintit.</span><br />
<span style="font-family: inherit;"><br /></span><br />
<span style="font-family: inherit;">A really cool feature is that it seems to be possible to add Smalltalk BlockClosures as ActionListeners to (Swing-) Buttons like this:</span><br />
<span style="font-family: inherit;"><br /></span><br />
<br />
<span style="font-family: 'Courier New', Courier, monospace;">buttonDoit addActionListener: [ </span><br />
<span style="font-family: 'Courier New', Courier, monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>self eval: (textArea javaObject getSelectedText).</span><br />
<span style="font-family: 'Courier New', Courier, monospace;">].</span><br />
<br />
The main goal of this project is not to use Amber to write Swing-Applications - it feels somehow weird to use a Webbased-IDE to create a native Swing Application ...<br />
Someday i want to use it to create Android-Applications with Amber - i could start an Ambrhino-Server on the Android-Emulator to create/ compile/ package programs. The Android-API will be called with the <a href="http://code.google.com/p/android-scripting/">Android Scripting Framework (ASF)</a><br />
But to get familiar with the (sometimes strange looking) Smalltalk-Java-Javascript-Mixture, i made a little Swing-Application - a simple Workspace to execute Smalltalk-Code.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEje6XEGspw9a4GewHtCQuJoqNiHc6epdJpdJ5rOCWQgLwILZo2VKaMfaeCe6NrCbzvW88MC2oixesfNLd-4Fh0FrDYaAIjx5BJlKtm1CT1kRNa-_849Xc1i-QNC7lpG-5ePSgrK7gHhwbE/s1600/workspace.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="288" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEje6XEGspw9a4GewHtCQuJoqNiHc6epdJpdJ5rOCWQgLwILZo2VKaMfaeCe6NrCbzvW88MC2oixesfNLd-4Fh0FrDYaAIjx5BJlKtm1CT1kRNa-_849Xc1i-QNC7lpG-5ePSgrK7gHhwbE/s320/workspace.jpg" width="320" /></a></div>
To try it out you may fork the project on <a href="https://github.com/StefanKrecher/Ambrhino">Github</a> or just download the <a href="https://github.com/downloads/StefanKrecher/Ambrhino/ambrhino.zip">ambrhino.zip</a> unpack it and start the workspace.bat file.<br />
<br />
Like in other Smalltalk-Workspaces you can select text and execute it by pressing "do it" or "print it".<br />
<br />
To get an idea of what is possible you can copy <a href="https://gist.github.com/1565660">this gist</a> to the workspace and execute it. It fetches via HTTP-GET content from a Webserver and displays it on a JTextPane. Not really useful - but somehow cool.<br />
<br />
Ideas, Hints, Help and rants are very welcome!Stefan Krecherhttp://www.blogger.com/profile/14318562125954469101noreply@blogger.com0tag:blogger.com,1999:blog-4498075760679600886.post-47758705232676692822011-09-23T15:24:00.001+02:002011-09-23T15:24:33.803+02:00Using Amber with a free WebDAV-ServiceI really love <a href="http://amber-lang.net/">Amber</a> - but there's one thing i could not get used to. To persist the code you produce you need to setup a local WebDAV-Server or you need to run the Amber server-tool based on node.js.<br />
The Problem i had is that i wanted to work only with a browser. Do some work on my PC, then switch to my wifes notebook, work in an internet-café, have a quick look at some code when i'm at my mothers house and so on.<br />
My first attempt was a <a href="http://jtalk-server.appspot.com/">project</a> on the google-app-engine, where jtalk (now "Amber") code was saved to a database. That approach was a quick hack and somehow <span class="short_text" id="result_box" lang="en"><span class="hps">proprietary. I also ran JTalk on the JVM on the serverside using google-backend-technology. Everything was much too complicated.</span></span><br />
<span class="short_text" id="result_box" lang="en"><span class="hps">My current idea is to keep everything simple, use free services and have a real cloud-approach. I needed a free WebDAV-Service, accessible by a Webbrowser and the possibility to sync my files with a local folder on my harddisc.</span></span><br />
<span class="short_text" id="result_box" lang="en"><span class="hps">I had the idea to use <a href="https://www.dropbox.com/">Dropbox</a>, because Dropbox has an easy to use syncing tool and a nice web-view. I used Dropbox to server my <a href="http://dl.dropbox.com/u/132452/examples/twitterwall/index.html">Twitterwall</a> demo for Amber. It would be quite easy to put a git-repository in my public Dropbox-folder and server Ambers index.html to the Cloud. But since Dropbox has no WebDAV-support it would not be possible to work from somewhere and save code and then push the changes to github when i'm back to a PC with git installed. To solve this problem, i would need to use the Dropbox-API. But that approach has other difficulties ...</span></span><br />
<span class="short_text" id="result_box" lang="en"><span class="hps">On my quest i was experimenting with a lot of Cloud, WebTop and Filehosting Services and the only one that was easy and free to use and was working with Amber was the <a href="http://www.gmx.net/">gmx</a> MediaCenter.</span></span><br />
<span class="short_text" id="result_box" lang="en"><span class="hps">There are just a few steps:</span></span><br />
<ol>
<li><span class="short_text" id="result_box" lang="en"><span class="hps">Register a gmx account</span></span></li>
<li><span class="short_text" id="result_box" lang="en"><span class="hps">Navigate to the MediaCenter</span></span></li>
<li><span class="short_text" id="result_box" lang="en"><span class="hps">Upload the git-repository with Amber sources (drag & drop)</span></span></li>
<li><span class="short_text" id="result_box" lang="en"><span class="hps">Navigate to https://webdav.mc.gmx.net/ and login with your gmx-passwort</span></span></li>
<li><span class="short_text" id="result_box" lang="en"><span class="hps">Go to the index.hmtl in your amber-folder, do some coding and press "commit package"</span></span></li>
</ol>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5KcbM09FKiHbdSgtqUr_pODbvInNgeNwQRRiAytySWNf0l2p5qotG_9EL8jdwRZW5Qi7rOX_52mHER03u2umQHQXvHdan_62zwm-d8agVzYcZ9gmUdGukiaQdkagPOnPLyg4ZJP_paqc/s1600/gmx-mediacenter.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="214" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5KcbM09FKiHbdSgtqUr_pODbvInNgeNwQRRiAytySWNf0l2p5qotG_9EL8jdwRZW5Qi7rOX_52mHER03u2umQHQXvHdan_62zwm-d8agVzYcZ9gmUdGukiaQdkagPOnPLyg4ZJP_paqc/s320/gmx-mediacenter.jpg" width="320" /></a></div>
<span class="short_text" id="result_box" lang="en"><span class="hps"></span></span><span class="short_text" id="result_box" lang="en"><span class="hps">The commited Category js will be updated in the gmx MediaCenter!</span></span><br />
<span class="short_text" id="result_box" lang="en"><span class="hps">When you want to push your code to github, you just need to go to a PC where you can sync your gmx MediaCenter to a local disc and where a git-client is available.</span></span><br />
<span class="short_text" id="result_box" lang="en"><span class="hps">It's possible to share WebDAV-folders with other gmx users so you easily could collaborate outside of github.</span></span><br />
<span class="short_text" id="result_box" lang="en"><span class="hps">There's only one drawback - you can't grant access to everybody, it's restricted to gmx-users. So if you want to show something to a wider audience you would need to copy the files e.g. to your Dropbox folder.</span></span>Stefan Krecherhttp://www.blogger.com/profile/14318562125954469101noreply@blogger.com1Neulander Straße 17, 27374 Visselhövede, Deutschland52.97113 9.5068452.968739500000005 9.5019045 52.9735205 9.5117755tag:blogger.com,1999:blog-4498075760679600886.post-60737975809946810172011-09-21T22:30:00.000+02:002011-09-23T12:04:26.152+02:00A Twitterwall with Amber<a href="http://amber-lang.net/">Amber</a>, formerly known as JTalk, is evolving. It is so much fun playing with Smalltalk just only with a browser - it's addictive! So i wanted to contribute a little Example of how Amber can be used to mesh-up Web2.0 stuff.<br />
The result was a very simple Twitterwall using the restful <a href="https://dev.twitter.com/docs/api/1/get/search">Twitter-Search API</a>. I pushed it to <a href="https://github.com/StefanKrecher/amber">my amber-fork</a> on github and made a pull-request. <a href="http://www.nicolas-petton.fr/">Nicolas</a> already pulled it and now it's in the amber examples-section.<br />
You can have a look at it in <a href="http://dl.dropbox.com/u/132452/examples/twitterwall/index.html">my public Dropbox folder</a>. You can examine the two responsible classes <span style="font-family: "Courier New",Courier,monospace;">Tweet</span> and <span style="font-family: "Courier New",Courier,monospace;">TwitterSearch</span> in the Examples category from there too.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiUmVuFYQsw51G9u3F_rM3AX_nYrrXHp4Uja-r2OuEw8bEmFc77fp780FGCcl5qlaLE4tWw6HX_Sxzoh240-JvTpqfKDSbMgbicaG01ESFckpfV8kwvjE2OktBsAnh1TS4yvkBimLgwHM/s1600/twitterwall.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiUmVuFYQsw51G9u3F_rM3AX_nYrrXHp4Uja-r2OuEw8bEmFc77fp780FGCcl5qlaLE4tWw6HX_Sxzoh240-JvTpqfKDSbMgbicaG01ESFckpfV8kwvjE2OktBsAnh1TS4yvkBimLgwHM/s320/twitterwall.jpg" width="314" /></a></div>
<br />Stefan Krecherhttp://www.blogger.com/profile/14318562125954469101noreply@blogger.com0Neulander Straße 17, 27374 Visselhövede, Deutschland52.97113 9.5068452.968739500000005 9.5019045 52.9735205 9.5117755tag:blogger.com,1999:blog-4498075760679600886.post-13122032362816414912011-09-20T23:00:00.000+02:002011-09-23T12:24:30.896+02:00An Eclipse-Plugin for Redline Smalltalk<div style="font-family: inherit;">
<span style="font-size: small;">I just started the development of an eclipse-plugin for <a href="http://redline.st/">redline smalltalk</a>. It is the very first preview but i wanted to release this early to be prepared for any wishes/ commets etc. The project ist hosted on <a href="https://github.com/StefanKrecher/eclipse-redline-plugin">github</a>.</span></div>
<div style="font-family: inherit;">
<span style="font-size: small;">I'm using <a href="http://www.eclipse.org/Xtext/">Xtext</a> for parsing/ syntax coloring/ code completition etc. So i have to reimplement parts of the parser, but Xtext is very powerful and we can use all of the nifty features of the eclipse plugin development environment.</span></div>
<div style="font-family: inherit;">
<span style="font-size: small;">Currently it's only an Editor but it could be enhanced to an own "Perspective" with more Smalltalk-Development Tools, e.g. </span></div>
<ul style="font-family: inherit;">
<li><span style="font-size: small;">Class Hierarchy Browser (by switching to that perspective all .st-files would get parsed to an ecore-model)</span></li>
<li><span style="font-size: small;">Debugger (it's already there)</span></li>
<li><span style="font-size: small;">Transcript (a console, it's already there too)</span></li>
<li><span style="font-size: small;">a Workspace (we could use something like the eclipse-scrapbook-pages for that)</span></li>
</ul>
<div style="font-family: inherit;">
<span style="font-size: small;">This Perspective could be packaged as an own <a href="http://www.eclipse.org/home/categories/rcp.php">RCP-Application</a> so we would have a standalone Smalltalk-IDE ...<span class="Apple-style-span" style="border-collapse: separate; color: black; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><span class="Apple-style-span" style="color: #222222; text-align: left;"> </span></span></span></div>
<div style="color: black; font-family: inherit;">
<span style="font-size: small;"><span class="Apple-style-span" style="border-collapse: separate; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><span class="Apple-style-span" style="text-align: left;"></span></span></span></div>
<div style="color: black; font-family: inherit;">
<br /></div>
<div class="separator" style="clear: both; font-family: inherit; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfMbeIYH8Olvk_3MpMj8X6QuvjGriJNtAlhiYwxS6W_82iqYBo7qMDbmHlAkr0BKLrfLRoSVvmyxwI6ingdmRj1LbE-BUCRCsLynS4kmFqc5ryGQxEz18aQMCg5MG8EXb119nLOiu4oio/s1600/redlineplugin1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="191" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfMbeIYH8Olvk_3MpMj8X6QuvjGriJNtAlhiYwxS6W_82iqYBo7qMDbmHlAkr0BKLrfLRoSVvmyxwI6ingdmRj1LbE-BUCRCsLynS4kmFqc5ryGQxEz18aQMCg5MG8EXb119nLOiu4oio/s320/redlineplugin1.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; font-family: inherit; text-align: center;">
</div>
<div class="separator" style="clear: both; font-family: inherit; text-align: center;">
</div>
<div class="separator" style="clear: both; font-family: inherit; text-align: center;">
</div>
<div class="separator" style="clear: both; font-family: inherit; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiUzb8-9tiJ_XIFrRRm1tgEuc1V57IuRsv36MaGPYmTRGBix_9HfFlzCSqGD50Hf5v_J0ih7NJdrapEKP6LVWapTTdTrNqv6bZ7L_uiwLRbv7sjkntFpJFq1Johyphenhyphen9zGr4qIuOC81DRGDg/s1600/redlineplugin2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="191" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiUzb8-9tiJ_XIFrRRm1tgEuc1V57IuRsv36MaGPYmTRGBix_9HfFlzCSqGD50Hf5v_J0ih7NJdrapEKP6LVWapTTdTrNqv6bZ7L_uiwLRbv7sjkntFpJFq1Johyphenhyphen9zGr4qIuOC81DRGDg/s320/redlineplugin2.jpg" width="320" /></a></div>
<div style="font-family: inherit;">
<br /></div>
<div style="font-family: inherit;">
The plugin registers a viewer for files with the extension ".st"<br />
The viewer has two tabs. You can switch between the source view with
syntax coloring and code completition and the class view, where you
can select from a list of methods and see the associated method-source.</div>
<div style="font-family: inherit;">
<span style="font-size: small;"><span class="Apple-style-span" style="border-collapse: separate; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><span class="Apple-style-span" style="text-align: left;">Any Ideas and wishes are welcome!</span></span></span> </div>
Stefan Krecherhttp://www.blogger.com/profile/14318562125954469101noreply@blogger.com0Neulander Straße 17, 27374 Visselhövede, Deutschland52.97113 9.5068452.968739500000005 9.5019045 52.9735205 9.5117755tag:blogger.com,1999:blog-4498075760679600886.post-28942980117632326062011-07-06T12:24:00.003+02:002011-07-07T01:05:33.984+02:00Java HirschBei der Recherche nach der Frage, ob ein öffentlicher default-constructor bei einer EJB3-Entity Bean jetzt ok ist oder doch eher ein anti-pattern, werde ich per Google-Anzeige gefragt, ob ich ein Java Hirsch bin:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeG_Nno0XFCVgWOGLzRH1taHQJ5D9Qbmb2RiVPWYd4MVZK6RsEDmdhbPGt9AkHjJaY8tFf__LhDfspBOtbCr3FCPDBs9V2t1SZS_CJkRn3lDZ_nS1dKa8cSbkXiqxUg8yXNuF84ghhxJU/s1600/java-hirsch.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeG_Nno0XFCVgWOGLzRH1taHQJ5D9Qbmb2RiVPWYd4MVZK6RsEDmdhbPGt9AkHjJaY8tFf__LhDfspBOtbCr3FCPDBs9V2t1SZS_CJkRn3lDZ_nS1dKa8cSbkXiqxUg8yXNuF84ghhxJU/s1600/java-hirsch.jpg" /></a></div>Mir stellt sich natürlich die Frage: Was ist ein Java Hirsch?<br />
Hier ein Auszug aus einem <a href="http://www.easyvoyage.de/reisebericht/gruener-pfad-im-indischen-ozean/der-hirsch-von-java-auf-mauritius-364">Reisebericht</a>: "<i>Heute lebt der <b>Java-Hirsch</b> im Hochland von Mauritius, wo Zuckerrohr angebaut wird und wo der Primärwald beginnt, eine Mischung aus Lichtungen, Gras und Bäumen. Um die Hirsche zu sehen, geht man am besten zu Fuß auf den Wegen eines ökotouristischen Anwesens. Die Jagd ist auch im Chasseur möglich, mit einer Gebühr für die Schlachtung.</i>"<br />
Mal abgesehen von der Schlachtung klingt das doch eigentlich ganz idyllisch.<br />
Da es sich aber wohl eher um eine Art Stellenanzeige handelt, recherchiere ich weiter und stelle fest: "<i>Unter einem <b>Hirsch</b> verstand man um die Wende des 19. zum 20. Jahrhundert einen ausgelernten Schneidergesellen, der bei einem Meister in Lohn und Brot (Kost und Logis) stand, aber aus Platzgründen nicht in dessen Werkstatt arbeitete</i>." (Quelle: <a href="http://de.wikipedia.org/wiki/Hirsch_%28Beruf%29">Wikipedia</a>) - also übertragen, so 'ne Art Java-Entwickler im HomeOffice?<br />
Andererseits kann ein Hirsch auch "<i>ein 200 Liter fassendes Bierfass</i>" sein (Quelle: <a href="http://de.wikipedia.org/wiki/Hirsch">Wikipedia</a>) ... das lasse ich mal kommentarlos stehen.<br />
Abschließend entdecke ich in einem <a href="http://mundmische.de/bedeutung/9826-Du_Hirsch">Lexikon für umgangssprachlich Redewendungen</a> noch Folgendes:<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6ZReYsWZKBFt50ufOiiAR90XpoxmFz16GLsXWe26kaaoEPY6uil0JB3CNrO6NwLmMjJeySujsUwfi2XWKrVVMncqMqZePGNmXziVESRcwH6A77oQOEm7GYExRWr9nggG6LKseFDQjVTE/s1600/du-hirsch.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="129" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6ZReYsWZKBFt50ufOiiAR90XpoxmFz16GLsXWe26kaaoEPY6uil0JB3CNrO6NwLmMjJeySujsUwfi2XWKrVVMncqMqZePGNmXziVESRcwH6A77oQOEm7GYExRWr9nggG6LKseFDQjVTE/s320/du-hirsch.jpg" width="320" /></a><br />
Und kann nun eindeutig feststellen: Nein, ich bin keiner, kenne aber einige Java Hirsche, an die ich die Stellenanzeige gerne weiterleiten werde.Stefan Krecherhttp://www.blogger.com/profile/14318562125954469101noreply@blogger.com1tag:blogger.com,1999:blog-4498075760679600886.post-43661704715591776352011-06-29T14:10:00.001+02:002011-06-29T14:10:56.735+02:00"An internal error occurred while showing an internal error"<div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifOmskgAgsLayTmkIJA3lfNeu4dKkElF3LOIY2zdWmg9u6PaadOkW7JTFEXBjVYrCZ8A1rmpSZVeTNpPvUKNqFLqeK0aFrX8Jjx8aDtXBoH9pea0Jt-dl_vuThK06FNM3oJdgZE76D8jM/s1600/internal_error.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="183" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifOmskgAgsLayTmkIJA3lfNeu4dKkElF3LOIY2zdWmg9u6PaadOkW7JTFEXBjVYrCZ8A1rmpSZVeTNpPvUKNqFLqeK0aFrX8Jjx8aDtXBoH9pea0Jt-dl_vuThK06FNM3oJdgZE76D8jM/s400/internal_error.jpg" width="400" /></a></div><br />
What a great error-message showed up while doing some trivial work with eclipse helios! It made me think about recursions (remember: before you can understand recursions you first need to understand recursions).<br />
My first reaction on the question "Do you want to exit the workbench?" was (after making a screenshot) pressing "No". I hoped to see an error-message like that: "An internal error occurred while showing an internal error while showing an internal error".<br />
But i did not see that message - eclipse presented the "white bar of death" and silently stopped working ...Stefan Krecherhttp://www.blogger.com/profile/14318562125954469101noreply@blogger.comtag:blogger.com,1999:blog-4498075760679600886.post-42569357032601326452011-06-15T00:14:00.001+02:002011-06-15T00:17:00.274+02:00JTalk Server now using Backends on Google App Engine<div class="separator" style="clear: both; text-align: center;"><a href="http://code.google.com/intl/de-DE/appengine/images/appengine_lowres.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://code.google.com/intl/de-DE/appengine/images/appengine_lowres.png" /></a></div>My <a href="http://jtalk-server.appspot.com/">JTalk-Server</a> project has some interesting new features. First of all: i'm using <a href="http://code.google.com/appengine/docs/java/backends/overview.html">Google Backends</a> to handle the Javascript scope on the server-side. Backends are a new feature of the Google App Engine 1.5. and allow the usage of long-running processes in the background.<br />
Now i have two servlets - the original JTalk-Servlet for saving the jtalk.js or resetting etc. and second one, the backend servlet for executing smalltalk code on the server and for maintaining a user session.<br />
The main cause for using backends was that the ScriptEngine for executing Javascript was not serializable, so it was necessary to setup the JTalk environment for every server roundtrip.<br />
The call to the backend looks like that: <br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;"> BackendService backendsApi = BackendServiceFactory.getBackendService();</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> String rhinoscopeURL = "http://" + backendsApi.getBackendAddress("rhinoscope", 0) + "/jtalk_backend";</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> System.out.println(("rhinoscopeURL: " + rhinoscopeURL));</span><br style="font-family: "Courier New",Courier,monospace;" /><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> URLFetchService fetchService = URLFetchServiceFactory.getURLFetchService();</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> HTTPRequest requestToBackend = new HTTPRequest(new URL(rhinoscopeURL), HTTPMethod.POST);</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> requestToBackend.setPayload(("contentString=" + contentString + "&owner=" + owner + "&commandString="+commandString).getBytes()); </span><br style="font-family: "Courier New",Courier,monospace;" /><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> HTTPResponse responseFromBackend = fetchService.fetch(requestToBackend);</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> byte[] respContent = responseFromBackend.getContent();</span><br style="font-family: "Courier New",Courier,monospace;" /><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> String resultString = new String(respContent);</span></span><br />
The full code is available <a href="http://code.google.com/p/jtalk-server/">here</a>.<br />
<br />
As mentioned in this <a href="https://groups.google.com/d/topic/google-appengine-java/K7r-uxtsFuY/discussion">thread</a>, backends on GAE only work in production-mode by using the appcfg.cmd:<br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">C:\Users\krecher\Documents\eclipse\plugins\com.google.appengine.eclipse.sdkbundl</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">e_1.5.0.r35v201105092302\appengine-java-sdk-1.5.0\bin>appcfg.cmd backends update</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> "C:\Documents and Settings\krecher\My Documents\workspace\jtalk-server\war"</span></span>Otherwise the backends won't appear in the admin-console of the GAE.<br />
In development mode the existence of a backends.xml is enough for using backends.<br />
<br />
Another new feature is the possibility to pass arguments to the RemoteRunner. Without passing arguments from the client to the server that whole thing would be completly useless ...<br />
<br />
A call with arguments would look like that: <br />
<br />
<div style="font-family: "Courier New",Courier,monospace;"><span style="font-size: x-small;">RemoteRunner new runClass: RemoteTest3 with: #('hack' 'the' 'planet')</span></div><br />
The arguments should be an array of strings.<br />
<br />
The last new feature ist the usage of a logger in the Javascript-Scope on the server-side.<br />
Here an excerpt from the example class: <span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">params do: [ :each | {'logger.fine(each);'} ].</span></span><br />
logger is the logger-instance of the servlet.<br />
<br />
If you want to use these new features, and you've used the JTalk Server on GAE before, remember to first press the Reset-button and then press "Export & Save JTalk to DB".<br />
<br />
I guess the next step will be to implement a binding for the google-datastore-api.Stefan Krecherhttp://www.blogger.com/profile/14318562125954469101noreply@blogger.com0tag:blogger.com,1999:blog-4498075760679600886.post-79221798091823178262011-05-25T22:36:00.000+02:002011-05-25T22:36:39.813+02:00RemoteRunner for JTalk ServerAs announced in an earlier blog-post, i implemented a RemoteRunner for the <a href="http://jtalk-server.appspot.com/">jtalk-server</a> (based on the <a href="http://jtalk-project.org/">jtalk-project</a>). It's very simple: if you implement a Method <span style="font-family: "Courier New",Courier,monospace;">runRemote</span> in your class, e.g. <span style="font-family: "Courier New",Courier,monospace;">RemoteTest</span>, then by executing:<br />
<span style="font-family: "Courier New",Courier,monospace;">RemoteRunner new runClass: RemoteTest</span><br />
will execute the Smalltalk-Code implemented in the <span style="font-family: "Courier New",Courier,monospace;">runRemote</span>-Method on the server. The example prints out the date and time of the server.<br />
To see how the results can be transferred back to the client-caller, just look at the example-class.<br />
The jtalk.js on the server-side is exactly the same as the one on the client-side. So if you make changes, don't forget to press the button "Export & Save JTalk to DB".<br />
If you like to play around with this new feature and you played around with jtalk-server before (and pressed the save-button), you need to reset the jtalk.js by pressing the button. This is because, the jtalk.js will be saved to the database for every user (identified by his/ her google-id). So changes made to the jtalk.js, which is located in the server-filesystem won't get executed, because on startup (page-load) a jtalk.js in the DB, associated with the current google-user, has priority.<br />
The JVM of the JDK/ JRE 6 is packaged with a <span style="font-family: "Courier New",Courier,monospace;">ScriptEngine</span> for executing Javascript. This feature is currently not supported on the Google App Engine, so i needed to use the "external" Rhino-jar, and a slightly different mechanism. Here is some work needed on optimizing the server-execution. So, the jtalk.js on the server should get reduced to the classes that are needed on the server (no canvas etc.) and most imported, the precompiled jtalk.js should get persisted somehow. Currently the complete javascript-source of the Smalltalk-System is executed/ interpreted for every call on the server.<br />
But the next step will be to use the GAE persistence-layer via java-calls from Smalltalk/ Javascript to the google-api. Calling java is already possible and i think this is where the fun begins ...Stefan Krecherhttp://www.blogger.com/profile/14318562125954469101noreply@blogger.com1tag:blogger.com,1999:blog-4498075760679600886.post-88237698267536489852011-05-10T13:11:00.001+02:002011-05-10T13:22:11.082+02:00Smalltalk & Java: JTalk ServerRecently I was playing around with the amazing <a href="http://jtalk-project.org/">Jtalk Project</a>. It's a Smalltalk-System running on top of Javascript - completly in your browser!<br />
I have some far away goals for software development in mind:<br />
1. develop Software from within a Browser<br />
2. use Smalltalk as primary Language, because it's the best programming language ever :-)<br />
3. have interfaces to the JVM, so i can use sophisticated and reliable frameworks<br />
There are a few Projects i know of, that address the goal of integrating Smalltalk with the Java (<a href="http://redline.st/">redline</a>, <a href="http://bergel.eu/athena/">Athena</a>) but none of them seems to be very stable.<br />
Now i found out, that Jtalk could do the job! So i spend a little time to set up a project hosted on the google app engine that serves as a development home for Jtalk Projects, where you have the possibility to save the current "state" (the complete source) to a database and resume developing anywhere anytime. You need a google-account to use it.<br />
In <a href="https://groups.google.com/d/topic/jtalk-project/VVLiasYKSuA/discussion">this thread</a> on the <a href="https://groups.google.com/forum/#!forum/jtalk-project">jtalk-discussion-group</a>, i showed that it is possible to run Jtalk on top of the JVM and execute Smalltalk-Code. The way back - calling Java-Classes from Smalltalk is shown also.<br />
At the moment my project only uses Jtalk on the client-side, the next step will be, make it run on the server-side.<br />
Here's the link to where you can test JTalk Server: <a href="http://jtalk-server.appspot.com/">http://jtalk-server.appspot.com/</a> and the code is here: <a href="http://code.google.com/p/jtalk-server/">http://code.google.com/p/jtalk-server/</a><br />
Any help, tipps or comments are welcome!Stefan Krecherhttp://www.blogger.com/profile/14318562125954469101noreply@blogger.com0tag:blogger.com,1999:blog-4498075760679600886.post-6608881712446516042010-04-27T23:02:00.001+02:002010-04-27T23:04:55.640+02:00Ich war dabei!Ich war am 24.4.2010 Teil der 120km langen <a href="http://www.anti-atom-kette.de/">Menschenkette</a> zwischen den Atomkraftwerken Krümmel und Brunsbüttel und habe gegen die Pläne der Bundesregierung demonstriert, die Laufzeit der Atomkraftwerke zu verlängern.<br />
Tolles Wetter und trotz ernstem Anlaß ein riesen Spaß. Ein großer Tag für die Anti-AKW-Bewegung.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhq-jaSb1_Mby28mYTDe_esbZRhomlgAO2TyRUGy9YQTOCwGq4HsK8xfOseyxUL1Cfw7nLcR4ySISYtmP2QDNFyc-N43mK-VqUb2aatihjzfQUoYbDsxX3LijSUyIW1G8WTEe6_tFN9h6g/s1600/IMG_1129.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhq-jaSb1_Mby28mYTDe_esbZRhomlgAO2TyRUGy9YQTOCwGq4HsK8xfOseyxUL1Cfw7nLcR4ySISYtmP2QDNFyc-N43mK-VqUb2aatihjzfQUoYbDsxX3LijSUyIW1G8WTEe6_tFN9h6g/s320/IMG_1129.JPG" width="320" /></a></div>Stefan Krecherhttp://www.blogger.com/profile/14318562125954469101noreply@blogger.comtag:blogger.com,1999:blog-4498075760679600886.post-9097951771573595362010-04-22T17:43:00.003+02:002010-04-22T21:30:01.529+02:00Google apps script und 43things<div style="text-align: left;">Eher zufällig bin ich auf ein ziemlich praktisches Feature bei <a href="https://docs.google.com/">Google Docs & Spreadsheets</a> gestoßen: Es gibt einen recht ausgereiften Javascript-Editor (Syntax-Highlightning, Code-Completition) mit einer umfangreichen API zur Manipulation von (u.a.) Tabellen-Dokumenten.</div><div style="text-align: left;">Auf einfache Weise lassen sich andere Google-Services aber auch beliebige Web-Services einbinden. Selbst das Menü der Spreadsheet-Ansicht kann man erweitern.</div><div style="text-align: left;">Um das mal auszuprobieren, habe ich das "Zielerreichungs-Portal" <a href="http://www.43things.com/">43things</a> eingebunden. Den Code gibt es <a href="http://www.blogtrog.com/code.aspx?id=2705857c-4b83-4fe8-b51d-e30ef0364d5a">hier</a> und bald auch in der Google-Script-Gallery.</div><img alt="" border="0" id="BLOGGER_PHOTO_ID_5462981569037169890" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7rinIqh3hNZqiUOsj4TUmNsTmuk5DsCWBmAorXKsmGQE-dY8JqWxANsf-foQZWYD_nPWnRqdWouoKrGNl7jp3nbVudrhH1wW3nJM8sPs_9c28coOg6pzmuSi4h90q3VZP63FijjEhX78/s400/43thingsgdocs.png" style="cursor: hand; cursor: pointer; display: block; height: 120px; margin: 0px auto 10px; text-align: center; width: 400px;" />Den Script-Editor erreicht man unter dem Menüpunkt "Tools" - wenn die Funktion onOpen() ausgeführt wird, erscheint der zusätzliche Menüpunkt "43things". Wenn das Script mit der Tabelle gespeichert wird, wird onOpen() automatisch beim Laden des Dokuments aufgerufen.<br />
<div>Wählt man "Import Goals" aus, wird man aufgefordert, den 43things-Nutzernamen einzugeben und schon werden die Ziele und Einträge zu den Zielen des Nutzers in die Tabelle eingefügt.</div><div>Allerdings ist die Anzahl der Einträge pro Ziel momentan auf 20 beschränkt - das hängt mit der Pagination-Einstellung des aufgerufenen Services zusammen.</div><div>Die Scripte werden übrigens server-seitig aufgerufen. Also insgesamt ein hoher Coolness-Faktor und viele viele Möglichkeiten ...<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrWyflDYkJMmr7cza7bWj8SstxyFl23Rl0IW9FvJPPJUYFhff0z9XEDxotbdrdMIW5_3I_2wxPiS3ClBckKnjtZUY9kea6olHS6VwI8BgZWr-due1onxMzT6lJPY-IYP47LFns0_OWOhU/s1600/scripteditor.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"></a><br />
<div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrWyflDYkJMmr7cza7bWj8SstxyFl23Rl0IW9FvJPPJUYFhff0z9XEDxotbdrdMIW5_3I_2wxPiS3ClBckKnjtZUY9kea6olHS6VwI8BgZWr-due1onxMzT6lJPY-IYP47LFns0_OWOhU/s1600/scripteditor.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" style="text-decoration: none;"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5462982115921627634" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrWyflDYkJMmr7cza7bWj8SstxyFl23Rl0IW9FvJPPJUYFhff0z9XEDxotbdrdMIW5_3I_2wxPiS3ClBckKnjtZUY9kea6olHS6VwI8BgZWr-due1onxMzT6lJPY-IYP47LFns0_OWOhU/s320/scripteditor.png" style="cursor: pointer; display: block; height: 260px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; text-align: left; width: 320px;" /></a><br />
</div></div><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fkrecher.com%2F2010%2F04%2Fgoogle-apps-script-und-43things.html&layout=standard&show_faces=true&width=450&action=like&font=arial&colorscheme=dark" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:px"></iframe>Stefan Krecherhttp://www.blogger.com/profile/14318562125954469101noreply@blogger.com0tag:blogger.com,1999:blog-4498075760679600886.post-61729034271472963862010-04-19T17:40:00.003+02:002010-04-19T17:50:31.601+02:00WLAN und LAN sichern mit IEEE 802.1X und RADIUS<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.heise.de/netze/icons/netze_logo.gif"><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 130px; height: 70px;" src="http://www.heise.de/netze/icons/netze_logo.gif" border="0" alt="" /></a><a href="http://heise.de">heise.de</a> hat heute meinen C't Artikel aus dem Jahr 2004 ("<a href="http://www.heise.de/kiosk/archiv/ct/2004/18/192_kiosk">Schlüsseldienst</a>") generalüberholt und aktualisiert (von mir) auf <a href="http://www.heise.de/netze/">heise Netze</a> veröffentlicht.<div>Unter dem Titel "<a href="http://www.heise.de/netze/artikel/WLAN-und-LAN-sichern-mit-IEEE-802-1X-und-Radius-979513.html">WLAN und LAN sichern mit IEEE 802.1X und RADIUS</a>" gibt's eine Übersicht über IEEE 802.1X, RADIUS und EAP.</div>Stefan Krecherhttp://www.blogger.com/profile/14318562125954469101noreply@blogger.comtag:blogger.com,1999:blog-4498075760679600886.post-56989066994534719082010-04-18T11:20:00.001+02:002010-04-19T11:59:12.317+02:00Squeak on Android<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiplmXrH8pmE-0XJ0Q61yFVuDLF-105hIAnaOJzddHuTWklM_DRx17pZpkbjvNaoTCfCLbv6qx89C52BPDn9zDXqhyphenhyphenFmdjKRFAoInyjkQRYOVdgT94jbKX9Gq40nZaXX7KZPwpp5xRRix0/s1600/squeakwithandroid.gif"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 110px; height: 46px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiplmXrH8pmE-0XJ0Q61yFVuDLF-105hIAnaOJzddHuTWklM_DRx17pZpkbjvNaoTCfCLbv6qx89C52BPDn9zDXqhyphenhyphenFmdjKRFAoInyjkQRYOVdgT94jbKX9Gq40nZaXX7KZPwpp5xRRix0/s400/squeakwithandroid.gif" border="0" alt="" id="BLOGGER_PHOTO_ID_5461776416079685490" /></a>Seit geraumer Zeit arbeite ich am "Squeak on Android" Projekt mit: <a href="http://code.google.com/p/squeak-android-vm/">http://code.google.com/p/squeak-android-vm/</a> - ich möchte hier nur kurz auf den hohen Coolness-Faktor hinweisen.<div>Wenn das alles richtige funktioniert, kann man mit <a href="http://squeak.org/">Squeak</a>/ <a href="http://de.wikipedia.org/wiki/Smalltalk-80_(Programmiersprache)">Smalltalk </a>(die beste Programmiersprache der Welt) auf einfache Weise Anwendungen für das Android-Betriebssystem entwickeln.</div><div>Ich glaube, dass das <a href="http://www.android.com/">Android OS</a> seinen Marktanteil als Betriebssystemen für Mobiltelefone in Zukunft erheblich steigern wird und dass es sicherlich demnächst sowas ähnliches wie das <a href="http://de.wikipedia.org/wiki/IPad">iPad</a> von Apple auch von Google geben wird. Es lohnt sich sicher, sich mit dieser Plattform näher auseinanderzusetzen.</div><div>Außerdem ist mir Android viel sympatischer als die meisten anderen Plattformen für die Entwicklung mobiler Anwendungen, incl. iPhone etc. - Android ist ein offenes System, es gibt komfortable/ freie Entwicklungsumgebungen für die Entwicklung von <a href="http://developer.android.com/sdk/ndk/index.html">nativen Anwendungen</a> und für die <a href="http://developer.android.com/sdk/index.html">Entwicklung mit einer Java-API</a>, außerdem gute Dokumentationen und Diskussionsforen.</div><div>Aber der Hauptgrund, warum ich das mache: Weil ich Spaß daran habe.</div>Stefan Krecherhttp://www.blogger.com/profile/14318562125954469101noreply@blogger.comtag:blogger.com,1999:blog-4498075760679600886.post-62321494949283830142009-06-23T23:19:00.005+02:002009-06-24T09:34:45.600+02:00BabyTwitter<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUA7m1j3_B7gWhhW0RmY0pQqkrR8JKyh9EHsYmzD7hdANmCfyZ2zkyLzIb-0iBXXgPhbms3wj9Sme71-S9EpR9G_d92mZbJZ6Ax-kWg-Wcpo7mDNVsvEA4_77J_U2RisIDw9RFFB-vnjo/s1600-h/jaspar_schl%C3%A4ft.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 240px; height: 180px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUA7m1j3_B7gWhhW0RmY0pQqkrR8JKyh9EHsYmzD7hdANmCfyZ2zkyLzIb-0iBXXgPhbms3wj9Sme71-S9EpR9G_d92mZbJZ6Ax-kWg-Wcpo7mDNVsvEA4_77J_U2RisIDw9RFFB-vnjo/s320/jaspar_schl%C3%A4ft.jpg" alt="" id="BLOGGER_PHOTO_ID_5350794002793234466" border="0" /></a><br />Eine recht nerdische Form des Babyphones: Wenn das Geschrei des Nachkommens einen gewissen Lautstärke-Level übersteigt, wird eine konfigurierbare Nachricht über den ebenfalls konfigurierbaren Twitteraccount gesendet.<br />Ich habe dafür z.B. einen extra Twitter-Account angelegt: <a href="http://twitter.com/stefcom_alerts">stefcom_alerts</a>, dem ich mit meinem normalen Twitter-Account <a href="http://twitter.com/stefcom">stefcom</a> folge. Wenn mein Sohn in seinem Bettchen jammert, sehe ich das sofort in meiner Twitter-Timeline auf dem Handy.<br />Keine große Sache, das kleine Java-Programm war mehr nur so eine Programmierübung in einer schlaflosen Nacht während meiner Elternzeit. Vor allem die Lautstärke-Erkennung ist wahrscheinlich noch nicht perfekt und müsste mal überarbeitet werden.<br />Hier die Sourceforge-Seite des Projekts: <a href="http://sourceforge.net/projects/babytwitter/">http://sourceforge.net/projects/babytwitter/</a>Stefan Krecherhttp://www.blogger.com/profile/14318562125954469101noreply@blogger.comtag:blogger.com,1999:blog-4498075760679600886.post-39507294866312046062009-06-03T23:50:00.005+02:002009-06-04T00:09:31.492+02:00Artikel von mir im Genießerzeit Blog<div style="text-align: justify;">Im wunderbaren Genießerzeit Blog (<a href="http://www.geniesserzeit-blog.de/">www.geniesserzeit-blog.de</a>) wurde ein Artikel von mir veröffentlicht: <a href="http://www.geniesserzeit-blog.de/2009/06/oolong-ein-tee-fur-genieser/" rel="bookmark">"Ool</a><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOwcnUdv3WYUN6aYXhpgWjEzh148540lzV5v4I2Hj82z2eArKYiilw9-8o32Y1xx1VlY571DXII4dZWTesZ_OC5vAorJadDczFZp2t7R76mX7slkXuabeX8fWXSFPTu-zegcQhrwJh1-M/s1600-h/geniesserzeit.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 79px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOwcnUdv3WYUN6aYXhpgWjEzh148540lzV5v4I2Hj82z2eArKYiilw9-8o32Y1xx1VlY571DXII4dZWTesZ_OC5vAorJadDczFZp2t7R76mX7slkXuabeX8fWXSFPTu-zegcQhrwJh1-M/s320/geniesserzeit.jpg" alt="" id="BLOGGER_PHOTO_ID_5343226530261959554" border="0" /></a><a href="http://www.geniesserzeit-blog.de/2009/06/oolong-ein-tee-fur-genieser/" rel="bookmark">ong - ein Tee für Genießer</a><a href="http://www.geniesserzeit-blog.de/2009/06/oolong-ein-tee-fur-genieser/">".</a><br />Der Genießerzeit Blog ist eine Fundgrube für alle Genießer - es gibt Rezepte, Locations, Events und Tipps rund um das Thema Genuß.<br />Bisher habe ich mich ja nur zu meist sehr technischen Themen ausgelassen - mal sehen, ob ich mich in Zukunft öfter mal zu den wirklich wichtigen Dingen des Lebens äußere.<br />Genuß im Allgemeinen und Tee im Speziellen sind jedenfalls wichtig.<br /></div>Stefan Krecherhttp://www.blogger.com/profile/14318562125954469101noreply@blogger.comtag:blogger.com,1999:blog-4498075760679600886.post-16347651603235908342009-05-12T23:15:00.005+02:002009-05-13T08:14:04.620+02:00Evernote vs. box.net<div style="text-align: right;"><span style="font-size:85%;"><span style="font-size:78%;">Foto: "Windows of Opportunity" von <a href="http://www.flickr.com/people/notsogoodphotography/"><span id="ctl00_BodyPlaceHolder_lblName">Ibrahim Iujaz</span></a></span><br /></span></div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY5FqSGsu-c08xJvQSn-vDbUV7oDUWaNYGj9ilUNvFoQEU9xxXr0Ss7nwtD4ePsZkQcKYqtRpDyl5WT28SDOAWnkCzKouUGJRGcWRNvGNQW5E2A1omAAZWemAWPoW50in0LBhY_P4b_pY/s1600-h/windows_of_opportunity.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 188px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY5FqSGsu-c08xJvQSn-vDbUV7oDUWaNYGj9ilUNvFoQEU9xxXr0Ss7nwtD4ePsZkQcKYqtRpDyl5WT28SDOAWnkCzKouUGJRGcWRNvGNQW5E2A1omAAZWemAWPoW50in0LBhY_P4b_pY/s320/windows_of_opportunity.jpg" alt="windows of opportunity" id="BLOGGER_PHOTO_ID_5335185463339429090" border="0" /></a>Auf dem Weg zur Umsetzung meines ultimativen Produktivitäts-Systems muss ich mich nun entscheiden, wo und wie ich Dokumente archivieren werden.<br />Meine Anforderungen sind:<br /><ul><li>es sollten mehrere Dateiformate möglich sein (z.B. jpg/ tiff für gescannte Unterlagen, Word-/ Open-Office-Dateien, Bilder und natürlich PDF)</li><li style="text-align: left;">es muss ein schickes web-zwei-nulliges Interface da sein<br /></li><li>ich möchte zu jedem Dokument Meta-Informationen und Tags speichern können</li><li>das Archivsystem sollte mit anderen Diensten kommunizieren können. Mindestanforderung hier: das Versenden/ Verlinken von Dokumenten via Mail</li><li>das System muss auch vom Handy aus bedienbar sein</li></ul>Kurzum: ich möchte gescannte Unterlagen, Korrespondenz oder sonstwelche Dateien von überallher im Zugriff haben um z.B. von Unterwegs eine Kopie meines Personalausweises per Mail zu verschicken oder die Vertragsbedingungen meiner Krankenversicherung checken. Da gibt es im Web nun eine Vielzahl von Anbietern, die Lösungen bereitstellen. Für mich haben sich hier allerdings zwei Dienste, die ich selber seit geraumer Zeit nutze, herauskristallisiert. Zum einen ist dies das online-Notitzbuch Evernote, zum anderen der Datei-Hoster box.net Obwohl die beiden Dienste einen unterschiedlichen Fokus haben, kommen sie dem was mir so vorschwebt schon recht nahe.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6qMepujpQiWyiqZSNLoIjkYPfdZVutbUEpU2hMQzTVnVqhCDr30T4l0VaGP8mJ44OTwCUQlaiPe8ZwLR2pIdQBm8PhFg9MzL3xXmSJ0HFU1Y1tkj0Gr3dIa5KqA-uiJVs3QtUAhyphenhyphenocyw/s1600-h/evernote_logo.gif"><img style="cursor: pointer; width: 144px; height: 35px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6qMepujpQiWyiqZSNLoIjkYPfdZVutbUEpU2hMQzTVnVqhCDr30T4l0VaGP8mJ44OTwCUQlaiPe8ZwLR2pIdQBm8PhFg9MzL3xXmSJ0HFU1Y1tkj0Gr3dIa5KqA-uiJVs3QtUAhyphenhyphenocyw/s320/evernote_logo.gif" alt="" id="BLOGGER_PHOTO_ID_5335052872954921922" border="0" /></a><br /><a href="http://www.evernote.com/"><span style="font-weight: bold;">Everno</span></a><a href="http://www.evernote.com/"><span style="font-weight: bold;">te</span></a><br />Ich nutze Evernote eigentlich etwas widerwillig. Bisher habe ich auf das <a href="http://www.google.de/notebook/?hl=de">Google-Notizbuch </a>geschworen - aber nach der <a href="http://googlenotebookblog.blogspot.com/2009/01/stopping-development-on-google-notebook.html">Ankündigung</a>, dass das Google-Notizbuch nicht mehr weiterentwickelt wird habe ich mich auf der Suche nach Alternativen für Evernote entschieden. Neben einfachen Text-Notizen können Web-Clips, Audio- und Bilder als Notizen abgelegt werden.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiXh55oZkmT7N11Eemk__zpQkDxa8odNRuu9NDjjpN_jxJVoIss4EQVUcgUgo0s3pYfVNv1VrECzEHvtF9M_qMa1vFFctDzqQ8zM_MU1Fg7KQ69DG4PK02D51THov5rhIIClVvok3o4-U/s1600-h/box_logo.gif"><img style="cursor: pointer; width: 83px; height: 46px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiXh55oZkmT7N11Eemk__zpQkDxa8odNRuu9NDjjpN_jxJVoIss4EQVUcgUgo0s3pYfVNv1VrECzEHvtF9M_qMa1vFFctDzqQ8zM_MU1Fg7KQ69DG4PK02D51THov5rhIIClVvok3o4-U/s320/box_logo.gif" alt="" id="BLOGGER_PHOTO_ID_5335052873859166562" border="0" /></a><br /><a style="font-weight: bold;" href="http://box.net/">box.net</a><br />box.net stellt Speicherplatz für beliebig Dateien bereit, bietet aber mehr Funktionalität als die klassischen Filehoster wie rapidshare etc. So können Dateien/ Ordner zur Zusammenarbeit freigegeben werden oder zur Weiterverarbeitung zu anderen Diensten übertragen werden.<br /><br /><span style="font-weight: bold;">Speicherplatz</span><br />Entscheidend ist natürlich, wieviel Speicherplatz zur Verfügung steht. Bei Evernote ist nicht die Kapazität begrenzt, sondern das monatliche Upload-Volumen. Bei der kostenlosen Variante sind dies 40 MB, für 45 Dollar pro Jahr kann man monatlich 500 MB hochladen.<br />box.net hat neben dem Freien noch zwei kostenpflichtige Tarife im Angebot. Kostenlos gibt es 1GB Speicherplatz, für monatlich 5.98€ 5GB und für 15€ 15GB.<br />Die monatliche Begrenzung bei Evernote reicht natürlich für Text-Notizen dicke aus, bei einem größeren Aufkommen an gescannten Dokumenten wird es da natürlich eng. Die insgesamt 5 bzw. 15 GB von box.net sind irgendwann natürlich auch aufgebraucht. Beide Anbieter sind nicht optimal, die Tarife erfüllen aber auch keine K.O.-Kriterien.<br /><br /><span style="font-weight: bold;">Vom Suchen und Finden ...</span><br />Abgelgte Dokumente müssen wiedergefunden werden: bei Evernote wird in (Text-) Notizen und deren Überschriften gesucht, bei box.net in Dateinamen. Evernote bietet die Möglichleit mehrere Notizbücher anzulegen um ein weiteres Gruppierungsmerkmal zu schaffen. box.net ermöglicht das Anlegen von komplexen Ordnerstrukturen, wie in einem lokalen Dateisystem. Auch hier sind beide Dienste suboptimal: bei Evernote kann ein gescanntes Dokument als Anhang zu einer Text-Notiz abgelegt werden um Meta-Informationen zu speichern und um danach zu suchen. Bei box.net können zu Dokumenten Beschreibungen und Kommentare abgelegt werden, es kann aber nur nach Dateinamen gesucht werden.<br />Wenigstens unterstützen sowohl Evernote als auch box.net Tags.<br /><br /><span style="font-weight: bold;">Handhabung</span><br />Die jeweiligen Web-Interfaces sehen schick und modern aus und lassen sich intuitiv bedienen. Der Upload via Web-Interface ist bei Evernote noch etwas umständlich, dafür gibt es eine Desktop-Anwendung die viele Features bietet. Bei box.net funktioniert der Upload erwas smarter: dank eines Java-Applets können via drag-and-drop ganze Ordner auf einmal hochgeladen werden.<br />Der File-Upload via E-Mail/ Attachment funktioniert bei beiden Diensten.<br />box.net kann hinsichtlich der Weiterverarbeitung bzw. der Integration anderer Dienste auftrumpfen. Während Evernote lediglich Notizbücher freigeben, und Notitzen via E-Mail versenden kann, stellt box.net eine Vielzahl von Schnittstellen bereit. U.a. Weiterverarbeitung von Dokumenten mit <a href="http://www.zoho.com/">Zoho</a>, File-Previews mit iPaper von <a href="http://www.scribd.com/">Scribd</a> Bildbearbeitung mit <a href="http://www.picnik.com/">picnik</a>, Versenden von Dokumenten mit <a href="https://mail.google.com/">Google-Mail</a>.<br /><br /><span style="font-weight: bold;">Mobilität</span><br />Beide Dienste können via Handy bedient werden. Für das iPhone gibt es jeweils eigene Anwendungen, mit anderen Modellen muss auf die mobilen Webseiten ausgewichen werden. Die mobilen Webseiten sind rudimentär aber gut zu bedienen: nicht optimal aber immer noch besser als die Varianten von anderen Anbietern.<br /><br /><span style="font-weight: bold;">Fazit</span><br />Ich habe nur einen kleinen Teil des jeweiligen Funktionsumfangs betrachtet. Es zeichnet sich aber ab, dass ich box.net für Dokumente/ Scans verwenden werde. Der File-Upload von mehreren Dateien ist einfach komfortabler und die Integration anderer Dienste kann sich erheblich produktivitätssteigern Auswirken.<br />Die freie Variante von Evernote werde ich weiterhin für das Sammeln und Sortieren von Informationsschnipseln verwenden. Web-Clips und Text-Notizen lassen sich einfach anlegen, Bilder vom Kamera-Handy, z.B. Fotos von kurzen Zeitungsartikel, lassen sich unkompliziert via E-Mail vom Handy an Evernote schicken.Stefan Krecherhttp://www.blogger.com/profile/14318562125954469101noreply@blogger.comtag:blogger.com,1999:blog-4498075760679600886.post-80948828396621892852008-06-19T17:37:00.000+02:002008-06-19T17:52:33.190+02:00Vortrag: Mit dem Enterprise Service Bus zur Serviceorientierten ArchitekturAm 24.6.08, 18:15 Uhr halte ich einen Vortrag bei der <a href="http://www.gi-hb-ol.de/">Gesellschaft für Informatik in Bremen</a>.<br />Es geht um Serviceorientierte Architekturen im Allgemeinen und um das Konzept des Enterprise Service Bus im Speziellen.<br /><br />Hier die Veranstaltungsankündigung:<br /><br />Der Enterprise Service Bus (ESB) ist die zentrale Integrationskomponente einer Serviceorientierten Architektur. Unternehmensinterne und -externe Services können am ESB bereitgestellt und konsumiert werden, die Kommunikation von Services untereinander findet ESB-intern mit einem vereinheitlichten Nachrichtenformat statt.<br /><br />Durch diese "Hub-and-Spoke"-Architektur eignet sich ein ESB zur Orchestrierung von Geschäfstprozessen im Rahmen von Business Process Management (BPM) sowie zur Integration von (Legacy-) Systemen durch Enterprise Application Integration (EAI).<br /><br />Der Vortrag vermittelt die grundlegenden ESB- und SOA-Konzepte und zeigt deren Anwendung an praktischen Beispielen.<br /><br />Für die Demonstration der Konzepte wird der Open Source ESB "Apache ServiceMix" eingesetzt.<br /><br />Anmeldung erbeten bis zum 23.06.2008 bei Frank Grosse (frank.grosse@jasmine.hb.shuttle.de) oder unter der Telefonnummer 0421/6009572<br /><br />Veranstaltungsort:<br />Hochschule Bremen (ZIMT)<br />Flughafenallee 10<br />28199 Bremen<br />Raum 032a/b/cStefan Krecherhttp://www.blogger.com/profile/14318562125954469101noreply@blogger.comtag:blogger.com,1999:blog-4498075760679600886.post-52560740219348837892008-03-04T21:21:00.000+01:002008-03-04T22:27:46.817+01:00Artikel von mir im Java-Magazin veröffentlicht<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb3gKG8dYCfIUXwTV6bum74MCBtCvX3PzNHWhlDpK1YaEDp_6USewFbxrzUsQIql6-NPOMqUNJSS7fHobS4aoWdJlIDXw0zLaTlszGBKurMdSJuGwfVsPKkMPST_YaYbzNrypddqXL3ec/s1600-h/javamagazin-soa.gif"><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb3gKG8dYCfIUXwTV6bum74MCBtCvX3PzNHWhlDpK1YaEDp_6USewFbxrzUsQIql6-NPOMqUNJSS7fHobS4aoWdJlIDXw0zLaTlszGBKurMdSJuGwfVsPKkMPST_YaYbzNrypddqXL3ec/s320/javamagazin-soa.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5173990345903600402" /></a>Im <a href="http://it-republik.de/jaxenter/java-magazin-ausgaben/SOA-Security-000243.html">Java-Magazin 04.08</a> ist ein Artikel von mir zum Thema SOA Security veröffentlicht worden.<br />Die Themen SOA und Enterprise Service Bus (ESB) werden momentan in den Medien massiv gehyped. Es gibt kaum eine Fachzeitschrift zur professionellen Software-Entwicklung im Enterprise-Bereich, in der SOA/ ESB nicht thematisiert werden. Und der Hype ist sicher berechtigt, SOAs und ESBs schaffen viele Vereinfachungen und viele neue Möglichkeiten.<br />Das Thema Sicherheit wird aber leider oft unzureichend behandelt, deshalb mein Beitrag dazu im Java-Magazin.<br />Voller Stolz kann ich außerdem verkünden, dass ich in dieser Ausgabe der Autor des Monats bin :-)Stefan Krecherhttp://www.blogger.com/profile/14318562125954469101noreply@blogger.com0tag:blogger.com,1999:blog-4498075760679600886.post-72113828219442532582007-04-10T21:41:00.000+02:002007-08-17T22:15:51.878+02:00Vortrag über MDA & MDSDAm 17.4.2007 halte ich bei der <a href="http://www.gi-hb-ol.de/">Gesellschaft für Informatik, Regionalgruppe Bremen Oldenburg</a>, einen Vortrag zum Thema Model Driven Architecture / Model Driven Software Development.Stefan Krecherhttp://www.blogger.com/profile/14318562125954469101noreply@blogger.comtag:blogger.com,1999:blog-4498075760679600886.post-25242728544248425512006-10-20T21:29:00.000+02:002007-08-17T21:38:29.564+02:00Vortrag über SOA SicherheitsaspekteAm 28.10.2006 halte ich auf dem <a href="http://symposium2006.cmnetwork.de/">7. HERBST-SYMPOSIUM</a> des CMNetwork e.V. in Karlsruhe einen Vortrag zum Thema Sicherheit in Service Orientierten Architekturen.Stefan Krecherhttp://www.blogger.com/profile/14318562125954469101noreply@blogger.com0