tag:blogger.com,1999:blog-34373253004730676252024-03-18T09:03:59.657+06:00Being a developerNotes on software development.
Mostly .NET, C# and game development using XNA.Petr Abdulinhttp://www.blogger.com/profile/14185849709689129678noreply@blogger.comBlogger88125tag:blogger.com,1999:blog-3437325300473067625.post-4753184840558949452013-10-19T01:36:00.001+07:002014-06-09T15:47:57.677+07:00Unicode characters in Python consoleRecently I've have had a look at a Python language. A played a bit with it, but found that I feel uncomfortable with it without a proper introduction. I've decided to go with <a href="http://learnpythonthehardway.org/book/">Learn Python the Hard Way</a>, even though it's biasied towards unexpirienced programmers, but the book name intrigued me and I've actually heard that book name for some time with positive recommendations. So, somethere around Lesson 1, there you print to a console, I've decided to try out printing in non-English language, Russian in particular, just to see how it goes. It didn't worked. So I headed to Stack Overflow. But even there I've spend a lot (relatively) of time to find <a href="http://stackoverflow.com/a/3259271/735446">solution that actually worked for me</a>. <br />
<br />
During this search I also found Python Unicode handling is confusing to say the least. I guess it's a matter of some time of studying the subject, but that is really annoying since string is the thing that you usually work a lot with. Because of that I find that Python feels like a JavaScript mixed with a C.<br />
<br />
P.S. I also think <a href="http://pytools.codeplex.com/">Python Tools for Visual Studio</a> is probably the best IDE to learn (and work) with Python on Windows, especially if you are a long time Visual Studio user, you will feel right at home.Petr Abdulinhttp://www.blogger.com/profile/14185849709689129678noreply@blogger.com1tag:blogger.com,1999:blog-3437325300473067625.post-87135085528995966052013-09-26T14:03:00.004+07:002013-09-26T14:18:50.622+07:00How to POST (upload) a file in a Visual Studio web testSo, I've came up with a task of performing a basic load test of a web service. For that purpose I've chosen the WebTest of Visual Studio 2010 Ultimate Test Project. For the most part as long as only GET requests were performed everything was pretty straightforward.<br />
<br />
But there was one POST request that requred a file upload. A little googling led to <a href="http://blogs.msdn.com/b/edglas/archive/2008/08/05/how-to-upload-a-file-in-a-web-test.aspx">this blog entry</a> which describes the situation in detail. The only problem was that recording of the file upload didn't work. It didn't record anything at all, to be more correct. I guess that's because I'm in the end of 2013 and using Windows 8 and IE 10, and this breaks it somehow (you know, Windows 8 breaks a lot of things).<br />
<br />
So basically situation is pretty dumb: you can't add "Form Post Parameters" to your POST request with a right click menu. Why (it's a rhetorical for Microsoft, I know)? And the only semi-official solution doesn't work, and it's pretty dumb solution, I might add.<br />
<br />
The solution is quite simple however. A .webtest file is a XML, which utilises a <span style="font-family: monospace;">http://microsoft.com/schemas/VisualStudio/TeamTest/2010</span> schema, which is located at <span style="font-family: monospace;">%VsInstallDir%\Xml\Schemas\vstst.xsd</span>. Using that schema it wasn't hard to find required tags. To create "Form Post Parameters" create a new POST request ("Add Web-Service Request"), save, and reopen .webtest as XML file. In the tag <span style="font-family: monospace;"><Request></span> insert child elements:<br />
<br />
<span style="font-family: monospace;"><FormPostHttpBody><br />
<FormPostParameter Name="dummy" Value="test1" RecordedValue="" CorrelationBinding="" UrlEncode="True" /><br />
</FormPostHttpBody></span><br />
<br />
save and close. Now you can reopen webtest with it's standard editor, and voila, you have the parameters, you can now right click on it and two new options apper in menu, inluding "Add File Upload Parameter" which is that we need. Everything else is already described in <a href="http://blogs.msdn.com/b/edglas/archive/2008/08/05/how-to-upload-a-file-in-a-web-test.aspx">blog entry</a> mentioned above.Petr Abdulinhttp://www.blogger.com/profile/14185849709689129678noreply@blogger.com2tag:blogger.com,1999:blog-3437325300473067625.post-70621890465927011912013-09-11T11:36:00.001+07:002013-09-11T11:45:06.343+07:00Visual Studio 'Run' button is disabled, or problems with buildSometime very strange things happens with Visual Studio. The one have happened to me maybe three times for all time, and each time I already forgot that I need to do to fix it! So basically your simptoms can be any of the like:<br />
<br />
1) Your Run (F5) button is disabled; <br />
2) Your program is not recompiled and hitting Run causes running old version of the 'exe' that lies in the <span style="font-family: monospace;">Debug</span> folder;<br />
3) Then hitting F5 you receive error messages like "Visual Studio cannot start debugging because the debug target 'C:\your\path\bin\Debug\Project.exe' is missing. Please build the project and retry, or set the OutputPath and AssemblyName properties appropriately to point at the correct location for the target assembly.'<br />
<br />
That usually that happens absolutely sporadically with you doing nothnig with the project or solution preferences, which confuses a lot. Now, in 99% of the cases <a href="http://stackoverflow.com/a/9540064/735446">the solution</a> is to go to the <span style="font-family: monospace;">Build->Configuration Manager...</span> and check that <span style="font-family: monospace;">Build</span> checkbox is checked for required projects, see picture:<br />
<br />
<img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUVT_dunGrjA9cmNBIW3Rwb5z3gSXQh90dKUo94EWtCXruKS1WnW1fzwqpDhv8WM9Z9n5Dt7OimgTFjfgrOcLOyvdzOyHBBR9QGV6wu2F8WSa5Tt-cRDI5tGWk-qxTOPDuCLycyaMsRqZU/s400/BuildConfigurationManager.png" /><br />
<br />
What makes them suddenly unchecked is still a mistery to me.Petr Abdulinhttp://www.blogger.com/profile/14185849709689129678noreply@blogger.com0tag:blogger.com,1999:blog-3437325300473067625.post-86877792791701020602013-09-11T10:45:00.002+07:002013-09-13T19:11:41.215+07:00Microsoft CRM 2011, import CSV file with entity references (lookups)While most of the time you probably could use a <span style="font-family: monospace;">LookupMaps</span> to set up an entity references in you import maps, you may come to situation there you want put actual ID's (references) in your CSV file. So, the tricky part here is the format. To create <span style="font-family: monospace;">EntityReference</span> you need entity type name and it's GUID. How would you put that into CSV string? <a href="http://www.linkedin.com/groups/Microsoft-Dynamics-CRM-2011-CSV-4043493.S.106366745">The answer</a> is like this: <br />
<br />
<span style="font-family: monospace;">"entity_type_name,{SOMEGUID-3FBA-47E5-ADD0-F6078ACDABB8}"</span><br />
<br />
Note that surrounding quotes are required, because of the comma.Petr Abdulinhttp://www.blogger.com/profile/14185849709689129678noreply@blogger.com2tag:blogger.com,1999:blog-3437325300473067625.post-20966396868634472782013-08-07T18:46:00.001+07:002013-08-07T18:50:29.186+07:00Kickstarter, more analysisI've <a href="http://pabdulin.blogspot.ru/2012/11/kickstarter-analysis.html">already mentioned</a> <a href="http://unsubject.wordpress.com">UnSubject blog</a> on the Kickstarter topic, yet again I found <a href="http://unsubject.wordpress.com/2013/07/28/kickstander-the-doom-that-came-to-kickstarter-and-the-transference-of-risk/">more</a> and <a href="http://unsubject.wordpress.com/2013/03/08/kickstander-what-is-kickstarter-really/">more</a> good articles on the subject in this blog. <br />
<br />
Well, while I don't think that Kickstarter idea is not good, actually I think it's good, but <i>pragmatic</i> analysis is that is missing. Every baker should read that blog, to have clear view of that Kickstarter really is. More projects on Kickstarter will fail though, and they deserve that. I guess any honest developer will benefit from reading it too.Petr Abdulinhttp://www.blogger.com/profile/14185849709689129678noreply@blogger.com1tag:blogger.com,1999:blog-3437325300473067625.post-53812524784347083042013-08-07T10:46:00.001+07:002013-08-07T10:50:45.567+07:00Microsoft CRM 2011, hide system Save menuRecently we were asked if it is possible to disable a standard 'Save' menu of Microsoft CRM 2011, since all data on forms is read-only anyway. So, after some searching I've found <a href="http://www.ahmetcankaya.com/hide-ribbon-button-in-crm-2011-by-using-javascript/">sample code</a> how to do this. The key was to use "top" property which is containing parent frame which is necessary, since our code (called in "OnLoad" form event) is executing in inner frame. With some modifications this is what finally worked out for me:<br />
<br />
<pre class="brush:js;gutter:false;">var disableSaveMenu = function() {
// your entities names
var entities = ["account", "contact" /* add as necessary */];
var i;
for(i = 0; i < entities.length; i++) {
var ent = entities[i];
var save = top.document.getElementById(ent + "|NoRelationship|Form|Mscrm.Form." + ent + ".MainTab.Save");
if(save != null) {
save.style.display = 'none';
break;
}
}
// hide 'File' menu, additional 'Save' is also located there
var jewel = top.document.getElementById("jewelcontainer");
if(jewel != null) {
jewel.style.display = 'none';
}
};</pre>
Petr Abdulinhttp://www.blogger.com/profile/14185849709689129678noreply@blogger.com3tag:blogger.com,1999:blog-3437325300473067625.post-23425046938236731752013-08-06T11:09:00.001+07:002013-08-20T11:36:07.445+07:00Microsoft CRM 2011, automatically load all subgridsMicrosoft CRM 2011 doesn't load by default data in all of the subgrids if they count exceed 4, displaying 'To load ... records, click here' message. It's actually extremely annoying.<br />
<br />
It's not possible to change this behaviour with standard tools (i.e. via control preferences). So <a href="http://blog.customereffective.com/blog/2011/12/crm-2011excessive-sub-gridding.html">I've found</a> how to do it using JavaScript function call on form OnLoad event. Unfortunatelly it did't worked in my case. For some reason the moment then OnLoad event was fired, the from subgrids were, apparently, not initialized on the form. I've decided then to call the function with a little delay:<br />
<br />
<pre class="brush:js;gutter:false;">var autoLoadSubgrids = function() {
var maxAuto = 4;
var loadDelay = 1000;
var subgrids = Xrm.Page.ui.controls.get(function (control, index) {
return control.getControlType() == "subgrid";
});
if (subgrids.length > maxAuto) {
var subCall = function() {
var i;
for (i = maxAuto; i < subgrids.length; i++) {
var grid = subgrids[i];
if(grid != null) {
grid.refresh();
}
}
};
window.setTimeout(subCall, loadDelay);
}
};</pre>
<br />
And it worked! Not the solution I would like, but I guess that's all I can do now and it also would'n do any harm if something goes wrong.Petr Abdulinhttp://www.blogger.com/profile/14185849709689129678noreply@blogger.com2tag:blogger.com,1999:blog-3437325300473067625.post-34048258096547938892013-05-10T01:31:00.002+07:002013-05-10T12:34:49.407+07:00OUYA IS F-F-Fun(dead)?OUYA project <a href="http://www.ouya.tv/ouya-is-f-f-funded/">raised some $15M</a> from their new investors. They are excited of course. This is probably good for a company financial success. However is it good for a mission that OUYA originally started? I don't know, but I surely know that original founders are now not own 100% of the share. They could probably own 90%, or maybe 50% depending on how much company price was estimated at the moment of the deal. And that new shareholders can, in some future, have some other vision about what OUYA console should be. That's the facts part.<br />
<br />
The ethics part is probably even more interesting. See, backers are, naturally, the real shareholders of the company. They have taken the real risk of funding the project on early stages. Yet thay will have just a console box as a revard for that. Now some big guys, which brobably wasn't happy to fund project at early stages, come in and skim the cream. I know, backers take what they have been told, but still they funded OUYA and their founders, not OUYA <b>and</b> NVIDIA et al.<br />
<br />
I actually think that can be called some sort of abuse of <a href="http://www.kickstarter.com/projects/ouya/ouya-a-new-kind-of-video-game-console">crowd funding idea</a>. The crowd takes highest risk at the start of the project and takes some product for that, then real investors are safe to take share of the company. That's really nice trick. Nobody probably like to fund a project that will use that to find some more funding.. or I'm wrong?Petr Abdulinhttp://www.blogger.com/profile/14185849709689129678noreply@blogger.com0tag:blogger.com,1999:blog-3437325300473067625.post-19785418877550528232013-05-09T14:28:00.000+07:002013-05-09T14:28:59.812+07:00Using Google Analytics for desktop apps?While searching for an answer to that question I found <a href="http://stackoverflow.com/q/1554062/735446">this SO topic</a> which, at the moment doesn't supposed that Google Analytics can be used for desctop at all, searching, in fact, for an alternative.<br />
<br />
But as it turned out in my continued search, it's now possible to use Google Analytics on desktop applications (and actually anywhere) with it's new <a href="https://developers.google.com/analytics/devguides/collection/protocol/v1/">Measurement Protocol</a> which is, however, currently in beta.Petr Abdulinhttp://www.blogger.com/profile/14185849709689129678noreply@blogger.com1tag:blogger.com,1999:blog-3437325300473067625.post-55553746174237399862013-03-05T10:05:00.003+07:002013-03-13T10:31:44.625+07:00Format a drive larger than 32Gb into FAT32 on modern Windows OSIIRC Windows was restricting usage of FAT32 since Windows 2000, in favor of NTFS. And it is actually a good thing. NTFS is far superior than FAT32 in almost any aspect.<br />
<br />
However, this activity come beyond reasonable amounts in my opinion. Simply put, you just can't format a drive larger than 32Gb into FAT32 using any modern Windows OS (Windows Vista/7/8, maybe even Windows XP). This is very, very annoying. I'm fine then you can't do something using standard approach, but I want be able to do that I want somehow, even if this is sounds unreasonable.<br />
<br />
Now, users must fix that Microsoft must do itself. <a href="http://www.ridgecrop.demon.co.uk/index.htm?guiformat.htm">This utility</a> (click on image to download) by fine fellas from Ridgecrop Consultants Ltd. do the thing. Since it's very valuable tool and "teh internets" fail us sometimes, <a href="https://skydrive.live.com/redir?resid=5DFD60AE174578C6!273">here's a copy</a> in the SkyDrive cloud.<br />
<br />
<a href="http://www.ridgecrop.demon.co.uk/guiformat.png" imageanchor="1"><img border="0" height="320" src="http://www.ridgecrop.demon.co.uk/guiformat.png" width="257" /></a>Petr Abdulinhttp://www.blogger.com/profile/14185849709689129678noreply@blogger.com0tag:blogger.com,1999:blog-3437325300473067625.post-74235200376624885362013-02-28T12:20:00.001+07:002013-02-28T12:25:48.350+07:00Running Apache on Windows 8: port 80 occupied by SystemIf you are using Windows 8 or Windows Server 2012, and Apache service won't run (you have something like <b>make_sock: could not bind to address 0.0.0.0:80</b> immediately after installation) what means that something occupies port 80, which is Apache is trying to use. You can use <a href="http://technet.microsoft.com/en-us/sysinternals/bb897437.aspx">Tcpview</a> tool to see what occupies port 80. Then I did that I saw that is was a process called "System". While "System" can actually refer to many system services, it seems that there are two common cases present:<br />
<br />
1) <a href="http://www.nextofwindows.com/why-port-80-is-being-used-by-system-process-id-4-whats-going-on-with-your-windows-machine/">Web Development Agent Service</a> (MsDepSvc);<br />
2) <a href="http://stackoverflow.com/questions/12492025/windows-8-nt-kernel-and-system-using-port-80">World Wide Web Publishing Service</a> (W3SVC).<br />
<br />
If disabling any of these servies does not help you can use <a href="http://www.apachefriends.org/f/viewtopic.php?f=16&t=49832">some other tools</a> to dig deeper in your quest of finding service responsible for port 80.<br />
<br />
P.S. There is of course other solutions to that, most simple of which is <a href="http://helpdeskgeek.com/networking/change-apache-listening-port/">changing port</a> to which Apache will be listening.Petr Abdulinhttp://www.blogger.com/profile/14185849709689129678noreply@blogger.com0tag:blogger.com,1999:blog-3437325300473067625.post-74292321244435023042013-01-31T23:18:00.000+07:002013-02-01T11:55:27.005+07:00XNA the end<a href="http://ventspace.wordpress.com/2013/01/30/directxxna-phase-out-continues/">This entry</a> at <a href="http://ventspace.wordpress.com/about/">Promit Roy</a>'s blog finally confirmes that any last hope of XNA should be left. This is, probably, better than nothing, however it was almost obvious with release of Windows 8 SDK with <a href="http://ventspace.wordpress.com/2011/11/28/directx-and-xna-status-report/">DirectX merged into it</a>. Yet they gained some little respect at least from that point. This is, probably, the only point from which respect can be given.<br />
<br />
First they they should say that earlier. Second, they should not drop XNA at all. Despite some negative aspects XNA was extremly intuitive and easy to work with. It was a huge success, enormous attention from developers of wide range of expecience, from novice to professionals. <a href="http://store.steampowered.com/app/105600/">Terraria</a> was written in XNA, a <b>1.5+ million sells</b> title. They don't need even to add support for WinRT. Just a mere bugfixing, support and Visual Studio 2012 integration.<br />
<br />
Enough rant. The question is, should you continue to use XNA? It, of course, depends. If you amateur or just started to learn game programming, it doesn't really matter, you can safely continue to write your first games. However, you can try to port your game to <a href="http://monogame.codeplex.com/">MonoGame</a> to be ready for Windows 8. Last option is also to consider for writing your first more or less serious game, which, most probably you want it to evolve and live in future. Professionals can decide for thenselves I guess, but I guess XNA is no longer a valid option for pro game development.Petr Abdulinhttp://www.blogger.com/profile/14185849709689129678noreply@blogger.com0tag:blogger.com,1999:blog-3437325300473067625.post-13513187924554351942012-12-24T17:28:00.001+07:002012-12-24T19:24:33.258+07:00jQuery "No Transport" error solutionIf you get a "No Transport" error then making AJAX request using jQuery in Internet Explorer, then solution is as simple as adding: <br />
<pre>$.support.cors = true;</pre>before making your calls to <br />
<pre>$.ajax(...)</pre>For some other possible options take a look <a href="http://stackoverflow.com/q/5241088/735446">here</a>.Petr Abdulinhttp://www.blogger.com/profile/14185849709689129678noreply@blogger.com3tag:blogger.com,1999:blog-3437325300473067625.post-9564869394181156262012-12-21T09:45:00.003+07:002012-12-21T09:45:53.131+07:00Console isn't a box that run gamesAn interesting article called <a href="http://www.eurogamer.net/articles/2012-12-13-why-xbox-failed-in-japan">Why Xbox failed in Japan</a> is worth reading despite it's pretty long. <br />
<br />
Not only it describes Japan game market specifics, it's also pretty much shows that console market is very different from a PC, and a console is not just a computer which can run only games. Also it reveals much of "behind the scene" activity in console game development, some info on popular studios which are dedicated themselves to console game market - just as I said, it's worth reading for anyone interested in games and games market.<br />
<br />
P.S. BTW, I think this article pretty much fails in answering it's main question, a lot of 'in American/Japanese way' references doesn't always mean a lot, really. But, still it's an excellent overview article.Petr Abdulinhttp://www.blogger.com/profile/14185849709689129678noreply@blogger.com0tag:blogger.com,1999:blog-3437325300473067625.post-67380776502296931532012-12-18T19:33:00.000+07:002012-12-18T19:33:44.758+07:00Remaking KaratekaThis is so awesome!<br />
<br />
<iframe width="560" height="315" src="http://www.youtube.com/embed/Vq31IwKZkt0" frameborder="0" allowfullscreen></iframe>Petr Abdulinhttp://www.blogger.com/profile/14185849709689129678noreply@blogger.com0tag:blogger.com,1999:blog-3437325300473067625.post-36257438745485798352012-12-18T10:26:00.001+07:002012-12-18T10:30:54.036+07:00Why OUYA can be a failureI was actually pretty excited then I first saw and read the concept of an OUYA. An open game console, isn't that great? But recently I've discovered some thing that missed somehow from me, but I think it's rather important:<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6X7D4Cr6DBMzZ2Oz07iscT79uoiOL40auGV4wx3reBCzU5WTt_Mg6uyDlTUWPLlo9Ez0ZbCiNiDQFnURnAwHJIQphJO2BZoQr12CggdviLHF0m7Gd1nyTevcIvxhaifx-CmXc_e-p-1gy/s1600/OUYA_all_f2p.png" imageanchor="1" style=""><img border="0" height="303" width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6X7D4Cr6DBMzZ2Oz07iscT79uoiOL40auGV4wx3reBCzU5WTt_Mg6uyDlTUWPLlo9Ez0ZbCiNiDQFnURnAwHJIQphJO2BZoQr12CggdviLHF0m7Gd1nyTevcIvxhaifx-CmXc_e-p-1gy/s320/OUYA_all_f2p.png" /></a><br />
<br />
This is a serious statement. <i>All</i> OUYA games will be a free-to-play. And most of free-to-play games are simple money-making machines, the legitimate rest are basically using "try before you buy" (shareware) or subscription model.<br />
<br />
<i>Serious</i> gamers don't like free-to-play model at all. While it's still possible sell a game in more or less "standard" model in OUYA (as I guess), I think it's rather confusing that free-to-play model is <b>enforced</b> by a console which considered to be a <i>most open</i> game console ever? Absolute nonsense!<br />
<br />
As a side effect this type of restriction is actually encourages and attract game developers who are specialized in free-to-play games, thus making a OUYA game marked flooded with "bad" games, which will prevent some "real" games in gaining popularity.<br />
<br />
I think OUYA should remove this absurd limitation, if they want to name their console a truly open system. Not only this will attract more developers to console, it's also good for a future reputation of OUYA. I personally will not buy OUYA until this limitation is removed from a system.Petr Abdulinhttp://www.blogger.com/profile/14185849709689129678noreply@blogger.com0tag:blogger.com,1999:blog-3437325300473067625.post-54641132807461130662012-12-17T09:25:00.000+07:002012-12-17T09:25:10.641+07:00A great article on Free-to-play gamesAn <a href="http://andrewrussell.net/2012/12/free-to-play-and-the-death-of-the-consumer-surplus/">excellent article</a> about <a href="http://en.wikipedia.org/wiki/Free-to-play">Free-to-play</a> games. Go read it now.<br />
<br />
As for my personal opinion, I agree with Andrew in a way that <i>every</i> customer <i>always</i> wants a bargain. That's why, for example, I always buy every <a href="https://www.humblebundle.com/">HumbleBundle</a> that is out. If I even don't like any of the games (that is never happened, BTW) I wouldn't be angry at all, since I got it almost for free. OTOH, I will never buy a free-to-play game, since I'm <i>guaranteed</i> to make a not-a-bargain deal, and that's not the only thing. This kind of games are naturally corrupted, like an arcade, to make money out of you. It feels kind of weird, and I just ignore it, since there is a lot of other games available.<br />
<br />
I feel sorry for a little kids (and their parents), which are particularly naive and vulnerable to this kind of abuse. They don't realize what this is and sometimes spend lots of money for some 'crystals' in a game with their favorite cartoon heroes. I guess that's inevitable evil of games becoming a less art and more money making industry. <br />
<br />
I don't think that it poses any real threat to gamers, eventually all who exploit this approach to much will suffer the consequences. The only sad part here is that talent is wasted driven by greed.Petr Abdulinhttp://www.blogger.com/profile/14185849709689129678noreply@blogger.com0tag:blogger.com,1999:blog-3437325300473067625.post-34202422177972948712012-11-28T11:01:00.001+07:002012-11-28T23:04:45.934+07:00One more exceptional blog<a href="http://prog21.dadgum.com/">This guy articles</a> are just awesome. I must read them all! As in introduction I personally recommend to read a <a href="http://prog21.dadgum.com/6.html">this one</a>.Petr Abdulinhttp://www.blogger.com/profile/14185849709689129678noreply@blogger.com1tag:blogger.com,1999:blog-3437325300473067625.post-91647385821455458292012-11-28T10:35:00.002+07:002012-11-28T10:35:47.567+07:00On Windows 8 and it's Modern UII'm actually quite a fan of a Windows OS. I've used it starting from Windows 95 and missed only Vista (I also don't count Millenium edition since it was in parallel with Windows 2000 on that time). I thought Vista was a bad version, and indeed, it was. However it was bad in a sense of it made you grumble and mumble periodically 'ah, that's how you do it now'. It was still a good old Windows OS. Eventually a tuned up version of Vista is most successful and popular Microsoft OS of all the time I guess. I was pretty satisfied with Windows starting from Windows 2000.<br />
<br />
However situation with Windows 8 is different. For the start you can read <a href="http://www.useit.com/alertbox/windows-8.html">this article</a>, which is quite reasonable analysis of the new UI. The so-called <i>Modern UI</i> is terrible. So are terrible each and every new website made using this approach, including, of course, new Microsoft web site.<br />
<br />
As a conslusion to this article I can add, that somehow Microsoft now wants you to learn a whole new concept, just because they think it looks cool? My PC is a workhorse with a tons of complex software. I appreciate that Windows 8 is faster, supports new hardware and use CPU, GPU and RAM more efficiently. I like it a lot. I just can't understand why I even need to see this ugly piece of marketing bullshit then I just need my desktop? Well I mean, I can understand <i>their</i> reasoning behind all this. That's a money, a lot of money they want from a new Windows Store. I'm fine with that, but why I should suffer and even pay money for that then?<br />
<br />
No way I install this on my computer, at least until they make it possible to switch to desktop right after boot. If they want me to learn new OS, then I'll more probably start to learn Linux, which is much more beneficial in terms of useful knowledge received for time spent on learning. In Windows I'll just will learn the new UI I don't need. With Linux I'll learn a whole new class of OSes. And they all are free at least, but for my money, I want my desktop back.Petr Abdulinhttp://www.blogger.com/profile/14185849709689129678noreply@blogger.com0tag:blogger.com,1999:blog-3437325300473067625.post-40468665885293857712012-11-26T22:52:00.002+07:002012-11-28T08:47:05.515+07:00Kickstarter analysisThe one <a href="http://unsubject.wordpress.com/2012/11/10/kickstander-quantifying-hope-and-measuring-dreams/">truly needed post</a> about Kickstarter. A lot of references which are also worth visiting. <br />
<br />
P.S. The one thing I <i>really</i> don't understand in modern web design, is a passion to make text not black. I mean like make text #707070. Is it just to make site harder to read, especially on a small phone screen? People, are you there? FTW!Petr Abdulinhttp://www.blogger.com/profile/14185849709689129678noreply@blogger.com2tag:blogger.com,1999:blog-3437325300473067625.post-9202266497444976272012-11-19T16:08:00.001+07:002012-11-20T16:27:14.260+07:00Web-debugging HTTPS PHP cURL requests with FiddlerRecently I was faced with a task of implementing OAuth 1.0 authentication. The authentication must be done with JavaScript, and I had a working example implemented in PHP (as a console app). <br />
<br />
I've done major part of the task, but on the last step - while trying to actually use OAuth token to receive data - I've got 'signature invalid' error. I've studied PHP script carefully and 'echo'-ed values of interest to console, but still no luck to figuring out what was wrong.<br />
<br />
It would be very convenient to see all PHP traffic in Fiddler, I thought, and what you need for it is described below. <br />
<br />
Assume that Fiddler is running as usual on localhost (127.0.0.1) on port 8888. First of all you need to tell cURL to use proxy.<br />
<br />
<pre class="brush:php">$proxy = "127.0.0.1:8888";
$ch = curl_init();
curl_setopt($ch, CURLOPT_PROXY, $proxy);</pre><br />
for your convenience you can also tell cURL to print debug info:<br />
<br />
<pre class="brush:php">curl_setopt($ch, CURLOPT_VERBOSE, 1);</pre><br />
This will run cURL thru Fiddler, but you will not see (by default) decoded HTTPS traffic, because Fiddler decode HTTPS only from browsers (again, by default), so you need to change it to '...from all processes' if you run from command line PHP script (or just cURL):<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnm75RHI96ohd7ioqZkwFQrraA0CJS53kEac6xyYCvhXNTiyffPPpdDAcyN3fv6MD5DWPpKjTj90Rd8Oo3TtqAeNp5e72BMCEktzhXpV5aijiydZiS_o8GDrLVN0nXTjnMVrjACswcqUQH/s1600/Fiddler_Options.png" imageanchor="1" style=""><img border="0" height="210" width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnm75RHI96ohd7ioqZkwFQrraA0CJS53kEac6xyYCvhXNTiyffPPpdDAcyN3fv6MD5DWPpKjTj90Rd8Oo3TtqAeNp5e72BMCEktzhXpV5aijiydZiS_o8GDrLVN0nXTjnMVrjACswcqUQH/s320/Fiddler_Options.png" /></a><br />
<br />
again, this will, most probably result in HTTPS certificate errors since cURL knows nothing about Fiddler certificate (and Windows certificates), so easiest way is to just tell cURL to ignore SSL certificate errors:<br />
<br />
<pre class="brush:php">curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);</pre><br />
That's all, now you should see PHP cURL traffic, both HTTP and HTTPS.Petr Abdulinhttp://www.blogger.com/profile/14185849709689129678noreply@blogger.com0tag:blogger.com,1999:blog-3437325300473067625.post-32876922272526980042012-09-14T20:28:00.001+07:002012-09-14T21:10:07.201+07:00Great tools for browsersSometimes working with a browser becomes real frustration. Especially if this browser is Internet Explorer. Some simple operation like viewing and managing your cookies can become a real mess. They built in facilities are slow, and not comfortable at all to work with.<br />
<br />
<a href="http://www.nirsoft.net/web_browser_tools.html">NirSoft web browser tools</a> are invaluable in that aspect. It's fast, it's really good, and it's free! Particularly <a href="http://www.nirsoft.net/utils/iecookies.html">IECookiesViewer</a> just saved me a ton of time and my brain.Petr Abdulinhttp://www.blogger.com/profile/14185849709689129678noreply@blogger.com0tag:blogger.com,1999:blog-3437325300473067625.post-35709282979508282482012-08-28T14:08:00.000+07:002012-09-27T12:25:48.510+07:00WiX, worst toolset everSo, I suppose sooner or later every developer out there will face the task of writing a installer for his product. I you are working under Windows, Windows Installer seems like a reasonable choice. I'm not so sure about it now.<br />
<br />
Now, there is no some sort official tool from Microsoft for making Windows Installer packages. Huh? Seems like that. Presumably I didn't dig enough for that, so far I found <a href="http://technet.microsoft.com/en-us/library/cc757212%28v=ws.10%29.aspx">just this nonsence</a>.<br />
<br />
But then, <a href="http://wixtoolset.org/">WiX</a>! Which is infamous for being used to create Microsoft Office 2003 installer. And it's also internal Microsoft product as well. Certanly it's a big <i>YES</i> compared to nothing. It's even integrates into Visual Studio and adds custom projects for creating installers. And you actually start to think that will be a nice journey. But then you try to find some tutorials, examples and documentation. It is awful, all of these. If you add (but I suppose, it's the reason in the first place) that WiX markup is extremenly unintuitive, complicated and confusing then you will understand that <i>frustration</i> means. Contrary to what you might expect, WiX Toolset it's a pretty low-level tool, which must be backed with <a href="http://wix.sourceforge.net/manual-wix3/wixstdba_foundation_customization.htm">good documentation</a> and comprehensive and complete examples.<br />
<br />
The feedback is <a href="http://windows-installer-xml-wix-toolset.687559.n2.nabble.com">thru this</a> mailing-list style forum with horrible desing. The leading toolset man <a href="http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/template/NamlServlet.jtp?macro=user_nodes&user=230896">Rob Mensching</a> is rich for caustic comments <a href="http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Could-not-harvest-data-from-a-64bit-dll-tp5511948p6199008.html">like this</a>. And, as you can guess from a thread, WiX Toolset is OK with bugs that lasts for more than 2 years.<br />
<br />
The thing that finally really, really helped me out was <a href="http://www.packtpub.com/wix-developers-guide-windows-installer-xml/book">WiX: A Developer's Guide to Windows Installer XML book</a>. And I'm not sure how much more time I would spend in misery without it.<br />
<br />
So for me it's official, WiX Toolset is <b>teh worst</b> tool I've ever encountered in all my developer experience so far. It doesn't mean however you shouldn't use it, but unless you are ought to use Windows Installer, you can consider <a href="http://en.wikipedia.org/wiki/List_of_installation_software">some other tools out there</a>.<br />
<br />
P.S. <a href="http://www.robertdickau.com/msi_tips.html">Useful tips on MSI</a>.Petr Abdulinhttp://www.blogger.com/profile/14185849709689129678noreply@blogger.com3tag:blogger.com,1999:blog-3437325300473067625.post-54184702451673159602012-08-25T21:32:00.000+07:002012-08-25T21:35:27.775+07:00Fixing XBLIG (and Windows Phone) forum linksAs usual, working with an elephant finesse, Microsoft, for some obvious reasons decided to split Windows Phone and XBLIG forums. This results in incredible amount of links on the web are being broken. Oh, this is so nice.. The good part however is that, you can replace old <i>forums.create.msdn.com/forums</i> with <i>xboxforums.create.msdn.com/forums</i> in address and make it to the desired topic. <br />
<br />
As for unfortunate ones who were looking for some topics for Windows Phone, the things here are much simplier: all topics are lost somethere, or just gone, I don't actually know. <br />
<br />
Back to XBLIG. If you are using Firefox, you can use <a href="https://addons.mozilla.org/en-US/firefox/addon/redirector/">Redirector add-on</a>, <a href="http://xboxforums.create.msdn.com/forums/p/107738/634723.aspx#634723">as described here</a>. Just in case, I'll duplicate the rules here. <a href="chrome://redirector/content/redirector.html">Goto add-on options</a> and add two rules: <br />
<br />
<b>Rule 1</b> <br />
Example URL: http://forums.create.msdn.com/forums/p/0001/0001.aspx <br />
Include Pattern: http://forums.create.msdn.com/forums/*/*/* <br />
Redirect to: http://xboxforums.create.msdn.com/forums/$1/$2/$3 <br />
Pattern Type: Wildcard<br />
<br />
<b>Rule 2</b> <br />
Example URL: http://forums.create.msdn.com/forums/t/0001.aspx <br />
Include Pattern: http://forums.create.msdn.com/forums/*/* <br />
Redirect to: http://xboxforums.create.msdn.com/forums/$1/$2 <br />
Pattern Type: WildcardPetr Abdulinhttp://www.blogger.com/profile/14185849709689129678noreply@blogger.com0tag:blogger.com,1999:blog-3437325300473067625.post-23425737098342035282012-08-14T16:28:00.000+07:002012-08-14T16:31:46.291+07:00OUYA: first indie consoleThe phenomenon of indie games is out there for some years, and it's a great thing. However the only true indie platform was only PC. And PC is a great platform, but only for a personal amusement. But it's nothing compared to fun then you blay with you friend side by side, fighting to each other or against computer.<br />
<br />
Since the <a href="http://en.wikipedia.org/wiki/North_American_video_game_crash_of_1983">great crash of 1983</a> the main game consoles were closed for indie developers. This wasn't major concern up until now, since indie devs are flourishing. <br />
<br />
And <a href="http://www.ouya.tv/">OUYA</a> perfectly hitted the spot. It's cheap and open to everyone. It's not that powerful, but indie games usually doesn't need that much power as AAA titles. OUYA is greatest thing that happened to console market for some last years. It will boost competition between console market players, which will be good for everyone. It will bring tons of new, beautiful games to people by creating an easy-to-enter market for indie developers. <br />
<br />
It's success is inevitable, because it's just filling last missing piece in a complete puzzle.Petr Abdulinhttp://www.blogger.com/profile/14185849709689129678noreply@blogger.com0