<?xml version="1.0" encoding="UTF-8"?>
<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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>mobiphil</title>
	<atom:link href="http://www.mobiphil.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mobiphil.com</link>
	<description>blog about being mobile, but including technology</description>
	<pubDate>Fri, 12 Mar 2010 11:28:10 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>viq qemacs further experiments</title>
		<link>http://www.mobiphil.com/2010/03/viq-qemacs-further-experiments/</link>
		<comments>http://www.mobiphil.com/2010/03/viq-qemacs-further-experiments/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 11:27:43 +0000</pubDate>
		<dc:creator>mobiphil</dc:creator>
		
		<category><![CDATA[vim]]></category>

		<category><![CDATA[viq]]></category>

		<category><![CDATA[qemacs]]></category>

		<guid isPermaLink="false">http://www.mobiphil.com/?p=176</guid>
		<description><![CDATA[I replaced everywhere the type of sizes with long long. This allows now opening of files larger than 2GB. It is really fast to open even a 4 GB file. With some hacks I made it possible to jump instantly to the end of a 4GB file. I will probably not give up, and will [...]]]></description>
			<content:encoded><![CDATA[<p>I replaced everywhere the type of sizes with long long. This allows now opening of files larger than 2GB. It is really fast to open even a 4 GB file. With some hacks I made it possible to jump instantly to the end of a 4GB file. I will probably not give up, and will do some optimizations. There are some challenges:</p>
<p>1. line breaks are counted to often. This is not always needed. However do not know how much it costs to go through the 4GB and count the breaks.</p>
<p>2. When moving backwards, it seems that the full buffer is parsed from begin to the current position. This could be done backwards.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mobiphil.com/2010/03/viq-qemacs-further-experiments/feed/</wfw:commentRss>
		</item>
		<item>
		<title>qemacs disappointment, so viq is dead before birth</title>
		<link>http://www.mobiphil.com/2010/03/qemacs-disappointment-so-viq-is-dead-before-birth/</link>
		<comments>http://www.mobiphil.com/2010/03/qemacs-disappointment-so-viq-is-dead-before-birth/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 15:47:14 +0000</pubDate>
		<dc:creator>mobiphil</dc:creator>
		
		<category><![CDATA[vim]]></category>

		<category><![CDATA[qemacs]]></category>

		<category><![CDATA[viq]]></category>

		<guid isPermaLink="false">http://www.mobiphil.com/?p=175</guid>
		<description><![CDATA[Loading a 4 GB file with qemacs takes less than 1 second. However jumping to the end of the file takes 1 minute. I thought at the begging that there would be some lazy loading behind the scenes, but not. The data is in memory, however going through the buffer is very very slow. I [...]]]></description>
			<content:encoded><![CDATA[<p>Loading a 4 GB file with qemacs takes less than 1 second. However jumping to the end of the file takes 1 minute. I thought at the begging that there would be some lazy loading behind the scenes, but not. The data is in memory, however going through the buffer is very very slow. I made some local optimizations, but there would be much much to much work to  make such operations faster than with vim.</p>
<p>Viq was intentended to be a project to add vim like interface to qemacs&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mobiphil.com/2010/03/qemacs-disappointment-so-viq-is-dead-before-birth/feed/</wfw:commentRss>
		</item>
		<item>
		<title>viq</title>
		<link>http://www.mobiphil.com/2010/03/viq/</link>
		<comments>http://www.mobiphil.com/2010/03/viq/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 13:42:20 +0000</pubDate>
		<dc:creator>mobiphil</dc:creator>
		
		<category><![CDATA[vim]]></category>

		<category><![CDATA[qemacs]]></category>

		<category><![CDATA[qvi]]></category>

		<guid isPermaLink="false">http://www.mobiphil.com/?p=174</guid>
		<description><![CDATA[My obsession for speed will probably make me abandon my favorite tool vim. Instead I will go back to emacs. Hm.. I mean not really to emacs, but qemacs. I mean not really qemacs, but qvi. That is qemacs with vim like bindings. But qvi does not sound very friendly, so what about viq, spelled [...]]]></description>
			<content:encoded><![CDATA[<p>My obsession for speed will probably make me abandon my favorite tool vim. Instead I will go back to emacs. Hm.. I mean not really to emacs, but <a href="http://bellard.org/qemacs">qemacs</a>. I mean not really qemacs, but qvi. That is qemacs with vim like bindings. But qvi does not sound very friendly, so what about viq, spelled WIK, like wiki.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mobiphil.com/2010/03/viq/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Wt GSoC 2010</title>
		<link>http://www.mobiphil.com/2010/03/wt-gsoc-2010/</link>
		<comments>http://www.mobiphil.com/2010/03/wt-gsoc-2010/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 13:08:45 +0000</pubDate>
		<dc:creator>mobiphil</dc:creator>
		
		<category><![CDATA[babelengine]]></category>

		<category><![CDATA[wt]]></category>

		<category><![CDATA[c++]]></category>

		<guid isPermaLink="false">http://www.mobiphil.com/?p=173</guid>
		<description><![CDATA[Here is my list of ideas that are related to Wt, maybe they would fit for Wt GSoC 2010.
1. as about qt-wt integration: Considering that even well tuned browsers like the webkit based ones on embedded devices, would make sense to create a rendering engine for wt, that interacts with the Qt Declarative UI (QML). [...]]]></description>
			<content:encoded><![CDATA[<p>Here is my list of ideas that are related to Wt, maybe they would fit for Wt GSoC 2010.</p>
<p>1. as about qt-wt integration: Considering that even well tuned browsers like the webkit based ones on embedded devices, would make sense to create a rendering engine for wt, that interacts with the <a title="Qt Declarative UI (QML)" href="http://qt.nokia.com/doc/4.7-snapshot/declarativeui.html ">Qt Declarative UI (QML). </a>Such a combination would result in a very fast client and very fast server for deploying services on embedded devices</p>
<p>2. Implement WSqlQuery/WSqlModel etc family, as <a href="http://qt.nokia.com/doc/4.7-snapshot/qsqlquery.html">QSqlQuery</a>/<a href="http://qt.nokia.com/doc/4.7-snapshot/qsqlquerymodel.html">QSqlQueryModel</a> . The Wt::Dbo family is nice, but they do not provide at the moment the integration with views.</p>
<p>3. The already proposed idea about using Qt Designer to design Wt widgets, might be a wrong direction. In my opinion a better solution would be to create a Wt application that would allow the construction of &#8220;empty&#8221; widgets, through a web application. The advantage of this approach is that contrary to Wt Designer, the widgets would render on the final web application as they render in the Wt. The product of this designer wt application would be a html template. Any .ui interface etc. would mean unnecessary overhead in the development cycle etc. etc.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mobiphil.com/2010/03/wt-gsoc-2010/feed/</wfw:commentRss>
		</item>
		<item>
		<title>git fun</title>
		<link>http://www.mobiphil.com/2010/02/git-fun/</link>
		<comments>http://www.mobiphil.com/2010/02/git-fun/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 16:16:43 +0000</pubDate>
		<dc:creator>mobiphil</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://www.mobiphil.com/?p=172</guid>
		<description><![CDATA[Found two interesting projects related to git:
http://github.com/apenwarr/git-subtree (git subtree)
http://apenwarr.ca/log/?m=201001#04 (backup with git)
]]></description>
			<content:encoded><![CDATA[<p>Found two interesting projects related to git:</p>
<p><a title="git subtree" href="http://github.com/apenwarr/git-subtree" target="_blank">http://github.com/apenwarr/git-subtree</a> (git subtree)</p>
<p><a title="bup: backup with git" href="http://apenwarr.ca/log/?m=201001#04" target="_blank">http://apenwarr.ca/log/?m=201001#04</a> (backup with git)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mobiphil.com/2010/02/git-fun/feed/</wfw:commentRss>
		</item>
		<item>
		<title></title>
		<link>http://www.mobiphil.com/2010/01/170/</link>
		<comments>http://www.mobiphil.com/2010/01/170/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 23:04:18 +0000</pubDate>
		<dc:creator>mobiphil</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.mobiphil.com/2010/01/170/</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.fosdem.org"><img src="http://www.fosdem.org/promo/going-to" alt="I'm going to FOSDEM, the Free and Open Source Software Developers' European Meeting" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mobiphil.com/2010/01/170/feed/</wfw:commentRss>
		</item>
		<item>
		<title>mobifs, part two: aggfs</title>
		<link>http://www.mobiphil.com/2009/11/mobifs-part-two-aggfs/</link>
		<comments>http://www.mobiphil.com/2009/11/mobifs-part-two-aggfs/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 18:17:20 +0000</pubDate>
		<dc:creator>mobiphil</dc:creator>
		
		<category><![CDATA[linux]]></category>

		<category><![CDATA[aggregatefs]]></category>

		<category><![CDATA[fuse]]></category>

		<category><![CDATA[mobifs]]></category>

		<guid isPermaLink="false">http://www.mobiphil.com/?p=169</guid>
		<description><![CDATA[playing with the idea of splitting files, mapping their tree structure to the filesystem, I came to the conclusion that the opposite of the pattern could be more than useful: aggregate filesystem.
What and Why? Just simply imagine a large project with hundreds of files, where you would have to do a huge huge huge huge refactoring [...]]]></description>
			<content:encoded><![CDATA[<p>playing with the idea of splitting files, mapping their tree structure to the filesystem, I came to the conclusion that the opposite of the pattern could be more than useful: aggregate filesystem.</p>
<p>What and Why? Just simply imagine a large project with hundreds of files, where you would have to do a huge huge huge huge refactoring that would affect more than 50% of files. (renaming for example). Opening each file is out of question. You could write some sed scripts to do the job. But why? Why you would not be able to open all the files in vi or you favourite editor, first do some analysis by searching for occurrences, then mass replace, etc, etc.</p>
<p>The aggregate filesystem should have some configuration file that would define what is aggregated by listing the files or defining rules (regular expressions for example, globing) about what kind of files to be included (for example all files under a directory). You would end up with a huge file that would be composed by all the files (in random order). End of files of each original file would be marked with a special line, I will call it pivot line. These pivot lines would unambiguously identify the end of file. Removing such a line would mean that the content would flow to the file that follows. The pivot line would also contain the full path of the original file.</p>
<p>When you open an aggregate file and start to read it the aggregate fs would open all the aggregated files (or eventually define other strategies). If you would read the file, the aggregate fs would read one by one all the aggregated files. When saving an aggregated file, the aggregate fs would save each part of the content to the original file indicated by the pivot line.</p>
<p>Such pivot line would also help to create commands inside your editor that would have eventually affect on the original file. For example open the original file.</p>
<p>Such a filesystem could be implemented both in kernel and userspace with fuse.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mobiphil.com/2009/11/mobifs-part-two-aggfs/feed/</wfw:commentRss>
		</item>
		<item>
		<title>some git naming best practices</title>
		<link>http://www.mobiphil.com/2009/11/some-git-naming-best-practices/</link>
		<comments>http://www.mobiphil.com/2009/11/some-git-naming-best-practices/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 16:50:41 +0000</pubDate>
		<dc:creator>mobiphil</dc:creator>
		
		<category><![CDATA[git]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[naming]]></category>

		<category><![CDATA[remote]]></category>

		<guid isPermaLink="false">http://www.mobiphil.com/?p=168</guid>
		<description><![CDATA[I have git repositories in several places. Considering different forces I came to some personal conventions, that will, I hope help me to pull push from/to the correct place. I have for all the git repositories basically 4 categories of locals/remotes:
1. the working area. The working area can be on different machines, therefore I call [...]]]></description>
			<content:encoded><![CDATA[<p>I have git repositories in several places. Considering different forces I came to some personal conventions, that will, I hope help me to pull push from/to the correct place. I have for all the git repositories basically 4 categories of locals/remotes:</p>
<p>1. the working area. The working area can be on different machines, therefore I call these remotes as the machine name as well. It makes sense to have such remotes, as working on machine X, the Y will be a remote to X. So on each copy/mirror of the git repo, I will have a remote X, Y, Z&#8230;, where X,Y,Z&#8230; are the machine names I am working on. So far I am not sharing repos with other users on same machine. If that would be the case &lt;machine&gt;.&lt;user&gt; would probably make sense.</p>
<p>2. Git bare space. I call it simply &#8220;bare&#8221;. This is a remote for all other copies/mirrors that is somewhere on my local network. In my work-flow, I normally always pull/push here. I have some cron jobs, that do frequent pull push (if it is the case) with main repositories like github, or the projects origin.</p>
<p>3. Github and Gitorious.</p>
<p>4 Origin. I use this name for remote for projects that I do not keep a local copy/mirror bare repository. For these ones it really makes sense to think about the abstract remote pull/push.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mobiphil.com/2009/11/some-git-naming-best-practices/feed/</wfw:commentRss>
		</item>
		<item>
		<title>git clearcase</title>
		<link>http://www.mobiphil.com/2009/11/git-clearcase/</link>
		<comments>http://www.mobiphil.com/2009/11/git-clearcase/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 00:48:10 +0000</pubDate>
		<dc:creator>mobiphil</dc:creator>
		
		<category><![CDATA[git]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[virtualization]]></category>

		<category><![CDATA[clearcase]]></category>

		<category><![CDATA[fuse]]></category>

		<category><![CDATA[uml]]></category>

		<category><![CDATA[umview]]></category>

		<guid isPermaLink="false">http://www.mobiphil.com/?p=167</guid>
		<description><![CDATA[Well the experience with umview was interesting, but too complicated  . Working with GIT_WORK_TREE or core.worktree in .git/config, solves the problem, but you are not &#8220;inside&#8221; the directory.
***** old post follows ****
Under this name I will try to write a few articles about my design and experience in using git on top of clearcase [...]]]></description>
			<content:encoded><![CDATA[<p>Well the experience with umview was interesting, but too complicated <img src='http://www.mobiphil.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Working with GIT_WORK_TREE or core.worktree in .git/config, solves the problem, but you are not &#8220;inside&#8221; the directory.</p>
<p>***** old post follows ****</p>
<p>Under this name I will try to write a few articles about my design and experience in using git on top of clearcase in order to achive two things:</p>
<ul>
<li>make the enterprise happy by keeping the sources in a central repository</li>
<li>make my work flow much easier by using the power of git and avoiding dead times when waiting for the slow clearcase to do operations like view setup, align with baseline, create branch, merge etc. The goal is to do all necessary development steps fast with git (including collaboration with other developers), and let the computer do the rest of required formalism against clearcase (checkout, &#8220;edit&#8221;, merge, etc)</li>
</ul>
<p>At the enterprise where I would like to deploy this design, one of the first handicaps I faced is that the there is no place in the filesystem hierarchy before the clearcase vob, where I could place the .git folder, to map it over the cleracase views. One of the solutions came to my mind is to aske sysadmins to install the fuse module, but my request was refused for system security reasons.</p>
<p>Another alternative seemed to me was to run myself a virtual machine and mount there the vobs under a subfolder of a folder that contains .git. Running whatsoever virtual machine was not a choice do to my access limitations, so only <a href="http://user-mode-linux.sourceforge.net">UML</a> could come in question. Uml would mean build a kernel, build a minimal filesystem with necessary tools, etc, etc.</p>
<p>Accidentally however I came across a simpler solution. And that is called <a href="http://user-mode-linux.sourceforge.net">virtual square umview</a>. Virtual Square&#8217;s &#8220;main goal is to create an unified environment that allows virtual machines, systems and networks to communicate and interact&#8221;. Umview is a tool that is part of the project. It traps practically any system calls issued by any program that a user runs, and transform them as instructed. For example you can configure it to transform &#8220;read /mydiskspace/project.git/clearcase/vob1/module1/src/file1.c&#8221; into &#8220;read /clearcase/vob1/module1/src/file1.c&#8221;. That is to mount virtually &#8220;/mydiskspace/project.git/clearcase&#8221;  to &#8220;/clearcase&#8221; inside the virtual environment. Once having that in place you may create the mirroring .git repository in /mydiskspace/project.git. You will feed with source data from the virtually mounted /mydiskspace/project.git/clearcase/vob1/module1/src/file1.c.</p>
<p>How would you concretelly issue your commands? Here are they (see comments)</p>
<p>#&gt;umview $SHELL #start a shell under the virtual environment</p>
<p>#&gt;#you are now in the virtual environment but you have the &#8220;same&#8221; view</p>
<p>#&gt;#until you start to &#8220;manipulate&#8221; it</p>
<p>#&gt;um_add_service viewfs #load the module that handles virtual mounts</p>
<p>#&gt;mount -t viewfs /clearcase/vob1/ /mydiskspace/project/git/clearcase</p>
<p>#&gt;cd /mydiskspace/project.git</p>
<p>#&gt;git init  #if this is the first git action</p>
<p>#&gt;git add . #fill the repository with your files from the clearcase view</p>
<p>It is obvious that in the example above you are in the context of a view. You might be able to create wrapper commands around git, that will execute always in this &#8220;manipulated&#8221; environment view.</p>
<p>In following articles I will describe how I feed the git repo with history from clearcase. To start to work it is not strictly necessary to have the history. It is a nice convenience if you would want to access the history from git.</p>
<p>Note:</p>
<ul>
<li>It is mentioned on the umview website that the viewfs module is in early development phase, so it might be a bit buggy. If that does not work for you, try umfuse module</li>
<li>The umview version that comes with Ubuntu Jaunty does not work well on my test machine, so I had to build one from the sources</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.mobiphil.com/2009/11/git-clearcase/feed/</wfw:commentRss>
		</item>
		<item>
		<title>mobifs eifs fmfs</title>
		<link>http://www.mobiphil.com/2009/11/mobifs-eifs-fmfs/</link>
		<comments>http://www.mobiphil.com/2009/11/mobifs-eifs-fmfs/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 23:06:10 +0000</pubDate>
		<dc:creator>mobiphil</dc:creator>
		
		<category><![CDATA[database]]></category>

		<category><![CDATA[filesystem]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[eifs]]></category>

		<category><![CDATA[mobifs]]></category>

		<guid isPermaLink="false">http://www.mobiphil.com/?p=166</guid>
		<description><![CDATA[I wrote to the fuse mailing list, about the eifs/fmfs/mobifs. I am still not sure which name fits better, for simplicity I will refer to it as mobifs. Based on the feedback from the mailing list, it became clear for me, that mobifs can be implemented with help of fuse. However implementing it in kernel [...]]]></description>
			<content:encoded><![CDATA[<p>I wrote to the <a href="fuse.sourceforge.net">fuse </a>mailing list, about the eifs/fmfs/mobifs. I am still not sure which name fits better, for simplicity I will refer to it as mobifs. Based on the feedback from the mailing list, it became clear for me, that mobifs can be implemented with help of fuse. However implementing it in kernel will avoid double context switch, copying buffers, etc. One of the powerful features of fuse is that you may develop proof of concepts for any kind of filesystem, and the if performance is an issue, recode a part to fit into the kernel. The user space solution for mobifs will be straightforward to implement, at a later stage a kernel module may come into being.</p>
<p>As summary, the goal of mobifs (everything is filesystem) is to allow transparent (read/write) access to the tree structure of files that have such a tree structure under the form of traditional directory tree structure and to present the leaves in form of text, that can be edited without compromising the format expected by the original tools that handle these files.</p>
<p>The driving motivation behind is also to avoid to learn hundreds of command line parameters of hundreds of tools that access such files and to be able to access the data that hides behind with traditional viewers, editors or other tools.</p>
<p>For example an sqllite database file has such a directory structure. instead of issuing sql statements, one would be able to acces such a file like:</p>
<p>#&gt;vi blogs.sqllite@sqllite/tables/blogs/rows/by/uniqueid/mobifs-eifs-story/content</p>
<p>in this example &#8220;blogs&#8221; is the table containing the blog entries, &#8220;by&#8221; means that I want to access data by column name, &#8220;mobifs-eifs-story&#8221; is the unique id of the blog entry, and &#8220;content&#8221; is the field containing the content.</p>
<p>if your blog database would be on a mysql database on a remote server, you would do sthg. similar:</p>
<p>#&gt;vi blogs.db.id@mysql/tables/blogs/wors/by/uniqueid/mobifs-eifs-story/content</p>
<p>in this case blogs.db.id would contain necessary info how to access the database (server ip, db name, username, password)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mobiphil.com/2009/11/mobifs-eifs-fmfs/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.415 seconds -->
