<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Helix SDK Q&amp;A - Recent questions</title>
<link>http://www.helixsdk.org/qa/?qa=questions</link>
<description>Powered by Question2Answer</description>
<item>
<title>How to build Helix on a Mac</title>
<link>http://www.helixsdk.org/qa/?qa=260/how-to-build-helix-on-a-mac</link>
<description>Outline of the steps required to get Helix to build on a Mac.</description>
<guid isPermaLink="true">http://www.helixsdk.org/qa/?qa=260/how-to-build-helix-on-a-mac</guid>
<pubDate>Thu, 12 Nov 2015 21:00:28 +0000</pubDate>
</item>
<item>
<title>Good links to Git references</title>
<link>http://www.helixsdk.org/qa/?qa=259/good-links-to-git-references</link>
<description>I don't have a quick place to put these right now, and I don't want to loose them and then try to find them again later. &amp;nbsp;So I'm putting them here. &amp;nbsp;If you have others, feel free to add responses with your favorites.&lt;br /&gt;
&lt;br /&gt;
Git Version Control Linkfest: &lt;a href=&quot;http://stackoverflow.com/questions/315911/git-for-beginners-the-definitive-practical-guide?lq=1&quot; rel=&quot;nofollow&quot;&gt;http://stackoverflow.com/questions/315911/git-for-beginners-the-definitive-practical-guide?lq=1&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Git Cheatsheet - Really Cool: &lt;a href=&quot;http://www.ndpsoftware.com/git-cheatsheet.html&quot; rel=&quot;nofollow&quot;&gt;http://www.ndpsoftware.com/git-cheatsheet.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Git Branching Model: &lt;a href=&quot;http://nvie.com/posts/a-successful-git-branching-model/&quot; rel=&quot;nofollow&quot;&gt;http://nvie.com/posts/a-successful-git-branching-model/&lt;/a&gt;</description>
<guid isPermaLink="true">http://www.helixsdk.org/qa/?qa=259/good-links-to-git-references</guid>
<pubDate>Thu, 26 Sep 2013 18:55:04 +0000</pubDate>
</item>
<item>
<title>Templating Engines</title>
<link>http://www.helixsdk.org/qa/?qa=151/templating-engines</link>
<description>A big part of the power of Helix is that we try to generate as much of the common code for you as possible. &amp;nbsp;You define the structure of what you want, and we'll generate the code to implement that structure in your desired language.&lt;br /&gt;
&lt;br /&gt;
At the heart of this is our code generation engine. &amp;nbsp;This started out as a Java program, which morphed into a C++ program, and is now under surgery to become something new.&lt;br /&gt;
&lt;br /&gt;
When writing code that writes code - at the beginning - it's easy to simply inline the bits of code that will be generated as strings in the master code generation program. &amp;nbsp;That's what we have now. &amp;nbsp;That's how it was in Java, and how it got morphed into C++ as well.&lt;br /&gt;
&lt;br /&gt;
As we go forward, though, this becomes harder and harder to maintain. &amp;nbsp;We need to generate more code. &amp;nbsp;We need to pay attention to more situations, and we need to be more and more sophisticated. &amp;nbsp;I can see where we need to go, but, for the time being I just don't know exactly what it's going to look like.&lt;br /&gt;
&lt;br /&gt;
So, I've opted for small steps and to iterate my way through the problem.&lt;br /&gt;
&lt;br /&gt;
First step is to extract as much of the hard-coded inline strings from the code generation engine and put them into separate template files. &amp;nbsp;This is an on-going effort, but it is already making the code generation engine much cleaner and clearer to understand. &amp;nbsp;It also means that I don't necessarily have to re-compile the code generation engine when I need to tweak the output. &amp;nbsp;As long as what I need to tweak is in one of the template files, I just update it and go. &amp;nbsp;This is already making life much easier.&lt;br /&gt;
&lt;br /&gt;
I hesitate to use one of the more powerful templating solutions at this point, because I worry that I'm just trading one set of problems for another. &amp;nbsp;I like it when the templates are extremely clean and have very little xml or other cruft in them. &amp;nbsp;I recognize, though, that the logic of the if/else/loop/etc. code generation engine has to go somewhere. &amp;nbsp;It's either going to be embedded in the templates themselves - and evaluated by the template engine, or it will stay in our existing code-generator and get applied to more simple template files.&lt;br /&gt;
&lt;br /&gt;
I don't have the right answer yet. &amp;nbsp;I only know I have to do something to make this more maintainable. &amp;nbsp;Iteration is the key. &amp;nbsp;I'll keep doing small things to make it better, and I'll keep looking at the templating engines out there to see if I can find the right balance.</description>
<guid isPermaLink="true">http://www.helixsdk.org/qa/?qa=151/templating-engines</guid>
<pubDate>Wed, 11 Sep 2013 19:54:53 +0000</pubDate>
</item>
<item>
<title>Iteration is important</title>
<link>http://www.helixsdk.org/qa/?qa=149/iteration-is-important</link>
<description>&lt;p&gt;
	Sometimes I look at a piece of code or a design or a problem that I want to solve and I can see the ultimate goal for how I want to approach it. &amp;nbsp;I can see it very clearly. &amp;nbsp;When this happens, I go straight to the end goal and do it the way that I can see it in my mind. &amp;nbsp;When this happens it's great and I can get a tremendous amount accomplished in a very short time. &amp;nbsp;It's great when it happens.&lt;/p&gt;
