tag:blogger.com,1999:blog-12102812507892677452024-03-04T23:01:44.489-08:00About 3D printers, programming and linuxMarek Hudikhttp://www.blogger.com/profile/08899201021358595434noreply@blogger.comBlogger12125tag:blogger.com,1999:blog-1210281250789267745.post-50695095999788115592015-07-07T05:18:00.000-07:002015-07-07T05:18:32.499-07:00Additional tips for 3DSimo Mini3DSimo launched new campaign on kickstarter to support their new <a href="https://www.kickstarter.com/projects/3dsimo-mini/3dsimo-mini-the-ultimate-creators-tool/description">3DSimo Mini 3D pen</a>. There are similar products on the market, like second version of 3Doodler. I decided to support this project for one reason - exchangeable tips.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://ksr-ugc.imgix.net/assets/003/944/517/29c4dccc1d4d75b3a5a9fecae01eabdc_original.jpg?v=1433796390&w=680&fit=max&auto=format&q=92&s=fb473cf27b4148c527fa5e71419a461c" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://ksr-ugc.imgix.net/assets/003/944/517/29c4dccc1d4d75b3a5a9fecae01eabdc_original.jpg?v=1433796390&w=680&fit=max&auto=format&q=92&s=fb473cf27b4148c527fa5e71419a461c" width="640" /></a></div>
I am 3D print fan and I have a printer myself. With this 3D draw tip I can simply join prints together and create complex objects.<br />
<br />
I have few suggestion for 3DSimo team to make this product even more versatile.<br />
<br />
<h2>
Filament joiner</h2>
This tip will enable you to weld and splice filament pieces together. Then you could create multi-color filament to create such prints.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgul3fppNSVlwbjYDJDEvKzV_cnMFwbb5q6dayfXFtz2nUakwYkDHYE1HCxex0qGNXWvIlns5YJV-v0OFrYy7sO6x950xRWGbXd5G-z4v-OZI6VjThDhKQ6zlVFqGnYD6yk4TBqxB98QDla/s1600/multicolor-print.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgul3fppNSVlwbjYDJDEvKzV_cnMFwbb5q6dayfXFtz2nUakwYkDHYE1HCxex0qGNXWvIlns5YJV-v0OFrYy7sO6x950xRWGbXd5G-z4v-OZI6VjThDhKQ6zlVFqGnYD6yk4TBqxB98QDla/s320/multicolor-print.jpg" width="243" /></a></div>
There are already several products on the market, but additional tip for 3Dsimo would be elegant solution.<br />
<br />
Products on the market:<br />
<br />
<ul>
<li><a href="http://diy3dprinting.blogspot.cz/2015/06/easywelder-tool-for-welding-filament.html">EasyWelder</a></li>
<li><a href="https://www.indiegogo.com/projects/fuse-welding-filament-clamp-for-3d-printers#/story">FUSE, Welding filament clamp</a></li>
<li><a href="https://www.artesea.ch/playground/filament-splicer">Artesea filament splicer</a></li>
<li><a href="http://hackaday.com/2014/01/20/a-quick-and-simple-filament-joiner-for-multi-color-prints/">Hair iron as filament joiner</a></li>
</ul>
<br />
<br />
<h2>
Print finishing tool</h2>
3D printed object is usually not final and it requires additional work. You need to remove print supports or print residues, make print smoother or fix issues caused by wrong print settings.<br />
<br />
There are already dedicated tools for finishing print like <a href="https://www.kickstarter.com/projects/1654851065/retouch3d-a-brand-new-way-to-finish-3d-prints/description">Retouch3d</a> or <a href="https://www.kickstarter.com/projects/249225636/cordless-3d-print-finishing-tool/description">Cordless</a>. But why not to have all in one? I can imagine multiple heads for this task.<br />
<br />
Cordless tool tips:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://ksr-ugc.imgix.net/assets/003/546/098/c3b3647c3b18c5f7fddc569c9ccc42af_original.JPG?v=1427949377&w=680&fit=max&auto=format&q=92&s=fdb8f8767b71f5381375e6a3fdb30ebf" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="150" src="https://ksr-ugc.imgix.net/assets/003/546/098/c3b3647c3b18c5f7fddc569c9ccc42af_original.JPG?v=1427949377&w=680&fit=max&auto=format&q=92&s=fdb8f8767b71f5381375e6a3fdb30ebf" width="200" /></a></div>
<div style="text-align: justify;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5ZrKf5ykzdQIRDri26yZZZqipmKS915PUcMIj4phmOu5eKAErM3cX7FtXjwkumgtL-yHlMHCvKRH8CqpPuEC91zb-3x9PmF_dBKUzyTQ-Tg0GHeDiIm1LEoAdwQCRug1g9_H6GcnIH_4s/s1600/cordless.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="160" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5ZrKf5ykzdQIRDri26yZZZqipmKS915PUcMIj4phmOu5eKAErM3cX7FtXjwkumgtL-yHlMHCvKRH8CqpPuEC91zb-3x9PmF_dBKUzyTQ-Tg0GHeDiIm1LEoAdwQCRug1g9_H6GcnIH_4s/s640/cordless.jpg" width="640" /></a></div>
<a href="https://ksr-ugc.imgix.net/assets/003/546/104/8bcf415ee5752af3d11cf5c72d1e2cc2_original.JPG?v=1427949514&w=680&fit=max&auto=format&q=92&s=b74504b645fd814fe9ffa593892dfdec" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><br />
<br />
<br />
Retouch3D tool tips:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixxA0j8d4FPefW2RDzknes016Zo81IzIMwB7XAmQ14CgLrOXwYGUa9-KKlpvWJpIepCrGKGyOAGVn3l0MnxqL7IlnxZy-j0kdPBtpJyDh1MmgLZmDMQdpO5JcktAy0xIGs4F8vMo8JY2SE/s1600/print-finishing-tools.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="152" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixxA0j8d4FPefW2RDzknes016Zo81IzIMwB7XAmQ14CgLrOXwYGUa9-KKlpvWJpIepCrGKGyOAGVn3l0MnxqL7IlnxZy-j0kdPBtpJyDh1MmgLZmDMQdpO5JcktAy0xIGs4F8vMo8JY2SE/s640/print-finishing-tools.jpg" width="640" /></a></div>
<br />
How this tools can improve a print<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYMjQbG4Pk0u2-qizUQgI_SgpWko-Dw4T4ffafyI6SheB8QPU42khoVmf73xtu2q-UbDpMAMkjJ2MZlZGRBEAm06Y3T5Kc1syawdnDLH9KUVIJn9_crpYFqtY4j8DcYR5YJte4ysoWP1iC/s1600/retouch-example.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYMjQbG4Pk0u2-qizUQgI_SgpWko-Dw4T4ffafyI6SheB8QPU42khoVmf73xtu2q-UbDpMAMkjJ2MZlZGRBEAm06Y3T5Kc1syawdnDLH9KUVIJn9_crpYFqtY4j8DcYR5YJte4ysoWP1iC/s640/retouch-example.jpg" width="640" /></a></div>
<br />
Retouch3D tool in action<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlYeyutlzX-a-GTS-9Lfb2ATfG6thGtHDvoeVOOt5mFjVqpEiDVQV0s69mHFsFHuaIIKoCX2fJqyLRcrK2r1lvf56P-Qz2-liMP5U0kKA5J2F6_nxELi4D4exJWufLk5Oa0WSQGKXb-6Dr/s1600/retouch-work.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="338" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlYeyutlzX-a-GTS-9Lfb2ATfG6thGtHDvoeVOOt5mFjVqpEiDVQV0s69mHFsFHuaIIKoCX2fJqyLRcrK2r1lvf56P-Qz2-liMP5U0kKA5J2F6_nxELi4D4exJWufLk5Oa0WSQGKXb-6Dr/s640/retouch-work.jpg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<h2 style="clear: both; text-align: left;">
Blank tip for custom tools </h2>
<div style="clear: both; text-align: left;">
Imagine I would like to create a custom tool, e.g. wood branding iron with my logo. Blank tip would help me with it a lot. I could just cast the logo in metal and append it on such blank head. Simple and easy :o)</div>
<div style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.novatoolco.com/images/ntclogoiron.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.novatoolco.com/images/ntclogoiron.jpg" height="278" width="320" /></a></div>
<div style="clear: both; text-align: left;">
<br /></div>
Marek Hudikhttp://www.blogger.com/profile/08899201021358595434noreply@blogger.com0tag:blogger.com,1999:blog-1210281250789267745.post-81747618196887714622014-01-30T06:18:00.003-08:002014-03-14T09:18:11.443-07:00Convert mp4 to mp3 in linux<b>Convert mp4 video file to wav audio</b><br />
<span style="font-family: Courier New, Courier, monospace;">avconv -i input.mp4 output.wav</span><br />
<br />
<b>Encode wav to mp3</b><br />
<span style="font-family: Courier New, Courier, monospace;">lame --preset standard input.wav output.mp3</span><br />
For different mp3 quality use another preset mode. Display all preset modes with: <span style="font-family: Courier New, Courier, monospace;">lame --preset help</span><br />
<br />
<b>Update mp3 with ID3 tag</b><br />
<span style="font-family: Courier New, Courier, monospace;">eyeD3 --encoding=utf8</span><span style="font-family: 'Courier New', Courier, monospace;"> </span><span style="font-family: 'Courier New', Courier, monospace;">-a </span><span style="font-family: 'Courier New', Courier, monospace;">"Author" -t "Title" -A "Album" --add-image image.jpg:FRONT_COVER input.mp3</span><br />
<br />
<br />
<span style="font-size: large;">Copy out audio from mp4 file as AAC</span><br />
<span style="font-family: Courier New, Courier, monospace;">avconv -i input.mp4 -c:a copy output.aac</span><br />
<br />
<div>
</div>
<br />
<div style="-webkit-text-stroke-width: 0px; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<div style="margin: 0px;">
<br /></div>
<div style="margin: 0px;">
<br /></div>
</div>
Marek Hudikhttp://www.blogger.com/profile/08899201021358595434noreply@blogger.com0tag:blogger.com,1999:blog-1210281250789267745.post-8340505226903214522013-06-08T04:53:00.002-07:002013-06-13T00:41:18.405-07:00Multiple screenshots from video with a MPlayer<br />
<div style="background-color: white; font-size: 11px; line-height: 19px; margin: 15px 15px 2px;">
<span style="font-family: Lucida Sans Unicode, Trebuchet MS, Verdana, monospace;">To take multiple screenshots use a </span><span style="font-family: Courier New, Courier, monospace;">screenshot</span><span style="font-family: Lucida Sans Unicode, Trebuchet MS, Verdana, monospace;"> video filter. Append command with</span><span style="font-family: Courier New, Courier, monospace;"> -vf </span><span style="font-family: Lucida Sans Unicode, Trebuchet MS, Verdana, monospace;">screenshot</span></div>
<div style="background-color: white; font-size: 11px; line-height: 19px; margin: 15px 15px 2px;">
<span style="font-family: Courier New, Courier, monospace;">> mplayer<b> -vf</b> <b>screenshot</b> movie-filename.avi</span></div>
<div style="background-color: white; font-size: 11px; line-height: 19px; margin: 15px 15px 2px;">
<span style="font-family: Lucida Sans Unicode, Trebuchet MS, Verdana, monospace;">If you press '</span><span style="font-family: Courier New, Courier, monospace;">s</span><span style="font-family: Lucida Sans Unicode, Trebuchet MS, Verdana, monospace;">' a screenshot is taken and it's saved in current directory as </span><span style="font-family: Courier New, Courier, monospace;">shot00001.png</span><span style="font-family: monospace;"> file.</span></div>
<div style="background-color: white; font-size: 11px; line-height: 19px; margin: 15px 15px 2px;">
<span style="font-family: Lucida Sans Unicode, Trebuchet MS, Verdana, monospace;">To start a screenshot sequence press '</span><span style="font-family: Courier New, Courier, monospace;">S</span><span style="font-family: Lucida Sans Unicode, Trebuchet MS, Verdana, monospace;">' (shift+s) and for stop press it again. Multiple files are saved.</span></div>
<div style="background-color: white; font-family: 'Lucida Sans Unicode', 'Trebuchet MS', Verdana, monospace; font-size: 11px; line-height: 19px; margin: 15px 15px 2px;">
<br /></div>
Marek Hudikhttp://www.blogger.com/profile/08899201021358595434noreply@blogger.com0tag:blogger.com,1999:blog-1210281250789267745.post-42426744569734092362013-05-30T03:40:00.005-07:002013-07-08T13:43:55.745-07:00Vim color schemeChange vim color simple by typing in vim:<br />
<br />
<span style="background-color: #eeeeee;"><span style="color: #222222; font-family: 'Ubuntu Mono', 'Ubuntu Beta Mono A', Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 14px; line-height: 17px;">:colorscheme</span><span style="color: #222222; font-family: 'Ubuntu Mono', 'Ubuntu Beta Mono A', Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 14px; line-height: 17px;"> ron</span></span> (for dark background)<br />
<span style="background-color: #eeeeee; color: #222222; font-family: 'Ubuntu Mono', 'Ubuntu Beta Mono A', Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: 14px; line-height: 17px;">:colorscheme peachpuff</span> (for light background)<br />
<br />
Write this color schema as <span style="background-color: #eeeeee;">colorscheme <colorscheme></colorscheme></span> to <span style="background-color: #eeeeee;">/etc/vim/vimrc</span> configuration file.<br />
<br />
Find information on <a href="http://askubuntu.com/questions/24544/what-is-the-default-vim-colorscheme">http://askubuntu.com/questions/24544/what-is-the-default-vim-colorscheme</a>Marek Hudikhttp://www.blogger.com/profile/08899201021358595434noreply@blogger.com0tag:blogger.com,1999:blog-1210281250789267745.post-65913959510333874152013-04-03T05:28:00.000-07:002013-06-13T00:42:54.218-07:00Transfer files via browserIf you are running on Linux and your college needs to download files from you just run following command in directory with needed files:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">python -m SimpleHTTPServer <port></port></span><br />
<br />
Your colleges can see all files and subdirectories in browser on the address <ip>:<used-port> and simple download them.</used-port></ip><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijgs4j0ixm0bfr0xGxPyVZRCHYfUXLhggghfWV0_kn_6-nb-rny2_NA6IBBilC4ZUU0ru1tszx96B7OnYjkHlGSQnnMFMCv8XVyYYDxO1WoAU8VZU4EIiO4fX9i7JQgmW8LjSTiMXZsIRQ/s1600/python-server.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijgs4j0ixm0bfr0xGxPyVZRCHYfUXLhggghfWV0_kn_6-nb-rny2_NA6IBBilC4ZUU0ru1tszx96B7OnYjkHlGSQnnMFMCv8XVyYYDxO1WoAU8VZU4EIiO4fX9i7JQgmW8LjSTiMXZsIRQ/s640/python-server.png" width="640" /></a></div>
<br />Marek Hudikhttp://www.blogger.com/profile/08899201021358595434noreply@blogger.com0tag:blogger.com,1999:blog-1210281250789267745.post-89754131735336707842012-03-13T09:05:00.000-07:002012-03-13T09:05:18.398-07:00WebConsole on AmazonI manage my linux servers using ssh. From time to time I need to access them from places where ssh connection is not possible, e.g. behind firewall which enables HTTP only. Then I start a remote server with shell accessible via browser.<br />
<br />
I use a simple solution using Amazon AWS EC2 service. I just start a prepared EC2 image on cheapest instance. This image contains installed Shell-in-a-box (Web based AJAX terminal emulator) and usage manual. <br />
<br />
Shell In A Box implements a web server that can export arbitrary command line tools to a web based terminal emulator. For details see its <a href="http://code.google.com/p/shellinabox/">homepage</a>.<br />
<br />
When I don't need the server anymore I just terminate it. The cost is several cents ($0.006/hour for Spot request server).<br />
<br />
I you would like to try it the image name is <b>ami-c73ef2ae</b> (currently available only for US East - Northern Virginia).<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEji7glRDA7iKij3pev7Q3YSSl7XmpVBlAUHbrqurkmBZ4-ig7v4omn_dIStVkT2JRuGd_xDUngmQHcg4eM0szoibndCXV2XtcJmk1Xak2uxctapRbnhWmbKhLuyq4X02j0_-3QRzK3sPjQ3/s1600/WebConsole.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="237" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEji7glRDA7iKij3pev7Q3YSSl7XmpVBlAUHbrqurkmBZ4-ig7v4omn_dIStVkT2JRuGd_xDUngmQHcg4eM0szoibndCXV2XtcJmk1Xak2uxctapRbnhWmbKhLuyq4X02j0_-3QRzK3sPjQ3/s400/WebConsole.png" width="400" /></a></div><div style="text-align: center;">WebConsole tutorial running on port 80</div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZUz8qg4e49Y6NUvUpmdKKQk6RunBcSbm11cvlyz0jgNTamP34T6jT0AyA1kT_4F7tsrsRNQCq9e098E6xBbL9QJoVrxAJr3Pe9SAfDu8dSGo-SPzr6b7KE6IG1eOvQHdaMCqSYFqcV-bf/s1600/WebConsole-shell.png" imageanchor="1" style="margin-left:1em; margin-right:1em"><img border="0" height="239" width="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZUz8qg4e49Y6NUvUpmdKKQk6RunBcSbm11cvlyz0jgNTamP34T6jT0AyA1kT_4F7tsrsRNQCq9e098E6xBbL9QJoVrxAJr3Pe9SAfDu8dSGo-SPzr6b7KE6IG1eOvQHdaMCqSYFqcV-bf/s400/WebConsole-shell.png" /></a></div><div style="text-align: center;">WebConsole shell running on port 443</div>Marek Hudikhttp://www.blogger.com/profile/08899201021358595434noreply@blogger.com0tag:blogger.com,1999:blog-1210281250789267745.post-56010095959519953432011-04-13T07:47:00.000-07:002011-04-13T07:47:03.012-07:00Clean Code Talk - part III, FunctionsNext talk by Robert C. Martin about one chapter of his book 'Clean Code'. Here is <a href="http://www.wjug.org/wjug/docs/Clean-Code-Functions.ppt">presentation</a> used in video.<br />
<br />
<br />
<iframe src="http://player.vimeo.com/video/13702091" width="400" height="150" frameborder="0"></iframe><p><a href="http://vimeo.com/13702091">Clean Code III: Functions</a> from <a href="http://vimeo.com/user4296973">Mike C.</a> on <a href="http://vimeo.com">Vimeo</a>.</p><br />
<a title="View Clean-Code-Functions on Scribd" href="http://www.scribd.com/doc/52926836/Clean-Code-Functions" style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;">Clean-Code-Functions</a><iframe class="scribd_iframe_embed" src="http://www.scribd.com/embeds/52926836/content?start_page=1&view_mode=list&access_key=key-1q9o841t0o6dek43pwm6" data-auto-height="true" data-aspect-ratio="1.2938689217759" scrolling="no" id="doc_63638" width="100%" height="600" frameborder="0"></iframe><script type="text/javascript">(function() { var scribd = document.createElement("script"); scribd.type = "text/javascript"; scribd.async = true; scribd.src = "http://www.scribd.com/javascripts/embed_code/inject.js"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(scribd, s); })();</script>Marek Hudikhttp://www.blogger.com/profile/08899201021358595434noreply@blogger.com0tag:blogger.com,1999:blog-1210281250789267745.post-86336469028995533082011-04-13T06:41:00.000-07:002011-04-13T07:30:27.699-07:00Clean Code Talk - part I, ArgumentsGreat talk by Robert C. Martin about one chapter of his great book 'Clean Code'. Here is <a href="http://agilehouston.org/uploads/Main/CleanCodePart1.ppt">presentation</a> used in video.<br />
<br />
<br />
<iframe src="http://player.vimeo.com/video/13439458" width="400" height="300" frameborder="0"></iframe><p><a href="http://vimeo.com/13439458">Clean Code I: Arguments</a> from <a href="http://vimeo.com/user4296973">Mike C.</a> on <a href="http://vimeo.com">Vimeo</a>.</p><br />
<a title="View Clean Code - Part 1, Arguments on Scribd" href="http://www.scribd.com/doc/52925659/Clean-Code-Part-1-Arguments" style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;">Clean Code - Part 1, Arguments</a><iframe class="scribd_iframe_embed" src="http://www.scribd.com/embeds/52925659/content?start_page=1&view_mode=list&access_key=key-hnnsbpg1l3cn28q49i5" data-auto-height="true" data-aspect-ratio="1.2938689217759" scrolling="no" id="doc_94157" width="100%" height="600" frameborder="0"></iframe><script type="text/javascript">(function() { var scribd = document.createElement("script"); scribd.type = "text/javascript"; scribd.async = true; scribd.src = "http://www.scribd.com/javascripts/embed_code/inject.js"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(scribd, s); })();</script>Marek Hudikhttp://www.blogger.com/profile/08899201021358595434noreply@blogger.com0tag:blogger.com,1999:blog-1210281250789267745.post-533387781785493172010-08-18T07:07:00.000-07:002010-09-01T07:54:39.481-07:00Injecting Mockito mocks into a Spring beanI would like to inject a Mockito mock object into a Spring (3+) bean for the purposes of unit testing. My bean dependencies are currently injected by using the @Autowired annotation on private member fields.<br />
<br />
Howto do it simple with XML configuration:<br />
<br />
<pre name="code" class="xml"><bean id="dao" class="org.mockito.Mockito" factory-method="mock">
<constructor-arg value="com.package.Dao" />
</bean>
</pre><br />
It's pretty elegant.Marek Hudikhttp://www.blogger.com/profile/08899201021358595434noreply@blogger.com0tag:blogger.com,1999:blog-1210281250789267745.post-22652046660817268362010-05-30T15:00:00.000-07:002010-05-30T15:00:49.433-07:00supermemo.netSuperMemo.net is a online version of <a href="http://www.supermemo.com/">SuperMemo</a> program which is legendary desktop program developed by <a href="http://en.wikipedia.org/wiki/Piotr_Wo%C5%BAniak_(researcher)">Piotr Woźniak</a>.<br />
<br />
The application itself makes good impression with professional design. I take a look on usage.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFI1L1oJiCJGpHkz4Tn-3h4UTa2uoP1_kf68SkaDXPotmIeIYPWrn_GG1V95MGbz_xhr2RJ8am_jGvYCho4J_SWcVkae2xFOnreFNF8488squrnThB4arUKcZZooKnKW7JXoX_QHHsKGx9/s1600/online+courses+-+supermemo.net.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="214" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFI1L1oJiCJGpHkz4Tn-3h4UTa2uoP1_kf68SkaDXPotmIeIYPWrn_GG1V95MGbz_xhr2RJ8am_jGvYCho4J_SWcVkae2xFOnreFNF8488squrnThB4arUKcZZooKnKW7JXoX_QHHsKGx9/s320/online+courses+-+supermemo.net.png" width="320" /></a></div><br />
<br />
Lesson overview is looks good on first view. Each lesson has nice description, rating, nice picture and icon which tells me, if a lesson is free or not. After first look I try to find what lesson are offered. And here comes the problem. Filter feature is not intuitive. I see recommended lessons, Top 10 and user lessons. After a while I spot a menu with 'Course categories'. This displays a page with tree menu - languages, other and user courses. No sorting, search is problematic (search for history finds only lesson not from users). To find what this application offers that is a little difficult.<br />
I expect a lesson filter which gives me impression if same lesson is present or not, if it's free, which language it uses, ...<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqPZbXheRwtf4cwmmT4QGMfBlefBxNEAQNkJBW7Xiq4AHlvdnCtyNDuV7v-gcZzJqdGZBiYaF8cH8uBFqV8_46057DXX9uyXwhIaCvQzmFprauYphG27a1FDk4nv3YlgMvMZk1da62z3LT/s1600/supermemo-search.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqPZbXheRwtf4cwmmT4QGMfBlefBxNEAQNkJBW7Xiq4AHlvdnCtyNDuV7v-gcZzJqdGZBiYaF8cH8uBFqV8_46057DXX9uyXwhIaCvQzmFprauYphG27a1FDk4nv3YlgMvMZk1da62z3LT/s320/supermemo-search.jpg" width="289" /></a></div><br />
<br />
After while I found a interesting lesson which I subscribed. I searched a introduction to the application but<i> </i>I found none. No suggestion how to use it, how the learning works.<br />
Learn part is split into three parts → Learn plan, Course content and flashcard display.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJ_Hl48J3PxVM29ccspJegCC_xMNt7CCHRgbNNd1M8cLDBBJpfoKCjmJZBYIcxxFrGe_8SQZi6pwPEX_ivkt_6RN0PWfoMqAYaK8rPP0rIbIqZFUxJgLQN1DMGS2k1NWamPhCkc5qYNOPg/s1600/supermemo-learn.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="189" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJ_Hl48J3PxVM29ccspJegCC_xMNt7CCHRgbNNd1M8cLDBBJpfoKCjmJZBYIcxxFrGe_8SQZi6pwPEX_ivkt_6RN0PWfoMqAYaK8rPP0rIbIqZFUxJgLQN1DMGS2k1NWamPhCkc5qYNOPg/s320/supermemo-learn.jpg" width="320" /></a></div><br />
Learning itself is good designed. You can see big experience in UI. Flashcard has usual control → Show answer, rate your knowledge options and Next flashcard button. On Next button is displayed information when flashcard will be repeated.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFjqu3rFrxTMjofRzy-A_y8PSRr0fS5Ju3sfzg-_H6FFzt7DmvJVzJtk7YoaVstygpECUtKALJwnuhEprKrLOCUbrcMJmTt56pI9ldJGI-eD4_DPiXUadWxJYwTMDZIXbtI_O0SGvtUMns/s1600/supermemo-learn-detail.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="208" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFjqu3rFrxTMjofRzy-A_y8PSRr0fS5Ju3sfzg-_H6FFzt7DmvJVzJtk7YoaVstygpECUtKALJwnuhEprKrLOCUbrcMJmTt56pI9ldJGI-eD4_DPiXUadWxJYwTMDZIXbtI_O0SGvtUMns/s320/supermemo-learn-detail.jpg" width="320" /></a></div><br />
<br />
Learn plan contains flashcards list planed for todays learning. It consist from three parts as Repetition, New material and Drill. The detailed learn schedule is also available (under Welcome → Schedule of repetitions).<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQaNEApgrWXcac89-e5F9HHlpUFulo7hkn3Ko1baIaP3053auepXiqLxhauZD5oRsTllpP1tdeCO1AYFclL-hBdJdTYcfnYMfbnvgMr1leMYJxXOGs1S01FBX-v9gkFS0RSLfhBv5sxETF/s1600/supermemo-schedule.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="205" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQaNEApgrWXcac89-e5F9HHlpUFulo7hkn3Ko1baIaP3053auepXiqLxhauZD5oRsTllpP1tdeCO1AYFclL-hBdJdTYcfnYMfbnvgMr1leMYJxXOGs1S01FBX-v9gkFS0RSLfhBv5sxETF/s320/supermemo-schedule.jpg" width="320" /></a></div><br />
Information about your current progress is also available in lesson statistics.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrTn0L-UV2lXnM6q7A1t4dCMvgGOy0TFdZxevlHixxvqyYsgLrZEpf7n3OZJ8oz-_E94Im967xZ8Yo5NgdnuQ_FE2eGkbLc0lMd_ZDP2r4nHBgBO9OZVwIUfe1any-Gu5l2DSELETYGT6q/s1600/supermemo-statistic.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrTn0L-UV2lXnM6q7A1t4dCMvgGOy0TFdZxevlHixxvqyYsgLrZEpf7n3OZJ8oz-_E94Im967xZ8Yo5NgdnuQ_FE2eGkbLc0lMd_ZDP2r4nHBgBO9OZVwIUfe1any-Gu5l2DSELETYGT6q/s320/supermemo-statistic.jpg" width="298" /></a></div><div class="" style="clear: both; text-align: left;"><br />
</div><div class="" style="clear: both; text-align: left;">And finally lesson configuration:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1Um0IG24yqUPgOJEv7_5o8hyTOn1vYCA-FKTP5_Hez9btkqAtMrgWA6_6ARKik4WOPxZ98TVIHVkVSo0fTzDNWoU47kseulkQKc8jElfVSv8wf-usaB3fhN0hVcg9x1NvZK_1XUSstGr7/s1600/supermemo-configuration.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="91" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1Um0IG24yqUPgOJEv7_5o8hyTOn1vYCA-FKTP5_Hez9btkqAtMrgWA6_6ARKik4WOPxZ98TVIHVkVSo0fTzDNWoU47kseulkQKc8jElfVSv8wf-usaB3fhN0hVcg9x1NvZK_1XUSstGr7/s320/supermemo-configuration.jpg" width="320" /></a></div><br />
<u>Summary</u>:<br />
SuperMemo is a nice application. You can see 10 years of development here. It offers settings for each lesson, where you can adjust speed of learning progress for your skills. You can see your lesson statistic and flashcard schedules. The drill part is also important. After proceeding scheduled flashcards you can repeat todays portion and improve your knowledge.<br />
What I don't like is that the flashcard stays in order while learning or drill. There is no flashcard shuffle. So you will learn the flashcard order which is not wanted. You don't want to remember the information from a flashcard only in that case that another flashcard precede.Marek Hudikhttp://www.blogger.com/profile/08899201021358595434noreply@blogger.com1tag:blogger.com,1999:blog-1210281250789267745.post-7911854733370441012010-04-30T05:37:00.000-07:002010-05-18T05:32:48.836-07:00Learn simpleI would like to improve my language knowledge. I know german and english already. But my english could be improved. It's good only for reading technical texts, but nothing else.<br />
<br />
There for I am looking for one nice application, which will improve my english easily. I am expecting a web 2.0 application, where I simple learn new vocabularies, idioms, grammar, ... I would appreciate access possibility from cell phone.<br />
<br />
So where I can find list of those software? Wikipedia of course. Under <a href="http://en.wikipedia.org/wiki/List_of_Flashcard_software">Flashcard Software</a> I found following:<br />
<ul><li><a href="http://www.repetivia.com/">Repetivia</a></li>
<li><a href="http://www.vocabum.com/">Vocabum</a></li>
<li><a href="http://www.ediscio.com/">Ediscio</a></li>
<li><a href="http://quizlet.com/">Quizlet</a></li>
<li><a href="http://www.iflipr.com/">iFlipr</a></li>
</ul>Know I will check these applications and see what they are offering.<br />
<br />
Update: And also take a look on Google search results:<br />
<br />
<ul><li><a href="http://www.supermemo.net/">SuperMemo.net</a></li>
<li><a href="http://www.flashcardexchange.com/">FlashcardExchange.com</a></li>
<li><a href="http://www.flashcardmachine.com/">FlashcardMachine.com</a></li>
<li><a href="http://quizlet.com/">Quizlet.com</a></li>
<li>p<a href="http://www.proprofs.com/flashcards/">roprofs.com/flashcards/</a></li>
<li>F<a href="http://flashcarddb.com/">lashcardDB.com/</a></li>
</ul>Marek Hudikhttp://www.blogger.com/profile/08899201021358595434noreply@blogger.com0tag:blogger.com,1999:blog-1210281250789267745.post-30621238557663627972010-03-30T01:57:00.001-07:002010-04-02T09:24:22.110-07:00How to succeed in SCJPOne year ago I decided for certification in Java. I passed the exam last week. Now I would like to share my experience in two advices.<br /><br />1. Have a deadline<br />Without a deadline the study takes to long. You will never know everything. Don't try to replace compiler.<br /><br />2. Have a good learn resource.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.amazon.com/gp/product/0071591060?ie=UTF8&tag=justanothbl0b-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=0071591060"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 124px; height: 160px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinFu2AuqLGB43XbvYGkAZbOkzgsurRZNkjdsl6hrYNNgC9AOk6n9oieYp9ubNx1pj1qRuEhjAJzWYEy8YzZ5qc70yoyyj-9aFq26M0WAOiqxXSj5Bwj5XGFfmjsYiLGdjMIuBw7pEhUkNV/s400/scjp-book-image.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5455573313471946722" /></a>It's the core. You don't want to read 700 pages books. Keep it short and efficient. The first book is <a href="http://www.amazon.com/gp/product/0071591060?ie=UTF8&tag=justanothbl0b-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=0071591060">SCJP Sun Certified Programmer for Java 6 Exam 310-065</a><img src="http://www.assoc-amazon.com/e/ir?t=justanothbl0b-20&l=as2&o=1&a=0071591060" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />. This book awesome summary for each chapter, which is ideally study material. Read it first and if you don't understand the content read the whole chapter.<br /><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.whizlabs.com/"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 225px; height: 45px;" src="http://whizlabs.com/images/whizlabs-logo.gif" border="0" alt="" /></a>Second study source is <a href="http://www.whizlabs.com/">Whizlabs certification preparation</a> software. For 50$ you get a account with 8 mock exams. If you keep score over 85% you are prepared for the exam.<br /><br />Finally don't forget you need just 58% to pass.Marek Hudikhttp://www.blogger.com/profile/08899201021358595434noreply@blogger.com1