<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>source-code &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://wordpress.com/tag/source-code/</link>
	<description>Feed of posts on WordPress.com tagged "source-code"</description>
	<pubDate>Sun, 12 Oct 2008 19:44:04 +0000</pubDate>

	<generator>http://wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[WPF Elliptical Layout Control - 3D!]]></title>
<link>http://iltc.wordpress.com/?p=54</link>
<pubDate>Sat, 11 Oct 2008 21:40:08 +0000</pubDate>
<dc:creator>ilovetocode</dc:creator>
<guid>http://iltc.ar.wordpress.com/2008/10/11/wpf-elliptical-layout-control-3d/</guid>
<description><![CDATA[After finishing my last post, WPF Elliptical Layout Control, I sat down and wondered what to do ne]]></description>
<content:encoded><![CDATA[<p>After finishing my last post, <a title="Read WPF Elliptical Layout Control" rel="bookmark" href="http://iltc.wordpress.com/2008/10/08/wpf-elliptical-layout-control/">WPF Elliptical Layout Control</a>, I sat down and wondered what to do next. It occurred to me that creating a 3D carousel in WPF is a common question and one that doesn't have all that many examples. A 3D control is also a natural progression from the 2D control and is not all that different. All we need to do is layout the objects in 2D, then rotate those points according to the orientation of the imaginary layout ellipse, taking in to account depth.</p>
<p>This example creates a new control which derives from <a href="http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.aspx">FrameworkElement </a>and is very similar to the implementation of the <a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.viewport3d.aspx">Viewport3D</a> control. The new control overrides the measure and layout methods of FrameworkElement and positions the child controls (supplied as a collection of UIElements) according to the orientation of an imaginary 2D ellipse in 3D space.</p>
<p>It is assumed that the reader has some knowledge of custom controls, <a href="http://msdn.microsoft.com/en-us/netframework/aa904594.aspx">LINQ </a>and <a href="http://msdn.microsoft.com/en-us/library/ms747437.aspx">3D </a>in WPF. The code provided is by no means an ideal implementation of the theory, it should be thought of more as a quick demonstration of the concept. And remember, in WPF there is almost always more than one way of doing the same thing, mine is just my take on the problem :0)</p>
[caption id="attachment_55" align="aligncenter" width="510" caption="3D Elliptical Layout Panel Demo"]<a href="http://iltc.files.wordpress.com/2008/10/2008-10-11_ellipticallayoutpanel3d_screenshot.png"><img class="size-large wp-image-55" title="2008-10-11_ellipticallayoutpanel3d_screenshot" src="http://iltc.wordpress.com/files/2008/10/2008-10-11_ellipticallayoutpanel3d_screenshot.png?w=510" alt="3D Elliptical Layout Panel Demo" width="510" height="346" /></a>[/caption]
<p><a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2filtc.wordpress.com%2f2008%2f10%2f11%2fwpf-elliptical-layout-control-3d%2f"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2filtc.wordpress.com%2f2008%2f10%2f11%2fwpf-elliptical-layout-control-3d%2f&#38;border=F78B0C&#38;fgcolor=818181&#38;bgcolor=FFFFFF&#38;cfgcolor=FFFFFF&#38;cbgcolor=818181" border="0" alt="kick it on DotNetKicks.com" /></a></p>
<p><!--more--></p>
<p><strong>The Idea</strong></p>
<p>In the last example, we worked out how to lay out controls as if they were positioned at equal intervals around the edge of an imaginary ellipse. We now want to take that ellipse from a 2D space in to 3D, giving a sense of depth in the control.</p>
<p>Taking the existing layout logic in to the third dimension is fairly trivial if we remember that the positions we calculate for child controls in the 2D version could be thought of as being 3D points, all at the same distance away from the screen, i.e. z = 0. So by treating the points that are generated as 3D points, each with a value of zero for z (their depth), we can then rotate them to match the orientation of the layout ellipse (defined by an x, y and z axis rotation).</p>
<p>In short, we calculate the position of each child element as before, then rotate that point in 3D to match the rotation of a virtual layout ellipse. The layout ellipse will be configured as before, although this time we need to allow a way to configure its orientation. This is as simple as adding three new properties to allow an angle of rotation to be specified for each axis.</p>
<p>When it comes to the control, we need to look to 3D controls in WPF. We could create our own control which lays out its content, then projects it in to 3D and renders the control scaled such that they appear to be 3D, but that's no fun and way too much effort! It would somehow be great if we could take advantage of the relatively new <a href="http://msdn.microsoft.com/en-us/library/system.windows.media.media3d.viewport2dvisual3d.aspx">Viewport2DVisual3D</a> control, effictively a 3D wrapper for a <a href="http://msdn.microsoft.com/en-us/library/system.windows.uielement.aspx">UIElement</a>. It would also be great if the control exposed just a collection of UIElements, which internally it could wrap in a Viewport2DVisual3D control. </p>
<p>Now we know what our items are doing, we need to think of a suitable container. If we look at the <a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.viewport3d.aspx">Viewport3D</a> control, we can see that it wraps a <a href="http://msdn.microsoft.com/en-us/library/system.windows.media.media3d.viewport3dvisual.aspx">Viewport3DVisual</a>, exposing a collection of UIElement objects which it implicitly converts to <a href="http://msdn.microsoft.com/en-us/library/system.windows.media.media3d.visual3d.aspx">Visual3D </a>objects and adds to the inner Viewport3DVisual, as well as one or two other things. This is very similar to what we want to do, with the difference that we want to also define the layout mechanism too.</p>
<p><strong>The Theory</strong></p>
<p>I guess the first thing to tackle here is how to take the generated 2D position for each child control and turn that in to a 3D point, which we can use to create a <a href="http://msdn.microsoft.com/en-us/library/system.windows.media.media3d.translatetransform3d.aspx">TranslateTransform3D</a>. For each point we generate on the ellipse, create a <a href="http://msdn.microsoft.com/en-us/library/system.windows.media.media3d.point3d.aspx">Point3D</a> object using the x and y values of the 2D point and supply a z value of 0d (or whatever you want for the ellipse's distance from the image plane).</p>
<p>Next, rotate the point around each axis using the rotations used to describe the layout ellipse's orientation.  If you're familiar with 3D graphics you may well be aware of <a href="http://en.wikipedia.org/wiki/Gimbal_lock">Gimbal lock</a>, something we want to avoid when we're rotating the child control positions. To combat this, the rotation method will use quaternions. If you've not come across quaternions before, I recommend a quick look on <a href="http://www.google.co.uk/search?hl=en&#38;q=quaternion">Google</a> as there are far better explanations out there than I can give. Also look at <a href="http://www.genesis3d.com/~kdtop/Quaternions-UsingToRepresentRotation.htm">this</a> site which gives the theory behind the math used to rotate a point.</p>
<p>[sourcecode language='csharp']<br />
private readonly static Vector3D UnitXAxis3D = new Vector3D(1d, 0d, 0d);<br />
private readonly static Vector3D UnitYAxis3D = new Vector3D(0d, 1d, 0d);<br />
private readonly static Vector3D UnitZAxis3D = new Vector3D(0d, 0d, 1d);</p>
<p>private static Point3D RotatePoint3D(Point3D point, double xRotation, double yRotation, double zRotation)<br />
{<br />
    Quaternion xQ = new Quaternion(UnitXAxis3D, xRotation);<br />
    Quaternion yQ = new Quaternion(UnitYAxis3D, yRotation);<br />
    Quaternion zQ = new Quaternion(UnitZAxis3D, zRotation);</p>
<p>    Quaternion xyzQ = xQ * yQ * zQ;<br />
    Quaternion xyzQc = xyzQ;<br />
    xyzQc.Conjugate();</p>
<p>    Quaternion pQ = new Quaternion(point.X, point.Y, point.Z, 0d);<br />
    Quaternion q = xyzQ * pQ * xyzQc;<br />
    Point3D rotatedPoint = new Point3D(q.X, q.Y, q.Z);</p>
<p>    return rotatedPoint;<br />
 }<br />
[/sourcecode]</p>
<p>With the Point3D in hand, a TranslateTransform3D object can be created and applied to the child Viewport2DVisual3D control. This leads to the next question of how we are going to handle the wrapping of UIElements. With the addition of the Viewport2DVisual3D control, it is now possible to easily use a UIElement in a 3D scene, maintaining all the usual input handling, so no more messing around with visual brushes and models! You don't get off too lightly though as you still need to provide the Viewport2DVisual3D with some information. This includes a <a href="http://msdn.microsoft.com/en-us/library/system.windows.media.media3d.geometry3d.aspx">Geometry3D</a> object detailing a mesh that defines the surface which the inner <a href="http://msdn.microsoft.com/en-us/library/system.windows.media.visual.aspx">Visual</a> is to be rendered on; the material which should be used when rendering the Visual on the mesh and finally the Visual object itself.</p>
<p>To keep things simple, we can define a basic mesh containing a unit square. This mesh is going to be used as the geometry for each control surface, so we need a way of sizing it according to the dimensions of the control being rendered. This is again a trivial problem and is solved by creating a <a href="http://msdn.microsoft.com/en-us/library/system.windows.media.media3d.scaletransform3d.aspx">ScaleTransform3D</a> object which scales the Viewport2DVisual3D control so that it is scaled by the dimensions of the inner Visual object, ignoring z. Nice!</p>
<p>The scale transform is created for each Viewport2DVisual3D control each time the MeasureOverride method is called. There is no particular reason to place this code here, other than it keeps the sizing logic separate from the layout logic, keeping things a bit better organised. The next code snippet is included to highlight the use of the <a href="http://msdn.microsoft.com/en-us/library/bb360913.aspx">OfType&#60;T&#62;()</a> LINQ extension method, used on the Children property of the control's inner Viewport3DVisual. This method returns an IEnumerable&#60;T&#62; object containing all the items in the collection with a type specified by T. Because we know that our Children collection contains a light somewhere within it, we want to skip over that when scaling the child objects.</p>
<p>[sourcecode language='csharp']<br />
protected override Size MeasureOverride(Size availableSize)<br />
{<br />
    //Iterate all the children of the inner viewport.<br />
    foreach (Viewport2DVisual3D visualChild <br />
        in viewport3DVisual.Children.OfType<Viewport2DVisual3D>())<br />
    {<br />
        //Get the inner UIElement<br />
        UIElement element = visualChild.Visual as UIElement;<br />
        //Create a scale transform so that the control appears the right size<br />
        ScaleTransform3D scaleTransform<br />
            = new ScaleTransform3D(element.DesiredSize.Width, element.DesiredSize.Height, 0d);</p>
<p>        //Add the scale transform in to the Viewport2DVisual3D's transform group.<br />
        AssertTransform3D<ScaleTransform3D>(scaleTransform, visualChild);<br />
    }</p>
<p>    return availableSize;<br />
}<br />
[/sourcecode]</p>
<p>The container that will hold all of these Viewport2DVisual3D controls will need to be a Viewport3DVisual. Again because we are dealing with 3D we need to define a few extra things for the Viewport3DVisual. The first is a <a href="http://msdn.microsoft.com/en-us/library/system.windows.media.media3d.camera.aspx">Camera</a> object which defines how controls displayed in the Viewport3DVisual appear to the viewer. The second is a <a href="http://msdn.microsoft.com/en-us/library/system.windows.media.media3d.light.aspx">Light</a> object which defines an <a href="http://msdn.microsoft.com/en-us/library/system.windows.media.media3d.ambientlight.aspx">AmbientLight</a> object used to provide a uniform white light in the 3D scene (otherwise everything would be dark and you'd see nothing more than a black screen).</p>
<p>To make the controls appear to be positioned within 3-dimensional space, we will use a <a href="http://msdn.microsoft.com/en-us/library/system.windows.media.media3d.perspectivecamera.aspx">PerspectiveCamera</a>, meaning objects which are placed deeper in to the control (further from the screen) will appear smaller than those which are closer to the screen. All we need to do to configure the camera is tell it where it is and the direction it is looking. Because we are keeping things simple here, we'll position our camera somewhere along the positive z-axis, and have it looking down the z-axis (towards the origin). This means our camera will be looking straight on at the objects placed within the control, with the layout ellipse's origin at the origin of the scene.</p>
<p><strong>The Solution</strong></p>
<p>Here I present a simple demonstration of the above in the attached solution. The solution contains a simple Window which hosts the custom 3D ellipse layout control. The ellipse layout control is included in the ElliptiseLayout3DPanel class and adds several dependency properties and a few methods to the FrameworkElement class.</p>
[caption id="attachment_67" align="alignright" width="127" caption="EllipticalLayoutPanel3D Class Diagram"]<a href="http://iltc.files.wordpress.com/2008/10/2008-10-11_ellipticallayoutpanel3d_classdiagram1.png"><img class="size-full wp-image-67     " title="2008-10-11_ellipticallayoutpanel3d_classdiagram1" src="http://iltc.wordpress.com/files/2008/10/2008-10-11_ellipticallayoutpanel3d_classdiagram1.png" alt="EllipticalLayoutPanel3D Class Diagram" width="127" height="331" /></a>[/caption]
<p>The main window also contains a few controls which allow you to interact with the layout control, allowing you to specify the size, location and pose of the layout control as well as add or remove items to the control. There are also two buttons will moves the controls around the ellipse, one at a time. This is a bit of a jig and is as simple as removing an item from the top of the collection held in the control's Children property and adding it to the end of the collection. The reverse is true for moving back through the items. The light sometimes gets caught up in this, so you may not see anything happen for a click or two when switching direction.</p>
<p>With the default orientation of the ellipse when the demo app first runs, changes made to the z-rotation slider will have the effect of spinning the controls around, in the fashion of a carousel. This could be used to animate the rotation items in the control.</p>
<p>To the right is a class diagram, showing the structure of the layout control. You can see it’s pretty simple and doesn’t need to add much to its FrameworkElement ancestor. </p>
<p>Below is a screen-shot of the demo application in action. The values of the sliders are directly bound to the panel’s dependency properties, meaning the only code-behind is for the four button event handlers.</p>
<p> </p>
[caption id="attachment_55" align="aligncenter" width="510" caption="3D Elliptical Layout Panel Demo"]<a href="http://iltc.files.wordpress.com/2008/10/2008-10-11_ellipticallayoutpanel3d_screenshot.png"><img class="size-large wp-image-55" title="2008-10-11_ellipticallayoutpanel3d_screenshot" src="http://iltc.wordpress.com/files/2008/10/2008-10-11_ellipticallayoutpanel3d_screenshot.png?w=510" alt="3D Elliptical Layout Panel Demo" width="510" height="346" /></a>[/caption]
<p>The code is available for <a href="http://ilovetocode.googlecode.com/files/EllipticalLayoutControl3DDemo_VS2008.zip">download</a> as a Visual Studio 2008 (SP1) solution, built against .Net 3.5 SP1.</p>
<p><strong>Going Forwards</strong></p>
<p>The light source and other properties of the control are not configurable. You may want to expose the lights as a separate collection, or at least allow the colour to be altered.</p>
<p>The control will need some more work to enable it to be used in an ItemsPanelTemplate, so it won't work out of the box.</p>
<p>You may want to add proper methods for controlling the order of items in the control, possibly animating this.</p>
<p>All and any comments / bugs / suggestions are welcomed!</p>
<p><a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2filtc.wordpress.com%2f2008%2f10%2f11%2fwpf-elliptical-layout-control-3d%2f"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2filtc.wordpress.com%2f2008%2f10%2f11%2fwpf-elliptical-layout-control-3d%2f&#38;border=F78B0C&#38;fgcolor=818181&#38;bgcolor=FFFFFF&#38;cfgcolor=FFFFFF&#38;cbgcolor=818181" border="0" alt="kick it on DotNetKicks.com" /></a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Questão - Tecnologia - Configuração de Modens e Placas de Som no Linux]]></title>
<link>http://atriade.wordpress.com/?p=1407</link>
<pubDate>Fri, 10 Oct 2008 21:57:23 +0000</pubDate>
<dc:creator>Jotun Kilmister</dc:creator>
<guid>http://atriade.ar.wordpress.com/2008/10/10/questao-tecnologia-configuracao-de-modens-e-placas-de-som-no-linux/</guid>
<description><![CDATA[Configuração de Modens e Placas de Som no Linux

Configurando Modems e Placas de Som
Modems e plac]]></description>
<content:encoded><![CDATA[<h2><strong>Configuração de Modens e Placas de Som no Linux<br />
</strong></h2>
<h3>Configurando Modems e Placas de Som</h3>
<p>Modems e placas de som, mesmo que não sendo essenciais, são as duas peças de hardware mais comuns instaladas em sistema Linux. Infelizmente, elas também são duas das mais complicadas pra se configurar. Veremos aqui como configurá-las.</p>
<h3>Modems</h3>
<p>Um modem (palavra derivada de modulate and demodulate) é o dispositivo que modula um sinal digital em um sinal analogico para transmitir informações por linhas telefônicas. Um outro modem do lado final da linha demodula de volta para a forma digital. Os modems também podem adicionar compressão digital e correção de erro, para aumentar a performance e confiabilidade.</p>
<h3>Tipos de Modems</h3>
<p>Modems são dispositivos seriais, aonde as informações entram e saem um bit por vez. Tradicionalmente, modems são dispositivos externos ligados por cabo em portas seriais RS-232, ainda encontrados em computadores. Esse esquema ainda funciona bem, por que a taxa de dados das conexões telefonicas ainda está abaixo da taxa das portas seriais. Dessa forma, os dispositivos externos ainda têm uma performance sólida. Modems internos (ISA ou PCI) foram criados para diminuir custos que os modems externos têm (por exemplo, com fontes externas e custos de envio) e oferencem a mesma funcionalidade que um modem externo.</p>
<p>A maioria dos modems internos se apresentam para o computador, como uma porta serial. Em um computador comum com as duas portas seriais montadas (/dev/ttyS0 e /dev/ttyS1), o modem interno vai aparecer como uma terceira porta (/dev/ttys2). De um ponto de vista de programação, modems internos são idênticos a modems externos. Mesmo que haja algumas variações nas configurações do modem de acordo com o fabricante, as diferenças são pequenas, e a maioria dos modems estilo serial-port vão funcionar no Linux. Porém, uma exceção, são os modems criados especificamente para o Windows, chamados de winmodems. Estes, dependem da CPU e um software especial para o funcionamento do processo de comunicação, ainda assim, ficam atrás das capacidades máximas de uma modem comum. Obviamente, winmodems não são compativeis com Linux, a não ser que um Driver para o Linux esteja disponível. Informação sobre o suporte no Linux está disponível no endereço <a href="http://www.linmodems.org">http://www.linmodems.org</a>.</p>
<h3>Recursos de Hardware para Modems</h3>
<p>Assim como com qualquer placa adicional, especialmente com placas configuradas manualmente, o usuário deve ter o cuidado para evitar confito de recursos. Os modems supostamente não devem causar muitras dificuldade, principalmente por que são tratados como simples portas seriais. Contudo, deve-se confirmar com qual IRQ e endereço de I/O estão configurados. Se o modem compartilha alguma IRQ com outra porta serial, obviamente que só um dispositivo pode ser usado por vez, caso contrário, você terá várias falhas nos dados, e até conflitos de hardware.</p>
<h3>Placas de Som</h3>
<p>Quase todos os notebooks e computadores hoje em dia são vendidos com uma placa de som. Felizmente, existem drivers de som pro Linux disponíveis para quase todos os chipsets, incluindo os mais antigos da Creative Labs e da SoundBlaster. Atualmente alguns computadores utilizam o chipset AC97, ou incluem um slot PCI com um chipset similar. No caso de placas que não funcionem com os módulos nativos do kernel, pode-se usar ferramentas como o <em>sndconfig</em>, ou no caso de um hardware mais antigo como ISA, tem o <em>isapnp</em>. Seja qual for o caso, parte da configuração de uma placa de som envolve a correta especificação dos recursos da placa de som para o driver de som.</p>
<p>Syntax</p>
<p><em>sndconfig </em>[options]</p>
<p><strong>Description</strong><br />
sndconfig is a text-based tool used to configure a sound card for your Linux kernel. When executed, it will probe your system for PnP-based devices. If none are found, you are probed to select your card and appropriate I/O settings. If you must use this tool, be careful. It is your responsibility to ensure you don't have conflicting devices since sndconfig won't detect the problem.<br />
Frequently used options</p>
<p>--help<br />
Prints help information and exits.<br />
--noprobe<br />
Tells sndconfig not to probe for PnP devices.<br />
--noautoconfig<br />
Tells sndconfig not to autoconfigure any PnP devices.</p>
<p>Syntax<br />
<em>isapnp </em>[options] conffile<br />
<strong>Description</strong><br />
The isapnp tool is used to configure ISA-based PnP devices. The configuration file (conffile) can be either a text file or a hyphen (-), which indicates the configuration file should be read from STDIN.<br />
Frequently used options<br />
-h<br />
Prints help information and exits.<br />
-v<br />
Prints the isapnptools version.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[It's ALIVE...(and some ramblings on imposters)]]></title>
<link>http://bey0ndy0nder.wordpress.com/?p=187</link>
<pubDate>Fri, 10 Oct 2008 08:00:40 +0000</pubDate>
<dc:creator>bey0ndy0nder</dc:creator>
<guid>http://bey0ndy0nder.ar.wordpress.com/2008/10/10/its-aliveand-some-ramblings-on-imposters/</guid>
<description><![CDATA[I finished preliminary implementation of GPU based zombie movement. Right now it&#8217;s very simple]]></description>
<content:encoded><![CDATA[<p>I finished preliminary implementation of GPU based zombie movement. Right now it's very simple, but I'm working on it. it's coming together nicely. My next step is to finish the Imposter renderer. After that, I will on interaction between the world and the zombies. The game-play would suck if all the zombies just wandered around like ... well.. zombie. I will blog about game-play ideas in an upcoming post.</p>
<p>Here is the ping pong source code to update the zombies (onUpdate function):</p>
<p><a title="The Code" href="http://code.google.com/p/projectzombie/source/browse/trunk/src/view/GPUEntsControl.cpp?spec=svn50&#38;r=50" target="_blank">The Code</a></p>
<p>Notice that I'm using a naked pointer. I know it's bad, but my idea is that this is the controller, and thus is not responsible for the state (the model). I think I should change it from pointer to reference to make that "borrowing" notion more clear. I think it should be a priority that I change my habit to use references more often.</p>
<p>And here are the two shaders:</p>
<p><a title="Here" href="http://code.google.com/p/projectzombie/source/browse/trunk/ZombieMedia/materials/programs/GPUEntsPosUpdate.frag" target="_blank">positional update</a></p>
<p><a title="Code" href="http://code.google.com/p/projectzombie/source/browse/trunk/ZombieMedia/materials/programs/GPUEntsDirUpdate.frag" target="_blank">directional update</a></p>
<p>...</p>
<p>Finished Imposter implementation:</p>
<p>The imposter renderer is not yet finished. All the imposter "views" are facing the camera; it does not correspond to the actual direction of the zombie. So to get the proper "view" of the imposter, we need to take into account the eye direction with respect to direction of the zombie.</p>
<p>Our imposters are stored in a single texture, and mapped according to two keys that is based on sphereical coordinate parameter of phi and theta, corresponding to the viewing direction. Thus, to properly calculate which imposter "view" texture to render we must map the current view direction into this singlular imposter storage texture. Therefore, the proper solution is to compute phi and theta from the current viewing vector.</p>
<p>We know that (let's assume r = 1):</p>
<p>phi = arccos(z)</p>
<p>theta = atan2(y/x). (remembering to add 2pi for negative values).</p>
<p>But we know that actan2 is undefined when y = 0 and x = 0. So we need to carefully examine this case: When this happens, we are looking down at the object in question. But we can still derive theta, by looking at the camera's orthonormal basis. Thus, when y=0 and x=0, we use the camera's local axes. However, we need to transform the camera's local axes into the object space. This can be done by noting the following:</p>
<p>For our purposes, we only require one degree of freedom, namely yaw, for the zombie. So the zombie's directional vector will always be in the XY plane. So again, using atan2, we can compute it's angle from the object's direction in object space. So, we can then construct a rotation matrix, or quaternion, or whatever, which corresponds to the transformation of the object from object space into world space. Thus, the inverse of this transformation will transform the camera's orthonormal basis in world space into object space. From here, we can then use it to compute theta by following the scheme noted above.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[PaperKing3D Source Code]]></title>
<link>http://pv3d.wordpress.com/?p=84</link>
<pubDate>Mon, 06 Oct 2008 23:16:29 +0000</pubDate>
<dc:creator>John Lindquist</dc:creator>
<guid>http://dev.papervision3d.org/2008/10/06/paperking3d-source-code/</guid>
<description><![CDATA[Running a contest was definitely a learning experience. Without further ado, here are links to each ]]></description>
<content:encoded><![CDATA[<p>Running a contest was definitely a learning experience. Without further ado, here are links to each of the entries for the PaperKing3D contest. I'll organize this post so you can tell what is what later. I just wanted to get these up now:</p>
<p>*Disclaimer: We won't be held responsible for these files damaging your computer in any way (although they did all pass through gmail's virus checker) and we cannot guarantee they will work with the latest version from the repository.</p>
<ul>
<li><a href="http://dl.getdropbox.com/u/132579/groups/papervision3d/PaperKing3D/13flo_sources.rar">13flo_sources.rar</a></li>
<li><a href="http://dl.getdropbox.com/u/132579/groups/papervision3d/PaperKing3D/allanestabillo_pv3dcontest.zip">allanestabillo_pv3dcontest.zip</a></li>
<li><a href="http://dl.getdropbox.com/u/132579/groups/papervision3d/PaperKing3D/Coverage3D.zip"> Coverage3D.zip</a></li>
<li><a href="http://dl.getdropbox.com/u/132579/groups/papervision3d/PaperKing3D/front3d_showcase.zip"> front3d_showcase.zip</a></li>
<li><a href="http://dl.getdropbox.com/u/132579/groups/papervision3d/PaperKing3D/FUSE.zip"> FUSE.zip</a></li>
<li><a href="http://dl.getdropbox.com/u/132579/groups/papervision3d/PaperKing3D/limoVision.rar"> limoVision.rar</a></li>
<li><a href="http://dl.getdropbox.com/u/132579/groups/papervision3d/PaperKing3D/PaperKing3D.zip"> PaperKing3D.zip</a></li>
<li><a href="http://dl.getdropbox.com/u/132579/groups/papervision3d/PaperKing3D/PaperVisionProject.zip"> PaperVisionProject.zip</a></li>
<li><a href="http://dl.getdropbox.com/u/132579/groups/papervision3d/PaperKing3D/picup2.0.zip"> picup2.0.zip</a></li>
<li><a href="http://dl.getdropbox.com/u/132579/groups/papervision3d/PaperKing3D/portfolio.zip"> portfolio.zip</a></li>
<li><a href="http://dl.getdropbox.com/u/132579/groups/papervision3d/PaperKing3D/RollerCoaster.zip">RollerCoaster.zip</a></li>
<li><a href="http://dl.getdropbox.com/u/132579/groups/papervision3d/PaperKing3D/SeeInvisible.as"> SeeInvisible.as</a></li>
<li><a href="http://dl.getdropbox.com/u/132579/groups/papervision3d/PaperKing3D/SilentSonb%20Contest.rar"> SilentSonb%20Contest.rar</a></li>
<li><a href="http://dl.getdropbox.com/u/132579/groups/papervision3d/PaperKing3D/source.rar"> source.rar</a></li>
<li><a href="http://dl.getdropbox.com/u/132579/groups/papervision3d/PaperKing3D/starPolygon.zip"> starPolygon.zip</a></li>
<li><a href="http://dl.getdropbox.com/u/132579/groups/papervision3d/PaperKing3D/tomy_the_jumper_open_source.zip"> tomy_the_jumper_open_source.zip</a></li>
<li><a href="http://dl.getdropbox.com/u/132579/groups/papervision3d/PaperKing3D/tower.zip"> tower.zip</a></li>
<li><a href="http://dl.getdropbox.com/u/132579/groups/papervision3d/PaperKing3D/TyperHero.zip"> TyperHero.zip</a></li>
<li><a href="http://dl.getdropbox.com/u/132579/groups/papervision3d/PaperKing3D/website.zip"> website.zip</a></li>
<li><a href="http://spinnyglobe.googlecode.com"> http://spinnyglobe.googlecode.com</a></li>
<li><a href="http://code.google.com/p/vectorvision/"> http://code.google.com/p/vectorvision/</a></li>
<li><a href="http://www.paperskate3d.com/sources.html"> http://www.paperskate3d.com/sources.html</a></li>
<li><a href="http://www.everydayflash.com/blog/index.php/2008/06/24/microphone-animation-papervision3d/"> http://www.everydayflash.com/blog/index.php/2008/06/24/microphone-animation-papervision3d/</a></li>
<li><a href="http://www.flashbookmarks.com/demos/DanceKingPV3D/srcview/"> http://www.flashbookmarks.com/demos/DanceKingPV3D/srcview/</a></li>
<li> <a href="http://www.michaelpalmer.de/?p=33"> http://www.michaelpalmer.de/?p=33</a></li>
</ul>
]]></content:encoded>
</item>
<item>
<title><![CDATA[MD5GPU reloaded (and debugged):]]></title>
<link>http://bey0ndy0nder.wordpress.com/?p=169</link>
<pubDate>Mon, 06 Oct 2008 04:46:51 +0000</pubDate>
<dc:creator>bey0ndy0nder</dc:creator>
<guid>http://bey0ndy0nder.ar.wordpress.com/2008/10/05/md5gpu-reloaded-and-debugged/</guid>
<description><![CDATA[It&#8217;s working now. I haven&#8217;t tested it with DIEHARDER yet, I may do it later, when I have]]></description>
<content:encoded><![CDATA[<p>It's working now. I haven't tested it with DIEHARDER yet, I may do it later, when I have time. But if it looks like white noise, walks likes whitenoise...</p>
<p>BTW, the author's (of the paper) optimization works fine. Realy, think about it, why wouldn't it work? It's still rotating, that's all matters really.</p>
<p>I'm going to start working on the agent simulation part of PZ.</p>
<p><a href="http://bey0ndy0nder.wordpress.com/files/2008/10/whitenoise.png"><img src="http://bey0ndy0nder.wordpress.com/files/2008/10/whitenoise.png?w=300" alt="" title="whitenoise" width="300" height="225" class="alignnone size-medium wp-image-170" /></a></p>
<p>[source language="c"]<br />
#extension GL_EXT_gpu_shader4 : enable<br />
//This function initializes the 512bit data according to the MD5 spec.<br />
//Such that, the first 128 bit is the input;<br />
//we also xor these 128 bits with the key, which can act like a seed value.<br />
//And the rest up of the 12 32bit data blocks are filled<br />
//according to the md5 spec, in order to pad our data to 512 bits.<br />
//block 0-3: input xor with key<br />
//block 4: 0x80000000. This correponds to append 1 bit to block 0-4.<br />
//block 5-13: 0. This corresponds to appending zeros up to 448 bit.<br />
//block 14-15: 0x0000000000000080. This correspond to the bit length of the input (128 bit), as a 64bit<br />
//litten endian.<br />
void setupInput(in uvec4 input, in unsigned int key, inout unsigned int data[16])<br />
{<br />
	data[0] = input.x^key; data[1] = input.y^key; data[2] = input.z^key; data[3] = input.w^key; //xor base with key<br />
	data[4] = 0x80000000u;<br />
	data[5] = 0u; data[6] = 0u; data[7] = 0u; data[8] = 0u;<br />
	data[9]=0u; data[10]=0u; data[11]=0u; data[12]=0u; data[13]=0u;<br />
	data[14] = 0x00000000u; data[15]=0x00000080u;<br />
}<br />
//initialize to the 4 hexes.<br />
uvec4 initDigest()<br />
{<br />
	return uvec4(0x01234567u,0x89ABCDEFu,0xFEDCBA98u,0x76543210u);<br />
}<br />
//F compression functions<br />
//(b & c) &#124; ((not b) & d)<br />
unsigned int F0_15(in uvec3 tD)<br />
{<br />
	return (tD.x & tD.y) &#124; ((~tD.x) & tD.z);<br />
}<br />
//(d & b) &#124; ((not d) & c)<br />
unsigned int F16_31(in uvec3 tD)<br />
{<br />
	return (tD.z & tD.x) &#124; ((~tD.z) & tD.y);<br />
}<br />
//b ^ c ^ d<br />
unsigned int F32_47(in uvec3 tD)<br />
{<br />
	return tD.x ^ tD.y ^ tD.z;<br />
}<br />
//c ^ (b &#124; (~d))<br />
unsigned int F48_63(in uvec3 tD)<br />
{<br />
	return tD.y ^ (tD.x &#124; (~tD.z));<br />
}</p>
<p>//this function converts unsigned<br />
//ints to lay within [0,1)<br />
//What we assume is that we pretend<br />
//the uint is really a float, in<br />
//the normal IEEE sense.<br />
//We only care about the integer<br />
//portion (from 1st to 24 position bit,<br />
// disregarding 0th sign bit) of input.<br />
//So we mask that portion out,<br />
//then right shift it, then convert it to [0,1)<br />
vec4 convertToR0_R1(in uvec4 input)<br />
{<br />
	vec4 output = vec4(0,0,0,0);<br />
	unsigned int mask = 0x7FFFFF00u; //we only want the first 23 bits starting at 2nd bit.<br />
	float MAX = 8388607.0; //2^24-1 .<br />
	input.x = input.x & mask;<br />
	input.x = input.x >> 7u; //shift 7 place.<br />
	output.x = float(input.x)/MAX;<br />
	input.y = input.y & mask;<br />
	input.y = input.y >> 7u;<br />
	output.y = float(input.y)/MAX;<br />
	input.z = input.z & mask;<br />
	input.z = input.z >> 7u;<br />
	output.z = float(input.z)/MAX;</p>
<p>	return output;<br />
}</p>
<p>uvec4 whiteNoise(in uvec4 input,in unsigned int key)<br />
{<br />
	unsigned int data[16];<br />
	setupInput(input,key,data);<br />
	uvec4 rot0_15 = uvec4(7u,12u,17u,22u);<br />
	uvec4 rot16_31 = uvec4(5u,9u,14u,20u);<br />
	uvec4 rot32_47 = uvec4(4u,11u,16u,23u);<br />
	uvec4 rot48_63 = uvec4(6u,10u,15u,21u);</p>
<p>	uvec4 digest = initDigest();<br />
	uvec4 tD;<br />
	uvec4 fTmp;<br />
	unsigned int i = 0u;<br />
	unsigned int idx;<br />
	unsigned int r;<br />
	unsigned int trig; const unsigned int MAXFT = 4294967295; //2^32-1<br />
	//What follows is the unrolled loop from 0 through 63<br />
	//0<br />
	tD = digest;<br />
	unsigned int temp;<br />
	for(;i<16u;i++)<br />
	{<br />
		fTmp = F0_15(tD.yzw);<br />
		idx = i;<br />
		r = rot0_15.x;<br />
		rot0_15 = rot0_15.yzwx;<br />
		trig = truncate(abs(sin(float(i+1)))*float(MAXFT));<br />
		tD.x = tD.y + ((tD.x+fTmp+data[int(idx)]+trig) << r);<br />
		tD = tD.yzwx;</p>
<p>		digest +=tD;<br />
	}<br />
	for(;i<32u;i++)<br />
	{<br />
		fTmp = F16_31(tD.yzw);<br />
		idx = (5u*i + 1u) % 16u;<br />
		r = rot16_31.x;<br />
		rot16_31 = rot16_31.yzwx;<br />
		trig = truncate(abs(sin(float(i+1)))*float(MAXFT));<br />
		tD.x = tD.y + ((tD.x+fTmp+data[int(idx)]+trig) << r);<br />
		tD = tD.yzwx;<br />
		digest +=tD;<br />
	}<br />
	for(;i<48u;i++)<br />
	{<br />
		fTmp = F32_47(tD.yzw);<br />
		idx = (3u*i + 5u) % 16u;<br />
		r = rot32_47.x;<br />
		rot32_47 = rot32_47.yzwx;<br />
		trig = truncate(abs(sin(float(i+1)))*float(MAXFT));<br />
		tD.x = tD.y + ((tD.x+fTmp+data[int(idx)]+trig) << r);<br />
		tD = tD.yzwx;<br />
		digest +=tD;<br />
	}<br />
	for(;i<64u;i++)<br />
	{<br />
		fTmp = F48_63(tD.yzw);<br />
		idx = (7u*i) % 16u;<br />
		r = rot48_63.x;<br />
		rot48_63 = rot48_63.yzwx;<br />
		trig = truncate(abs(sin(float(i+1)))*float(MAXFT));<br />
		tD.x = tD.y + ((tD.x+fTmp+data[int(idx)]+trig) << r);<br />
		tD = tD.yzwx;<br />
		digest +=tD;<br />
	}</p>
<p>	return digest;<br />
}<br />
[/source]</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[C - La guida: gli array ( capitolo 8 completato e disponibile )]]></title>
<link>http://taninorulez.wordpress.com/?p=213</link>
<pubDate>Sat, 04 Oct 2008 10:02:56 +0000</pubDate>
<dc:creator>T4n|n0 Ru|3z</dc:creator>
<guid>http://taninorulez.ar.wordpress.com/2008/10/04/c-la-guida-gli-array-capitolo-8-completato-e-disponibile/</guid>
<description><![CDATA[Capitolo 8: Gli array

Salve a tutti amici,come vanno le cose? Spero tutto bene.. qui si studia,l]]></description>
<content:encoded><![CDATA[[caption id="" align="aligncenter" width="261" caption="Capitolo 8: Gli array"]<img title="Capitolo 8" src="http://www.atarimagazines.com/startv5n6/c_for_speed.jpg" alt="Gli array" width="261" height="218" />[/caption]
<p><iframe src='http://digg.com/api/diggthis.php?u=http%3A%2F%2Fdigg.com%2Fsecurity%2FTutorial_Guide_Photoshop_Programming_Msn' height='82' width='55' frameborder='0' scrolling='no' style='float: right; margin-left: 10px; margin-bottom: 5px; padding: 4px 0 2px 4px; background: #fff;'></iframe></p>
<p>Salve a tutti amici,come vanno le cose? Spero tutto bene.. qui si studia,l'uni ci porta via molto tempo ma nonostante ciò sono riuscito a completare per voi l'ottavo capitolo della mia guida al c. In questo capitolo ho illustrato gli aspetti fondamentali degli array: definizione,allocazione nella memoria,passaggio come parametri ed altro ancora.</p>
<p>Troverete il nuovo capitolo disponibile in <a href="http://www.divshare.com/download/5511852-95f" target="_blank">questa</a> pagina mentre vi ricordo che nella sezione <a href="http://taninorulez.wordpress.com/c-la-guida/" target="_blank">Guida al C</a> troverete l'elenco dei capitolo precedenti e di quelli ancora incompleti.</p>
<p>Oramai ne mancano solo quattro e sono forse anche i più importanti. Non temete,nel tempo libero continuerò a scrivere la guida ;)</p>
<p>Naturalmente se ho fatto qualche errore oppure volete suggerirmi qualcosa,io sono sempre a vostra disposizione. Alla prossima,ciaooo :)</p>
<div class="techtags" style="text-align:center;"><span style="color:#339966;"><strong>Tech Tags:</strong></span> <a class="techtag" rel="tag" href="http://technorati.com/tag/programmazione">programmazione</a> <a class="techtag" rel="tag" href="http://technorati.com/tag/programming">programming</a> <a class="techtag" rel="tag" href="http://technorati.com/tag/c">c</a> <a class="techtag" rel="tag" href="http://technorati.com/tag/algoritmi">algoritmi</a> <a class="techtag" rel="tag" href="http://technorati.com/tag/algorithms">algorithms</a> <a class="techtag" rel="tag" href="http://technorati.com/tag/source">source</a> <a class="techtag" rel="tag" href="http://technorati.com/tag/code">code</a> <a class="techtag" rel="tag" href="http://technorati.com/tag/kernel">kernel</a> <a class="techtag" rel="tag" href="http://technorati.com/tag/linux">linux</a> <a class="techtag" rel="tag" href="http://technorati.com/tag/unix">unix</a></div>
]]></content:encoded>
</item>
<item>
<title><![CDATA[MD5GPU algorithm implemented (source code)]]></title>
<link>http://bey0ndy0nder.wordpress.com/?p=134</link>
<pubDate>Sat, 04 Oct 2008 03:41:26 +0000</pubDate>
<dc:creator>bey0ndy0nder</dc:creator>
<guid>http://bey0ndy0nder.ar.wordpress.com/2008/10/03/md5gpu-algorithm-chapter-0/</guid>
<description><![CDATA[So I started implementing the MD5GPU algorithm. It&#8217;s pretty straightforward. Matter of fact, I]]></description>
<content:encoded><![CDATA[<p>So I started implementing the MD5GPU algorithm. It's pretty straightforward. Matter of fact, I will be brief. (Note, I have not tested the code below)</p>
<p>From the original MD5 algo., we need to break the input into 512 bit chunks. So, we need to first pad the input to a length a, and then add 64 bit to it in order to be able to break our input into 512 bit chunks, such that:</p>
<p>a congurent to 448 mod 512. So we keep on appending 0 to our digest (after we appended a 1 first) so that (a - 448) mod 512 = 0. Since, (note ~ is the equivalence relation) </p>
<p>a ~ b mod n =&#62; (a-b) = cn, =&#62; (a-b)/n = c, where c is in Z (integers), iff (a-b) mod n = 0. (Maybe in a future post I will talk about how this relates to group theory.)</p>
<p>But for our problem, since  the message length is a constant  128 bit, then we know from the get-go that a is 448. </p>
<p>... </p>
<p>Okay, that's not all that interesting, since I'm just describing the algorithm. I may post some more on this tomorrow. I'm heading out for the night.</p>
<p>The interesting part is WHY does this thing work? Why does it produce results that passes all the DIEHARD tests? My intitutive understanding of this (but I'm not sure. Never studied crypto) this is due to the combinatoric explosion nature of working with 512 bit chunks. The compression functions are such that a change in ONE single input bit results in change of each output bit with a probability of 1/2. So, it's like we are 'scrambling' the input in this 512 bit combinatoric 'space', which is a huge space... (I'm really sorry if the above bit totally pisses you off due to all the hand waving due to ignorant understanding)</p>
<p>Not sure tho. That's just my intuition...</p>
<p>What do you think? </p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[SourceCode TrueSpace vs Blender online]]></title>
<link>http://royalexander.wordpress.com/?p=32</link>
<pubDate>Tue, 30 Sep 2008 21:51:19 +0000</pubDate>
<dc:creator>royalexander</dc:creator>
<guid>http://royalexander.ar.wordpress.com/2008/09/30/sourcecode-truespace-vs-blender-online/</guid>
<description><![CDATA[The source code for the TrueSpace vs Blender article is now online at http://rapidshare.com/files/14]]></description>
<content:encoded><![CDATA[<p>The source code for the TrueSpace vs Blender article is now online at <a href="http://rapidshare.com/files/149787437/ModellingTests.rar.html">http://rapidshare.com/files/149787437/ModellingTests.rar.html</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Ant colony optimisation : list of source codes]]></title>
<link>http://zyxo.wordpress.com/?p=431</link>
<pubDate>Mon, 29 Sep 2008 18:22:53 +0000</pubDate>
<dc:creator>zyxo</dc:creator>
<guid>http://zyxo.ar.wordpress.com/2008/09/29/ant-colony-optimisation-list-of-source-codes/</guid>
<description><![CDATA[Apparently a whole lot of people are looking for source code for Ant Colony Optimisation.
On the int]]></description>
<content:encoded><![CDATA[<p>Apparently a whole lot of people are looking for source code for <a href="http://en.wikipedia.org/wiki/Ant_colony_optimization" title="Ant colony optimization" rel="wikipedia" class="zem_slink">Ant Colony Optimisation</a>.<br />
On the internet you find plenty of them.<br />
Here is a first list :</p>
<ul>
<li><a href="http://www.codeproject.com/KB/recipes/GeneticandAntAlgorithms.aspx">The code project</a>and <a href="http://www.codeproject.com/KB/recipes/Ant_Colony_Optimisation.aspx">this</a></li>
<li><a href="http://www.geocities.com/saurabhsamdani/sourcecodes.html">Saurabh Samdani</a></li>
<li><a href="http://ai-depot.com/CollectiveIntelligence/Ant-Colony.html">Danilo Benzatti</a></li>
<li><a href="http://eric_rollins.home.mindspring.com/erlangAnt.html">Eric Rollins</a></li>
<li><a href="http://www.math.tu-clausthal.de/Arbeitsgruppen/Stochastische-Optimierung/tspapplet/applet.html">TU Clausthal</a></li>
<li><a href="http://uk.geocities.com/markcsinclair/aco.html">Marc Sinclair</a></li>
<li><a href="http://www.ugosweb.com/Documents/jacs.aspx">Ugo Chirico</a></li>
<li><a href="http://intraspirit.net/articles/parallel-ant-colony-optimization.htm">Intraspirit</a></li>
<li><a href="http://www.codeplex.com/metaheuristics/SourceControl/ListDownloadableCommits.aspx">codeplex</a></li>
<li><a href="http://nodebox.net/code/index.php/Ants">Nodebox</a>
	</li>
<li><a href="http://">Mikkel Bundgaard</a></li>
</ul>
<p>Sorry, I did not try them myself !</p>
<div style="margin-top:10px;height:15px;" class="zemanta-pixie"><a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/a64a132a-2a0a-4fd1-8caa-f00c00354ff3/" title="Zemified by Zemanta"><img style="border:medium none;float:right;" class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=a64a132a-2a0a-4fd1-8caa-f00c00354ff3" alt="Reblog this post [with Zemanta]"></a></div>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Don't Be Evil]]></title>
<link>http://digitalgeekuk.wordpress.com/?p=26</link>
<pubDate>Sat, 27 Sep 2008 15:18:26 +0000</pubDate>
<dc:creator>digitalgeekuk</dc:creator>
<guid>http://digitalgeekuk.ar.wordpress.com/2008/09/27/dont-be-evil/</guid>
<description><![CDATA[In case it&#8217;s escaped anybody&#8217;s attention - possibly those without a computer or any form]]></description>
<content:encoded><![CDATA[<p>In case it's escaped anybody's attention - possibly <a href="http://en.wikipedia.org/wiki/Graveyard">those without a computer </a>or <a href="http://www.darwinawards.com/">any form of intelligence</a> - <a href="http://www.google.co.uk/tenthbirthday/">Google are celebrating their tenth birthday</a>.</p>
<p>So, from humble beginnings a decade ago, Google turns double-digits and simultaneously is recognised as the worlds most powerful global brand, as charted by research-consultancy firm, Millward Brown. Interestingly, out of the top-ten <a href="http://www.millwardbrown.com/Sites/Optimor/Media/Pdfs/en/BrandZ/BrandZ-2008-Report.pdf">brands on this list</a>, four are computing-based: Alongside Google (1), there sits Microsoft (3), IBM (6) and Apple (7). Furthermore, China Mobile (5) and Nokia (9) bulk up this techno-team. Unquestionably, this is a reflection on the importance of technology in modern everyday life, but perhaps any questions should be directed towards Google and the massive <a href="http://www.monopolylive.com/">monopoly</a> they're building for themselves?</p>
<p>There are hundreds of articles and blogs floating around surrounding the ethics of Google, particularly in their data-collecting/retaining methods. Whilst I'm totally for companies being allowed to make profits, no matter how big the amounts involved, I like to try and understand the motivation behind the cash. When Google bought <a href="http://www.doubleclick.com/">DoubleClick</a>, I was worried - and partly, I still am - that <a href="http://www.businessweek.com/technology/content/apr2007/tc20070414_675511.htm?campaign_id=rss_daily">the biggest search engine on earth was buying one of the biggest measurers of ad-trafficking and measurement</a>. Not only does this possibly stamp out competition, but the issues raised surrounding data and the fact that Google will soon be <a href="http://www.channel4.com/bigbrother/">Big-Brother-esque </a>in their knowledge of users. (Therefore able to increase revenue even further). It just seemed to be a bit bullying when it happened, and a far cry from the informal Google "<a href="http://en.wikipedia.org/wiki/Don't_be_evil">Don't be evil</a>" slogan. Other stuff happened this year, such as Brand-protection <a href="http://tandemdigital.wordpress.com/2008/04/05/paying-to-get-your-trademark/">no longer being allowed </a>on PPC-ads, so competitors could appear on each other's terms; another money-maker for the company.</p>
<p>Whilst Google undeniably do a great deal of good, both online and off, (from <a href="http://code.google.com/opensource/">free source coding </a>and <a href="https://www.google.com/accounts/ServiceLogin?service=mail&#38;passive=true&#38;rm=false&#38;continue=http%3A%2F%2Fmail.google.com%2Fmail%2F%3Fhl%3Den-GB%26ui%3Dhtml%26zy%3Dl&#38;bsv=1k96igf4806cy&#38;ltmpl=default&#38;ltmplcache=2&#38;hl=en-GB">decent email </a>through to setting up a <a href="http://news.bbc.co.uk/1/hi/business/4333942.stm">$1bn charity fund</a> and <a href="http://googleblog.blogspot.com/2007/12/encouraging-people-to-contribute.html">uniting knowledge-sharing</a>), it nevertheless remains that some of it's business practices can be viewed to sway slightly away from what the company preaches.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Iron: Google Chrome without privacy worries]]></title>
<link>http://smokeys.wordpress.com/?p=232</link>
<pubDate>Fri, 26 Sep 2008 13:30:42 +0000</pubDate>
<dc:creator>Smokey</dc:creator>
<guid>http://smokeys.ar.wordpress.com/2008/09/26/iron-google-chrome-without-privacy-worries/</guid>
<description><![CDATA[For the Google Chrome Browser lovers worrying about their privacy I found an interesting &#8220;heis]]></description>
<content:encoded><![CDATA[<p>For the Google Chrome Browser lovers worrying about their privacy I found an interesting "heise Security" article, describing Iron, a private version of Google Chrome without the privacy issues.</p>
<p>Let's quote a part of the article:</p>
<p><em>SRWare, a German company, has released Iron, based on Google's Chromium code. The big difference, according to the authors on their German language-only web site, is that the features which have caused people to question the privacy of Google's browser are all disabled.These features include Chrome's generation of a unique ID for the installation and recording the exact time of installation, Google Suggest functions in the address bar, alternate error pages, bug reporting, updating and tracking, all of which are completely removed from Iron.Despite the installer only using the German language, that installed browser functioned in English.SRWare has made a Windows executable and the source code available to download.</em></p>
<p><strong>Iron and Security</strong></p>
<p>The current Beta of Google Chrome use conform Browserstring a dated Version (525.13) of the Rendering-Engine WebKit. Iron use the most recent WebKit-Version (525.19)</p>
<p>At the moment I am testing Iron, till yet no problems encountered.</p>
<p><strong>How to install</strong></p>
<p>Because the installer is in German language, here instruction how to install Iron:</p>
<p>- execute srware_iron.exe<br />
- click "Weiter"<br />
- activate "Ich akzeptiere die Vereinbarung" and click "Weiter"<br />
- click "Weiter"<br />
- click "Weiter"<br />
- click "Weiter"<br />
- click "Installieren"<br />
- click "Fertigstellen"</p>
<p>Have fun with the program!</p>
<p>Article source: <a href="http://www.heise-online.co.uk/security/Iron-a-private-version-of-Chromium-from-Germany--/news/111603">heise Security</a><br />
Iron homepage: <a href="http://www.srware.net/software_srware_iron.php">SRWare</a><br />
Iron download: <a href="http://www.srware.net/software_srware_iron_download.php">here</a></p>
<h2>Background info/tips from The Chromium Blog: Google Chrome, Chromium, and Google</h2>
<p><em>A number of people have asked about the relationship between Google Chrome, Chromium, and Google, specifically in regards to what data is sent to Google or other providers. This is meant to provide a complete answer to that question, and as you will see below, almost all such communication can be disabled within the options of the product itself. Before getting too deep into the question though, it is helpful to have a common set of terminology.Chromium is the name we have given to the open source project and the browser source code that we released and maintain at www.chromium.org. One can compile this source code to get a fully working browser. Google takes this source code, and adds on the Google name and logo, an auto-updater system called GoogleUpdate, and RLZ (described later in this post), and calls this Google Chrome. As such, everything which applies to Chromium below also applies to Google Chrome, while there are some things that apply to Google Chrome (such as the auto-updater) that do not apply to Chromium.</p>
<p></em></p>
<p>Source/more/how-to disable (privacy related) issues and settings: <a href="http://blog.chromium.org/2008/10/google-chrome-chromium-and-google.html">The Chromium Blog</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Rational AppScan]]></title>
<link>http://blackhatkz.wordpress.com/?p=126</link>
<pubDate>Fri, 26 Sep 2008 12:49:06 +0000</pubDate>
<dc:creator>blackhatkz</dc:creator>
<guid>http://blackhatkz.ar.wordpress.com/2008/09/26/rational-appscan/</guid>
<description><![CDATA[IBM представила новую систему поиска ошибок в программн]]></description>
<content:encoded><![CDATA[<p><a href="http://itnews.com.ua/43832.html"><b>IBM представила новую систему поиска ошибок в программных кодах</b><br>Корпорация IBM разработала новое программное решение Rational AppScan, предназначенное для изучения исходных кодов с целью обнаружения проблем в безопасности.<br><i>ITnews.com.ua</i></a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[PV3DDebug]]></title>
<link>http://pv3d.wordpress.com/?p=82</link>
<pubDate>Wed, 24 Sep 2008 14:37:00 +0000</pubDate>
<dc:creator>C4RL05</dc:creator>
<guid>http://dev.papervision3d.org/2008/09/24/pv3ddebug/</guid>
<description><![CDATA[PV3DDebug is a great debug console for your PV3D projects, with plenty of realtime stats and a power]]></description>
<content:encoded><![CDATA[<p><strong><a href="http://jasonbejot.com/?page_id=22" target="_blank">PV3DDebug</a></strong> is a great debug console for your PV3D projects, with plenty of realtime stats and a powerful camera settings editor.</p>
<p>Created by <strong><a href="http://jasonbejot.com" target="_blank">Jason Bejot</a></strong>, make sure you check out his <strong><a href="http://jasonbejot.com" target="_blank">blog</a></strong> for more AS3 and PV3D tutorials and code.</p>
<p>Via <a href="http://drawlogic.com/2008/09/24/as3-papervision-3d-debuggingstats-with-pv3ddebug/" target="_blank"><strong>[draw.logic]</strong></a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Bey0nd's trac]]></title>
<link>http://bey0ndy0nder.wordpress.com/?p=13</link>
<pubDate>Wed, 24 Sep 2008 07:41:01 +0000</pubDate>
<dc:creator>bey0ndy0nder</dc:creator>
<guid>http://bey0ndy0nder.ar.wordpress.com/2008/09/24/bey0nds-trac/</guid>
<description><![CDATA[I&#8217;m using TRAC, a very nice wiki-cum-source-browser thingy. I love it.
You can browse it at:
A]]></description>
<content:encoded><![CDATA[<p>I'm using TRAC, a very nice wiki-cum-source-browser thingy. I love it.</p>
<p>You can browse it at:</p>
<p>Although be warned that the trac server is running on my home machine, just like my dokuwiki server, so they are usually down when I'm asleep.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Free MySpace search tool by a Freelancer]]></title>
<link>http://zlatipln.wordpress.com/?p=195</link>
<pubDate>Wed, 24 Sep 2008 02:30:05 +0000</pubDate>
<dc:creator>zlatipln</dc:creator>
<guid>http://zlatipln.ar.wordpress.com/2008/09/24/free-myspace-search-tool-by-a-freelancer/</guid>
<description><![CDATA[I am tired doing programs for a freelance site and not choosing me.
Instead of it, I will publish h]]></description>
<content:encoded><![CDATA[<p>I am tired doing programs for a <strong>freelance</strong> site and not choosing me.</p>
<p>Instead of it, I will publish here for <strong>free download</strong> some of my programs - most of them are ebay, myspace tools, scrappers and data mining. Also have forum posters, translators-dictionary, and all the Internet stuff that can be automated.</p>
<p>If you have ideas, questions or found bugs - please leave a short comment to let me know.</p>
<p>Soon will start my Autoit tutorial also.</p>
<p>The first program I want to give out for free is <strong>MySpace search tool: <a href="http://craigmaster.freehostia.com/MsTool.rar">http://craigmaster.freehostia.com/MsTool.rar</a></strong></p>
<p>No need to install - just run and type your search words, space separated:</p>
<p>for example: <strong>Seattle T-mobile phone</strong>, or  <span style="font-size:x-small;"><strong>Clay Aiken</strong>, </span><strong>Dallas yoga</strong> or <strong>Ohio Google phone</strong> or <strong>California restaurant</strong> or <strong>Vegas casino</strong>, etc.</p>
<p>Wait program to do the search. Three files are created : the "ms.csv" - results and two temp files - you can delete them.</p>
<p>To terminate program use <strong>ESC</strong>.</p>
<p>At the end there are all <strong>friendIDs </strong>found for your search /<span style="font-size:x-small;">clay aiken in example</span>./</p>
<p>Soon will post second program which uses that friendID to extract more data from user profiles, even theyr MySpace layout.</p>
<p><strong><em>Here is the source:</em></strong></p>
<p>#include&#60;ie.au3&#62;<br />
#include&#60;inet.au3&#62;<br />
#include&#60;array.au3&#62;<br />
#include&#60;file.au3&#62;<br />
Dim $a, $aa<br />
HotKeySet("{ESC}", "Terminate")<br />
$f = FileOpen('ms.csv', 2)<br />
$search0 = InputBox("searcg box", "Please type the search words separated by space")<br />
$search = StringReplace($search0, ' ', '%20')<br />
$u = "<a href="http://searchservice.myspace.com/index.cfm?fuseaction=sitesearch.results&#38;qry">http://searchservice.myspace.com/index.cfm?fuseaction=sitesearch.results&#38;qry</a>=" &#38; $search &#38; "&#38;type=AllMySpace"<br />
InetGet($u, 'temp.txt')<br />
_FileReadToArray('temp.txt', $a)<br />
For $ar = 100 To 300<br />
 If StringInStr($a[$ar], ' results for') Then<br />
  $br = SttringBetween($a[$ar], 'span&#62;', ' results for')<br />
  ;ConsoleWrite($br &#38; @CR)<br />
  ExitLoop<br />
 EndIf<br />
Next<br />
$br = StringReplace($br, ',', '')<br />
$br = StringReplace($br, 'of', '')<br />
$br = StringReplace($br, ' ', '')<br />
FileWriteLine($f, 'Found:' &#38; $br &#38; ' results for ' &#38; $search0)<br />
$br = Number($br)<br />
For $i = 1 To round($br/10)<br />
 HotKeySet("{ESC}", "Terminate") <br />
 $u1 = "<a href="http://searchservice.myspace.com/index.cfm?fuseaction=sitesearch.results&#38;qry">http://searchservice.myspace.com/index.cfm?fuseaction=sitesearch.results&#38;qry</a>=" &#38; $search &#38; "&#38;type=AllMySpace&#38;searchid=f6309e4f-39f2-43c6-9b59-5adef4eaa395&#38;pg=" &#38; $i<br />
 InetGet($u1, 'temp1.txt')<br />
 _FileReadToArray('temp1.txt', $aa)<br />
 $lines =$aa[0]<br />
 $rold=''<br />
 For $j = 100 To $lines<br />
  HotKeySet("{ESC}", "Terminate")<br />
  If StringInStr($aa[$j], 'friendid=') Then<br />
   $r = SttringBetween($aa[$j], 'friendid=', '"')<br />
   if $r=$rold then continueloop<br />
   if stringlen($r)&#60;9 then<br />
   FileWriteLine($f, $r)<br />
      EndIf<br />
   $rold=$r<br />
  EndIf<br />
 Next<br />
Next<br />
MsgBox(0, 'READY!', 'You can see results in ms.csv file')<br />
FileClose($f)</p>
<p>Func Terminate()<br />
 FileClose($f)<br />
 Exit 0<br />
EndFunc   ;==&#62;Terminate</p>
<p>Func SttringBetween($s, $from, $to)<br />
 $x = StringInStr($s, $from) + StringLen($from)<br />
 $y = StringInStr(StringTrimLeft($s, $x), $to)<br />
 Return StringMid($s, $x, $y)<br />
EndFunc   ;==&#62;SttringBetween</p>
<p>===========================================================</p>
<p>In next post I will upload source code file in .Au3 format /Autoit/ with comments.</p>
<p>You will be able to compile it, change it and add more features.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Joomla Source Code]]></title>
<link>http://icsblog.wordpress.com/?p=3</link>
<pubDate>Tue, 23 Sep 2008 14:42:26 +0000</pubDate>
<dc:creator>icsblog</dc:creator>
<guid>http://icsblog.ar.wordpress.com/2008/09/23/joomla-source-code/</guid>
<description><![CDATA[&lt;?php
/**
* @copyright    Copyright (C) 2005 - 2007 Open Source Matters. All rights reserved.
]]></description>
<content:encoded><![CDATA[<p>&#60;?php<br />
/**<br />
* @copyright    Copyright (C) 2005 - 2007 Open Source Matters. All rights reserved.<br />
* @license        GNU/GPL, see LICENSE.php<br />
* Joomla! is free software. This version may have been modified pursuant<br />
* to the GNU General Public License, and as distributed it includes or<br />
* is derivative of works licensed under the GNU General Public License or<br />
* other free or open source software licenses.<br />
* See COPYRIGHT.php for copyright notices and details.<br />
*/</p>
<p>// no direct access<br />
defined( '_JEXEC' ) or die( 'Restricted access' );</p>
<p>include_once (dirname(__FILE__).DS.'/ja_vars.php');</p>
<p>?&#62;</p>
<p>&#60;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&#62;</p>
<p>&#60;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="&#60;?php echo $this-&#62;language; ?&#62;" lang="&#60;?php echo $this-&#62;language; ?&#62;"&#62;</p>
<p>&#60;head&#62;<br />
&#60;jdoc:include type="head" /&#62;<br />
&#60;?php JHTML::_('behavior.mootools'); ?&#62;</p>
<p>&#60;link rel="stylesheet" href="&#60;?php echo $tmpTools-&#62;baseurl(); ?&#62;templates/system/css/system.css" type="text/css" /&#62;<br />
&#60;link rel="stylesheet" href="&#60;?php echo $tmpTools-&#62;baseurl(); ?&#62;templates/system/css/general.css" type="text/css" /&#62;<br />
&#60;link rel="stylesheet" href="&#60;?php echo $tmpTools-&#62;templateurl(); ?&#62;/css/template.css" type="text/css" /&#62;</p>
<p>&#60;script language="javascript" type="text/javascript" src="&#60;?php echo $tmpTools-&#62;templateurl(); ?&#62;/js/ja.script.js"&#62;&#60;/script&#62;</p>
<p>&#60;?php if ($tmpTools-&#62;getParam('rightCollapsible')): ?&#62;<br />
&#60;script language="javascript" type="text/javascript"&#62;<br />
var rightCollapseDefault='&#60;?php echo $tmpTools-&#62;getParam('rightCollapseDefault'); ?&#62;';<br />
var excludeModules='&#60;?php echo $tmpTools-&#62;getParam('excludeModules'); ?&#62;';<br />
&#60;/script&#62;<br />
&#60;script language="javascript" type="text/javascript" src="&#60;?php echo $tmpTools-&#62;templateurl(); ?&#62;/js/ja.rightcol.js"&#62;&#60;/script&#62;<br />
&#60;?php endif; ?&#62;</p>
<p>&#60;?php  if($this-&#62;direction == 'rtl') : ?&#62;<br />
&#60;link rel="stylesheet" href="&#60;?php echo $tmpTools-&#62;templateurl(); ?&#62;/css/template_rtl.css" type="text/css" /&#62;<br />
&#60;?php else : ?&#62;<br />
&#60;link rel="stylesheet" href="&#60;?php echo $tmpTools-&#62;templateurl(); ?&#62;/css/menu.css" type="text/css" /&#62;<br />
&#60;?php endif; ?&#62;</p>
<p>&#60;?php if ($this-&#62;countModules('hornav')): ?&#62;<br />
&#60;?php if ($tmpTools-&#62;getParam('horNavType') == 'css'): ?&#62;<br />
&#60;link rel="stylesheet" href="&#60;?php echo $tmpTools-&#62;templateurl(); ?&#62;/css/ja-sosdmenu.css" type="text/css" /&#62;<br />
&#60;script language="javascript" type="text/javascript" src="&#60;?php echo $tmpTools-&#62;templateurl(); ?&#62;/js/ja.cssmenu.js"&#62;&#60;/script&#62;<br />
&#60;?php else: ?&#62;<br />
&#60;link rel="stylesheet" href="&#60;?php echo $tmpTools-&#62;templateurl(); ?&#62;/css/ja-sosdmenu.css" type="text/css" /&#62;<br />
&#60;script language="javascript" type="text/javascript" src="&#60;?php echo $tmpTools-&#62;templateurl(); ?&#62;/js/ja.moomenu.js"&#62;&#60;/script&#62;<br />
&#60;?php endif; ?&#62;<br />
&#60;?php endif; ?&#62;</p>
<p>&#60;?php if ($tmpTools-&#62;getParam('theme_header') &#38;&#38; $tmpTools-&#62;getParam('theme_header')!='-1') : ?&#62;<br />
&#60;link rel="stylesheet" href="&#60;?php echo $tmpTools-&#62;templateurl(); ?&#62;/styles/header/&#60;?php echo $tmpTools-&#62;getParam('theme_header'); ?&#62;/style.css" type="text/css" /&#62;<br />
&#60;?php endif; ?&#62;<br />
&#60;?php if ($tmpTools-&#62;getParam('theme_background') &#38;&#38; $tmpTools-&#62;getParam('theme_background')!='-1') : ?&#62;<br />
&#60;link rel="stylesheet" href="&#60;?php echo $tmpTools-&#62;templateurl(); ?&#62;/styles/background/&#60;?php echo $tmpTools-&#62;getParam('theme_background'); ?&#62;/style.css" type="text/css" /&#62;<br />
&#60;?php endif; ?&#62;<br />
&#60;?php if ($tmpTools-&#62;getParam('theme_elements') &#38;&#38; $tmpTools-&#62;getParam('theme_elements')!='-1') : ?&#62;<br />
&#60;link rel="stylesheet" href="&#60;?php echo $tmpTools-&#62;templateurl(); ?&#62;/styles/elements/&#60;?php echo $tmpTools-&#62;getParam('theme_elements'); ?&#62;/style.css" type="text/css" /&#62;<br />
&#60;?php endif; ?&#62;</p>
<p>&#60;!--[if gte IE 7.0]&#62;<br />
&#60;style type="text/css"&#62;<br />
.clearfix {display: inline-block;}<br />
&#60;/style&#62;<br />
&#60;![endif]--&#62;<br />
&#60;?php if ($tmpTools-&#62;isIE6()): ?&#62;<br />
&#60;!--[if lte IE 6]&#62;<br />
&#60;script type="text/javascript"&#62;<br />
var siteurl = '&#60;?php echo $tmpTools-&#62;baseurl();?&#62;';</p>
<p>window.addEvent ('load', makeTransBG);<br />
function makeTransBG() {<br />
fixIEPNG($E('.ja-headermask'), '', '', 1);<br />
fixIEPNG($E('h1.logo a'));<br />
fixIEPNG($$('img'));<br />
fixIEPNG ($$('#ja-mainnav ul.menu li ul'), '', 'scale', 0, 2);<br />
}<br />
&#60;/script&#62;<br />
&#60;style type="text/css"&#62;<br />
.ja-headermask, h1.logo a, #ja-cssmenu li ul { background-position: -1000px; }<br />
#ja-cssmenu li ul li, #ja-cssmenu li a { background:transparent url(&#60;?php echo $tmpTools-&#62;templateurl(); ?&#62;/images/blank.png) no-repeat right;}<br />
.clearfix {height: 1%;}<br />
&#60;/style&#62;<br />
&#60;![endif]--&#62;<br />
&#60;?php endif; ?&#62;</p>
<p>&#60;style type="text/css"&#62;<br />
#ja-header,#ja-mainnav,#ja-container,#ja-botsl,#ja-footer {width: &#60;?php echo $tmpWidth; ?&#62;;margin: 0 auto;}<br />
#ja-wrapper {min-width: &#60;?php echo $tmpWrapMin; ?&#62;;}<br />
&#60;/style&#62;<br />
&#60;/head&#62;</p>
<p>&#60;body id="bd" class="fs&#60;?php echo $tmpTools-&#62;getParam(JA_TOOL_FONT);?&#62; &#60;?php echo $tmpTools-&#62;browser();?&#62;" &#62;<br />
&#60;a name="Top" id="Top"&#62;&#60;/a&#62;<br />
&#60;ul class="accessibility"&#62;<br />
&#60;li&#62;&#60;a href="#ja-content" title="&#60;?php echo JText::_("Skip to content");?&#62;"&#62;&#60;?php echo JText::_("Skip to content");?&#62;&#60;/a&#62;&#60;/li&#62;<br />
&#60;li&#62;&#60;a href="#ja-mainnav" title="&#60;?php echo JText::_("Skip to main navigation");?&#62;"&#62;&#60;?php echo JText::_("Skip to main navigation");?&#62;&#60;/a&#62;&#60;/li&#62;<br />
&#60;li&#62;&#60;a href="#ja-col1" title="&#60;?php echo JText::_("Skip to 1st column");?&#62;"&#62;&#60;?php echo JText::_("Skip to 1st column");?&#62;&#60;/a&#62;&#60;/li&#62;<br />
&#60;li&#62;&#60;a href="#ja-col2" title="&#60;?php echo JText::_("Skip to 2nd column");?&#62;"&#62;&#60;?php echo JText::_("Skip to 2nd column");?&#62;&#60;/a&#62;&#60;/li&#62;<br />
&#60;/ul&#62;</p>
<p>&#60;div id="ja-wrapper"&#62;</p>
<p>&#60;!-- BEGIN: HEADER --&#62;<br />
&#60;div id="ja-headerwrap"&#62;<br />
&#60;div id="ja-header" class="clearfix" style="background: url(&#60;?php echo $tmpTools-&#62;templateurl(); ?&#62;/images/header/&#60;?php echo $tmpTools-&#62;getRandomImage(dirname(__FILE__).DS.'images/header'); ?&#62;) no-repeat top &#60;?php if($this-&#62;direction == 'rtl') echo 'left'; else echo 'right';?&#62;;"&#62;</p>
<p>&#60;?php<br />
$siteName = $tmpTools-&#62;sitename();<br />
if ($tmpTools-&#62;getParam('logoType')=='image'): ?&#62;<br />
&#60;h1 class="logo"&#62;<br />
&#60;a href="index.php" title="&#60;?php echo $siteName; ?&#62;"&#62;&#60;span&#62;&#60;?php echo $siteName; ?&#62;&#60;/span&#62;&#60;/a&#62;<br />
&#60;/h1&#62;<br />
&#60;?php else:<br />
$logoText = (trim($tmpTools-&#62;getParam('logoText'))=='') ? $config-&#62;sitename : $tmpTools-&#62;getParam('logoText');<br />
$sloganText = (trim($tmpTools-&#62;getParam('sloganText'))=='') ? JText::_('SITE SLOGAN') : $tmpTools-&#62;getParam('sloganText');    ?&#62;<br />
&#60;h1 class="logo-text"&#62;<br />
&#60;a href="index.php" title="&#60;?php echo $siteName; ?&#62;"&#62;&#60;span&#62;&#60;?php echo $logoText; ?&#62;&#60;/span&#62;&#60;/a&#62;<br />
&#60;/h1&#62;<br />
&#60;p class="site-slogan"&#62;&#60;?php echo $sloganText;?&#62;&#60;/p&#62;<br />
&#60;?php endif; ?&#62;</p>
<p>&#60;div class="ja-headermask"&#62;&#38;nbsp;&#60;/div&#62;</p>
<p>&#60;?php $tmpTools-&#62;genToolMenu(JA_TOOL_FONT, 'png'); ?&#62;</p>
<p>&#60;?php if($this-&#62;countModules('user4')) : ?&#62;<br />
&#60;div id="ja-search"&#62;<br />
&#60;jdoc:include type="modules" name="user4" /&#62;<br />
&#60;/div&#62;<br />
&#60;?php endif; ?&#62;</p>
<p>&#60;/div&#62;<br />
&#60;/div&#62;<br />
&#60;!-- END: HEADER --&#62;</p>
<p>&#60;!-- BEGIN: MAIN NAVIGATION --&#62;<br />
&#60;?php if ($this-&#62;countModules('hornav')): ?&#62;<br />
&#60;div id="ja-mainnavwrap"&#62;<br />
&#60;div id="ja-mainnav" class="clearfix"&#62;<br />
&#60;jdoc:include type="modules" name="hornav" /&#62;<br />
&#60;/div&#62;<br />
&#60;/div&#62;<br />
&#60;?php endif; ?&#62;<br />
&#60;!-- END: MAIN NAVIGATION --&#62;</p>
<p>&#60;div id="ja-containerwrap&#60;?php echo $divid; ?&#62;"&#62;<br />
&#60;div id="ja-containerwrap2"&#62;<br />
&#60;div id="ja-container"&#62;<br />
&#60;div id="ja-container2" class="clearfix"&#62;</p>
<p>&#60;div id="ja-mainbody&#60;?php echo $divid; ?&#62;" class="clearfix"&#62;</p>
<p>&#60;!-- BEGIN: CONTENT --&#62;<br />
&#60;div id="ja-contentwrap"&#62;<br />
&#60;div id="ja-content"&#62;</p>
<p>&#60;jdoc:include type="message" /&#62;</p>
<p>&#60;?php if(!$tmpTools-&#62;isFrontPage()) : ?&#62;<br />
&#60;div id="ja-pathway"&#62;<br />
&#60;jdoc:include type="module" name="breadcrumbs" /&#62;<br />
&#60;/div&#62;<br />
&#60;?php endif ; ?&#62;</p>
<p>&#60;jdoc:include type="component" /&#62;</p>
<p>&#60;?php if($this-&#62;countModules('banner')) : ?&#62;<br />
&#60;div id="ja-banner"&#62;<br />
&#60;jdoc:include type="modules" name="banner" /&#62;<br />
&#60;/div&#62;<br />
&#60;?php endif; ?&#62;</p>
<p>&#60;/div&#62;<br />
&#60;/div&#62;<br />
&#60;!-- END: CONTENT --&#62;</p>
<p>&#60;?php if ($this-&#62;countModules('left')): ?&#62;<br />
&#60;!-- BEGIN: LEFT COLUMN --&#62;<br />
&#60;div id="ja-col1"&#62;<br />
&#60;jdoc:include type="modules" name="left" style="xhtml" /&#62;<br />
&#60;/div&#62;&#60;br /&#62;<br />
&#60;!-- END: LEFT COLUMN --&#62;<br />
&#60;?php endif; ?&#62;</p>
<p>&#60;/div&#62;</p>
<p>&#60;?php if ($this-&#62;countModules('right')): ?&#62;<br />
&#60;!-- BEGIN: RIGHT COLUMN --&#62;<br />
&#60;div id="ja-col2"&#62;<br />
&#60;jdoc:include type="modules" name="right" style="jarounded" /&#62;<br />
&#60;/div&#62;&#60;br /&#62;<br />
&#60;!-- END: RIGHT COLUMN --&#62;<br />
&#60;?php endif; ?&#62;</p>
<p>&#60;/div&#62;<br />
&#60;/div&#62;<br />
&#60;/div&#62;<br />
&#60;/div&#62;</p>
<p>&#60;?php<br />
$spotlight = array ('user1','user2','top','user5');<br />
$botsl = $tmpTools-&#62;calSpotlight ($spotlight,99,22);<br />
if( $botsl ) :<br />
?&#62;<br />
&#60;!-- BEGIN: BOTTOM SPOTLIGHT --&#62;<br />
&#60;div id="ja-botslwrap"&#62;<br />
&#60;div id="ja-botsl" class="clearfix"&#62;</p>
<p>&#60;?php if( $this-&#62;countModules('user1') ): ?&#62;<br />
&#60;div class="ja-box&#60;?php echo $botsl['user1']['class']; ?&#62;" style="width: &#60;?php echo $botsl['user1']['width']; ?&#62;;"&#62;<br />
&#60;jdoc:include type="modules" name="user1" style="xhtml" /&#62;<br />
&#60;/div&#62;<br />
&#60;?php endif; ?&#62;</p>
<p>&#60;?php if( $this-&#62;countModules('user2') ): ?&#62;<br />
&#60;div class="ja-box&#60;?php echo $botsl['user2']['class']; ?&#62;" style="width: &#60;?php echo $botsl['user2']['width']; ?&#62;;"&#62;<br />
&#60;jdoc:include type="modules" name="user2" style="xhtml" /&#62;<br />
&#60;/div&#62;<br />
&#60;?php endif; ?&#62;</p>
<p>&#60;?php if( $this-&#62;countModules('top') ): ?&#62;<br />
&#60;div class="ja-box&#60;?php echo $botsl['top']['class']; ?&#62;" style="width: &#60;?php echo $botsl['top']['width']; ?&#62;;"&#62;<br />
&#60;jdoc:include type="modules" name="top" style="xhtml" /&#62;<br />
&#60;/div&#62;<br />
&#60;?php endif; ?&#62;</p>
<p>&#60;?php if( $this-&#62;countModules('user5') ): ?&#62;<br />
&#60;div class="ja-box&#60;?php echo $botsl['user5']['class']; ?&#62;" style="width: &#60;?php echo $botsl['user5']['width']; ?&#62;;"&#62;<br />
&#60;jdoc:include type="modules" name="user5" style="xhtml" /&#62;<br />
&#60;/div&#62;<br />
&#60;?php endif; ?&#62;</p>
<p>&#60;/div&#62;<br />
&#60;/div&#62;<br />
&#60;!-- END: BOTTOM SPOTLIGHT --&#62;<br />
&#60;?php endif; ?&#62;</p>
<p>&#60;!-- BEGIN: FOOTER --&#62;<br />
&#60;div id="ja-footerwrap"&#62;<br />
&#60;div id="ja-footer" class="clearfix"&#62;</p>
<p>&#60;div id="ja-footnav"&#62;<br />
&#60;jdoc:include type="modules" name="user3" /&#62;<br />
&#60;/div&#62;</p>
<p>&#60;div class="copyright"&#62;<br />
&#60;jdoc:include type="modules" name="footer" /&#62;<br />
&#60;/div&#62;</p>
<p>&#60;div class="ja-cert"&#62;<br />
&#60;jdoc:include type="modules" name="syndicate" /&#62;<br />
&#60;a href="http://jigsaw.w3.org/css-validator/validator?uri=&#60;?php echo urlencode(JRequest::getURI());?&#62;" target="_blank" title="&#60;?php echo JText::_("CSS Validity");?&#62;" style="text-decoration: none;"&#62;<br />
&#60;img src="&#60;?php echo $tmpTools-&#62;templateurl(); ?&#62;/images/but-css.gif" border="none" alt="&#60;?php echo JText::_("CSS Validity");?&#62;" /&#62;<br />
&#60;/a&#62;<br />
&#60;a href="http://validator.w3.org/check/referer" target="_blank" title="&#60;?php echo JText::_("XHTML Validity");?&#62;" style="text-decoration: none;"&#62;<br />
&#60;img src="&#60;?php echo $tmpTools-&#62;templateurl(); ?&#62;/images/but-xhtml10.gif" border="none" alt="&#60;?php echo JText::_("XHTML Validity");?&#62;" /&#62;<br />
&#60;/a&#62;<br />
&#60;/div&#62;</p>
<p>&#60;br /&#62;<br />
&#60;/div&#62;<br />
&#60;/div&#62;<br />
&#60;!-- END: FOOTER --&#62;</p>
<p>&#60;/div&#62;</p>
<p>&#60;jdoc:include type="modules" name="debug" /&#62;<br />
&#60;p align = "center"&#62;RIMCU Website (c) 2008 All Rights Reserved&#60;/p&#62;<br />
&#60;/body&#62;</p>
<p>&#60;/html&#62;</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Argument Command Line]]></title>
<link>http://programmervb.wordpress.com/?p=194</link>
<pubDate>Mon, 22 Sep 2008 06:59:31 +0000</pubDate>
<dc:creator>programmervb</dc:creator>
<guid>http://programmervb.ar.wordpress.com/2008/09/22/argument-command-line-2/</guid>
<description><![CDATA[Private Sub Form_Load()
Dim strCmd as String
strCmd=Command$() &#8216;get argument from command line]]></description>
<content:encoded><![CDATA[<p>Private Sub Form_Load()</p>
<p>Dim strCmd as String</p>
<p>strCmd=Command$() 'get argument from command line</p>
<p>If InStrB (strCmd, "-status MAX") &#62; 0 then</p>
<p>Me.WindowState=2</p>
<p>Me.Caption="Argument:" &#38; strCmd</p>
<p>Else</p>
<p>Me.WindowState=0</p>
<p>End if</p>
<p>End Sub</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Point Of Sales Simple]]></title>
<link>http://programmervb.wordpress.com/?p=146</link>
<pubDate>Mon, 22 Sep 2008 06:57:08 +0000</pubDate>
<dc:creator>programmervb</dc:creator>
<guid>http://programmervb.ar.wordpress.com/2008/09/22/point-of-sales-simple/</guid>
<description><![CDATA[Option Explicit
Private Sub cmbSatuan_Click()
Select Case cmbSatuan.ListIndex
Case 0:
lblSatuan.Capt]]></description>
<content:encoded><![CDATA[<p>Option Explicit</p>
<p>Private Sub cmbSatuan_Click()<br />
Select Case cmbSatuan.ListIndex<br />
Case 0:<br />
lblSatuan.Caption = "Person"<br />
Case 1:<br />
lblSatuan.Caption = "Cups"<br />
Case 2:<br />
lblSatuan.Caption = "Pcs"<br />
End Select</p>
<p>End Sub</p>
<p>Private Sub cmdHitung_Click()<br />
Dim SubTotal As Double<br />
Dim Discount As Double<br />
Dim Total As Double</p>
<p>If (txtNamaBarang.Text = "") Or (txtJumlah.Text = "") Or _<br />
(txtHarga.Text = "") Then<br />
If txtNamaBarang.Text = "" Then<br />
MsgBox "Insert Item!", vbOKOnly, "Informasi"<br />
txtNamaBarang.SetFocus<br />
End If</p>
<p>If txtJumlah.Text = "" Then<br />
MsgBox "Total is Empty!", vbOKOnly, "Informasi"<br />
txtJumlah.SetFocus<br />
End If</p>
<p>If txtHarga.Text = "" Then<br />
MsgBox "Price is Empty!", vbOKOnly, "Informasi"<br />
txtHarga.SetFocus<br />
End If<br />
Else<br />
SubTotal = txtJumlah.Text * txtHarga.Text</p>
<p>Discount = 0<br />
If Month(Date) = 6 Then<br />
If Day(Date) &#62;= 20 And Day(Date) &#60;= 30 Then<br />
If SubTotal &#62;= 50000 Then<br />
Discount = 10 / 100 * SubTotal<br />
End If<br />
End If<br />
End If</p>
<p>Total = SubTotal - Discount</p>
<p>lblSubtotalRp.Caption = SubTotal<br />
lblDiscountRp.Caption = Discount<br />
lblTotalRp.Caption = Total<br />
End If</p>
<p>End Sub</p>
<p>Private Sub Form_Load()<br />
lblTanggal.Caption = "Date: " &#38; Date<br />
cmbSatuan.AddItem "Foods"<br />
cmbSatuan.AddItem "Drinks"<br />
cmbSatuan.AddItem "Snack"<br />
cmbSatuan.ListIndex = 0<br />
End Sub</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Get Information File With FSO]]></title>
<link>http://programmervb.wordpress.com/?p=216</link>
<pubDate>Mon, 22 Sep 2008 06:50:16 +0000</pubDate>
<dc:creator>programmervb</dc:creator>
<guid>http://programmervb.ar.wordpress.com/2008/09/22/get-information-file-with-fso/</guid>
<description><![CDATA[dim fso as new scripting.fileSystemObject
dim fld as scripting.folder
set fld=fso.getfolder(&#8221;C]]></description>
<content:encoded><![CDATA[<p>dim fso as new scripting.fileSystemObject</p>
<p>dim fld as scripting.folder</p>
<p>set fld=fso.getfolder("C:\tmp")</p>
<p>dim fil as scripting.filefor each fil in fld.files</p>
<p>me.lst.AddItem (fil.name)</p>
<p>next fil</p>
<p>set fso=nothing</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[File Size]]></title>
<link>http://programmervb.wordpress.com/?p=214</link>
<pubDate>Mon, 22 Sep 2008 06:35:45 +0000</pubDate>
<dc:creator>programmervb</dc:creator>
<guid>http://programmervb.ar.wordpress.com/2008/09/22/file-size-2/</guid>
<description><![CDATA[Private Sub cmdShowFileSize_Click()
Dim strOldFile As String
Dim strOldSize As String
Dim strMyDir A]]></description>
<content:encoded><![CDATA[<p>Private Sub cmdShowFileSize_Click()<br />
Dim strOldFile As String<br />
Dim strOldSize As String<br />
Dim strMyDir As String<br />
Dim strMyFile As String</p>
<p>strMyDir = "c:\windows\desktop"<br />
strMyFile = "readme.txt"</p>
<p>strOldFile = strMyDir &#38; "\" &#38; strMyFile<br />
strOldSize = FileLen(strOldFile)</p>
<p>lblFileSize.Caption = "The file " &#38; strOldFile &#38; " is " &#38; _<br />
Format(strOldSize, "#,##0") &#38; " bytes in size."</p>
<p>End Sub</p>
]]></content:encoded>
</item>

</channel>
</rss>