&lt;p&gt;
	Unfortunately, it doesn't always happen that way.&lt;/p&gt;
&lt;p&gt;
	Sometimes I look at a piece of code or a design or a problem and I know that it can be so much better. &amp;nbsp;I know that there is a smooth and elegant way to approach it. &amp;nbsp;I can feel it in my bones. &amp;nbsp;I just can't see it yet.&lt;/p&gt;
&lt;p&gt;
	The problem with these times when I know there is an elegant solution but I can't see it, is that it's like writers block for me. &amp;nbsp;It will make me sit and stew and do nothing, because I can't quite formulate exactly what I want to do.&lt;/p&gt;
&lt;p&gt;
	I've found that the best way to get past this writers block is to just force myself to do &lt;span style=&quot;text-decoration: underline;&quot;&gt;something&lt;/span&gt;. &amp;nbsp;Anything. &amp;nbsp;Just start with small changes, or pieces of code and gradually iterate through changing them and getting them closer and closer to where I need to end up.&lt;/p&gt;
&lt;p&gt;
	It's like that scene in &lt;a rel=&quot;nofollow&quot; href=&quot;http://www.imdb.com/title/tt0181536/&quot;&gt;Finding Forrester&lt;/a&gt; where Sean Connery tells Rob Brown to just start typing. &amp;nbsp;He starts with a paragraph from an existing paper, and then it starts to flow from himself.&lt;/p&gt;
&lt;p&gt;
	Start with something. &amp;nbsp;Even just a simple loop that has nothing in it. &amp;nbsp;Get it to compile. &amp;nbsp;Add more to it. &amp;nbsp;Compile it, run it, extend it. &amp;nbsp;It starts to flow. &amp;nbsp;Then you can get it to do what you need it to do.&lt;/p&gt;
&lt;p&gt;
	Iterate. &amp;nbsp;Don't be afraid to start small and grow it into something bigger with many, many iterations.&lt;/p&gt;</description>
<guid isPermaLink="true">http://www.helixsdk.org/qa/?qa=149/iteration-is-important</guid>
<pubDate>Wed, 11 Sep 2013 19:34:13 +0000</pubDate>
</item>
<item>
<title>Everything must be working ... the spammers have found us!</title>
<link>http://www.helixsdk.org/qa/?qa=12/everything-must-be-working-the-spammers-have-found-us</link>
<description>&lt;p&gt;
	It's like a rite of passage or the mark of having arrived. &amp;nbsp;When you set up a free-form site like this one, you hope that people will find you organically on the web. &amp;nbsp;One of the best ways to know for certain that links are working, and that the site is visible is to wait for the spammers to find you. &amp;nbsp;If even the spammers can't find you, well then something is really not working and you need to go back to your configuration and figure it out.&lt;/p&gt;
&lt;p&gt;
	I was getting a little worried, because Helix Q&amp;amp;A has been up for a week or so at this point, and I hadn't seen anything yet. &amp;nbsp;But today brought absolute confirmation that everything is up and running properly, and that we are visible to the world: the spammers have arrived&amp;nbsp;&lt;img alt=&quot;smiley&quot; height=&quot;20&quot; src=&quot;http://www.helixsdk.org/qa/qa-plugin/wysiwyg-editor/plugins/smiley/images/regular_smile.gif&quot; title=&quot;smiley&quot; width=&quot;20&quot;&gt;&lt;/p&gt;
&lt;p&gt;
	The site's volume is low enough at this point that I'm still going to keep it pretty open. &amp;nbsp;I'll handle keeping things clean manually until it gets to the point where I'm overwhelmed. &amp;nbsp;When that happens, I'll tweak the settings to start locking things down a bit more.&lt;/p&gt;
&lt;p&gt;
	Cheers!&lt;/p&gt;</description>
<guid isPermaLink="true">http://www.helixsdk.org/qa/?qa=12/everything-must-be-working-the-spammers-have-found-us</guid>
<pubDate>Tue, 06 Aug 2013 19:12:51 +0000</pubDate>
</item>
<item>
<title>Website Source and SDK Source separated</title>
<link>http://www.helixsdk.org/qa/?qa=5/website-source-and-sdk-source-separated</link>
<description>&lt;p&gt;
	I've updated the source tree to pull the website contents out of the main SDK source. &amp;nbsp;It's not necessary as part of the SDK and this will help shrink download sizes for anyone pulling down the full SDK source rather than picking up one of the pre-built SDK packages.&lt;/p&gt;
