tag:blogger.com,1999:blog-8095876366403395372024-03-05T03:28:57.136-08:00Grawchograwchohttp://www.blogger.com/profile/03477801919678134653noreply@blogger.comBlogger16125tag:blogger.com,1999:blog-809587636640339537.post-29133487040650767892017-07-18T13:53:00.001-07:002017-07-18T13:53:24.135-07:00Microsoft Azure Stack Delivers Hybrid Cloud...<p>Microsoft Azure Stack combines Microsoft software & Intel hardware in one hybrid cloud platform. #IamIntel</p><a href='http://bit.ly/2uA0JPB' target='_blank'><img src='https://d3utlhu53nfcwz.cloudfront.net/137701/cdnImage/article/56226838-1214-4a7c-a000-42117e454d53/?size=Box320'></a><h2><a href='http://bit.ly/2uA0JPB' target='_blank'>Microsoft Azure Stack Delivers Hybrid Cloud...</a></h2>After months of collaboration, Intel has announced support of the launch of Microsoft Azure Stack, a truly hybrid cloud platform.<hr /><a href='http://4biz.intel.com' target='_blank'>Intel Business Social Hub</a>grawchohttp://www.blogger.com/profile/03477801919678134653noreply@blogger.com0tag:blogger.com,1999:blog-809587636640339537.post-25242148033312965332014-07-31T02:23:00.000-07:002014-07-31T02:23:53.922-07:00TFS Batched Gated Build – Stopping the starvation<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8fsSUNqW3FqLP6n7Hot41HCW-dE7GXThbx8s_kdLExynHQSeBeZ2D4pZ47u3FJRddlymDY2bMjh-90hCIIZsnLFqhR8cCOU02OsSrB9aXKdt4-ofPaB1bs1bJiIPBXrIRN9AUu63eqQM/s1600/TFS2013.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8fsSUNqW3FqLP6n7Hot41HCW-dE7GXThbx8s_kdLExynHQSeBeZ2D4pZ47u3FJRddlymDY2bMjh-90hCIIZsnLFqhR8cCOU02OsSrB9aXKdt4-ofPaB1bs1bJiIPBXrIRN9AUu63eqQM/s1600/TFS2013.jpg" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
Until TFS 2013 only one gated check-in build was allowed to
run consecutively, this caused, in medium and large size development teams, resource
“starvation”.<o:p></o:p></div>
<div class="MsoNormal" style="text-align: justify;">
Only one validation process ran for each check in, causing
either a long queue and delay in development process and code sharing or a
short and insufficient validation process rendering the gated build validation
system redundant.<o:p></o:p></div>
<div class="MsoNormal" style="text-align: justify;">
No more, in TFS 2013 a new option was added (batched gated
build).<o:p></o:p></div>
<div class="MsoNormal" style="text-align: justify;">
Let a step back to remind ourselves that the purpose of
gated build is to protect the product from breaking on a single developer
error. When it is short and quick (only validates compilation for example) it provides
little protection, on the other hand if adding validation steps (tests etc.) “Costs”
valuable time. <o:p></o:p></div>
<div class="MsoNormal" style="text-align: justify;">
For example 30 minutes validation in a 5 developer team can
cause a request to wait over 2 hours in line for validation.<o:p></o:p></div>
<div class="MsoNormal" style="text-align: justify;">
Batched gated build helps solving this issue.<o:p></o:p></div>
<br />
<div class="MsoNormal" style="text-align: justify;">
When setting up a build definition trigger you can determine
the maximum amount of shelvesets (check-ins) you want merged when in queue.<o:p></o:p></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWtUv8hhBvYVgiCbS2KRYKkZt92qhKf02oJTMlcCfc_cWbEa5kOKWrmYE3CO3qAKzQ71Vm_EI29p5OaanuD_k4GVICVvSNTl1EK6I8HK6_qKM3qy79GgAzl-h_0pJhYqx5Jq3td_DhwHk/s1600/BatchedGatedBuild.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWtUv8hhBvYVgiCbS2KRYKkZt92qhKf02oJTMlcCfc_cWbEa5kOKWrmYE3CO3qAKzQ71Vm_EI29p5OaanuD_k4GVICVvSNTl1EK6I8HK6_qKM3qy79GgAzl-h_0pJhYqx5Jq3td_DhwHk/s1600/BatchedGatedBuild.jpg" height="353" width="640" /></a></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
This will cause several check-ins to run together in a
single validation build.<o:p></o:p></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjitcxNtrTnR2CeDzatu8z0Qh-8FLG9msg2FuCE7efv7kS0n7TTOPl1u9zSKikRItq49aCxXhuADFNeh1dHa0EFgQV7UF_9Qna3XXjTTsxhpFlXUJG8kzTyypIozV77pY5MWvmrAGPNd_k/s1600/BatchedGatedBuildQueue.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjitcxNtrTnR2CeDzatu8z0Qh-8FLG9msg2FuCE7efv7kS0n7TTOPl1u9zSKikRItq49aCxXhuADFNeh1dHa0EFgQV7UF_9Qna3XXjTTsxhpFlXUJG8kzTyypIozV77pY5MWvmrAGPNd_k/s1600/BatchedGatedBuildQueue.jpg" height="193" width="200" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="MsoNormal">
The logic of the trigger is pretty simple: when a build is
queued and the queue is empty it starts right away, if a build is already running
the request will be queued, after the build is completed the server will queue
the next batch in the queue together up to the number stated in the build
definition.<o:p></o:p></div>
<div class="MsoNormal">
From my experience this practice drops wait time significantly,
and speeds up the development and sharing for the team.<o:p></o:p></div>
<div class="MsoNormal">
This does not come without implications or concerns though,
here are five:<o:p></o:p></div>
<div class="MsoNormal">
<span style="font-size: 7pt; text-indent: -18pt;"><br /></span></div>
<div class="MsoNormal">
<span style="font-size: 7pt; text-indent: -18pt;"> </span><span dir="LTR" style="text-indent: -18pt;"></span><u style="text-indent: -18pt;">What happens if a batch
fails to merge while unshelving?</u></div>
<div class="MsoNormal">
</div>
<div class="MsoListParagraphCxSpLast">
When several shelvesets are unshelved together
there can be conflicts (this can happen even with a single shelveset if the
baseline of the shelveset is not the latest version of code). The build process
template, by default marks each build request for retry (only in the Get
workspace and unshelve process), the retry request will state that when this
shelveset is retried it will run without a batch.<o:p></o:p></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ-owgIDm2U2mZUtq8KEtffi4c28I4boET_oRzRLor9SnL-d2P3RwU57K5-ihNJRq3lp7UG2-d2hQwc30vInL1kGP_5np7zt8o-nsWBfDw2b_LPvEVNAXVRip3oMHj_x2BNQ-FztDMneg/s1600/RetryRequstsProps.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ-owgIDm2U2mZUtq8KEtffi4c28I4boET_oRzRLor9SnL-d2P3RwU57K5-ihNJRq3lp7UG2-d2hQwc30vInL1kGP_5np7zt8o-nsWBfDw2b_LPvEVNAXVRip3oMHj_x2BNQ-FztDMneg/s1600/RetryRequstsProps.jpg" height="201" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyks3INyLRYGbXm6xtMcxUIVjniO6y1Mb0PqhhkGdWWILHdlfXzENGx517LLfSnbjG0DMbwIEO3yxmz71EDzwJink-2NRmQJYQpOlHUV9joE6_TYYntR1hFBSHOnN2hY9UreXTAtJ5TME/s1600/RetryRequstsBehaviour.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyks3INyLRYGbXm6xtMcxUIVjniO6y1Mb0PqhhkGdWWILHdlfXzENGx517LLfSnbjG0DMbwIEO3yxmz71EDzwJink-2NRmQJYQpOlHUV9joE6_TYYntR1hFBSHOnN2hY9UreXTAtJ5TME/s1600/RetryRequstsBehaviour.jpg" height="120" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="MsoListParagraphCxSpFirst">
The retry behavior options are:<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle">
Do not Batch – each failed request in a batch
will be retried separately by the server.<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle">
Batch Dynamically – the build server will
allow retried requests to be batched regularly in the queue.<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle">
Batch Isolated – the Batch will only be
retried with the requests it originally ran with.<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle">
<span style="font-size: 7pt; text-indent: -18pt;"><br /></span></div>
<div class="MsoListParagraphCxSpMiddle">
<span style="font-size: 7pt; text-indent: -18pt;"> </span><span dir="LTR" style="text-indent: -18pt;"></span><u style="text-indent: -18pt;">How to setup automatic
retry for a batch?</u></div>
<div class="separator" style="clear: both;">
</div>
<div class="MsoListParagraphCxSpLast">
In order to have the build server
automatically start failed requests ahead of the queue you can use the “Force
Retry” option.<o:p></o:p></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3vp25QpEhRnb02Mh3ZI9_0anv2PKY7BhKN8-bc57TqTGdgqoBpi2Flk_uVpk69oyYB6qg97iOYwI6vqR6wvdG1WAx7Jx1EM8xfjgGGqQHrUimU2AYM1ZjjRIR42czY7Xn1Vpqqg31FFE/s1600/RetryRequstsForce.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3vp25QpEhRnb02Mh3ZI9_0anv2PKY7BhKN8-bc57TqTGdgqoBpi2Flk_uVpk69oyYB6qg97iOYwI6vqR6wvdG1WAx7Jx1EM8xfjgGGqQHrUimU2AYM1ZjjRIR42czY7Xn1Vpqqg31FFE/s1600/RetryRequstsForce.jpg" height="200" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-size: 7pt; text-indent: -18pt;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-size: 7pt; text-indent: -18pt;"> </span><span dir="LTR" style="text-indent: -18pt;"></span><u style="text-indent: -18pt;">How to avoid an endless
loop of automatic attempts?</u></div>
<div class="MsoListParagraphCxSpMiddle">
Using the “Force” option should only be
attempted with “DoNotBatch” behavior to avoid endless loop of failed Builds.</div>
<div class="MsoListParagraphCxSpMiddle">
<span style="font-size: 7pt; text-indent: -18pt;"><br /></span></div>
<div class="MsoListParagraphCxSpMiddle">
<span style="font-size: 7pt; text-indent: -18pt;"> </span><span dir="LTR" style="text-indent: -18pt;"></span><u style="text-indent: -18pt;">What happens if a batch
fails to validate?</u></div>
<div class="MsoListParagraphCxSpLast">
</div>
<div class="MsoListParagraphCxSpLast">
The retry
requests activity in the default process template resides only in the “Get
Workspace” step, so other failures is not treated the same by default. You can,
however use in again (by creating a custom template) in the workflow with a
simple logic that will retry batched requests on their own automatically ahead
of the queue and mark an unlatched request for retry Dynamically (not
Automatically, of course).<o:p></o:p></div>
<div class="MsoListParagraphCxSpLast">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgopbvFJK58A-9yAODPpkbjuJt-vpCIuLOfTRWAKxSFcl2BZ0bRhMlMZjkgjs8PvBi63icj8k-nQUalfxua8_m6J_qP9vy5vwJJoidgAiuqh25PvE8pfAXnjckG6dJhOumggrgEfQLK3Rk/s1600/AutoRetryBatch.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgopbvFJK58A-9yAODPpkbjuJt-vpCIuLOfTRWAKxSFcl2BZ0bRhMlMZjkgjs8PvBi63icj8k-nQUalfxua8_m6J_qP9vy5vwJJoidgAiuqh25PvE8pfAXnjckG6dJhOumggrgEfQLK3Rk/s1600/AutoRetryBatch.jpg" height="183" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: x-small; text-align: left;"> <b><i>Force = True, DoNotBatch Force = False, BatchDynamically</i></b></span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<span style="text-indent: -18pt;"><br /></span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<span style="text-indent: -18pt;"> What is the optimal batch
size?</span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle">
Using this (Kung Fu) tricks will shorten
the build queue indeed but you should beware of trying to setup to small or to
large batch. Keeping in mind, that with auto retry, each failed batch can take
up to <b><i>n+1</i></b> times of the average build time (n being the batch
size). Setting batch size to small will not speed up queue progress and to big
can hang the queue for a long time to validate the error.<o:p></o:p></div>
<div class="MsoListParagraphCxSpLast">
</div>
<div class="MsoListParagraphCxSpLast">
Large batch size can increase the probability
of merge conflicts as well.<o:p></o:p></div>
<div class="MsoListParagraph">
My educated guess is to keep the batch size between 3
to 5, this should shorten the wait time significantly and not block the queue
for excessive time on failure.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
To sum up: the batched build solution is optimal for using
gated check-in validation without the resource starvation it used to cause. There
are other issues to be taken into consideration like modifying the shelveset
validation and merge process and customize the build process to save time. Furthermore,
by using batched builds a single developer can block the queue for a long time <b><i>[(Batch
size + 1)X(Average Build time)]</i></b>. Analyzing, publishing and reporting the
“shame list” of developers that checked in invalidated code causing resource
starvation once more can motivate your team to run local pre validation, which will
result in improving your developers as well as code while keeping the product
stable (win-win-win).<o:p></o:p></div>
<div class="MsoListParagraphCxSpLast">
</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Till next time.<o:p></o:p></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0_dE69Xr0f6E-xAPJ6VXU9awn7YVyTdUu7W-8mteQjXSbqB5dHmzutEi69IpN8JEHDcEYwrS2Hi9YkXG4wz_jIK7RWkXBd5vOcndmQqnvymhECmsQ8spjd7rPeddUpwd6fJ-iRkWlhmI/s1600/TFS2012ALM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0_dE69Xr0f6E-xAPJ6VXU9awn7YVyTdUu7W-8mteQjXSbqB5dHmzutEi69IpN8JEHDcEYwrS2Hi9YkXG4wz_jIK7RWkXBd5vOcndmQqnvymhECmsQ8spjd7rPeddUpwd6fJ-iRkWlhmI/s1600/TFS2012ALM.png" height="139" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoListParagraphCxSpLast">
<br /></div>
grawchohttp://www.blogger.com/profile/03477801919678134653noreply@blogger.com0tag:blogger.com,1999:blog-809587636640339537.post-49552144640988491012013-01-08T13:05:00.002-08:002013-01-08T13:33:06.359-08:00SharpSSH - OpenSSH for .NET and Make-it-so sln to makefile converter<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEje6Llh0sgkM5RT6ye-AuVrUH7BDA5Chyphenhyphenbh2VX_CYfaxp8x8L5HeadfyI_3Nxfp1Kyz9tXk_R6HDyRVY1EdlRcX04Fkc2_bVBKiesSiEoHNpAVbDouWSpSSzOF6nmVAL8FBqAUzL_ghTVw/s1600/ssh.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEje6Llh0sgkM5RT6ye-AuVrUH7BDA5Chyphenhyphenbh2VX_CYfaxp8x8L5HeadfyI_3Nxfp1Kyz9tXk_R6HDyRVY1EdlRcX04Fkc2_bVBKiesSiEoHNpAVbDouWSpSSzOF6nmVAL8FBqAUzL_ghTVw/s1600/ssh.jpg" width="127" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
Creating cross platform build automation for compiling C++ code on MSVC (MSBuild) and g++ (GCC) was the task at hand. On the agenda was how to invoke shell commands and scripts on a Linux machine, and how to securely transfer files to and from said machine. The answer is obvious ... SSH (Secure Shell). Well, when working on Linux and UNIX machines SSH is a native tool in your toolbox, this is not so when adjusting a Microsoft Team Foundation Server 2012 to perform these tasks. To the rescue comes <a href="http://www.tamirgal.com/blog/page/SharpSSH.aspx" s="" sharpssh="sharpssh" target="_blank" title="Tamir Gal's Sharp SSH">SharpSSH</a> , which is a pure .NET implementation of the SSH2 client protocol suite. It provides an API for communication with SSH servers and can be integrated into any .NET application. SharpSSH allows you to read/write data and transfer files over SSH channels using an API similar to <a href="http://sharpssh.cvs.sourceforge.net/viewvc/sharpssh/SharpSSH/Examples/jsch_samples/" target="_blank" title="JSch's API">JSch's API</a>. In addition, it provides some additional <a href="http://sharpssh.cvs.sourceforge.net/viewvc/sharpssh/SharpSSH/Examples/sharpssh_samples/" target="_blank" title="Examples">wrapper classes</a> which offer even simpler abstraction for SSH communication. using this easy-to use library I was able to create a TFS Build workflow code activity and design the build process template to run Bash scripts, send the source code and get the build outputs from the target Linux machine. All this sounds rather simple ... well it wouldn’t had been compete without the icing on the cake ... <a href="https://code.google.com/p/make-it-so/" target="_blank" title="sln to makefile converter">Make-it-so</a>, that converts Visual Studio solutions to Linux gcc makefiles. It needed a few tweaks to fit to the format of VS2012 sln format, but it was worth every minute. During my work I used some manual tools to run tests manually like <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html" target="_blank" title="free ssh client for windows">Putty</a> and <a href="http://winscp.net/eng/index.php" target="_blank" title="Free SFTP, SCP and FTP client for Windows">winscp</a>, and custom executable I wrote from <a href="http://www.tamirgal.com/blog/page/SharpSSH.aspx" s="" sharpssh="sharpssh" target="_blank" title="Tamir Gal's Sharp SSH">SharpSSH</a> to run manually from PowerShell.<br />
There was only one twitch I found in this, otherwise, us full handy tool. It sets its own default environment variables (like PATH) so things don't run as smoothly as you would have expected like with native ssh. Discovering this was not without its share of trouble, things started to go "south" when I tried using complex commands like <a href="https://en.wikipedia.org/wiki/Sed" target="_blank" title="strem editor">sed</a>, <a href="https://en.wikipedia.org/wiki/Grep" target="_blank" title="global / regular expression / print - filter">grep</a>, <a href="https://en.wikipedia.org/wiki/Chmod" target="_blank" title="change file mode properties command">chmod</a> and other native shell commands. Running the scripts manually turned a different result then via my <a href="http://www.tamirgal.com/blog/page/SharpSSH.aspx" s="" sharpssh="sharpssh" target="_blank" title="Tamir Gal's Sharp SSH">SharpSSH</a> client and it took me a while to try to look for the reason. In the end I, of course, found and fixed the issue.<br />
Another useful tip when writing scripts for different platforms is that windows text editors hide special characters (like - for end of line and for backspace) and editing <a href="https://en.wikipedia.org/wiki/Bash_%28Unix_shell%29" target="_blank" title="Unix Shell">Bash</a> scripts with any of those will usually case the script to fail :) (That’s why god invented <a href="https://en.wikipedia.org/wiki/Vi" target="_blank" title="screen-oriented text editor">vi</a> for). to sum things up, cross platform is as cool and fun as it is interesting and informative.<br />
This solution may prove handy the next time you want to write g++ compatible c++ code and use the comfort of visual studio as you IDE... have the best of both worlds. <br />
'till next time ... be free<br />
G.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiykD26zUWeCmOl-eQOPLsRuKld8U3BuhKrcc7fQjhsqJr0nGWMpUu68AYqUFygO1yYhFVi-q0kx3qfGxDQAgtR_NIV5YnDw-xt-zUUms_WUKjelt76GhjkmdGPZNqKQ_offnYCJ5AnhdI/s1600/tfs-2012-metro.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiykD26zUWeCmOl-eQOPLsRuKld8U3BuhKrcc7fQjhsqJr0nGWMpUu68AYqUFygO1yYhFVi-q0kx3qfGxDQAgtR_NIV5YnDw-xt-zUUms_WUKjelt76GhjkmdGPZNqKQ_offnYCJ5AnhdI/s1600/tfs-2012-metro.png" /></a></div>
next ... <a href="http://www.codeweavers.com/products/" target="_blank" title="Run Windows Applications on Linux, Easily and Affordably">CodeWeavers CrossOver</a> and <a href="http://download.microsoft.com/download/4/2/7/427AC2CF-8A5B-4DE9-8221-22F54B1903E2/TFSEclipsePlugin-UpdateSiteArchive-11.0.0.1212.zip" target="_blank" title="Download TFSEclipsePlugin-UpdateSiteArchive-11.0.0.1212.zip">eclipse team explorer everywhere plug-in</a> ,or maybe I'll conduct a comparison between remote PowerShell and SSH ... neh ... this is pointless. <br />
<br />grawchohttp://www.blogger.com/profile/03477801919678134653noreply@blogger.com0tag:blogger.com,1999:blog-809587636640339537.post-27912209947484108162013-01-07T13:18:00.001-08:002013-01-07T13:18:12.739-08:00Grawcho: searching for out of circulation IKEA product (TRO...<a href="http://grawcho.blogspot.com/2013/01/searching-for-out-of-circulation-ikea.html?spref=bl">Grawcho: searching for out of circulation IKEA product (TRO...</a>: does any one know of a way to get IKEA products that went out of circulation i bought some curtain rod's to make a pseudo dark room dryer f...grawchohttp://www.blogger.com/profile/03477801919678134653noreply@blogger.com0tag:blogger.com,1999:blog-809587636640339537.post-17936537329741739222013-01-07T13:16:00.001-08:002013-01-07T13:16:40.231-08:00searching for out of circulation IKEA product (TROLIG)does any one know of a way to get IKEA products that went out of circulation i bought some curtain rod's to make a pseudo dark room dryer for family photos.<br />
<br />
and IKEA had stopped making them. i need a couple more (even used) to continue my project with them in an esthetically pleasing manner :)<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMPn8ZKwclK0ta3VMrCAsS5TG-N-DID28vmJPsrJ4oYiloR0xh4VgauO6x4MePIM5OG4EVVkGkGpOuT86K4Jjb9_nkTy8G2AscVwxa1hfb1VucDdFn2fWs1xJknUSpcDgSatuzBBkfM9c/s1600/IMG_4773.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMPn8ZKwclK0ta3VMrCAsS5TG-N-DID28vmJPsrJ4oYiloR0xh4VgauO6x4MePIM5OG4EVVkGkGpOuT86K4Jjb9_nkTy8G2AscVwxa1hfb1VucDdFn2fWs1xJknUSpcDgSatuzBBkfM9c/s1600/IMG_4773.JPG" width="400" /></a></div>
rather then mixing, matching and \ or replacing all of them all together.<br />
if you know of anyone that has one of them and is willing to give it up, please, let me know.<br />
this it how it looks<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisgVxHXylgyzN3GaWh9WjxWbX643tVJAcNTDdCqZl5Vh2oVXI5xjagaIvzOD6vG4wx5smHnl5ZKq9Nkq74LX_LEsDY22VcfBDpjJY6lqQqZAQmNUaRTui_yPfZIreHomYXx5C5z-Dbxvw/s1600/img-thing.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisgVxHXylgyzN3GaWh9WjxWbX643tVJAcNTDdCqZl5Vh2oVXI5xjagaIvzOD6vG4wx5smHnl5ZKq9Nkq74LX_LEsDY22VcfBDpjJY6lqQqZAQmNUaRTui_yPfZIreHomYXx5C5z-Dbxvw/s1600/img-thing.jpeg" width="200" /></a></div>
<br />
G.grawchohttp://www.blogger.com/profile/03477801919678134653noreply@blogger.com1tag:blogger.com,1999:blog-809587636640339537.post-8997061100652255172012-09-03T15:02:00.000-07:002012-09-03T15:02:56.727-07:00Help The helpers ...Hi again.<br />
as you may have asserted i have new found respect for Microsoft with the new Windows 8. i have some "Air Time" with it too, i installed a machine for every preview version available (developer, consumer and release previews). in anticipation for the official release, and been an MSDN subscriber, i went ahead and assumed this will profit me in the long run.<br />
I assumed that i will be able to upgrade my edition, and keep the hours of work put in to customize my machine.<br />
<br />
guess what ..... i was WRONG !!!<br />
<br />
after trying everything except for installing a fresh install (on a formatted partition), i was referred to this <a href="http://www.computerworld.com/s/article/9230479/Bloggers_show_how_to_upgrade_Windows_8_previews_to_RTM">post</a> and followed it. At first it looked promising (may i quote from the post: <span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 20px; text-align: left;">"Keep in mind that this is not supported, and could end up with a catastrophic failure if some bits are not properly upgraded,"</span>)<br />
<br />
an of course after the third re-start, i was forced to to what i didn't want to do in the first place<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRlij1G0xFDK272XE8msAuIShCap8AFLYCZCSdhWNDaWlGIYQbpAvZAUMcknQmETWSanFy7z6qjbzaO034boxORvf5-10sZt64uMYQSn41_qyyVr3zeEj2BYT-jAHs_0myGEwbjLOcvBE/s1600/blue-screen-of-death-windows-8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRlij1G0xFDK272XE8msAuIShCap8AFLYCZCSdhWNDaWlGIYQbpAvZAUMcknQmETWSanFy7z6qjbzaO034boxORvf5-10sZt64uMYQSn41_qyyVr3zeEj2BYT-jAHs_0myGEwbjLOcvBE/s320/blue-screen-of-death-windows-8.png" width="320" /></a></div>
Re-install (at least restoring from the web is fast).<br />
<br />
why oh why do i like to help out ?<br />
<br />
see you soon.<br />
<br />
G.grawchohttp://www.blogger.com/profile/03477801919678134653noreply@blogger.com2tag:blogger.com,1999:blog-809587636640339537.post-82216029462391853972012-08-17T01:05:00.000-07:002012-08-17T01:06:18.887-07:00מדריך לבניית אתרי אינטרנט או המוסד לביטוח לאומי - שרות ונגישות מעל הכל <div style="text-align: right;">
בעוונותיי אני נאלץ לשלם לביטוח לאומי, עד כאן הכל בסדר. יש אפילו אתר אינטרנט אשר בו אזרחי המדינה (הריעו לריבון) יכולים בנוחות ובצורה מאובטחת לשלם את מסיהם</div>
<div style="text-align: right;">
<br /></div>
<div style="text-align: right;">
אצתי, רצתי למחשב הקרוב למקום מגורי (פשוט שלפתי את הלפטופ מהתיק) ופתחתי את הדפדפן החביב עלי (בלי לנקוב בשמות) והפלא ופלא ... כלום, פשוט כלום</div>
<div style="text-align: right;">
<br /></div>
<div style="text-align: right;">
מוטב מראה עיניים</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfm409GuNVnoiODn4cUMcQ86ZTpSf0g3YqXJ9BAn_X97OgK4RKWt_YjbzUfHIhDX2jvQ0hcVlEmb4YilfDROsgN0fO_HH-Tj94x1W7UU_CYJYecKwxR5sa5YCJdPq-Ux63zerOF2t7e5o/s1600/OnFireFoxNoIETab.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="168" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfm409GuNVnoiODn4cUMcQ86ZTpSf0g3YqXJ9BAn_X97OgK4RKWt_YjbzUfHIhDX2jvQ0hcVlEmb4YilfDROsgN0fO_HH-Tj94x1W7UU_CYJYecKwxR5sa5YCJdPq-Ux63zerOF2t7e5o/s320/OnFireFoxNoIETab.png" width="320" /></a></div>
<div style="text-align: right;">
כפי שוודאי אתם שמים לב... כך קשה במידה מסוימת לשלם מיסים, אך, לא לי</div>
<div style="text-align: right;">
הנחתי שמדובר בבעית תאימות ולכן ניסיתי (ללא הצלחה) עוד מספר דפדפנים (שהציגו תמונה דומה) ומספר אמולטורים (מדמי תצורה) לפני שניגשתי ל"דבר האמיתי" הדפדפן האימתני של מיקרוסופט ... אינטרנט אקספלורר 10</div>
<div style="text-align: right;">
<br /></div>
<div style="text-align: right;">
הוא בטח יציל אותי ... הכל בנוי להתאים לו, ובטח אתרי האינטרנט של הרשויות אשר בחרו במיקרוסופט (בצדק) כספק התשתיות מס 1 שלהם ... את ההפתעה שציפתה לי ניתן להראות רק בתמונות</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc5_3xUDbGDKu6Dlmp2sami9_2MdCwIN9TNsIdJZgtgfsoDyfRkh3YnOuLJ7hqqS27gfMOTypz4-8rPe68DLP88mme7OZqrz7X7imE-dn1l0SrqpmQ8e-IyaUHVA4TPG45rMhCQT0_8qc/s1600/OnIE10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="171" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc5_3xUDbGDKu6Dlmp2sami9_2MdCwIN9TNsIdJZgtgfsoDyfRkh3YnOuLJ7hqqS27gfMOTypz4-8rPe68DLP88mme7OZqrz7X7imE-dn1l0SrqpmQ8e-IyaUHVA4TPG45rMhCQT0_8qc/s320/OnIE10.png" width="320" /></a></div>
<br />
<div style="text-align: right;">
<br /></div>
<br />
<br />
<div style="text-align: right;">
עכשיו ... אתם מתבוננים בתמונה ואומרים לעצמכם ... "על מה הוא מדבר?" הכל עובד ... אני אמרתי אותו דבר, ואז גיליתי שאין באתר כפי שהוא נראה שאף לא אפשרות פעולה אחת</div>
<div style="text-align: right;">
<br /></div>
<div style="text-align: right;">
לכן הפעלתי מחדש דפדפן אחר (פיירפוקס 14.0) וניסיתי דבר שלא היה עולה על דעתי לנסות אלמלא הוא עבד</div>
<div style="text-align: right;">
הפעלתי תוסף* שמפעיל את אקספלורר דרך פיירפוקס, לא לא, זה לא עוד מדמה או אמולטור זה ממש להריץ דפדפן אחד דרך ממשק משתמש של דפדפן אחר. וכפי שציינתי התוצאות היו מעבר לכל דמיון</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuTebyzfP2tjpvDga0ohg6fS4mt3YDY5Iml9AruwV8nQOVKS662sBo7jT3-MeyDenlZZQEb04-92fSdduflAfh4Pj1_LNMu1iUdBtBneZBP55kabLj1ohpdZkZYxuLegw2j8GM4YARjB0/s1600/OnFireFoxIETab.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="167" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuTebyzfP2tjpvDga0ohg6fS4mt3YDY5Iml9AruwV8nQOVKS662sBo7jT3-MeyDenlZZQEb04-92fSdduflAfh4Pj1_LNMu1iUdBtBneZBP55kabLj1ohpdZkZYxuLegw2j8GM4YARjB0/s320/OnFireFoxIETab.png" width="320" /></a></div>
<div style="text-align: right;">
<br /></div>
<br />
<br />
<div style="text-align: right;">
</div>
<div style="text-align: right;">
כעת אני (וכל בני ישראל אשר מבינים "מעט" כמוני במחשבים) לשלם את חובותיי (אשר הלכו ותפחו מול עייני בזמן הנסיונות לשלמן) בנוחות וביעילות</div>
<div style="text-align: right;">
<br /></div>
<div style="text-align: right;">
אה... ועוד משהו קטן ... בעת הכניסה לאתר, משיקולי אבטחה, מוצגת שאלה אשר מבקשת מהאזרח להקליד את האותיות שבתמונה, לא תאמינו באיזה צירוף מקרים נתקלתי, כשראיתי את זה חשבתי שפשוט יש מישהו בביטוח הלאומי שפשוט צוחק עלי</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirDAJeCcSIRsbRrqAF2hBL2SYu8_PQTSeiU9lzs6STNnU8lEgNsTB56N8FZfBFK0Qvt3wTzXhH6aFFWyBeNZL2APkRzp_5FVE6DMxocvylRA-cmVXQYrlkIatQebBdByen1tS68cOOWhQ/s1600/hardship.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="220" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirDAJeCcSIRsbRrqAF2hBL2SYu8_PQTSeiU9lzs6STNnU8lEgNsTB56N8FZfBFK0Qvt3wTzXhH6aFFWyBeNZL2APkRzp_5FVE6DMxocvylRA-cmVXQYrlkIatQebBdByen1tS68cOOWhQ/s320/hardship.png" width="320" /></a></div>
<div style="text-align: right;">
לזה אני קורא צדק חברתי</div>
<div style="text-align: right;">
<br /></div>
<div style="text-align: right;">
עד הפעם הבאה</div>
<div style="text-align: right;">
<br /></div>
<div style="text-align: center;">
(IETab לתוסף קוראים)*</div>
grawchohttp://www.blogger.com/profile/03477801919678134653noreply@blogger.com0tag:blogger.com,1999:blog-809587636640339537.post-17640243762117974582012-06-06T09:43:00.000-07:002012-06-06T12:44:50.024-07:00Painstaking tasks (recursive archives)Hi all ... this is another example of how to apply the "longer path" approach<br />
<div>
<br /></div>
isn't it annoying to unzip an archive only to find out that it contains another archive ?<br />
<div>
here is a sipmle shell script that will help you unzip archives recursively...</div>
<div>
<br /></div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCd3NlP2o2gFicT1pX5WzBbFSQjBQLr35RpiMwfmO12RAp-hpwkkR1dTrjsUqvqP4ZQVlHuFK5SF2Ql2Pt-kSDSmovaBqr5u9TQEZxZJ-FmwQ7vZKs9uoaMKAFVrcaqZ3lGpjF877oWY4/s1600/rezip.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="118" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCd3NlP2o2gFicT1pX5WzBbFSQjBQLr35RpiMwfmO12RAp-hpwkkR1dTrjsUqvqP4ZQVlHuFK5SF2Ql2Pt-kSDSmovaBqr5u9TQEZxZJ-FmwQ7vZKs9uoaMKAFVrcaqZ3lGpjF877oWY4/s400/rezip.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
</div>
<div>
<br /></div>
<div>
I called it "rezip", it carries the same functionallity of originall "zip" command</div>
<div>
<br /></div>
<div>
ToDo: make it indifferent to type of archives (people tend to get clever and switch archiving methods)</div>
<div>
<br /></div>
<div>
'till nex time </div>
<div>
<br /></div>
<div>
G.</div>grawchohttp://www.blogger.com/profile/03477801919678134653noreply@blogger.com0tag:blogger.com,1999:blog-809587636640339537.post-379067295545861712012-05-09T13:54:00.001-07:002017-08-17T01:59:38.653-07:00Taking the longer path<div><p>As I am the "computer guy" in the family, I was appointed to be incharge of the presentation for my father-in-law 70th birthday.<br>
Well, at least ,in charge of getting 200 picture images into a powerpoint presentation file (in deed a job worthy of my experties).</p>
<p>As i was starting this tedious task i looked online for an automatic solution for my problem that will save me some time, and found this nice<a href="http://msdn.microsoft.com/en-us/library/ee412267(v=office.12).aspx"> post in msdn</a>.</p>
<p>The task, of course, was a small battle of it's own (the code and my machines configuration needed some modifications due to it beeing a sample and not intended to work out of the box).<br>
but, 3 houers (and 5 seconds of runtime) later, after showing the outcome to the "client", she said: "I would had done it faster manually".</p>
<p>well. I think I still like the longer path ... and I'll see what happens on his 80th (assuming I can find the code)</p>
<p>'till next time.</p>
<p>G. </p>
<br><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigT4Hu3SLZSDz_JRuG9a8ToaVhYqv6cQXS8DAyMb-tkIgL2-pv5ebIfpuhua_iyRjK2fiYhkVeVb9DEA1l4plSsnEzKE-w149d95ADZrwp1EdYs5tQ0EiFn0J1mFca5ZjUP9k0N3ZEjlo/"></div>grawchohttp://www.blogger.com/profile/03477801919678134653noreply@blogger.com2tag:blogger.com,1999:blog-809587636640339537.post-76895686889560159392012-04-21T23:35:00.000-07:002012-04-21T23:35:01.993-07:00Are you ready ???<div style="text-align: center;"><a href="http://www.ubuntu.com/"><img alt="The next version of Ubuntu is coming soon" border="0" height="150" src="http://www.ubuntu.com/countdown/banner3.png" width="180" /></a></div>grawchohttp://www.blogger.com/profile/03477801919678134653noreply@blogger.com0tag:blogger.com,1999:blog-809587636640339537.post-11707418122629262922012-03-13T15:39:00.000-07:002012-03-13T15:39:50.812-07:00make Windows 8 CP look native in VirtualboxHi all.<br />
<br />
I recently encountered another hassle in attempting to perfect my Window 8 machine. setting the virtual machine's screen resolution to fit my laptop screen (16:9) dimensions and resolution (1600X900X32bit) proved to be challenging.<br />
<br />
I'm not the guy to run away from such a challenge.<br />
<br />
Due to the Beta nature of the OS it was not surprising that Virtualbox's guest addition (Ver. 4.1.8), dose not yet support display dimensions that differ from 4:3<br />
<br />
although there is the option of using the "scale mode" <host key+> it doesn't quite cut it.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_wQD-VPzO4jpybaos3CkF54gMq8D8n-YygysHqPAEnCCWVYWYAXYtaO8shw3erAGejK-afIr6LUZJMioIIWWBC1dhLkZt9nDNtOfPhohI-5ReHPn25avOEv1g97Tn0VZcIyH_ZT9vIec/s1600/winndowsstreched.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="111" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_wQD-VPzO4jpybaos3CkF54gMq8D8n-YygysHqPAEnCCWVYWYAXYtaO8shw3erAGejK-afIr6LUZJMioIIWWBC1dhLkZt9nDNtOfPhohI-5ReHPn25avOEv1g97Tn0VZcIyH_ZT9vIec/s200/winndowsstreched.png" width="200" /></a></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxIY7BGznZ7aW70oaLY3BsXy0lv7nm9BQH8hZAUyb0jgvpzrrP-zFglhSAZ4d7Zfn8xd04oF8-pUGyd05jsszpCW52blrbNNecoHx3NA_It-JUs211ozgtANUGOYCDqA6OAhG-QtXiZd0/s1600/winndowsstreched1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="112" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxIY7BGznZ7aW70oaLY3BsXy0lv7nm9BQH8hZAUyb0jgvpzrrP-zFglhSAZ4d7Zfn8xd04oF8-pUGyd05jsszpCW52blrbNNecoHx3NA_It-JUs211ozgtANUGOYCDqA6OAhG-QtXiZd0/s200/winndowsstreched1.png" width="200" /></a></div> Disregarding the annoying host top window bar, the font looks stretched and it's just not it :( no worries, there is a solution:<br />
<br />
Shut down all of your Virtual machines and VirtualBox too (not mandatory for linux or Mac hosts).<br />
<br />
for windows hosts:<br />
open the command line interface type the following line:<br />
<blockquote class="tr_bq">in c:\Program Files\Oracle\virtualBox></blockquote><blockquote class="tr_bq"><span style="font-size: x-small;">...>VBoxManage.exe setextradata "MachinName" CustomVideoMode1 1600x900x32</span></blockquote><span style="font-size: small;">for Linux hosts:</span><br />
<span style="font-size: small;">open terminal and type</span><br />
<blockquote class="tr_bq"><span style="font-size: x-small;">:~$VBoxManage setextradata "MachineName" CustomVideoMode1 1600x900x32</span></blockquote> * replace MachineName with the name of your Virtual machine <br />
Lo and behold ... it works (you can obviously use your favorite screen settings [Hight]x[Width]x[Depth]).<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheL3L6DTTw1UqoztK4yRjLmRFbzrsfmw4orANKrogLouFpetbxcn5V3BVvXDuUDKuvSMtQOdKP-B8-9uIv33bOz5IrO9jBZQrrqdMK9yOOGvAKrP2bypKMQX5M2QT-xT7VB5WSZM_9zAU/s1600/resmenu2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="120" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheL3L6DTTw1UqoztK4yRjLmRFbzrsfmw4orANKrogLouFpetbxcn5V3BVvXDuUDKuvSMtQOdKP-B8-9uIv33bOz5IrO9jBZQrrqdMK9yOOGvAKrP2bypKMQX5M2QT-xT7VB5WSZM_9zAU/s200/resmenu2.png" width="200" /></a></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3eNBSRL-Dk8aK5mTcL3PrG77q_Ik2x1ubWnDu-3eE0BHJYzB9jd3bAn9cMcf_tEU0QSmwm3OHZy4yH2wIhRAVQhCnIiSF0e-q-0IAcPGuUfTle4QeuVWGRbz68HgU3HoZ77S2QkBIvSQ/s1600/winndows8CP.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="112" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3eNBSRL-Dk8aK5mTcL3PrG77q_Ik2x1ubWnDu-3eE0BHJYzB9jd3bAn9cMcf_tEU0QSmwm3OHZy4yH2wIhRAVQhCnIiSF0e-q-0IAcPGuUfTle4QeuVWGRbz68HgU3HoZ77S2QkBIvSQ/s200/winndows8CP.png" width="200" /> </a> </div><div class="separator" style="clear: both; text-align: left;">so now i can actually use the full extent of my screen.</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;"> ... Oh Joy </div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">G. </div>grawchohttp://www.blogger.com/profile/03477801919678134653noreply@blogger.com1tag:blogger.com,1999:blog-809587636640339537.post-65662777508099595482012-03-10T12:59:00.003-08:002012-07-20T09:25:55.441-07:00A winning Combination<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifgMVrKG4JJ3GJf6_CqXgG2UDVdMCXbzDEjU9WAxmmuJfJqrDPzs_XR7Oj1JSJLYC_F-WzrUa_hNX-c8J1LKikFInRoB6AyQCQR5XKk4VRQrvIMDNLY6fJE5ZXKYUKSGtb5rUk4I3VOOM/s1600/vim-editor_logo_small.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifgMVrKG4JJ3GJf6_CqXgG2UDVdMCXbzDEjU9WAxmmuJfJqrDPzs_XR7Oj1JSJLYC_F-WzrUa_hNX-c8J1LKikFInRoB6AyQCQR5XKk4VRQrvIMDNLY6fJE5ZXKYUKSGtb5rUk4I3VOOM/s1600/vim-editor_logo_small.png" /></a></div>
<br />
I have been working with Vim "text editor" for some time now. I found a few helpful entries I'd like to share. These helpful tips and tricks helps me be more efficient, code faster and makes the very powerful Vim even stronger.<br />
<br />
First of all - install Vim and learn how to work with it (took me a while, but totally worth it).<br />
<br />
The first cool add-on: snipMate (super easy to install) <a href="http://www.vim.org/scripts/script.php?script_id=2540">check it out</a><br />
<br />
a short feature that show just the tip of the iceberg<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/gsMjQP4yxYw?feature=player_embedded' frameborder='0'></iframe></div>
<br />
Than i found some cool new features that actually <a href="http://sontek.net/turning-vim-into-a-modern-python-ide">transforms Vim editor in to an IDE</a> altogether.<br />
<br />
basically you need to run these commands:<br />
<br />
<pre class="moz-signature" cols="72">$ git clone <a href="https://github.com/sontek/dotfiles.git">https://github.com/sontek/dotfiles.git</a>
$ cd dotfiles
$ ./install.sh vim </pre>
<br />
unfortunately the both (snipMate and Pathogen) don't work well together, this is just a challenge for me, there is no way I'll give up and just choose one. <br />
So I looked for a way to combine the two.<br />
The trick was, installing them in the right order, snipMate then Pathogen (although you can mess around with it to find your way).<br />
and then <a href="http://osmanov-dev-notes.blogspot.com/2011/03/snippets-in-vim.html">follow this little patch</a>, to fix this small twitch, regarding mapping a different key <Ctrl+j> to activate snippet instead of <tab> to allow the both to co-exist.<br />
<br />
Any way, the real cool thing about these features is that you can easily modify and adapt them to your needs. writing new code snippets, changing text highlighting, customizing auto-completions and syntax checking can be super helpful and is super easy to do.<br />
you can create your very own customized, "free of Charge",flexible and "free spirited" IDE.<br />
<br />
For example:<br />
writing a new code snippet for "*.xml" filetype:<br />
simply write a new file named "xml.snippets" and place it in "~/.vim/snippets/"<br />
(or equivalent, e.g. $HOME\vimfiles on Windows), edit the file and add (for the example sake) this code:<br />
<blockquote class="tr_bq">
<div style="color: yellow;">
snippet version<br />
<?xml version="${1:*.*}"?></div>
<span style="color: yellow;">snippet <></span><br />
<span style="color: yellow;"> <${1:TagName}></span><br />
<span style="color: yellow;"> </${2:TagName}></span></blockquote>
<br />
this is what it does (I'll let you do the simple revers engineering):<br />
but the guidelines are "<i>${1:text}</i>" - the first variable the marker will enter when snippet key (in my case <Ctrl+j>) is hit.<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/NKTm7QBl75Y?feature=player_embedded' frameborder='0'></iframe></div>
<br />
<br />
<br />
* the video is a bit fuzzy but ... you'll get the picture :) <br />
In future entries I'll try summarizing all of my insights in customizing Vim.<br />
let me know what you think ... i feel this work was life changing (seeing that i suck in getting syntax correct the first time).<br />
<br />
- Cool fact: "*.snippets" filetype has snippets (recursive ?) -<br />
<br />
G. <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifgMVrKG4JJ3GJf6_CqXgG2UDVdMCXbzDEjU9WAxmmuJfJqrDPzs_XR7Oj1JSJLYC_F-WzrUa_hNX-c8J1LKikFInRoB6AyQCQR5XKk4VRQrvIMDNLY6fJE5ZXKYUKSGtb5rUk4I3VOOM/s1600/vim-editor_logo_small.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifgMVrKG4JJ3GJf6_CqXgG2UDVdMCXbzDEjU9WAxmmuJfJqrDPzs_XR7Oj1JSJLYC_F-WzrUa_hNX-c8J1LKikFInRoB6AyQCQR5XKk4VRQrvIMDNLY6fJE5ZXKYUKSGtb5rUk4I3VOOM/s1600/vim-editor_logo_small.png" /></a></div>grawchohttp://www.blogger.com/profile/03477801919678134653noreply@blogger.com0tag:blogger.com,1999:blog-809587636640339537.post-33560151149358475372012-03-06T11:07:00.002-08:002012-03-06T11:10:09.939-08:00Are you a team player ?Do you take care of your own S#!T, or do you expect someone else to do it for you ?<br />
Do you lead ? Do you follow ? Do you feel obliged to do your best for the "greater good" ?<br />
Or do you only take care of no. 1 ?<br />
<br />
In order to make it as a team every one needs to pitch in, buck up, give it his best effort and "take one for the team".<br />
<br />
Following the rules of the community you live / work in, is the foundation of team work. all you have to do as a team is set the standards and live by them.<br />
<br />
Here is an example of a set of rules that puts logic and order into potential chaos.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKReTjrAQtVuwduV2GUiqCGa7Ui4EHhE8Zl50vmXTY0_suFASCFJcXGXCQzlr2Nk-sAl17oYTr-_kRLw496QVFTnKJwTGKecJDidZOE_wc-8_9DyOiwCJ1_6HGzuAF5_u9XbaCWzjPRH8/s1600/KDE_logo.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKReTjrAQtVuwduV2GUiqCGa7Ui4EHhE8Zl50vmXTY0_suFASCFJcXGXCQzlr2Nk-sAl17oYTr-_kRLw496QVFTnKJwTGKecJDidZOE_wc-8_9DyOiwCJ1_6HGzuAF5_u9XbaCWzjPRH8/s1600/KDE_logo.png" /></a></div><br />
<a href="http://kde.org/code-of-conduct/">http://kde.org/code-of-conduct/ </a><br />
<br />
<br />
<br />
A global community moving in unison towards a common goal ... on what logically would seem lead to total anarchy ... is driven by the common goal and basic set of rules.<br />
<br />
What do you think ?<br />
<br />
G.grawchohttp://www.blogger.com/profile/03477801919678134653noreply@blogger.com0tag:blogger.com,1999:blog-809587636640339537.post-4602511552785380332012-03-04T14:33:00.001-08:002012-03-04T14:33:38.293-08:00Its a small world after all<div><p>Recent technological advances allow us to do unthinkable things. if you would have told someone 30 years ago, that he would be talking to his friends halfway accros the world for free, i doubt he would have believed.<br>
this upcoming revolution promisses to leave no one behind. soon, everyone will straighten up and learn how to digitalize there lives.</p>
<p>it raizes sevral major privecy issues.<br>
but it am glad to be a part and try to lead this new, borderlind sci-fi, era.<br>
it is a small world.<br>
and it seems it is just going to get smaller.</p>
<p>leaving a digital footprint...</p>
<p>G. </p>
</div>grawchohttp://www.blogger.com/profile/03477801919678134653noreply@blogger.com0tag:blogger.com,1999:blog-809587636640339537.post-81194055413397622202012-03-03T10:24:00.000-08:002012-03-03T10:24:28.846-08:00It's on ...Can it be ? Is it really happening ?<br />
Can the people who allowed this to happen:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhngWnUJ5V3eLfTrp0wOSsO1qRv7VXYUskTnV0HlKTt_efa0eldHXhAiYGxgYCf48K7QihmYLZ_KPFqfo0oe9VD6CZPDJxCCJUWuawkzu0N4idqkDXz49qqITB3Mwwooi7Sfth_8XK-Bxw/s1600/too_many_toolbars.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="236" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhngWnUJ5V3eLfTrp0wOSsO1qRv7VXYUskTnV0HlKTt_efa0eldHXhAiYGxgYCf48K7QihmYLZ_KPFqfo0oe9VD6CZPDJxCCJUWuawkzu0N4idqkDXz49qqITB3Mwwooi7Sfth_8XK-Bxw/s320/too_many_toolbars.jpg" width="320" /></a></div> actually have a standing chance competing head to head with Apple and Google ?<br />
<br />
looks like it. it's hard for me to say a good word about Microsoft. But i find my self baffled. Even iPad fanatics will have to admit that that there is a reason to be concerned. I caught a movie published by iPhones.col.il documenting a feature by feature review of windows 8 tablet vs. iPad iOS5 and the end result was more than surprising.<br />
<div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/JHcxMKDKCiU?feature=player_embedded' frameborder='0'></iframe></div>so ... any way ... it seems like the world's biggest PC provider has stepped into the Post PC era.<br />
To that i can only say ...<br />
<br />
It's on ...<br />
<br />
G. grawchohttp://www.blogger.com/profile/03477801919678134653noreply@blogger.com0tag:blogger.com,1999:blog-809587636640339537.post-51525426731892293802012-03-02T06:54:00.001-08:002012-03-03T09:27:33.447-08:00Grawcho's BlogPost (ver. 1.0 Beta)Hi all, instead of saying how exited i am about my first post, I'll get right to business.<br />
Two major companies in the industry launched their OS beta versions yesterday. and as a cutting edge enthusiast “techie” I of course rushed to get both of them.<br />
<br />
the first is Microsoft's Windows 8 consumer preview (...or should i say time consumer, and if this is the preview, I wasn't sure I wanted to see the full feature, but my patience level is high).<br />
the process started with the unfortunate fact that it took me half a day to find out how to install this OS version on a virtual or physical machine from scratch (not an upgrade or an 'along side' installation).<br />
at this stage i want to point out ,my hardware and band-width are nothing to be embarrassed about (even the virtual ones).<br />
<br />
the download process is enabled only from windows machines (doesn't run on any windows emulator i have) takes about 30 minutes, and right when you think you are done, the wizard starts "checking your files..." for ten more minutes followed by "getting the files ready ...". (what were you doing 'till now, just get on with it ... will ya).<br />
It doesn't end there though, then started the process of calculating "thing you have to do ..." and told me i have low on disk space (only 3GB free left),16GB free space, it needed (my virtual-box windows 7 runs on almost all of a 30GB disk so ... no go there). went on to make more space by unistalling some unimportant stuff (2 more hours) and 5 more minutes to find out how to go back to write the disk image for a fresh Virtual machine.<br />
i didn't give up though (up till now there is about 16 hours of working on this venture).<br />
<br />
i finally got around to installing the new VM, and here is my initial take on the bran-new windows 8:<br />
i like the fish image and the background (solid blue) color, the first use setup wizard was a bit unfamiliar and confusing for me, but very looks fitting for tablets the metro style desktop looks excellent for tablets, switching back to regular desktop mode is easy at first, but tend to be tricky and elusive latter.<br />
All in all, it looks like the future... kudos Microsoft.<br />
<br />
getting back to my starting point, the second OS beta is Canonical's Ubuntu 12.04 precise pangolin. which in order to get i simply clicked apply changes on the package manager, waited 15 minutes, and started working.<br />
OK ... i admit ... i installed the alpha version on a new machine two days ago (after my wife surprised me with a much anticipated new lap-top), so 15 minutes more. Plus I'll add an hour for hardware patches and another one for correcting syntax errors in those patches (being a code contributor and an alpha tester I'm quite used to it).<br />
<br />
finally, by the time i was done, there was little time left for testing or developing anything. so i went to sleep :(<br />
but, tomorrow is a new day and I'll get right to the business of finding more cool stuff.<br />
<br />
so, apart from wanting to try a new (and dare i say, very nice) Microsoft product, did i do anything wrong ?<br />
just to clarify: this entry is not meant as a dis but rather as constructive criticism, bottom line is, windows 8 i quite cool.<br />
I'm just saying, the process of getting the Beta version to work could be shorter, i'm sure.<br />
or could it, ...i wonder ...<br />
<br />
well, it is, like this blog entry, only a beta version<br />
Any Thoughts (Oh wait .... "hang on while we get a few things ready ...") ?<br />
<br />
<br />
<br />
G.grawchohttp://www.blogger.com/profile/03477801919678134653noreply@blogger.com0