unethical blogger aggregator http://unethicalblogger.com/aggregator/categories/1 unethical blogger - aggregated feeds in category Tech Blogs en Monologue: Joe Audette: SEO Phone Spam http://www.joeaudette.com/seo-phone-spam.aspx <p>I often get these contact form submissions on joeaudette.com and on mojoportal.com where people are pitching to get my site to the top of google, no big deal, I delete them, but yesterday was the first time I got one by phone.</p> <p>Yesterday at about 2PM I got a phone call on my cell phone from 951-813-2184 that went like this:</p> <ol> <li>me: hello?</li> <li>caller: is this the tree service?</li> <li>me: i think you have the wrong number</li> <li>caller: are you Source Tree Solutions?</li> <li>me: that is my company but it is a software company not a tree service</li> <li>caller: oh, well you're listed in the yellow pages under tree service</li> <li>me: that's news to me, I didn't know I had a listing in the yellow pages</li> <li>caller: well are you interested in getting your site to the top of google?</li> <li>me: oh my God, you gotta be kidding me</li> <li>caller: well what do you do for advertising</li> <li>me: Dude! you don't know the first thing about me, my business or my web site, I don't need your SEO spam phone calls, please never call this number again, click</li> </ol> <p>I chuckled for about 15 minutes after that, but hope it is not the start of a trend of spammy phone calls.</p><br /><a href='http://www.joeaudette.com'>Joe Audette</a>&nbsp;&nbsp;<a href='http://www.joeaudette.com/seo-phone-spam.aspx'>...</a> Mon, 18 Jan 2038 22:14:07 -0500 Monologue: Joe Audette: How To Use jQueryUI Tabs in Right To Left Layout http://www.joeaudette.com/how-to-use-jqueryui-tabs-in-right-to-left-layout.aspx <p>Recently I've begun using the <a href="http://jqueryui.com/demos/tabs/">jQueryUI tabs</a> in <a href="http://www.mojoportal.com">mojoPortal</a> as an alternative to <a href="http://developer.yahoo.com/yui/tabview/">YUI tabs</a>. I still like the YUI tabs but there is only 1 skin available currently for YUI tabs, whereas there are a 18 themes for the jQuery UI tabs, so its likely that at least one of them will look good with a particular mojoPortal skin. This has got me thinking about switching to use the jQuery tabs in many or most places where we use YUI tabs. I still need to test a few things like making sure I can use FCKeditor inside the tabs like I can with the YUI tabs. One thing I like about the YUI tabs is that they automatically adjust to right to left layout if they are contained within and element with direction:rtl in the css.</p> <p>I was worried at first whether the jQuery Tabs would support right to left layout because when I googled for it I could not find any explnations how to make the tabs layout from right to left. I found a number of people asking about it on mailing lists and forums but no-one offering any answers. So I used Firebug to study the css classes assigned to the elements and figured out the things that need to be overridden to make it layout from right to left. I thought I should post it since clearly there are people looking for hep with this. Its actually very straightforward, you include the normal css for the jquery ui theme, and you add another css file below it in the page (it must be lower in the page in order to override the style settings above it in the jquery ui css). There is only a little css needed because we want to override the minimum possible style settings, this is what is needed:</p> <p>.ui-tabs { direction: rtl; }<br /> .ui-tabs .ui-tabs-nav li.ui-tabs-selected,<br /> .ui-tabs .ui-tabs-nav li.ui-state-default {float: right; }<br /> .ui-tabs .ui-tabs-nav li a { float: right; }</p> <p>I tested it with all 18 jQuery UI themes and it worked great. I hope this is helpful to others.</p> <p><img alt="screen shot of jquery tabs in right to left layout" width="235" height="131" src="http://www.joeaudette.com/Data/Sites/2/jquery-tabs-rtl.png" /></p> <p>&#160;</p><br /><a href='http://www.joeaudette.com'>Joe Audette</a>&nbsp;&nbsp;<a href='http://www.joeaudette.com/how-to-use-jqueryui-tabs-in-right-to-left-layout.aspx'>...</a> Mon, 18 Jan 2038 22:14:07 -0500 Monologue: Joe Audette: My Personal Phone History http://www.joeaudette.com/my-personal-phone-history.aspx <p>These are all the cell phones I've ever had.</p> <p><img height="330" width="440" src="http://www.joeaudette.com/Data/Sites/2/joe-phones-small.jpg" alt="picture of all the cell phones I've had" /></p> <p>I remember when I first got that Samsung clamshell phone on the left, gosh, how long ago was that 1997, 98 99? Somewhere in there I'm sure. I remember being so excited about that phone when I first got it. As a kid I had always fantasized about those communicators they used on Star Trek and when I got this phone it was like the realisation of a childhood dream. I got rid of my land line pretty soon after that and haven't had one since. </p> <p>I was pretty excited when PocketPC phones first came out. Being a Web Developer, the idea of always having access to the internet wherever my phone worked seemd like a dream. I think I got that phone around 2002 or 2003 and at the time I gave my old phone to my younger brother Frank who lived in North Carolina (I was living in TN at the time). It really wasn't a compelling internet experience, and though I kept it until long after my service contract expired, I got really tired of carrying around that big phone. I mean if you put it in your pocket people were like &quot;hey is that the internet in your pocket or are you just happy to see me?&quot;. It was really a phone that needed a belt clip like Batman, but I really wasn't into that belt clip thing.</p> <p>So then I got the Razr, must have been around 2004 or 2005, again I gave my old PocketPC phone to my younger brother Frank. I was much happier with the Razr, it was slick, it was small, and it was a joy to stop carrying that old boat anchor PocketPC.</p> <p>Last month I got an iPhone. Its way beyond any phone I ever imagined seeing in my lifetime. Its got a compelling web surfing experience, and yet it fits nicely in your pocket without raising eyebrows. I know a lot of people like a physical keyboard and those folks tend to like Blackberries. I suppose if I was answering a lot of email with my phone I might wish for a real keyboard too. Honestly I haven't yet answered an email with my iPhone. For me its more about knowing whether I have important mail at any time than actually responding to it from my phone. It can usually wait until I'm near a computer again. After all, I'm near a computer about 95% of the time. For me its just another convenient way to service my internet addiction. I work long days and then finally collapse and watch movies at the end of the day when I can no longer keep going. I used to find myself getting up from the couch a lot just to check if any new mail had come in, or see <a href="http://www.mojoportal.com/community.aspx">how many people are on mojoPortal.com</a>. Now I don't have to get up off the couch. In some ways I like the Facebook experience better on the iPhone than on a computer. I love having a lot of my music collection in my phone, love the GPS. Its a really great device.</p> <p>So I thought again whether I should offer my old Razr to my younger brother Frank. The funny thing is, now that I'm living in North Carolina, I find out he never activated or used any of the phones I ever gave him, thats how I'm now able to take a picture of them all together. He hasn't committed to a new phone contract for like eight years now. He's still using this old monstrosity:</p> <p><img height="341" width="180" src="http://www.joeaudette.com/Data/Sites/2/franksphone.jpg" alt="my brothers old dinosaur phone" /></p> <p>We're talking dinosaur phone. Not only that but he relies on this thing for all his communication and he lost the battery charger years ago, so he can only charge it now in his car and he's been doing this for years. I'd say he's way over due for a new phone.</p><br /><a href='http://www.joeaudette.com'>Joe Audette</a>&nbsp;&nbsp;<a href='http://www.joeaudette.com/my-personal-phone-history.aspx'>...</a> Mon, 18 Jan 2038 22:14:07 -0500 Monologue: Joe Audette: Aliens are Not Allowed to Swim Here! http://www.joeaudette.com/aliens-are-not-allowed-to-swim-here.aspx <p><img height="432" width="324" src="http://www.joeaudette.com/Data/Sites/2/noalienswimming.jpg" alt="No Swimming sign that looks like its for Aliens" /></p> <p>I walk by this sign almost every day when I go for my exercise walks at the park, its always struck me as funny. Today I took this picture with my iPhone.</p><br /><a href='http://www.joeaudette.com'>Joe Audette</a>&nbsp;&nbsp;<a href='http://www.joeaudette.com/aliens-are-not-allowed-to-swim-here.aspx'>...</a> Mon, 18 Jan 2038 22:14:07 -0500 Monologue: Michael Hutchinson: MonoDevelop Tips: Document Switcher http://mjhutchinson.com/journal/2011/02/monodevelop_tips_document_switcher <p>The document switcher is a quick way to switch focus between open documents and pads using the keyboard. It's activated by the <strong>Ctrl-tab</strong> or <strong>Ctrl-shift-tab</strong> combinations, and remains open as long as Control remains held down. While it's open, you can change the selection &mdash; up arrow or shift-tab moves the selection up, down arrow or tab moves the selection down, and the left and right arrows move the selection between the pads and documents lists. When you have selected the item you want, release Control, and it will be selected.</p> <p><a href="http://mjhutchinson.com/files/images/md-tips/document-switcher.png" rel="lightbox[md_tips_document_switcher]" title="The document switcher"><img src="http://mjhutchinson.com/files/images/md-tips/t/document-switcher.png" alt="The document switcher" style="max-width:98%; display:block;margin-left:auto;margin-right:auto;" /></a></p> <p>The documents list is sorted by which have been most recently used, and when the dialog is opened, the first document it selects is the item <em>after</em> the current active document, i.e. the document that was focussed before it, since it's assumed that you don't want to switch to the current document. However, this also make it very easy to switch between a few documents with minimal keystrokes.</p> Thu, 10 Feb 2011 12:00:00 -0500 Monologue: Unity Technologies: Unity 3.2 is Available! http://blogs.unity3d.com/2011/02/10/unity-3-2-is-available/ We are so happy to announce that Unity 3.2 is now live and available to download! Here is a rundown of the major new features and improvements: Image Effects: New Depth of Field with fantastic bokeh, improved bloom and several other image effect tweaks and fixes. New Water: All new Water prefab in standard assets that includes waves, [...] Thu, 10 Feb 2011 10:44:31 -0500 Monologue: Mike Kestner: Signs of Life http://mkestner.blogspot.com/2011/02/signs-of-life.html With gtk+ closing in on their 3.0 release, many folks have been inquiring about Gtk# 3 lately. We've had a number of offers to help as well. I've been tied up with another project at the ol' day job, but I've been dedicating a fair amount of evening and weekend time toward 3.0 bindings since the holidays. It also looks like I'm going to be getting some more cycles to push the effort forward in the near future.<div><br /></div><div>Over the past couple evenings, I've pushed a series of commits to github.com which update master to a 2.99.x API level. Several of the samples are still not being built because of 3.0 API breakage. Most of the samples which currently build also run cleanly, but there are some crashes there to address as well. </div><div><br /></div><div>I've temporarily created a cairo-sharp.dll from the copy of Mono.Cairo we have been carrying in the tree, with a few updates to expose some of the new 1.10 API. This will likely get merged back into the mcs/class tree, but it's a convenient place for us to move fast with fleshing out the new bits.</div><div><br /></div><div>The generated APIs are completely unaudited at this point. The improvements in the external Gio and Builder bindings since they spun off remain unmerged. There is plenty of work to go around if people would like to jump in and help. We are going to need migration docs, new API docs, the list goes on...</div><div><br /></div><div>Since people are likely wondering, the module still starts from a C parse. I have experimented with starting from GIR format but feel at this point, given the current tooling state, that it will be quicker to get to 3.0 using the existing GAPI parser for gtk-sharp. Since this is getting long already, I'll expand on the reasons in another blog, plus talk about the approach I think we can take to begin incorporating GIR as a starting point in new bindings.</div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1497451738703327403-5244485611643380711?l=mkestner.blogspot.com' alt='' /></div> Wed, 09 Feb 2011 21:16:00 -0500 red sweater blog: This App Is Your App http://www.red-sweater.com/blog/1678/this-app-is-your-app <p>One of the challenges existing Mac developers face with the Mac App Store (MAS) is whatever copy protection you have been using up until now has to be thrown out in favor of a protection scheme based on Apple&#8217;s App Store &#8220;receipts,&#8221; a tiny cryptographically signed file they place inside purchased applications that let your app confirm the authenticity of an application upon launching (and at any other time).</p> <p>This leads to a conundrum if you continue to sell software directly, or offer preview beta releases for direct download. How can you offer access to these releases for customers who purchased through the MAS and thus do not have the &#8220;Registration Code&#8221; that direct-purchase customers receive? Apple provides no means of determining the identities of, or contact information for, authorized MAS customers. But even though I don&#8217;t know <em>who these customers are, </em>I want to treat them as first-class customers in every regard.</p> <p>For me, I decided that the compromise is to provide, for those MAS customers who want it, full access to the direct-download versions of my software. Today, any customer who buys a MAS edition of my applications will find that, after running that edition at least once, they are automatically authorized to run direct-download versions of the app from that time forward.</p> <h3>A Recipe for Mass Authorization</h3> <p>How did I achieve this bit of wizardry? And more importantly, how can you, or other developers whose apps you love, achieve the same thing? There are three major code-level changes that I needed to make. I&#8217;ll discuss those changes, and some of the potentially non-obvious considerations to keep in mind while making them.</p> <p> </p> <ol> <li> <p>The MAS edition must stash its receipt somewhere obvious for the direct-download edition to find it. Because both editions of my app share a common Application Support folder, I chose to store them here. Inside the Application Support folder, I create a subfolder called &#8220;App Store Receipts&#8221; that contains the pertinent receipt files for this app.</p> <p>Why a folder? Because a customer may sync or copy their App Support folder across various Macs, I chose to store each receipt keyed by the computer&#8217;s GUID, which is derived from its wired ethernet MAC address. Developers who have implemented app store authentication will be familiar with this value.</p> </li> <li> <p>The direct-download version must, in the event it is not already authorized by a standard registration code, look for secondary validation in the form of a receipt in the aforementioned location. If it finds a receipt, the same type of validation is performed on the receipt as would be performed in the MAS edition.</p> <p>You will want to apply some lenience when interpreting the validity of the receipt. For example, you probably want a receipt authorizing version &#8220;3.0&#8243; to also be considered valid for &#8220;3.0.1&#8243; or &#8220;3.0.1b1&#8243;. Similarly, if you use separate bundle IDs for your MAS and direct-download editions, you will want to consider the MAS bundle ID as valid for the direct-download version.</p> </li> <li> <p>If you used a different bundle ID for your MAS and direct-download editions, then for the sake of the users sanity and yours, you probably want to implement some kind of transparent migration of preferences from one edition to the other. You don&#8217;t want customers to have to go in and reset all their preferences when they switch, and it can be annoying as a developer as well.</p> <p>I had some preference migration code around from when I transitioned <a href="http://www.red-sweater.com/marsedit/">MarsEdit</a> and <a href="http://www.red-sweater.com/blackink/">Black Ink</a> from their previous companies&#8217; bundle IDs to mine. I reused that transition code, with a bit of careful but appropriate logic: if the other bundle ID was modified more recently than mine, then import it and replace my defaults. The same logic is applied in each edition so that whatever version you run, you&#8217;ll feel as though you&#8217;ve picked up all the latest preferences from the last time you used the app.</p> </li> </ol> <p> </p> <p>With these changes in place, I have the flexibility to offer direct-download versions of my software to any MAS customer who asks for it, or for customers who I request the assistance of in testing a pre-release bug fix. In most cases, I can just ask the customer to run the app. In the worst-case scenario, when a receipt has not yet been &#8220;stashed,&#8221; I have only to ask the customer to run the MAS edition once before trying the newer release.</p> <h3>Pitfalls and Downsides</h3> <p>This solution isn&#8217;t perfect. In particular, it brings MAS customers into the fold for direct-download software, but does nothing to soothe the existing and new direct-purchase customers who wish for access to the benefits of the MAS: sharing reviews, mass-updating purchased software, etc.</p> <p>Worse, it leads to a potentially confusing situation where a customer may be running version 3.0 of an application that they direct-downloaded before Apple had approved it. When Apple does approve it and it goes live on the MAS, they are notified inside the App Store about the available update, but when it does update, it will update the previously installed MAS version, and not the direct-downloaded one. To benefit from the Red Sweater compromise, customers need to embrace the mental model that MAS and direct-download versions of the application are fundamentally different, and need to be managed and stored separately from one another.</p> <p>I believe that the people this compromise serves are in general a more technically astute type of customer who will be able to embrace this difference, or will understand it with little explanation on my part. The less technical customers are not liable to be on the lookout for beta releases or &#8220;day of&#8221; releases of new software, and will happily wait until the MAS notifies them of a standard, Apple reviewed update.</p> <p> </p> Wed, 09 Feb 2011 13:09:37 -0500 Monologue: Michael Hutchinson: MonoDevelop Tips: Suggestion Mode http://mjhutchinson.com/journal/2011/02/monodevelop_tips_suggestion_mode <p>The default mode of the code completion list is to <em>complete</em> the symbol that's being typed. Whenever the completion engine can determine that you are typing an existing symbol (such as a type name, variable name or member name), it automatically triggers the completion list and populates it with all the values that are valid at that point. As you type while the list is open, the list's selection updates to match what best fits what you're typing, and you can manually change the selection using the up/down arrow keys. When you press space, enter, tab, or any punctuation, the completion list "commits" the selection into the document, so you don't have to type the rest of the word manually. This is incredibly useful when you get used to it.</p> <p>Sometimes the completion engine cannot provide a complete list of valid values, for example when you are defining a lambda at the point that you pass it to a method. In such cases, when you need to type a value that's not in the list, it would be very irritating for the list to commit its best match and overwrite what you're typing. Instead, the completion list goes into <em>suggestion</em> mode.</p> <p>In suggestion mode, the selection highlight in the list is a rectangle around the selection, not a solid block. When the list is in suggestion mode, it will only commit on tab or enter, so you won't commit accidentally while typing a word. If you use arrow keys to change the selection, the list will go back into completion mode and the highlight will become solid.</p> <p><a href="http://mjhutchinson.com/files/images/md-tips/suggestion-mode.png" rel="lightbox[md_tips_suggestion_mode]" title="The completion list in suggestion mode"><img src="http://mjhutchinson.com/files/images/md-tips/suggestion-mode.png" alt="The completion list in suggestion mode" style="max-width:98%; display:block;margin-left:auto;margin-right:auto;" /></a></p> <p>Some users like to write code out of order, for example using symbols that don't yet exist, and then defining them symbols later, or writing code that does not parse correctly and fixing it up. Completion mode really makes that style of coding hard to do. The answer is a command that toggles the list into suggestion mode. You can access it via the <em>Edit->Toggle Completion Suggestion Mode</em> menu item, or the <strong>Alt-Shift-Space</strong> key binding. Once the list is toggled into suggestion mode, it will stay that was until you toggle it back. This it useful because you can switch back and forth as it suits you.</p> Wed, 09 Feb 2011 12:00:25 -0500 red sweater blog: Black Ink 1.3 http://www.red-sweater.com/blog/1671/black-ink-1-3 <p>I am happy to announce that after a short, productive beta release period, <a href="http://www.red-sweater.com/blackink/">Black Ink 1.3</a> is now available for direct download and through the <a href="http://itunes.apple.com/us/app/black-ink/id402376365?mt=12">Mac App Store</a> (has been approved but may take a little while to update in the store).</p> <ul> <li>New web puzzle sources <ul> <li>LA Times Daily &amp; Sunday</li> <li>Newsday</li> <li>USA Today</li> <li>Universal</li> </ul> </li> <li>Rework the Startup preferences to be more user-friendly with reopening puzzles</li> <li>Give keyboard shortcut Cmd-K to &#8220;Check Current Letter&#8221;</li> <li>Now includes automatic crash reporter </li> <li>Fix a bug that caused Black Ink to hang when printing on rare occasions</li> <li>Fix a bug that caused puzzle timer to be placed off screen edge</li> <li>Fix a bug that could prevent puzzle solving menu items from being enabled</li> <li>Fix a bug that prevented canceling a stalled puzzle download from working</li> </ul> <p>Enjoy!</p> Tue, 08 Feb 2011 12:21:34 -0500 Monologue: Michael Hutchinson: MonoDevelop Tips: Fullscreen Modes http://mjhutchinson.com/journal/2011/02/monodevelop_tips_fullscreen_mode <p>Sometimes it's useful to be able to focus only on your code without the distractions of the pads and the rest of your desktop. MonoDevelop has two ways to make this easier.</p> <p>The <strong>Maximized View</strong> can be toggled by double-clicking on the document tab, or using the context menu on the document tab and selecting <em>Switch maximize/normal view</em>. When in maximize view, all open pads are auto-hidden at the sides of the MonoDevelop windows, and all toolbars are hidden (everything in the toolbars is also accessible from the menus).</p> <p>The <strong>Fullscreen View</strong> can be activated using the <em>View->Fullscreen</em> menu command. This makes the MonoDevelop window take up the entire screen, hiding the taskbar and the window border.</p> <p>Both view modes can be used together to maximize the document area as much as possible.</p> Tue, 08 Feb 2011 12:00:55 -0500 Monologue: Ruben Vermeersch: Post-FOSDEM 2011 / The Trollcat experiment http://weblog.savanne.be/370-post-fosdem-2011-the-trollcat-experiment <p><strong>The Mono Developer Room</strong><br /> The second edition of the Mono Developer room was once again a great success. Good talks, nice atmosphere and some interesting discussions. Slides will be online soon, unfortunately no video recordings this year.</p> <p><img class="aligncenter size-full wp-image-372" title="monoroom-fosdem-2011" src="http://weblog.savanne.be/monoroom-fosdem-2011.jpg" alt="" width="500" height="333" /></p> <p><strong>The trollcat experiment</strong><br /> A couple of months ago while sending out the call-for-papers<strong> </strong>for the 2011 Mono room, I added this question to the submission form:</p> <div id="attachment_373" class="wp-caption aligncenter" style="width: 528px"><img class="size-full wp-image-373" title="monoroom-fosdem-2011-trollcats" src="http://weblog.savanne.be/monoroom-fosdem-2011-trollcats.png" alt="" width="518" height="101" /><p class="wp-caption-text">The majority ticked &quot;Yes&quot;.</p></div> <p>Looking back at my statistics from last weekend, over 90% of the speakers did in fact include some imagery of opinionated animals or cartoon figures, often comically yet clearly strengthening the discourse. I would like to present this observation as a data point in the ongoing research on the finer points of trollcats in contemporary society which is being carried out by <a href="http://tirania.org/blog/">Miguel</a> for some time now.</p> Tue, 08 Feb 2011 11:00:43 -0500 Monologue: Kenneth Pouncey: Cocoa?s Application Icon Badge http://cocoa-mono.org/archives/349/cocoas-application-icon-badge/ In this post we will be continuing a series of articles about the Application Icon.&#160; This time we will be dealing with the Application Badge.&#160; For those getting started you might want to have a look at the following Apple document Dock Tile Concepts. What we have learned: Creating and adding an icon to your [...] Tue, 08 Feb 2011 00:06:11 -0500 Monologue: Ivan Zlatev: PicasaUploader 0.5.4 released http://ivanz.com/2011/02/07/picasauploader-0-5-4-released/ <p>I have just released a new version of my <a href="http://ivanz.com/projects/picasauploader/">PicasaWeb Uploader</a> tool. This is a maintenance release to fix issues with large video uploads and to port to the new GData API.</p> Mon, 07 Feb 2011 17:04:15 -0500 Monologue: Jb Evain: TechDays 2011 http://feedproxy.google.com/~r/jbevain/~3/XeJcfLeR6R0/techdays-2011 <p><img src="http://evain.net/public/monkeys.jpg" style="border: 2px solid black" /></p> <p>Mercredi, j&#8217;aurai l&#8217;opportunité de présenter <a href="http://www.microsoft.com/france/mstechdays/programmes/Session.aspx?CellID=d3f9aa87-a3d8-41b1-9ad5-e6fd589de55f">Mono et son écosystème</a> pendant les TechDays Microsoft.</p> <p>Ce sera l&#8217;occasion de faire le point sur les dernières nouveautés de <a href="http://www.mono-project.com">Mono</a>, et de montrer comment réutiliser ses compétences .net et partager son code C# pour cibler des plateformes en vogue, comme l&#8217;iPhone et l&#8217;iPad avec <a href="http://monotouch.net">MonoTouch</a>, Android avec <a href="http://monodroid.net">MonoDroid</a> et Mac <span class="caps">OS X</span> avec <a href="http://www.mono-project.com/MonoMac">MonoMac</a>.</p> <p>Si vous ne pouvez pas assister à la session, je serai aussi disponible sur le <a href="http://www.microsoft.com/france/mstechdays/communautes/presentation-communautes.aspx?tp=13&#38;partner=c53800ac-aa33-441b-94bc-a0837a13b501">stand alt.net</a> pour discuter de tous ces sujets. Venez nombreux !</p><img src="http://feeds.feedburner.com/~r/jbevain/~4/XeJcfLeR6R0" height="1" width="1"/> Mon, 07 Feb 2011 17:01:00 -0500 Monologue: Joe Audette: mojoPortal 2.3.6.2 Released http://feedproxy.google.com/~r/mojoportal/~3/mMlDBXzv7VM/mojoportal-2362-released.aspx <p> I'm happy to announce the release of <a href="http://www.mojoportal.com/">mojoPortal</a> 2.3.6.2, available now on our <a href="http://www.mojoportal.com/download.aspx">download page</a>.</p> <p> This is a minor release with just a few bug fixes, the primary purpose of this release is to fix a problem in our Shared Files feature and in our alternate File Manager when running under Medium Trust hosting. In the previous release of version 2.3.6.1 we had changed to strong name signed assemblies for NeatUpload and for the NeatUpload Greybox Progress bar. This strong signed version of NeatUpload&nbsp;allows it to be installed in the GAC (Global Assembly Cache) on the server so it can work in Medium Trust, but there was a bug in the previous release because the NeatUpload.GreyboxProgressBar.dll was not compiled with the AllowPartiallyTrustedCallers attribute so it caused an error under Medium Trust. This release addresses that problem, it just required adding the needed attribute and re-compiling the NeatUpload.GreyboxProgressBar.dll. Since most shared hosting uses Medium Trust we felt it important to get a fix out for this quickly.</p> <h3> Fixed Bugs</h3> <ul> <li> Fix error under Medium Trust in Shared Files and in the Alternate File Manager</li> <li> Fix bug in SQL CE data layer when creating new sites</li> <li> Fix bug where file manager did not overwrite existing files</li> <li> Fix redirect bug in Search Input that could happen on blog detail pages</li> <li> Fix bug in blog when using google maps (this bug was introduced in version 2.3.6.1 when we added an option to use Bing maps in the blog)</li> </ul> <h3> Other Stuff</h3> <ul> <li> Upgrade from CKeditor 3.5 to 3.5.1</li> <li> Updated Italian resources from Diego Mora</li> <li> Updated Persian resources from Asad Samarian</li> <li> Updated Portuguese (Brazil) resources from Fabio Mastaler</li> <li> Updated French resources from Yves Jadin</li> <li> Updated German resources from Jan Aengenvoort</li> <li> Updated Spanish resources from German Barbosa</li> <li> New partial Arabic translation from Sameer Alomari</li> </ul> <p> &nbsp;</p> <p> <a href="http://twitter.com/joeaudette" style="color: #6297bc;">Follow us on twitter</a> or&nbsp;<a href="http://www.facebook.com/pages/mojoPortal/146363180114" style="color: #6297bc;">become a fan on Facebook</a></p> <p> <a href="http://twitter.com/joeaudette" style="color: #6297bc;"><img alt="follow us on twitter" height="60" src="http://www.mojoportal.com/Data/Sites/1/media/newsletterfiles/twitter.png" style="border: 0px initial initial;" width="60" /></a> <a href="http://www.facebook.com/pages/mojoPortal/146363180114" style="color: #6297bc;"><img alt="become a fan on facebook" height="60" src="http://www.mojoportal.com/Data/Sites/1/media/newsletterfiles/facebook.png" style="border: 0px initial initial;" width="60" /></a></p> <p> &nbsp;</p> <br /><a href='http://www.mojoportal.com/mojoportal-2362-released.aspx'>Joe Audette</a>&nbsp;&nbsp;<a href='http://www.mojoportal.com/mojoportal-2362-released.aspx'>...</a><a class='tweetthislink' title='Tweet This' href='http://twitter.com/home?status=mojoPortal+2.3.6.2+Released+http%3a%2f%2fwww.mojoportal.com%2fmojoportal-2362-released.aspx'><img src='http://www.mojoportal.com/Data/SiteImages/tweetthis3.png' alt='Tweet This' /></a><div class='fblikebutton'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3a%2f%2fwww.mojoportal.com%2fmojoportal-2362-released.aspx&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;height=35&amp;action=like&amp;colorscheme=light' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden;width:450px; height:35px;'></iframe></div> Mon, 07 Feb 2011 14:07:00 -0500 Monologue: Michael Hutchinson: MonoDevelop Tips: Import Type http://mjhutchinson.com/journal/2011/02/08/monodevelop_tips_import_type <p>One of my favourite features that we added to MonoDevelop 2.4 is the "import Type" command. It is accessed using the keybinding Ctrl-Alt-Space, and shows a list of all types in all namespaces in all referenced assemblies:</p> <p><a href="http://mjhutchinson.com/files/images/md-tips/import-type.png" rel="lightbox[md_tips_import_type]" title="The completion list for the Import Type command"><img src="http://mjhutchinson.com/files/images/md-tips/t/import-type.png" alt="The completion list for the Import Type command" style="max-width:98%; display:block;margin-left:auto;margin-right:auto;" /></a></p> <p>You can use our <a href="http://mjhutchinson.com/journal/2011/02/07/completion_list_filtering"/>completion list filtering</a> to find the type you're looking for, then, when you commit the selection from the list, MonoDevelop automatically adds the "using" statement to the file. For example, using StringBuilder is as easy as <ctrl-alt-space>StrB<space> even if you don't yet have <span class="geshifilter"><code class="text geshifilter-text">using System.Text;</code></span> at the top of the file.</space></ctrl-alt-space></p> Mon, 07 Feb 2011 12:00:09 -0500 Monologue: Michael Hutchinson: MonoDevelop Tips: Completion List Filtering http://mjhutchinson.com/journal/2011/02/07/completion_list_filtering <p>MonoDevelop makes it really easy to search the code completion list. As you type, it breaks down the string you enter into word fragments on camelCase boundaries, then matches these fragments against the beginnings of the words in the completion list. The list is filtered to show only the items that match, and the matched parts are helpfully highlighted in blue:</p> <p><a href="http://mjhutchinson.com/files/images/md-tips/completion-matching.png" rel="lightbox[md_tips_import_type]" title="Completion list filtering"><img src="http://mjhutchinson.com/files/images/md-tips/completion-matching.png" alt="Completion list filtering" style="max-width:98%; display:block;margin-left:auto;margin-right:auto;" /></a></p> <p>This makes it much faster to select items from the list, since you can uniquely select items in the list without typing them out in full or using the arrow keys. For example, "StBu" will match "StringBuilder". It's also very useful for searching for items in the list if you're not sure what you need. For example "Str" will match both "StringComparison" and "ToString" and anything else with "Str" in its name.</p> <p>If you use completion matching to filter the list then refine your selection with the arrow keys, when you commit an item from the list (using space, enter, tab, etc.), MonoDevelop will remember your choice. The next time you type the same string, it will automatically select the item you chose the previous time. However, if you type the exact name of something in the completion list, it will always match that item.</p> Sun, 06 Feb 2011 21:00:27 -0500 Planet OpenMoko: openmoko-fr: Communauté Francophone : Janvier 2011 http://openmoko-fr.org/blog/index.php?post/2011/02/05/Communaut%C3%A9-Francophone-%3A-Janvier-2011 <p>Voici les nouvelles du front Openmoko, avec un peu de retard.</p> <p><img title="illustration_201002.png" alt="" src="http://openmoko-fr.org/blog/public/images/stats/illustration_201101.png" /></p> <!-- ################ ACTUALITES ################ --> <h1>Actualités</h1> <p>Voici une sélection d'informations intéressantes :</p> <ul> <li>Sortie de <a hreflang="fr" href="http://linuxfr.org/2011/01/30/27826.html">EFL version 1.0</a></li> <li>Une <a href="http://wiki.openmoko.org/wiki/FOSDEM_2011">page wiki FOSDEM 2011</a> a été créée sur openmoko.org</li> <li>Dernières <a href="http://blog.shr-project.org/2011/02/news-before-fosdem.html">nouvelles de SHR</a> : il est question de FSO, SMS, VoIP, EFL 1.0, Palm Pre, HTC Dream et Nokia N900</li> <li>Sorite de <a href="http://openmoko-public-mailinglists.1958.n2.nabble.com/qtmoko-v32-experimental-tp5941666p5941666.html">Qtmoko v32</a></li> <li><a hreflang="fr" href="http://www.ed-diamond.com/produit.php?ref=os1&id_rubrique=12&caracteristique=1-2-&caracdisp=2-12-">Open Silicium</a> est un nouveau magazine des éditions Diamond dédié à l'embarqué et à l'opensource</li> </ul> <p>Consultez également la dernière page <a hreflang="en" href="http://wiki.openmoko.org/wiki/Community_Updates/current">Community Updates</a> pour plus d'informations.</p> <!-- ################ BLOG ################ --> <p><a hreflang="fr" href="http://openmoko-fr.org/blog"><img title="blog.png" alt="" src="http://openmoko-fr.org/blog/public/images/icones/blog.png" /></a></p> <p>En janvier a été publiée l'annonce du <a href="http://openmoko-fr.org/blog/index.php?post/2011/01/11/FOSDEM-2011">FOSDEM 2011</a> qui se termine en ce moment même. <br />J'ai une pensée pour les chanceux qui s'y trouvent, comme Asthro qui nous a fait un <a href="http://openmoko-fr.org/blog/index.php?post/2011/02/06/En-direct-du-fosdem">retour en direct</a>.</p> <p>Asthro avait également rédigé un article sur le nouveau <a href="http://openmoko-fr.org/blog/index.php?post/2011/02/02/Un-magnifique-theme-pour-QtMoko">thème Faenqo pour QtMoko</a>.<br />C'est vrai qu'il est plutôt réussi :</p> <p><img title="Theme CyberEsprit QtMoko, fév. 2011" alt="" src="http://openmoko-fr.org/blog/public/images/.14f997441b41eb670713873ff90d7b4d_m.jpg" /></p> <!-- ################ FORUM ################ --> <p><a hreflang="fr" href="http://openmoko-fr.org/blog/index.php?post/2011/02/05/../../forum/"><img title="forum.png" alt="" src="http://openmoko-fr.org/blog/public/images/icones/forum.png" /></a></p> <p>Voici l'état actuel du forum :</p> <ul><li>15 744 messages</li> <li>783 inscrits</li> <li>1 383 discussions</li> </ul> <p>Souhaitons la bienvenue à : <a href="http://openmoko-fr.org/blog/index.php?post/2011/02/05/../../forum/viewtopic.php?pid=15663#p15663">lsam</a>, <a href="http://openmoko-fr.org/blog/index.php?post/2011/02/05/../../forum/viewtopic.php?pid=15766#p15766">WhilelM</a> et <a href="http://openmoko-fr.org/blog/index.php?post/2011/02/05/../../forum/viewtopic.php?pid=15692#p15692">robin</a></p> <p>Voici une sélection non-exhaustive des nombreuses discussions du mois.</p> <p><strong>Communauté</strong> :</p> <ul> <li><a href="http://openmoko-fr.org/blog/index.php?post/2011/02/05/../../forum/viewtopic.php?id=1402">Bonjour !</a> (5 messages)</li> <li><a href="http://openmoko-fr.org/blog/index.php?post/2011/02/05/../../forum/viewtopic.php?id=1396">Nouveau et emballé</a> (3 messages)</li> <li><a href="http://openmoko-fr.org/blog/index.php?post/2011/02/05/../../forum/viewtopic.php?id=1379">Cyberesprit se présente</a> (1 messages)</li> <li><a href="http://openmoko-fr.org/blog/index.php?post/2011/02/05/../../forum/viewtopic.php?id=1400">FOSDEM 2011</a> (3 messages)</li> </ul> <p> <strong>Logiciels</strong> :</p> <ul> <li><a href="http://openmoko-fr.org/blog/index.php?post/2011/02/05/../../forum/viewtopic.php?id=1377">Neoinput</a> (9 messages)</li> <li><a href="http://openmoko-fr.org/blog/index.php?post/2011/02/05/../../forum/viewtopic.php?id=1394">Android 1.5 "impossible d'installer ... sur ce téléphone"</a> (8 messages)</li> <li><a href="http://openmoko-fr.org/blog/index.php?post/2011/02/05/../../forum/viewtopic.php?id=1397">[QtMoko] v31 : pb Wi-Fi et autonomie ?</a> (8 messages)</li> <li><a href="http://openmoko-fr.org/blog/index.php?post/2011/02/05/../../forum/viewtopic.php?id=1393">QtMoko v31, un peu paumé...</a> (7 messages)</li> <li><a href="http://openmoko-fr.org/blog/index.php?post/2011/02/05/../../forum/viewtopic.php?id=1341">[QtMoko] nouveau theme : AsthroMod</a> (7 messages)</li> <li><a href="http://openmoko-fr.org/blog/index.php?post/2011/02/05/../../forum/viewtopic.php?id=865">SHR-U et GPRS</a> (6 messages)</li> <li><a href="http://openmoko-fr.org/blog/index.php?post/2011/02/05/../../forum/viewtopic.php?id=1401">QtMoko v32 (expérimental)</a> (6 messages)</li> <li><a href="http://openmoko-fr.org/blog/index.php?post/2011/02/05/../../forum/viewtopic.php?id=1398">[QT V31]Pb connection web</a> (5 messages)</li> <li><a href="http://openmoko-fr.org/blog/index.php?post/2011/02/05/../../forum/viewtopic.php?id=1385">nouvelle SHR-T</a> (4 messages)</li> <li><a href="http://openmoko-fr.org/blog/index.php?post/2011/02/05/../../forum/viewtopic.php?id=1384">[SHR-T] internet</a> (3 messages)</li> <li><a href="http://openmoko-fr.org/blog/index.php?post/2011/02/05/../../forum/viewtopic.php?id=1357">Android Froyo daily : 05-10-2010</a> (3 messages)</li> <li><a href="http://openmoko-fr.org/blog/index.php?post/2011/02/05/../../forum/viewtopic.php?id=757&p=6">[SHR] pymail : Notifier de mail</a> (2 messages)</li> </ul> <p><strong>Matériels</strong> :</p> <ul> <li><a href="http://openmoko-fr.org/blog/index.php?post/2011/02/05/../../forum/viewtopic.php?id=1334&p=3">GTA04</a> (18 messages)</li> <li><a href="http://openmoko-fr.org/blog/index.php?post/2011/02/05/../../forum/viewtopic.php?id=1391">[touch] ecran tactile pété ... moi aussi</a> (7 messages)</li> <li><a href="http://openmoko-fr.org/blog/index.php?post/2011/02/05/../../forum/viewtopic.php?id=1390">Geeksphone à 159€ : bonne affaire ?</a> (5 messages)</li> <li><a href="http://openmoko-fr.org/blog/index.php?post/2011/02/05/../../forum/viewtopic.php?id=1395">De la concurrence pour Always Innovating</a> (3 messages)</li> <li><a href="http://openmoko-fr.org/blog/index.php?post/2011/02/05/../../forum/viewtopic.php?id=1365">(VDS) Open Moko FreeRunner Paris</a> (1 messages)</li> </ul> <p><strong>Projets</strong> :</p> <ul> <li><a href="http://openmoko-fr.org/blog/index.php?post/2011/02/05/../../forum/viewtopic.php?id=1351&p=4">MiniMoko : smartphone Openmoko / Allways Innovating</a> (1 messages)</li> <li><a href="http://openmoko-fr.org/blog/index.php?post/2011/02/05/../../forum/viewtopic.php?id=1269&p=3">Sleepytux : Une application android pour définir des profils. <img src="http://openmoko-fr.org/blog/themes/default/smilies/smile.png" alt=":)" class="smiley" /></a> (25 messages)</li> </ul> <p><strong>Divers</strong> :</p> <ul> <li><a href="http://openmoko-fr.org/blog/index.php?post/2011/02/05/../../forum/viewtopic.php?id=1387">nouvelle freebox - freephonie</a> (6 messages)</li> <li><a href="http://openmoko-fr.org/blog/index.php?post/2011/02/05/../../forum/viewtopic.php?id=1013&p=4">Geek'sPhone one un concurrent du FreeRunner?</a> (4 messages)</li> <li><a href="http://openmoko-fr.org/blog/index.php?post/2011/02/05/../../forum/viewtopic.php?id=1403">Linuxconf.au, conférence sur la téléphonie</a> (2 messages)</li> <li><a href="http://openmoko-fr.org/blog/index.php?post/2011/02/05/../../forum/viewtopic.php?id=1399">spammeur(s) supprimé(s)</a> (1 messages)</li> </ul> <!-- ################ WIKI ################ --> <p><a hreflang="fr" href="http://openmoko-fr.org/blog/index.php?post/2011/02/05/../../wiki/"><img title="wiki.png" alt="" src="http://openmoko-fr.org/blog/public/images/icones/wiki.png" /></a></p> <p> RAS en janvier !</p> <!-- ################ STATS ################ --> <h1>Statistiques du site</h1> <ul><li><strong>Graphique des visites :&nbsp;</strong></li> </ul> <p><img title="usage_201101.png" alt="" src="http://openmoko-fr.org/blog/public/images/stats/usage_201101.png" /></p> <ul><li><strong>Nombre de visites par mois :&nbsp;</strong></li> </ul> <div> <a href="http://openmoko-fr.org/blog/public/images/stats/usage_summary_201101.png"><img title="usage_summary_201101.png" alt="" src="http://openmoko-fr.org/blog/public/images/stats/.usage_summary_201101_m.jpg" /></a> (Cliquez sur l'image pour l'agrandir) </div> <ul><li><strong>Répartition par pays :&nbsp;</strong></li> </ul> <p><img title="ctry_usage_201101.png" alt="" src="http://openmoko-fr.org/blog/public/images/stats/ctry_usage_201101.png" /></p> <ul><li><strong>Visites par jour : </strong></li> </ul> <p><img title="daily_usage_201101.png" alt="" src="http://openmoko-fr.org/blog/public/images/stats/daily_usage_201101.png" /></p> <ul><li><strong>Statistiques du forum : </strong></li> </ul> <p><img title="stats_forum_201101.jpg" alt="" src="http://openmoko-fr.org/blog/public/images/stats/stats_forum_201101.jpg" /></p> <ul><li><strong>Les statistiques du wiki : </strong></li> </ul> <p><img title="stats_wiki_201101.jpg" alt="" src="http://openmoko-fr.org/blog/public/images/stats/stats_wiki_201101.jpg" /></p> <!-- ################ BILAN ################ --> <h1>Bilan</h1> <p>Je n'ai pas grand chose à dire ici (et je veux qu'on le sache ! <img src="http://openmoko-fr.org/blog/themes/default/smilies/wink.png" alt=";-)" class="smiley" /> ) si ce n'est que j'attends avec impatience les retours du FOSDEM 2011.<br />Une fois de plus je n'y suis pas allé je vais encore le vivre par procuration.</p> <p>Mais l'année prochaine j'en suis sûr, ce sera la bonne !</p> Sun, 06 Feb 2011 17:17:00 -0500 Monologue: miguel de icaza: MonoMac hotfix http://feedproxy.google.com/~r/MiguelsOsxAndIosBlog/~3/MnCkJNI9KaU/Feb-06.html <p><a href="https://github.com/hbons">Hylke Bons</a> warned us of a limitation in our MonoMac packager so we are issuing a new MonoMac refresh that fixes various bugs: <ul> <li>Supports using Mono.Posix.dll in packaged bundles. <li>Supports using System.Drawing in packaged bundles. <li>Fixes various BCL P/Invokes problems (we forgot to ship the config file :-) <li>No longer requires Mono 2.8.1, works with any mono 2.8+ </ul> <p>Follow the <a href="http://mono-project.com/MonoMac">standard instructions</a> to update your MonoMac add-in. <p>Hylke then got his <a href="https://github.com/hbons/SparkleShare/tree/master/SparkleShare/Mac/SparkleShare">native Mac client</a> for <a href="http://twitter.com/sparkleshare">SparkleShare</a> (a DropBox-like system, but backed up by Git or any Git hosting sit) working as a bundle on OSX.<img src="http://feeds.feedburner.com/~r/MiguelsOsxAndIosBlog/~4/MnCkJNI9KaU" height="1" width="1"/> Sun, 06 Feb 2011 08:38:00 -0500 Monologue: Andreia Gaita: Ooops, Is It FOSDEM Time Already? http://blog.worldofcoding.com/2011/02/ooops-is-it-fosdem-time-already.html <p>I guess it is! As always, FOSDEM is great fun, and once again we had a Mono room with lots of great talks! Especially enjoyed Mark Probst and Jo Shields talks, now I know what happens when the deb folks get a hold on our packages, and why we never get our finalizers called in order in Moonlight!</p><p>As for my talk, the important bits were that I didn't go over the time, nobody snored, and I made sure there were plenty of lolcats! <a href="http://spoiledcat.net/files/mono_cpp_interop.pdf">Get the slides here</a>.</p><p>Right now I'm watching a very cool talk about the Go language while my laptop is charging plugged in to a very interesting combination of a triple connected to an adapter (stupid third pin on belgium plugs) connected to a power extension. Nothing has exploded yet.</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14338506-2033681926906223045?l=blog.worldofcoding.com' alt='' /></div> Sun, 06 Feb 2011 06:50:00 -0500 Planet OpenMoko: openmoko-fr: En direct du fosdem http://openmoko-fr.org/blog/index.php?post/2011/02/06/En-direct-du-fosdem <p>Un petit message pour vous donner un petit apperçu du FOSDEM. J'écris en pleine conférence sur Qt pour mobiles.</p> <p><img src="http://openmoko-fr.org/blog/public/images/.4362326634_b55e00c8d8_b_m.jpg" alt="" title="FOSDEM 2011, fév. 2011" /></p> <p>J'ai fait le tour des stands, on trouve plein de choses sympatoches, et on rencontre des gens qui ont plein d'infos.</p> <p>Nos amis de TuxBrain sont là, avec plein de matériel (le NanoNote entre autre), et se présentent cette année sous la bannière de Hackable:Devices, qui est une plateforme regroupant les acteurs commerciaux du matériel libre (TuxBrain, KD85, Golden Delicious, Bearstech...)&nbsp;</p> <p>J'ai pu voir et jouer avec &nbsp;les protos de OpenPandora, (belle bête), du MilkyMist One etc.</p> <p>C'est à côté que j'ai rencontré Dr Nicholaus Schaller, qui présente le GTA04 ! Enfin un proto... C'est pas encore fonctionnel, il y a quelques problèmes d'alimentation, elle fonctionne entre 2secondes et 10mn ! Mais le projet sera dispo à temps. Il y aura aussi un port série (un vrai !) directement sur la carte. Le Chip GSM sera bien le Option 601, qui a une tronche phénoménale.&nbsp;</p> <p>Bref, que du bon, autant en terme de contenu (matériel) que d'aspect social (organisation Hackable:Device)</p> <p>Voilà pour maintenant, la conférence commence, je reposte d'ici ce soir, pour la buzz/autonofix party de ce midi.&nbsp;</p> <p>(Désolé j'ai pas d'APN aujourd'hui)</p> <p>&nbsp;</p> Sun, 06 Feb 2011 05:15:00 -0500 Monologue: Jordi Mas: gbrainy on-line web client http://gent.softcatala.org/jmas/bloc/pivot/entry.php?id=464&w=jordis_english_bloc <p> With the growing popularity of tablet PCs and also Mac computers I get more and more frequently e-mails asking when a version for Mac, Android or iPhone will be released. With all the effort that the Mono team has put recently on mobile platforms is certainly possible to port gbrainy into these platforms. If somebody is interested in doing so, I will be more than happy to assist them. <span class="short_text"><span class="hps">Meanwhile</span><span></span></span>, I'm going to invest the little free time that I have in the GTK and web versions. </p> <p> During last summer I did work on proof of concept of creating a web client for gbrainy. Since then could not pay much attention to it due the lack of time, but in the past weeks I had some time and decide to complete a first version. </p> <p> Today I'm happy to announce <a target="_blank" href="http://www.gbrainy.com">gbrainy.com,</a> a web site where you can play with the gbrainy web version.<br /> </p> <p style="text-align:center;"><img src="http://gent.softcatala.org/jmas/bloc/images/webclient.png" style="border:0px solid" title="" alt="" class="pivot-image" /></p>&nbsp; </p> <p> <strong> The road ahead</strong><br /> The current version is far from providing the level of user experience that I would like, but it is as starting point and my intention is to keep working on it. If you have any ideas, please feel free to share them in the <a target="_blank" href="http://groups.google.com/group/gbrainy">gbrainy public group</a>. During the next days I will publish a roadmap for the next versions of gbrainy. </p> <p> I'm very excited to be able to expand the gbrainy user's community to the web and I'm looking forward to develop synergies between the GTK and web version, specially on the area of on-line gaming. </p> <p> On the software side, <a target="_blank" href="http://git.gnome.org/browse/gbrainy/tree/src/Clients/WebForms">the web client</a> is just another consumer of <a target="_blank" href="http://git.gnome.org/browse/gbrainy/tree/src">gbrainy.Core</a> services and already existing games. The true multiplatform spirit behind Mono, a decent <a target="_blank" href="http://en.wikipedia.org/wiki/Separation_of_concerns">separation of concerns</a> and a service based architecture (build around the <a target="_blank" href="http://martinfowler.com/articles/injection.html">service locator pattern</a>) help to accomplish this. I keep planing on making gbrainy more platform neutral and add the same time keep enhancing the user experience.</p> Sun, 06 Feb 2011 04:07:00 -0500 Monologue: Michael Hutchinson: MonoDevelop Tips: Key Bindings http://mjhutchinson.com/journal/2011/02/06/key_bindings <p>Key bindings are an important part of an IDE, as they make it possible to work efficiently using the keyboard. A key binding is a combination of keys that, when pressed simultaneously, activates an IDE command directly. This post explains the key binding system in MonoDevelop, how to find out what key bindings are available, and how to customize the bindings to suit your needs.</p> <h3>The Key Bindings Panel</h3> <p>To find what the key binding for a particular command is, you can look at the menu item for that command, or hover over the toolbar button. However, not all commands are exposed via menus and buttons. For a complete list, go to the <strong>Preferences</strong> dialog (<em>MonoDevelop->Preferences</em> on Mac, <em>Tools->Options</em> on Windows, <em>Edit->Preferences</em> on Linux), then the <em>General->Key Bindings</em> panel. This allows you to find existing key bindings, or modify the keybindings to your liking.</p> <p><a href="http://mjhutchinson.com/files/images/md-tips/keybindings-panel.png" rel="lightbox[md_tips_keybindings]" title="The key bindings panel in MonoDevelop"><img src="http://mjhutchinson.com/files/images/md-tips/t/keybindings-panel.png" alt="The key bindings panel in MonoDevelop" style="max-width:98%; display:block;margin-left:auto;margin-right:auto;" /></a></p> <p>The panel has various parts:</p> <dl> <dt><strong>Scheme selector</strong></dt> <dd> A key binding scheme is the entire set of key bindings in the IDE. There are various built-in schemes that can be chosen using the combo at the top of the panel. If you would like to contribute a new scheme, or have suggestions for improving one of the built-in schemes, please <a href="http://monodevelop.com/Developers/Reporting_Bugs">file a bug report</a>. MonoDevelop currently does not support saving custom schemes, but you can find the scheme in MonoDevelop's preferences directory. On Mac it's <span class="geshifilter"><code class="text geshifilter-text">~/.config/MonoDevelop/KeyBindingsMac.xml</code></span>, on Windows it's <span class="geshifilter"><code class="text geshifilter-text">AppData\Roaming\MonoDevelop\KeyBindings.xml</code></span>, and on Linux it's <span class="geshifilter"><code class="text geshifilter-text">~/.config/MonoDevelop/KeyBindings.xml</code></span>.<br /> </dd> <dt><strong>Searchable list of bindings</strong></dt> <dd> The list of bindings can be searched to see what commands are available, and what key bindings they have. The search take into account the command's name, description and binding.<br /> </dd> <dt><strong>Conflict indicator</strong></dt> <dd> If multiple commands have the same keybinding, an indicator is shown with a drop-down list of the conflicting bindings. An indicator is also shown when the command is selected in the list.<br /> </dd> <dt><strong>Binding editor</strong></dt> <dd> The binding editor shows the currently selecting binding in the list. To edit the binding, simply place focus in the editor box and type the new keybinding. If you press multiple combinations in succession, it will show a "chord" of two bindings. Press Backspace to clear the binding. When you are happy with the new binding, press the Apply button.<br /> </dd> </dl> <h3>Key Combinations and Chords</h3> <p>A key combination is a unique combination of a key and the keyboard modifiers that are active when the key is pressed - any combination of control, shift, alt/opt, super/windows/command. A key combination can be "bound" to a command, and this means that when the combination is pressed, then the command will be run. Keys without modifiers are valid "combinations" for binding too, which is useful for the function keys (F12 etc), arrow keys, the Page Up key, and so on. However it's a bad idea to bind keys that produce text/character input, since key bindings have top priority and therefore will prevent you from entering those characters.</p> <p>It's not currently possible to bind more than one combination to each command, or more than one command to each unique combination. However, if you start to run out of key combinations, you can use chords. A keybinding chord is composed of two key combinations in succession. The first one, called a "mode" in emacs, can be shared by several chords, but this means it cannot be bound by itself, because that would conflict with the chords. For example, if I bound the command that shows the debugger locals pad to the "Ctrl-D Ctrl-L" chord, then I could not bind "Ctrl-D" by itself, but I could bind "Ctrl-L". I could create other keybindings using the same mode, such as "Ctrl-D Ctrl-S" for the debugger stack pad.</p> <h3>The Default Key Bindings</h3> <p>When we design the default key bindings for MonoDevelop, there are several important things we take into consideration.</p> <ul> <li>It's essential to use the core operating system keybindings where applicable - cut, copy, paste, and so on.</li> <li>It's good to have compatibility with other popular IDEs and text editors where possible.</li> <li>It's important to use the more accessible keybindings for the common commands that are more likely to be used from the keyboard.</li> <p>Unfortunately, not all editors and operating systems have the same keybindings, and they sometimes conflict with each other, so it's difficult to find a good balance. </p></ul> <p>MonoDevelop's default keybindings for Windows and Linux are the same, since GNOME and Windows have the same core keybindings. Additional bindings are mostly taken from various Visual Studio schemes, the GEdit text editor, Resharper, and SharpDevelop. MonoDevelop's default Mac keybindings are completely different, and mostly based on Xcode, with some from TextMate.</p> Sat, 05 Feb 2011 19:47:10 -0500 Monologue: Michael Barker: A Non-Blocking ConcurrentHash(Map|Trie) http://mikes-tech.blogspot.com/2011/02/non-blocking-concurrenthashmaptrie.html <span class="Apple-style-span" style="font-size: large;">Introducing ConcurrentHashTrie</span><br /><br />While spending some time looking at Clojure's concurrency model, I did a little bit of research into their <a href="http://blog.higher-order.net/2009/09/08/understanding-clojures-persistenthashmap-deftwice/">persistent collection implementation</a>&nbsp;that uses <a href="http://en.wikipedia.org/wiki/Hash_array_mapped_trie">Bagwell's Hash Array Mapped Tries</a>. &nbsp;After a little bit of thought it occurred to me that you could apply the persistent collection model to an implementation of <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;">ConcurrentMap</span>. &nbsp;The simple solution would be to maintain a reference to a persistent map within a single <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;">AtomicReference</span> and apply a <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;">compareAndSet</span>&nbsp;(CAS) operation each time an update to the map was performed. &nbsp;In Clojure terms, a <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;">ref</span> and <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;">swap!</span> operation. &nbsp;However a typical use of <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;">ConcurrentMap</span> is for a simple cache in a web application scenario. &nbsp;With most web applications running with fairly significant numbers of threads (e.g. 100's) it's conceivable that the level of contention on a single compare and set operation would cause issues. &nbsp;Non-blocking concurrent operations like compare and set work really well at avoiding expensive user/kernel space&nbsp;transitions, but tend to break down when the number of mutator threads exceeds the number of available cores*. &nbsp;In fact thread contention on any concurrent access control structure is a killer for performance. &nbsp;The <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;">java.util.ConcurrentHashMap</span> uses lock-striping as a mechanism to reduce contention on writes. &nbsp;If absolutely consistency across the <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;">ConcurrentMap</span> was&nbsp;sacrificed (more information below), then a form of "CAS striping" could be applied to the <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;">ConcurrentHashTrie</span>&nbsp;to reduce contention. &nbsp;This is implemented by replacing the <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;">AtomicReference</span> with an <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;">AtomicReferenceArray</span> and using a hash function to index into the array.<br /><br /><span class="Apple-style-span" style="font-size: large;">The Implementation</span><br /><br />There are a number of implementations of the Bagwell Trie in JVM languages, however I couldn't find an implementation in plain old Java, <a href="http://code.google.com/p/teremail/source/browse/commons/src/main/java/org/teresoft/collections/concurrent/ConcurrentHashTrie.java">so I wrote one myself</a>. &nbsp;For the persistent collection it follows a fairly standard polymorphic tree design.<br /><br />The core type of Node has 3 implementations. &nbsp;The key one is the BitMappedNode, which handles the vast majority of branch nodes and implements the funky hash code partition and population count operations that make up the Bagwell Trie structure. &nbsp;LeafNode holds the actual key/value pairs and ListNode is there to handle full collisions. &nbsp;The key mutator methods of <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;">ConcurrentMap</span>: <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;">put</span>, <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;">putIfAbsent</span>, <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;">remove</span> and <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;">replace</span> are implemented using CAS operations on the <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;">rootTable</span>, which is an <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;">AtomicReferenceArray<node></node></span>.<br /><br />As mentioned earlier, the <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;">ConcurrentHashTrie</span> is not consistent for operations that occur across the entire structure. &nbsp;While at first look this seems terrible, in practical terms it is not really an issue. &nbsp;The 2 main operations this impacts are size and iteration. &nbsp;The size operation in the ConcurrentHashTrie is not O(1), but is O(n) where n is the size of the <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;">rootTable</span> (or the number of stripes). &nbsp;Because it has to iterate across all of the nodes in the <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;">rootTable</span> (it doesn't need to traverse down the trees) and add all of their sizes it possible for the size of a Node to change after it has been read but before the result has been calculated. &nbsp;Anyone that has worked a concurrent structure before has probably found that the <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;">size</span> value is basically useless. &nbsp;It is only ever indicative, as the size could change right after the method call returns, so locking the entire structure while calculating the size doesn't bring any benefit. &nbsp;Iteration follows the same pattern. &nbsp;It is possible that a node could have changed after being iterated over or just before being reached. &nbsp;However, it doesn't really matter as it is not really any different to the map changing just before iteration started or just after it completes (as long as iteration doesn't break part way through). &nbsp;Note that <a href="http://high-scale-lib.sourceforge.net/">Cliff Click's NonBlockingHashMap</a> exhibits similar behaviour during iteration and size operations.<br /><br /><span class="Apple-style-span" style="font-size: large;">Performance, The Good, The Bad and the... well mostly Bad</span><br /><br />Cliff Click kindly included a performance testing tool with his high scale library which I've <a href="http://code.google.com/p/teremail/source/browse/commons/src/test/java/perf_hash_test.java">shamelessly ripped off</a> and used to benchmark my implementation. &nbsp;Apparently he borrowed some code from Doug Lea to implement it. &nbsp;I changed a sum total of 1 line. &nbsp;Writing benchmarks, especially for concurrent code, is very tough (probably harder than writing the collection itself), so borrowing from the experts gives me some confidence that the numbers I produce will be useful.<br /><br />So onto the results:<br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/_uOuAnEfuC1w/TU1q7zZW0UI/AAAAAAAAMqc/X9eEOebRo_g/s1600/perf_chm_1000_75.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="323" src="http://3.bp.blogspot.com/_uOuAnEfuC1w/TU1q7zZW0UI/AAAAAAAAMqc/X9eEOebRo_g/s640/perf_chm_1000_75.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/_uOuAnEfuC1w/TU1z47SOYcI/AAAAAAAAMqk/a76krCHaLeA/s1600/perf_chm_1000000_99.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="324" src="http://3.bp.blogspot.com/_uOuAnEfuC1w/TU1z47SOYcI/AAAAAAAAMqk/a76krCHaLeA/s640/perf_chm_1000000_99.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/_uOuAnEfuC1w/TU109ooxA3I/AAAAAAAAMqo/4AkKYJl8zQM/s1600/perf_chm_50000_90.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="324" src="http://3.bp.blogspot.com/_uOuAnEfuC1w/TU109ooxA3I/AAAAAAAAMqo/4AkKYJl8zQM/s640/perf_chm_50000_90.png" width="640" /></a></div><br />Do'h!!<br /><br />Quite a bit slower than the <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;">java.util.ConcurrentHashMap</span>. &nbsp;I didn't even bother comparing to the <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;">NonBlockingHashMap</span> from the high scale library, the numbers would be too&nbsp;embarrassing.<br /><br />The <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"><a href="http://code.google.com/p/teremail/source/browse/commons/src/main/java/org/teresoft/collections/concurrent/ConcurrentHashTrie2.java">ConcurrentHashTrie2</a></span> is an alternative implementation that I experimented with. &nbsp;I suspected the polymorphic behaviour of the tree nodes was causing a significant performance hit due to a high number of v-table calls. &nbsp;The alternate implementation avoids the v-table overhead by packing all three behaviours into a single class (in a slight dirty fashion). &nbsp;I stole a couple of bits from the level variable to store a discriminator value. &nbsp;The Node class switches on the discriminator to determine the appropriate behaviour. &nbsp;As the results show, it didn't help much. &nbsp;I ran a number of other permutations and the results were largely the same.<br /><br /><span class="Apple-style-span" style="font-size: large;">Conclusion</span><br /><br />So a question remains, is the approach fundamentally flawed or is my code just crap? &nbsp;I suspect the major cost is caused by heavy amount of memory allocation, copying and churn through the CPU cache caused by the path-copy nature of mutation operations. &nbsp;Also the read path isn't particularly quick. &nbsp;With a reasonably full map, reads will likely need to travels a couple of levels down the tree. &nbsp;With the traditional map, its a single hash and index operation.<br /><br />* I really need a proper citation for this. &nbsp;However imagine 16 cores and a 100 threads trying to apply a compare and set operation to the same reference. &nbsp;Unlike a lock which will park the threads that fail to acquire the lock, non-blocking algorithms require the thread that fails to apply its change to discard its result and recompute its result, effectively spinning until is succeeds. &nbsp;With more CPU bound threads than cores, its possible that the system will end up thrashing.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6204005997345471829-5717383220432558928?l=mikes-tech.blogspot.com' alt='' /></div> Sat, 05 Feb 2011 11:46:00 -0500 Monologue: Aaron Bockover: Changing Roles http://abock.org/2011/02/04/changing-roles <p>About 6 years ago I started working for Novell to develop Banshee into much of what it has become today. I'm quite fond its evolution, but perhaps more proud of its community. As is likely obvious, I have not been too technically involved with Banshee over the past year. The last major thing I developed to production was the Amazon MP3 store integration and downloader, which was over the summer of 2010 (and is currently bringing in a respectable amount of revenue to the GNOME foundation!); yet Banshee has kept on growing - at a fantastic and exciting rate. This is all thanks to the numerous people actively and passionately involved in the project.</p> <p>Over the last two years I found my duties leaning much more towards the Linux distribution side of things at Novell - specifically engineering of SUSE MeeGo this year, and SUSE Moblin the year before. My hands were in pretty much every aspect of the projects, and I found myself working closely with so many great people, many with whom I had not previously worked. This includes talent from both Novell and Intel.</p> <p>Out of the MeeGo project arose an opportunity for Banshee as well. Working closely with the team at Intel, it became the default and integrated media player not just for our SUSE version, but also for Intel's reference version of MeeGo for netbooks.</p> <p>Recently I found myself faced with an opportunity to work with a new set of talented people on something fresh. Today was my last day at Novell, and next week I will be starting at <a href="http://rd.io">Rdio</a>, where I expect to take Banshee into yet another new direction. I'm excited about the possibilities ahead, but will save my thoughts for another time.</p> <p>I've been a happy Rdio user for quite some time, and have been very inspired by its fresh and unique take on a few aspects of media playback and management. And while there's much I'd like to do in Banshee that Rdio is already doing, there's perhaps even more I'd like to see Rdio doing that Banshee does. It will be an exciting time to come, and I'm eager to jump in.</p> <p>I intend to continue to be involved in Banshee as an application and community. I am looking forward to again spending more time in the project. Similarly, you won't find me leaving the GNOME and openSUSE communities I've grown quite fond of over the years. Apologies for that!</p> <p>As I write this I am headed to FOSDEM, and I am very much looking forward to seeing so many great people again, and I look forward to the times in the future where we will continue to meet, preferably over copious amounts of beer!</p> <p align="center"><img border="0" src=" http://abock.org/blog-images/abock-loldog-th.jpg" title="Don't Question Me - I know what I'm doing!" /><br /><em><a href="http://tirania.org/blog">Miguel</a> calls this the new &quot;abock lolcat.&quot;<br />The only problem is that it's a dog! But this is fine with me...</em></p> Fri, 04 Feb 2011 20:39:03 -0500 red sweater blog: Black Ink 1.3 Beta http://www.red-sweater.com/blog/1663/black-ink-1-3-beta <p>The success of <a href="http://www.red-sweater.com/blackink/">Black Ink</a> on the Mac App Store has motivated me to get busy working on a number of improvements I have been planning for some time but just hadn&#8217;t found time to do.</p> <p>The big deal in 1.3 is that I added support for a different format of puzzle that opens up Black Ink to a number of new sources for more solving fun.</p> <p>Because I don&#8217;t have a strong, established beta testing group for Black Ink, I&#8217;m opening this up as a public beta to get any bugs ironed out before it goes public for the Mac App Store and direct-purchase customers. If you&#8217;d like to test out, just download and give it a spin!</p> <p><a href="http://www.red-sweater.com/blackink/BlackInk1.3b1.zip">Download Black Ink 1.3b1</a></p> <p>Be sure to <a href="mailto:[email protected]?subject=Black%20Ink%20Beta">drop me a line</a> if you run into any problems, but also if you are interested in being part of a more permanent Black Ink beta testing group. I&#8217;m going to try to get organized for future, private testing rounds.</p> <p>A round-up of the changes to expect in this release:</p> <h4>Black Ink 1.3b1</h4> <ul> <li>New web puzzle sources <ul> <li>LA Times Daily &amp; Sunday</li> <li>Newsday</li> <li>USA Today</li> <li>Universal</li> </ul> </li> <li>Rework the Startup preferences to be more user-friendly with reopening puzzles</li> <li>Give keyboard shortcut Cmd-K to &#8220;Check Current Letter&#8221; </li> <li>Now includes automatic crash reporter</li> <li>Fix a bug that caused Black Ink to hang when printing on rare occasions</li> <li>Fix a bug that caused puzzle timer to be placed off screen edge</li> <li>Fix a bug that could prevent puzzle solving menu items from being enabled</li> <li>Fix a bug that prevented canceling a stalled puzzle download from working</li> </ul> <h4>Known Issues</h4> <ul> <li>Encoding issues with Newsday 2/4/11 characters</li> <li>Documentation not updated to reflect reworked startup preferences</li> <li>Puzzle icons in startup window get smaller if window closed and reopened</li> <li>Newsday, USA Today, and Universal have generic icons for now</li> </ul> <p>Enjoy!</p> Fri, 04 Feb 2011 17:45:28 -0500 Monologue: Miguel de Icaza: On Reflector http://tirania.org/blog/archive/2011/Feb-04.html <p>Red Gate <a href="http://www.red-gate.com/products/dotnet-development/reflector/">announced</a> that their Reflector tool would soon become a paid-for app. A few years ago they bought the rights to Reflector from Lutz Roeder and started maintaining two editions of the product: a free version and a commercial version with extra features. Many people in the .NET community feel unhappy about that decision. <p>Whether Red Gate's decision is good or not for them is up to other blogs to discuss. I am grateful that over the years Reflector ran with Mono's Windows.Forms implementation and that the maintainers were careful to keep the code running with Mono. <p>Of course, I would always like more an open source equivalent to a proprietary tool, and while Reflector was a free download, it was never open source. <p><a href="http://twitter.com/#!/bradwilson/status/33246848080678912">Some believe</a> that in response to the announcement we created a competitor to Reflector. We did not. <p>We have had a decompiler in Mono for a few years now. First, we had a decompiler contributed to MonoDevelop by Andrea and we later replace it with the one that was developed by JB Evain: <center> <img src="http://tirania.org/shots/1102040115FHDwvo6C.png"> </center> <p>The current decompiler in MonoDevelop actually originated not as a decompiler, but as a <a href="http://evain.net/blog/articles/2005/11/19/flow-analysis-using-cecil">flow-analysis tool</a> in 2005. It was part of db4Object's <a href="http://developer.db4o.com/Documentation/Reference/db4o-8.0/java/tutorial/docs/Query.html#NativeQueries">Native Queries</a>. Native Queries were a way of getting some of the benefits of LINQ without any compiler support. It worked by reassembling the AST at runtime from a stream of IL instructions. For example, you could use the following C# code to query a database: <pre class="code-csharp"> IList <Pilot> pilots = db.Query <Pilot> (delegate(Pilot pilot) { return pilot.Points == 100; }); </pre> <p>The Query method would decompile the code in the delegate and reconstruct the abstract syntax tree and determine that the expression to query was pilot.Points == 100. <p>JB Eventually expanded hi IL Manipulation library <a href="http://www.mono-project.com/Cecil">Cecil</a> to contain a decompiler built based on the ideas of flow analysis. JB described this <a href="http://evain.net/blog/articles/2008/12/15/cecil-decompiler">back in December of 2008</a> as part of a Hack Week followed by a hack-a-thon: <blockquote> During the last Hack-Week, I started refactoring Cecil.FlowAnalysis, and since then, I?ve been working pretty seldom on it. It was last month that I decided to give it a kick, and even took a week of vacations to organize a CodeCamp with friends to give it a boost and have fun altogether </blockquote> <p>The decompiler is just one of the <a href="https://github.com/mono/cecil">various tools</a> built with Cecil and has been a standard component of MonoDevelop for a long time (it is part of MonoDevelop 2.4). <p>Although yesterday in response to the announcement, a <a href="https://github.com/jcdickinson/Monoflector">WPF UI</a> was created for the Cecil.Decompiler.dll, this is not the only effort. There is also an older <a href="http://code.google.com/p/cecilstudio/">Cecil Studio</a> that uses Windows.Forms that was created a few years ago and of course, our own MonoDevelop assembly browser. <p>We welcome contributions to the decompiler for people interested in improving the core, regardless of their preference for a UI built on top of it: <center> <img src="http://tirania.org/shots/1102040116trkDMlUN.png"> </center> <p>That being said, JB has been working on a new system that goes beyond decompilation and will be demoed at QCon next month. Stay tuned for his demo. Fri, 04 Feb 2011 15:44:00 -0500 Monologue: Lluis Sánchez : http://foodformonkeys.blogspot.com/2011/02/im-flying-to-brussels-in-few-minutes.html I'm flying to Brussels in a few minutes, heading to Fosdem. I'm not giving a talk this year, but if you are interested in knowing more about Mono and MonoDevelop don't miss the Mono track on Saturday afternoon. Many nice talks, and a good chance to meet Mono developers and contributors.<br /><br /><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><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6440604575561980711-6370352760745481395?l=foodformonkeys.blogspot.com' alt='' /></div> Fri, 04 Feb 2011 08:43:00 -0500 Planet OpenMoko: SHR: News before FOSDEM http://blog.shr-project.org/2011/02/news-before-fosdem.html Hello! I wanted to write some more News before going to FOSDEM tomorrow... because I guess we'll have lots of new interesting stuff to show once we are back home :-)<br /><br /><br />So here we list what the shr community has done in the last few days:<br /><br /><b>enjoy:</b><br />A patch was sent upstream to add basic FSO support. Basically it requests CPU resource automatically at startup so you won't need to disable suspend manually anymore. We already have this improved version in shr-unstable feeds.<br /><br /><b>sms receipts:</b><br />mrmoku has been working to support sms receipts in phoneui. Support is not complete though, as there are still some fsogsmd/opimd related bugs. Anyway, you can try it and give feedback to developers. You can enable it by default in phoneui configuration file or you can enable it on the fly by calling a dbus method.<br /><br /><b>VOIP:<br /></b>There has been some efforts to start adding VOIP support to FSO. The chosen approach is integrating <a href="http://www.sflphone.org/">sflphone</a> into FSO.<br /><br /><b>EFL 1.0:</b><br />Shr-unstable is now using the recently released EFL 1.0 libraries.<br /><br /><b>Palm Pre (plus/2):<br /></b><ul><li>libmsmcomm is now able to handle basic sms messages.</li><li>WiFi is now more reliable, but still fails sometimes when transmitting big files.</li><li>Initial steps towards bluetooth support have been done in the form of a fsodeviced plugin.</li></ul><b>Htc Dream:</b><br />US "extended" keyboard is now activated by default in xorg.conf. if you want DE or IT keyboard you'll need to adjust your xorg.conf manually.<br /><br /><b>Nokia n900:</b><br />A new <a href="http://git.freesmartphone.org/?p=linux-2.6.git;a=shortlog;h=refs/heads/nokia900/dvfs_rebase_wip">rebase branch</a> was pushed by GNUtoo that has all the 2.6.37 patches on top of it, but has alsa issues that need to be solved. <br /><br /> Thu, 03 Feb 2011 15:45:50 -0500