&lt;p&gt;
	Speaking of pre-built SDK packages - no, I don't have those ready yet. &amp;nbsp;Here's the plan for them:&lt;/p&gt;
&lt;p&gt;
	Inside the source tree there's a series of components that are used to do the &quot;SDK&quot; job, and a series of components that are used to become the application that the SDK will provision and create based on your project definition. &amp;nbsp;Granted, there's a lot of overlap between these - as the SDK is really just another project built with the same components. &amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;http://en.wikipedia.org/wiki/Eating_your_own_dog_food&quot;&gt;Dogfooding&lt;/a&gt;&amp;nbsp;&lt;img alt=&quot;smiley&quot; height=&quot;20&quot; src=&quot;http://www.helixsdk.org/qa/qa-plugin/wysiwyg-editor/plugins/smiley/images/regular_smile.gif&quot; title=&quot;smiley&quot; width=&quot;20&quot;&gt;&lt;/p&gt;
&lt;p&gt;
	So when we build the SDK - we'll package up this application, and make it available on the following platforms:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
		Win32 - Native Service&lt;/li&gt;
	&lt;li&gt;
		Win64 - Native Service&lt;/li&gt;
	&lt;li&gt;
		Linux32 - RPM or DEB package, or simple .tar.gz file.&lt;/li&gt;
	&lt;li&gt;
		Linux64 - RPM or DEB package, or simple .tar.gz file.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
	The SDK itself is built using the C++ version of the server in stand-alone mode, so that there will be no external dependencies. &amp;nbsp;You won't have to have apache up and running somewhere to get this going. &amp;nbsp;Just drop it down and run with it.&lt;/p&gt;
&lt;p&gt;
	The SDK application is where you will &quot;provision&quot; your new projects. &amp;nbsp;By &quot;provision&quot; we mean going through the simple process of defining the application you would like to build. &amp;nbsp;Here are the things that we will ask you during this process:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
		What is your project name?&lt;/li&gt;
	&lt;li&gt;
		What is your project namespace prefix?&lt;/li&gt;
	&lt;li&gt;
		Would you like to use Java, C++, or C# as your server language - which also constrains deployment options.
		&lt;ul&gt;
			&lt;li&gt;
				For Java, would you like to deploy as a WAR file to an application Server or as a stand-alone Java server.&lt;/li&gt;
			&lt;li&gt;
				For C++ would you like to deploy as an Apache module or as a stand-alone native server.&lt;/li&gt;
			&lt;li&gt;
				For C# would you like to deploy as an IIS Handler or as a stand-alone .Net server.&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li&gt;
		Where would you like your project source files to go.&lt;/li&gt;
	&lt;li&gt;
		What port would you like your server to listen on - default 7294 (Helix SDK uses 7293)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
	With this information the SDK application will take the appropriate source code templates, customize them, and create your project directory in the right place with the right settings. &amp;nbsp;The SDK also knows how to get all of the 3rd party components downloaded and installed on your development machine. &amp;nbsp;These could include:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
		Current Qooxdoo Framework&lt;/li&gt;
	&lt;li&gt;
		Current Python runtime (required by Qooxdoo build toolchain)&lt;/li&gt;
	&lt;li&gt;
		Any development libraries (libxml2, libzlib, libopenssl, etc.) and headers that may be necessary.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
	Finally, the SDK will create the appropriate project files so that you can work with your new project. &amp;nbsp;For Java projects, the SDK will create Eclipse .classpath and .project files. For C++ it will create makefiles and a Visual Studio solution setup. &amp;nbsp;For C# it will create a Visual Studio solution setup.&lt;/p&gt;
&lt;p&gt;
	Once all of this setup is in place, the SDK will run the initial compile of your project to get you up and running. &amp;nbsp;You will actually use your project to help define itself. &amp;nbsp;All of the data objects, screen layouts, etc. you will define by using your project's web GUI. &amp;nbsp;So it's important that the SDK get an initial compile of your project up and running so that you'll be able to work with it.&lt;/p&gt;
&lt;p&gt;
	Beyond that it's up to you to define all of the features and functionality in your project. &amp;nbsp;Helix provides the infrastructure, you make it a great application&amp;nbsp;&lt;img alt=&quot;cool&quot; height=&quot;20&quot; src=&quot;http://www.helixsdk.org/qa/qa-plugin/wysiwyg-editor/plugins/smiley/images/shades_smile.gif&quot; title=&quot;cool&quot; width=&quot;20&quot;&gt;&lt;/p&gt;
&lt;p&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
	Steven M. Cherry&lt;/p&gt;
&lt;p&gt;
	&amp;nbsp;&lt;/p&gt;</description>
<guid isPermaLink="true">http://www.helixsdk.org/qa/?qa=5/website-source-and-sdk-source-separated</guid>
<pubDate>Fri, 26 Jul 2013 20:47:32 +0000</pubDate>
</item>
<item>
<title>Q&amp;A EMail is configured and working</title>
<link>http://www.helixsdk.org/qa/?qa=4/q%26a-email-is-configured-and-working</link>
<description>&lt;p&gt;
	I was re-reading some of my favorite articles today, and this one:&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;http://www.ericsink.com/bos/Transparency.html&quot;&gt;http://www.ericsink.com/bos/Transparency.html&lt;/a&gt;&amp;nbsp;reminded me that it's ok to talk about the little things that are going on and be open about the nuts and bolts behind the scenes.&lt;/p&gt;
&lt;p&gt;
	Well, in that thought, e-mail is working with the Q&amp;amp;A system today. &amp;nbsp;It's a small step, but due to the fact that I have a &lt;a rel=&quot;nofollow&quot; href=&quot;http://www.gtsoftware.com/product/ivory-hub-director/&quot;&gt;full-time position&lt;/a&gt;&amp;nbsp;small steps are often all that are accomplished in any given day.&lt;/p&gt;
&lt;p&gt;
	The nice thing is that this will help me to be more responsive to the Q&amp;amp;A system, as I won't have to check it directly to see if something has been posted. &amp;nbsp;E-Mail notifications can be annoying, but they can also be helpful when done right.&lt;/p&gt;
&lt;p&gt;
	Enjoy!&lt;/p&gt;</description>
<guid isPermaLink="true">http://www.helixsdk.org/qa/?qa=4/q%26a-email-is-configured-and-working</guid>
<pubDate>Wed, 24 Jul 2013 02:11:19 +0000</pubDate>
</item>
<item>
<title>When is a Blog a Question and Vice Versa</title>
<link>http://www.helixsdk.org/qa/?qa=2/when-is-a-blog-a-question-and-vice-versa</link>
<description>On StackOverflow.com they are very picky about the types of questions asked, and the types of conversations that are allowed. &amp;nbsp;One of the reasons that Discourse.com was created was because they decided that a Q&amp;amp;A site is just not quite the same thing as a discussion forum. &amp;nbsp;They'd probably (and likely have) say the same thing about a Q&amp;amp;A site and a blog site.&lt;br /&gt;
&lt;br /&gt;
Well, not to say that they are wrong, but acknowledging that various opinons may be had - and in the interest of expediancy and re-use, we are going to be using this Q&amp;amp;A forum as the host for our blog topics as well. &amp;nbsp;You'll be able to find them all under the blog-post tag.&lt;br /&gt;
&lt;br /&gt;
As we get our feet under ourselves, this may change - and then again it may not. &amp;nbsp;I like the idea of all of the conversations being in one place - regardless of whether they are truly Question and Answer exchanges.</description>
<guid isPermaLink="true">http://www.helixsdk.org/qa/?qa=2/when-is-a-blog-a-question-and-vice-versa</guid>
<pubDate>Tue, 23 Jul 2013 01:43:13 +0000</pubDate>
</item>
<item>
<title>Welcome to Helix SDK and Helix Q&amp;A - Give us a bit, we're getting things up and running</title>
<link>http://www.helixsdk.org/qa/?qa=1/welcome-helix-helix-q%26a-give-bit-were-getting-things-running</link>
<description>&lt;p&gt;
	We're an open source project, so sometimes things move fast, and sometimes things move pretty slowly.&lt;br&gt;
	&lt;br&gt;
	Give us a bit of time as we're getting the source code in place, and getting everything organized.&lt;br&gt;
	&lt;br&gt;
	As you can see from the main site, there's still a lot of Hericus in here. &amp;nbsp;We'll get that sorted soon&amp;nbsp;&lt;img alt=&quot;smiley&quot; height=&quot;20&quot; src=&quot;http://hericus2.hericus.com/qa/qa-plugin/wysiwyg-editor/plugins/smiley/images/regular_smile.gif&quot; title=&quot;smiley&quot; width=&quot;20&quot;&gt;&lt;br&gt;
	&lt;br&gt;
	Thanks for your patience,&lt;br&gt;
	&lt;br&gt;
	Steven M. Cherry&lt;br&gt;
	&lt;br&gt;
	smc@hericus.com&lt;/p&gt;</description>
<guid isPermaLink="true">http://www.helixsdk.org/qa/?qa=1/welcome-helix-helix-q%26a-give-bit-were-getting-things-running</guid>
<pubDate>Sat, 20 Jul 2013 01:57:06 +0000</pubDate>
</item>
</channel>
</rss>