Wednesday

sloniki

"Слоники, слоники, рожеві слоники! Райдуги, маленькі гномики бігають наввипередки зі слониками по різнокольорових райдугах!".

Thursday

script create table

It handles Identity columns, default values, and primary keys. It does not handle foreign keys, indexes, triggers, or any other clever stuff. It works on SQLServer 2000, 2005 and 2008.
         
declare @table varchar(100)
set @table = 'MyTable' -- set table name here
declare @sql table(s varchar(1000), id int identity)

-- create statement
insert into @sql(s) values ('create table [' + @table + '] (')

-- column list
insert into @sql(s)
select
' ['+column_name+'] ' +
data_type + coalesce('('+cast(character_maximum_length as varchar)+')','') + ' ' +
case when exists (
select id from syscolumns
where object_name(id)=@table
and name=column_name
and columnproperty(id,name,'IsIdentity') = 1
) then
'IDENTITY(' +
cast(ident_seed(@table) as varchar) + ',' +
cast(ident_incr(@table) as varchar) + ')'
else ''
end + ' ' +
( case when IS_NULLABLE = 'No' then 'NOT ' else '' end ) + 'NULL ' +
coalesce('DEFAULT '+COLUMN_DEFAULT,'') + ','

from information_schema.columns where table_name = @table
order by ordinal_position

-- primary key
declare @pkname varchar(100)
select @pkname = constraint_name from information_schema.table_constraints
where table_name = @table and constraint_type='PRIMARY KEY'

if ( @pkname is not null ) begin
insert into @sql(s) values(' PRIMARY KEY (')
insert into @sql(s)
select ' ['+COLUMN_NAME+'],' from information_schema.key_column_usage
where constraint_name = @pkname
order by ordinal_position
-- remove trailing comma
update @sql set s=left(s,len(s)-1) where id=@@identity
insert into @sql(s) values (' )')
end
else begin
-- remove trailing comma
update @sql set s=left(s,len(s)-1) where id=@@identity
end

-- closing bracket
insert into @sql(s) values( ')' )

-- result!
select s from @sql order by id

Tuesday

postback using javascript

         

<asp:UpdatePanel runat="server">
<ContentTemplate>
<div>
<asp:Literal runat="server" ID="ChildWindowResult" />
</div>
<hr />
<input type="button" value="Open Dialog" onclick="window.open('MyDialog.aspx', 'Dialog');" />
<asp:Button ID="HiddenButtonForChildPostback" runat="server"
OnClick="OnChildPostbackOccured" style="display: none;" />
<asp:HiddenField runat="server" ID="PopupWindowResult"/>
</ContentTemplate>
</asp:UpdatePanel>

The MyDialog page:

<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.1.min.js"></script>
<script type="text/javascript">
function postData() {
var resultField = $("input[type='hidden'][id$='PopupWindowResult']", window.opener.document);
var parentPosDataButton = $("[id$='HiddenButtonForChildPostback']", window.opener.document);

resultField.val($("#<%= SomeValueHiddenField.ClientID %>").val());
parentPosDataButton.click();
}
</script>

<asp:TextBox runat="server" ID="SomeValueHiddenField" />
<asp:Button runat="server" OnClick="PostData" Text="Click Me" />



in code behind class:

protected void PostData(object sender, EventArgs e)
{
SomeValueHiddenField.Value = DateTime.Now.ToString();
ClientScript.RegisterStartupScript(this.GetType(), "PostData", "postData();", true);
}

postback example in asp.net


// On the button control, inside the event
// Check if indicating to continue or intercept, open the popup,
// and define the callback with the "sender" (the button itself)
if (!(bool)Session["IsAllowed"])
{
// Open popup to enter the password, and define a callback
Page.RegisterStartupScript(
"openwindow", "<script>window.open('http://myurl.aspx'" +
",'title');" +
"myPage_Callback = function(){" +
Page.GetPostBackEventReference((System.Web.UI.Control)sender,"") +
"};" +
"</script>"
);

return;
}
// On popup window, on event of the submit button
// Calls the __doPostBack callback js function on the opener and closes the popup.
Session["IsAllowed"] = true;
Page.RegisterStartupScript(
"closewindow", "<script>window.opener.window.myPage_Callback();" +
"window.close();" +
"</script>"
);


Friday

scrum google spreadsheet

Google Docs SCRUM templates

  1. A simple example (Product
    Backlog, Sprint Backlog and Burndown
    Charts) provided by Pyxis.

  2. A sample sheet (Product Backlog, Sprint Backlog, Burndown Charts, Impediments backlog) provided by Openbravo - and some more sheets at the end of this page.


  3. A basic Scrum template including a product backlog and sprint backlogs.

  4. A Scrum template inspired from Bas Vodde (see this blog post).

  5. A very simple starting-point for a scrum product backlog.




Thursday

Total commander and Winmerge

In order to use Winmerge as comparision tool add following line to wincmd.ini:
CompareTool="d:\Program Files\WinMerge\WinMerge.exe"

html5 mobile framework

Titanium -Appcelerator Titanium is a free and open source framework to develop easily native mobile and desktop apps with web technologies. It provides developers with over 100 customizable UI controls for native tables, views, tabs, alerts, dialogs, buttons, support for geolocation, social networks and multimedia.


Sencha Touch -Sencha Touch is a HTML5 mobile app framework that allows you to develop web apps that look and feel native on Apple iOS and Google Android touchscreen devices. It supports HTML5, CSS3, and Javascript for the highest level of power, flexibility, and optimization in developing your web applications.


JQTouch - (JQtouch has now moved on to Sencha Touch )- A jQuery plugin for mobile web development on the iPhone, Android, iPod Touch, and other forward-thinking devices.


Sproutcore Touch -Sproutcore Touch is the touch edition of the Sproutcore framework for developing HTML 5 web applications that includes complete support for touch events and hardware acceleration on the iPad and iPhone.


PhoneGap -PhoneGap is another interesting open source framework for building cross-platform mobile apps with web standars (HTML5, CSS3, JavaScript). This framework supports geolocation, vibration, accelerometer, camera, orientation change, magnetometer and other interesting features for iPhone, Android, Blackberry, Symbian and Palm.


Rhodes - Rhodes is another excellent open source framework to rapidly build native apps for all major smartphone operating systems (iOS, Windows Mobile, Symbian and Android). It supports GPS geolocation, PIM contact reading and writing, and camera image capture.


iUI -iUI is a framework consisting of a JavaScript library, CSS, and images for developing advanced mobile webapps for iPhone and comparable/compatible devices.


iWebkit -iWebkit 5 is the new version of the popular ultralight framework for easily creating iPhone and iPod touch applications. The current release has new improved features and is really easy to understand in order to develop in just a few minutes your own web apps.


XUI -XUI is another javascript framework for building simple web applications for mobile devices. No much documentation available but it worth to try it for not complex apps.


jQPad -jQPad is an iPad web development framework jQuery based with some features for quickly developing simple iPad applications.


jQuery Mobile -Closing I want to suggest you jQuery Mobile, the touch-optimized version of the popular jQuery framework for smartphones and tablets which will allow you to design a single highly branded and customized web application that will work on all popular smartphone and tablet platforms. The framework will support iOs, Android, Windows Phone, BlackBerry, Symbian, Palm webOS and other devices. The framework is under development and will be available in late 2010.


foneFrame - foneFrame Mobile Web Framework HTML5 CSS3 Mobile Template




preventing double form submission

Add this code , when btnSubmit form submittion button

btnSubmit.Attributes.Add("onclick", "this.disabled=true;");

Monday

dotnetnuke user control inside user control problem with resx file

to solve this problem create base class:

public partial class BaseUserControl : DotNetNuke.Entities.Modules.PortalModuleBase
{
// basically this will fix the localization issue
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
string FileName = System.IO.Path.GetFileNameWithoutExtension(this.AppRelativeVirtualPath);
if (this.ID != null)
//this will fix it when its placed as a ChildUserControl
this.LocalResourceFile = this.LocalResourceFile.Replace(this.ID, FileName);
else
// this will fix it when its dynamically loaded using LoadControl method
this.LocalResourceFile = this.LocalResourceFile + FileName + ".ascx.resx";
}
}

Friday

learn mobile development online

Stanford University has released its mobile app development course online for free.

The university notes that the two Stanford prerequisite courses, Programming Methodology [Link] and Programming Abstractions [Link], are also available on iTunes U.

Wednesday

poznavatelno

шаблон сайта, проданный 2.5k раз за год, принесший $50k создателю Познавательно - вот этот (http://bit.ly/rttpQP) шаблон сайта принес авторам за год 50 килобаксов (при цене $20).
Здорово, что дизайнеры могут зарабатывать так же, как и шароварщики - ничего не делая.

Thursday

online lesson videos from stanford


Artificial intelligence (http://ai-class.org).

Databases (http://db-class.org)

Machine Learning (http://ml-class.org).




Monday

linq concatenate rows

we can use Aggregate methods to concatenate fields in rows as follow:

var profiles = (from b in invoiceContext.bills
join p in invoiceContext.PaymentProfiles on 1 equals 1
where b.ProfileID == p.Id || b.ProfileType == p.Id
select p.Name).ToList();

if (profiles.Count() > 0)
{
BillingMethodLabel.Text = profiles.Aggregate((current, next) => current + ", " + next);
}


Friday

hgignore visual studio example


# use glob syntax.
syntax: glob

# c-sharp
/bin
/obj
*.user
*.suo
_ReSharper.*
*.sln.cache

bin/**
bin/Debug/**
obj/*

linq join on multiple fields by OR sample

Linq doesn't allow to do on t1.field1=t2.field1 or t1.field2=t2.field2
therefor it can be done by using OR in where statement:
     
var profiles = (from b in invoiceContext.bills
join p in invoiceContext.PaymentProfiles on 1 equals 1
where b.ProfileID == p.Id || b.ProfileType == p.Id
select p.Name).ToList();

Wednesday

resharper templates


To add new user-template in resharper from top menu in visual studio click on Resharper / Live templates select File Templates tab.
Find "User templates" and click on new template in toolbar .
Below is sample of command template:
Namespace variable will be "Default namespace for the current file".
Class variable will be "Current file name without extension".


       
namespace $NAMESPACE$
{
/// <summary>
/// $CLASS$ Linq Command
// </summary>
public class $CLASS$ : BaseLinqCommand, ILinqCommand
{
public $CLASS$() {
//constructor add your incoming params here
}

public bool CanExecute(Scope scope)
{
//add aditional validation here
return base.CanExecute(scope);
}

public void Execute(Scope scope)
{
//oly: main execution code goes here
}

}
}

Monday

testing svc web service

First you have to create test project in visual studio and add service reference, than you will be able to create test like this:
      
[Test]
public void BusinessWebserviceServiceTest01()
{
BusinessWebservice.ServiceClient client= new ServiceClient();
Debug.Write(client.getOpenInvoicesCount(1006469, 1, 1292071, "0"));
}

Thursday

isnumeric c#

Following function works like analog to vb isNumeric function
and checks that every character entered into myTextField is digit.

if (myTextField.Text.All(Char.IsDigit)){
// is numeric
}else{
// is not numeric
}

Wednesday

resizable div in jquery-ui with error label in asp.net

1.add links to jquery and css files.

<link type="text/css" href="../themes/start/jquery.ui.all.css" rel="stylesheet" />
<script type="text/javascript" src="../js/jquery-1.4.2.min.js "></script>
<script type="text/javascript" src="../js/jquery-ui-1.8.2.custom.min.js"></script>


2. add in document initialisation

<script type="text/javascript">
$(document).ready(function () {
$(" .resizable").resizable();
});
</script>

3.adding div in body below :

<div class='resizable' style='height:20px;overflow-x:hidden;overflow-y:hidden;width:100%'>
<asp:Label ID="ErrorLabel" runat='server' ForeColor=Red Font-Bold=true/>
</div>

Friday

software mistakes


  1. Don't bother with market research, because you just know lots of people are itching to buy your new product.

  2. Only release the product once it is perfect. However long that takes.

  3. Go into a market with very strong competition and compete with them head-on, because you only need a measly 1% of this market to get rich.

  4. Go into a market with no competition. How hard can creating a new market and educating all the potential customers be?

  5. Only think about marketing once the code is nearly complete.

  6. Write software for people who can't or won't buy software (e.g. 10 year olds, prisoners, Linux fanatics, people in developing countries, developers).

  7. Don' worry about marketing, because good software sells itself.

  8. Concentrate on the technology and impressing other developers.

  9. Don't listen to what your customers say, because you know best.

  10. Don't worry about usability. It took you thousands of hours to write the software. Surely the customer can spend an hour or two learning to use it.

  11. Embrace bleeding-edge technology.

  12. Don't worry about backups, because modern harddisks are very reliable.

  13. Don't even try. Just give your software away for free.



Saturday

My 7 principles to design the architecture for a software project

My 7 principles to design the architecture for a software project.

Making Good Software

Software architecture is quite a grey area. It involves taking decisions that you are not likely to revisit in the future. These decisions usually involve frameworks, programming languages, application servers, databases, e.t.c.


Software architecture is about coming up with the foundation from where developers are going to build up the application. This also includes: development environments: (source control, building tools, IDEs…), QA environments, Continuous integration environments, etc.


Bad architectural decisions can make the development of your project a complete failure, and are the most difficult decisions to revert.


Good architecture, in the other hand, for most projects, doesn’t really bring any advantage, it only allows for its normal development. Good architecture usually remains hidden under normal circumstances.



When designing the architecture, is essential to avoid bad decisions that are going to tax your development in the future. What follows is a list of principles to help you come up with safe and scalable architectures.


1.- Start with the minimal necessary architecture.


Avoid unnecessary complexity like unnecessary new technologies or frameworks.


Any architectural element needs to have a very good reason to be used in the project. If the benefits or necessity of an architectural element can’t be proved, then that architectural element should be removed.


2.- Consider the specifics of your project: Constraints and risks.


Defining the architecture is something that has to be adapted to the constraints and risks of your specific project.


You shouldn’t aim for the same kind of architecture if it is a start-up or a project for a multi-national company. You should also consider the expertise of your team, if they are very experienced in a particular programming language/framework… you should probably use it even if it is not the one you prefer.


Risk areas, like a requirement to have some service with a high availability, are going to require additional considerations in the architecture that you need to keep in mind.


Constraints and risks are the element that are going to move you away from your comfort zone, but they need to be looked at, to make sure that if necessary, they get addressed from the architecture.



3.- Grow as you need.


Delay any architectural element as much as you can, especially if they are complex.


Sometimes requirements seems to call for complex integrations/frameworks… like rules frameworks, ESBs… for these cases, I find it better to ignore them at the beginning and try to complete the first end-to-end scenario as soon as possible. When this first scenario is completed, then grow from there, one step at a time, adding new functionality as requested by the user. This way, it will become obvious if that architectural element is really necessary, and if it is, it will also be obvious how you should integrate it with the rest of the architectural elements in your project.


4.- Deliver continuously.


Continuous delivery is the vehicle to allow you to refine your architecture as you go.


Continuous delivery is based in four principles:


Deliver soon: The purpose of delivering soon is to shorten the feedback cycles with the customer, allowing for changes in the requirements if necessary.


Deliver many times: Delivering many times guarantees that the feedback cycle is smooth.


Bug free: The code must be clean of critical bugs.



Production ready: It should be deployable at any time.


 5.- Require a customer.


Having someone acting as a customer, making decisions about priorities and signing off releases is critical for the good development of your project.


Failure to have someone representing correctly the role of the customer causes misdirection in the development and consequently causes that the final product developed won’t meet expectations.


6.- Avoid waste.


Architecture can lead to an excess production of artefacts, inexperienced architects may pretend to foresee the entire architecture of the application and have it specified in paper.


This is especially true in companies following waterfall like processes, and sometimes it cannot be avoid, forcing the architects to produce such and such document/diagram.


Excessive initial architecture/design, aka Big design upfront (BDUF), is not only bad because is wasteful, its main risk is to let the development team believe that they cannot deviate from the original specifications, making it very difficult to be adaptive to future changes.


7.- Maximise feedback and transparency



Feedback and transparency guarantees no surprises for the customer, which in turn helps building a more trustworthy and productive relationship.


Maximising the feedback and transparency are one of the ultimate goals of the development process for any project, this allows for early and informed reaction when change is necessary, whether something is going wrong, or whether the customer wants to introduce a change in the specifications.

Friday

Cache Attibute

  
using System;
using System.Reflection;
using System.Text;
using Microsoft.Practices.EnterpriseLibrary.Caching;
using PostSharp.Aspects;

namespace Business.Shared.Attributes
{
[Serializable]
public sealed class CacheAttribute : OnMethodBoundaryAspect
{
// This field will be set by CompileTimeInitialize and serialized at build time,
// then deserialized at runtime.
private string _methodName;

// Method executed at build time.
public override void CompileTimeInitialize(MethodBase method, AspectInfo aspectInfo)
{
_methodName = method.DeclaringType.FullName + "." + method.Name;
}

private string GetCacheKey(object instance, Arguments arguments)
{
// If we have no argument, return just the method name so we don't uselessly allocate memory.
if (instance == null && arguments.Count == 0)
return _methodName;

// Add all arguments to the cache key. Note that generic arguments are not part of the cache
// key, so method calls that differ only by generic arguments will have conflicting cache keys.
var stringBuilder = new StringBuilder(_methodName);
stringBuilder.Append('(');
if (instance != null)
{
stringBuilder.Append(instance);
stringBuilder.Append("; ");
}

for (int i = 0; i < arguments.Count; i++)
{
stringBuilder.Append(arguments.GetArgument(i) ?? "null");
stringBuilder.Append(", ");
}

return stringBuilder.ToString();
}

// This method is executed before the execution of target methods of this aspect.
public override void OnEntry(MethodExecutionArgs args)
{
// Compute the cache key.
var cacheKey = GetCacheKey(args.Instance, args.Arguments);

// Fetch the value from the cache.
var cacheMgr = CacheFactory.GetCacheManager();
var value = cacheMgr.GetData(cacheKey);

if (value != null)
{
// The value was found in cache. Don't execute the method. Return immediately.
args.ReturnValue = value;
args.FlowBehavior = FlowBehavior.Return;
}
else
{
// The value was NOT found in cache. Continue with method execution, but store
// the cache key so that we don't have to compute it in OnSuccess.
args.MethodExecutionTag = cacheKey;
}
}

// This method is executed upon successful completion of target methods of this aspect.
public override void OnSuccess(MethodExecutionArgs args)
{
var cacheKey = (string)args.MethodExecutionTag;

var cacheMgr = CacheFactory.GetCacheManager();
cacheMgr.Add(cacheKey, args.ReturnValue);
}
}
}

Monday

primer

ne moe :), vzjato otsjuda , prosto horoshij primer kak ljudi kalbasjat...est k 4emu stremico :)

4 дня висим в Top Paid iPhone Apps USA на третьем месте. Позиции в Top Grossing Apps (топ приложений по прибыльности) неопределенные. Были и на 22 месте. Были и на 15. Похоже, что в самые ближайшие дни из топов не уйдем, что, конечно, радует.


Удивляет некоторое количество камментов к игре, мол, это все поддельные review, типа «And the most annoying thing for me is an insane amount of fake reviews, I assume from the developer’s PR firm«. Подобное прислали и в блог: «Так это же накрученный рейтинг ведь, разве нет?» Жаль, что при зарождении новых жизней Где-то Там, мозги достаются не всем.


Однако, чего бы и не рассказать «секрет» такого взлета.


//*** вырезано цензурой ***\\


Итак, игра сейчас (еще раз повторю, не распространяйте эти результаты на птиц и катзеропы, на деле, если игра имеет больше топов, результаты ВЫШЕ), находясь в топе 5 дает от 9 до 12 тысяч загрузок в сутки. Вместе с продажами внутри игры, нам с издателем получается примерно в среднем 10 тысяч долларов в сутки. Всего со дня запуска продажи касок, нам с издателем она заработала 105 тысяч долларов. С момента попадания в топ-25 (14 августа) – 66 тысяч. Приведу еще одну цифру: с момента запуска продажи касок (со 2 августа по 20-е) игра заработала в общей сложности (нам с издателем и Эпплу, а именно эти цифры приводят другие издатели, когда хвастают доходами): 150 тысяч долларов. После того, как полная версия стала платной, продажи касок не упали, остались все на том же уровне: $2000-$2200 долларов в сутки нам с издателем. Со момента запуска каски принесли примерно 37 тысяч долларов (кстати, каким-то образом находятся люди, которые умудряются ВОЗВРАЩАТЬ деньги за каски тем же способом, что и возвращают деньги за «непонравившуюся» игру, как они это делают, мне нищебродскую душу не понять).



Вот так обстоят дела.


Сейчас «Too Addictive!« медленно спускается вниз, но третье место позволяет платной версии игры держаться на своем месте – топ делает свое дело, игра продает сама себя. К тому же, нужно отдать должное самой игре – она имеет очень хорошие отзывы и рейтинги (5 полных звезд), что также держит ее почти на вершине Олимпа.


Будет ли первое место? Скорее всего – нет, первые два, по моим расчетам, делают больше 30 тысяч загрузок в сутки каждая, сложно такого добиться. Оно и не нужно, сейчас неплохо бы остальным странам подтянуть игру в свои топы, тогда денег будет как минимум раза в два больше.


Работаем дальше, всем спасибо за поддержку!





floomby.ru

Да, нужно на базе имеющегося функционала выпустить доп фичу, с которой и монетизировать проект.
А вот то, как правильно выбрать эту фичу так, чтобы минимальными усилиями выжать максимальную пенку не навредив имеющемуся — это уже главный вопрос, требующий детального исследования темы.

Запартнёрится можно. Только не совсем понимаю, что вы имеете под этим ввиду. Впринципе, если есть желание развивать проект, то готов даже вложиться своими деньгами и знаниями.

Вот сейчас вы "спалили" тему. Вполне возможно, что конкуренты появятся очень быстро. Если вы начнёте монетизировать проект, то к моменту появления конкурентов надо быть готовым, ибо на монетизации это обязательно скажется. Вам необходимо так развивать проект, чтобы ценность вашего проекта в глазах пользователя была максимальна вне зависимости от того, сколько конкурентов повторят ваши фичи. Ваша фора в виде времени должна быть конвертирована в сетевой эффект. Чем скорее это будет сделано, тем больше будет прибыль в долгосрочной перспективе.
Однако, есть серьёзный риск здесь со стороны производителей ОС, если они встроят похожий функционал в систему. Это надо понимать.



Гражданин путает. Бывает разный траффик, хороший и плохой. Нагнать 15к уников задача несложная, вопрос только каких. У тебя аудитория со всего рунета, судя по галерее обычное интернетное хомячье, по географии и интересам не сегментированное. Такой траффик продается большими пачками и очереди на него не стоит. С этим можно побарахтаться но 20килобаксов тут нет даже если этот проект продать на корню.

По рекламе.

1. Для начала попробуй заменить AdSense на Бегун. Общий принцип, русский траффик лучше всего берут русские. Гугл у тебя даже дефолтные баннеры показывает, это никуда не годится.
2. Подключись к нормальной рекламной сети, лучше всего игровой. Бывают те, что платят за leads, а при твоем хомяковом траффике это уже интересно.
3. Попытайся запартнерится с игроделами. Они умеют извлекать из траффика деньги, а у тебя как раз есть траффик.
4. Сегментируй аудиторию. Реклама по сегментированной аудитории стоит дороже. Для этого можно, например, ввести теги.
5. Повышай лояльность пользователей. Сейчас у тебя в среднем два просмотра с пользователя. Прикрути комментарии и оценки, чтобы поднять хотя бы до 10.
6. Сейчас у тебя нет контекста, к которому может цепляться контекстная реклама. Это значит что контекст нужно либо добавить, либо отказаться от контекстной рекламы.
7. Займись SEO, там еще есть потенциал, тем более у тебя есть много потенциальных ссылок с внешних ресурсов.

Thursday

free to play

Аналитическая компания Flurry продолжает открывать для себя (и прочей изумленной публики) чудесный мир монетизации фритуплейных игр. Их новый инсайт, полученный после изучения 57 миллионов внутриигровых покупок на платформах iOS и Android, таков: основные деньги пользователи тратят на расходники, то есть такие предметы, которые тратятся и исчезают в процессе использования – это, например, наши любимые удобрения или какие-нибудь аптечки. На такие товары приходится 65% всех покупок. Еще 30% – это основательные предметы, типа например особо красивых домиков в Paradise Island, которые остаются с юзером надолго и дают ощущение прогресса. А меньше всего трат – 2% – приходится на всевозможную персонализацию, не влияющую на геймплей (то, на чем пытались зарабатывать социалки первой волны).



Напомним, что в одном из прошлых своих исследований компания Flurry выяснила, что средний платеж в бесплатных играх составляет 14 долларов, а до этого первой объявила недоверчивым мобильщикам, что фритуплей уже плотно поселился в их домах и перегнал по заработку традиционную модель оплаты премиум-игр.

Monday

sqlite merge table


C:\Development\Main\Common\SQLite>sqlite3 c:\test\a.db3

SQLite version 3.2.7

Enter ".help" for instructions

sqlite> attach 'c:\test\b.db3' as toMerge;

sqlite> insert into AuditRecords select * from toMerge.AuditRecords;

sqlite> detach database toMerge;

Sunday

Свожу в один пост инфу по продажам касок за три дня:


——-


4 августа скачали 190 тысяч раз.


- для айфона, 5 касок за $0.99 взяли 1108 раз,



- для айфона, 15 касок за $1.99 взяли 514 раз,


- для айпада, 5 касок за $0.99 взяли 35 раз,


- для айпада, 15 касок за $1.99 взяли 40 раз.


Итого, наши с издателем деньги – чуть меньше 1600 долларов.


——-


5 августа – 173 тысячи.



- для айфона, 5 касок за $0.99 взяли 1234 раз,


- для айфона, 15 касок за $1.99 взяли 561 раз,


- для айпада, 5 касок за $0.99 взяли 29 раз,


- для айпада, 15 касок за $1.99 взяли 47 раз.


Итого, наши с издателем деньги – чуть больше 1700 долларов.


——-



6 августа – 170 тысяч.


- для айфона, 5 касок за $0.99 взяли 1363 раз,


- для айфона, 15 касок за $1.99 взяли 651 раз,


- для айпада, 5 касок за $0.99 взяли 30 раз,


- для айпада, 15 касок за $1.99 взяли 30 раз.


Итого, наши с издателем деньги – чуть меньше 2000 долларов.



——-


Итого, с начала продаж (2 августа) по вчера (6 августа) заработано (с издательскими деньгами) почти 7 тысяч долларов.


При этом игра добралась до 333 места в Top Grossing в США.


Хорошо живут верхнии позиции этого топа. По слухам верхние позиции делают от 30 тысяч американских рублей в сутки играючи.


Так что есть куда стремиться.


Чего и всем желаю.

Friday

Pomodoro technique timer - this one with the RPG game

Pomodorium is a new pomodoro technique timer with embedded RPG game :)

In this game for completing pomodoro you are receiving 25-gold,

and you can spend it on buying weapons and armors and play from level 0 to 40 , travel through the map and free cities from monsters.


Software requires Adobe AIR.

here is link on Pomodorium website

Wednesday

linq subquery for in

for example following sql

select * from AccountTransactions a
where
a.TransactionId =19687 OR
a.TransactionId in (select ChildId from AccountTransactionRelations where InvoiceId=19687)


will have this equivalent in linq:

var records = from t in odc.AccountTransactions
join r in odc.AccountTransactionRelations on t.TransactionId equals r.InvoiceId into rel
where t.TransactionId == transactionId || rel.Select(o => o.ChildId).Contains(transactionId)
select t;



Friday

application monetization

Banners and ads :

Theres CPM banners, which pay per ad displayed:
Adbrite: www.adbrite.com
AdSense www.Google.com/AdSense < br>
Theres CPC banners, which pay per ad clicked:
Zohark: www.f
acebook.com/applications/Zohark_Ads/18584639088

Adchap: http://adchap.com/

Theres CPA
systems, which pay per action,
like surveys/offers:
Peanutlabs: www.peanutlabs.com
MillnicMedia: www.millnicmedia.com
$uperRewa
rds: http://www.facebook.com/apps/applicatio … 6131192103

Theres PPP
system, which pay per play of
audio advertisements:
Netaudioads: http://www.selling
ppp.com/a.cgi?ppp=1207763387


Some are easy to apply for..
like Google
AdSense Others are very difficult to apply for.. like peanut labs

Virtual currency:


Thursday

banki

здесь рядом обсуждали будущие флэш(забавные уважаемые люди =)**), а самое интересное оказалось о конкретно одном проекте - Танки Онлайн. А они приносят в месяц 750k$ - круто(Наверно это gross)*. Технические расходы - 30к$/месяц, еще 10к или 30к где то на поддержку уходят. Делали их вроде где то год, гдето 20-30 человек. Наверно 500к$-900к$ ушло на разработку, и еще на маркетинг несколько сотен.



Вообще, тема мультиплеерных танков на флэше - до сих пор являеться одной из самой популярной. Как то пример - успех клонов Advanced Wars и Tanks. ShellShock - мультиплеерные танки великолепен не только сам по себе - а по деньгам тоже - всеголишь в 10-15 раз зарабатывает меньше Танков Онлайн.



*Пруф - сказали узнавать в вашей налоговой! =)


**ЗЫ флэш всех переживет!






Джо Ейґбобо (Joe Aigboboh) 22 роки і на відміну від багатьох своїх однолітків у нього немає облікового запису в Facebook. Втім, це не завадило йому разом зі своїм партнером Джессом Тевелоу (Jesse Tevelow) добре заробити на цій соціальній мережі. Хлопці створили міні-додаток Sticky Notes і тепер тільки на рекламі заробляють близько 45 тисяч доларів на місяць.
Sticky Notes – досить простенький Facebook-додаток, що дозволяє залишати короткі замітки. Його розробка зайняла менше тижня, проте витрачений час окуповується в декілька раз. Після того, як творцям вдалося вийти на заробіток у кілька десятків тисяч доларів на місяць, вони вирішили сконцентруватися на створенні інших додатків. Була навіть зареєстрована компанія J-Squared. Інший додаток, Glitterbox, дозволяє відправляти яскраві повідомлення та зображення.
І хоча різноманітних додатків для Facebook створено кілька тисяч, по-справжньому популярних не так багато – згідно Business Week лише близько сотні з них були встановлені понад півмільйона разів. Згадане Sticky Notes було встановлено 3,5 мільйона разів, а щодня ним користуються трохи більше 200 тисяч чоловік.
Цікаво, що навіть рідні та близькі засновників здивовані їх успіхами. Мати Джесса Тевелоу вважає сина божевільним і не вірить, що в цій області можуть бути мільйонні оборудки.

connect skydrive to windows explorer


1.Go to http://skydrive.live.com/.

2.Log in with your Windows Live ID.

3.Copy of ID cid URL https://skydrive.live.com/?wa=wsignin1.0 # cid = 1234567890abcdef

4.Open Windows Explorer.

5.In the left pane, right-click on the Network (Network Neighborhood). Select Map network drive (Network Drive).

6.Enter the address URL: \ \ docs.live.net @ SSL \ 1234567890abcdef (1234567890abcdef replace your ID)

7.Select the drive letter and click OK.

8.You will be asked to enter user accounts Windows Live ID. Enter them.

9. Now your network drive connected!

Wednesday

change favicon blogger

1.upload icon on photobucket (hello senon:) ) et a link and add following to your blogger template after </head/> tag:


<link href='{image url}' rel='shortcut icon'/>
<link href='{image url}' rel='shortcut icon' type='image/vnd.microsoft.icon'/>
<link href='{image url}' rel='icon'/>
<link href='{image url}' rel='icon' type='image/vnd.microsoft.icon'/>

Tuesday

dday ical example

         
// #1: Monthly meetings that occur on the last Wednesday from 6pm - 7pm

// Create an iCalendar
iCalendar iCal = new iCalendar();

// Create the event
Event evt = iCal.Create<Event>();
evt.Summary = "Test Event";
evt.Start = new iCalDateTime(2008, 1, 1, 18, 0, 0); // Starts January 1, 2008 @ 6:00 P.M.
evt.Duration = TimeSpan.FromHours(1);

// Add a recurrence pattern to the event
RecurrencePattern rp = new RecurrencePattern();
rp.Frequency = FrequencyType.Monthly;
rp.ByDay.Add(new DaySpecifier(DayOfWeek.Wednesday, FrequencyOccurrence.Last));
evt.AddRecurrencePattern(rp);

// #2: Yearly events like holidays that occur on the same day each year.
// The same as #1, except:
RecurrencePattern rp = new RecurrencePattern();
rp.Frequency = FrequencyType.Yearly;
evt.AddRecurrencePattern(rp);

// #3: Yearly events like holidays that occur on a specific day like the first monday.
// The same as #1, except:
RecurrencePattern rp = new RecurrencePattern();
rp.Frequency = FrequencyType.Yearly;
rp.ByMonth.Add(3);
rp.ByDay.Add(new DaySpecifier(DayOfWeek.Monday, FrequencyOccurrence.First));
evt.AddRecurrencePattern(rp);

/*
Note that all events occur on their start time, no matter their
recurrence pattern. So, for example, you could occur on the first Monday
of every month, but if your event is scheduled for a Friday (i.e.
evt.Start = new iCalDateTime(2008, 3, 7, 18, 0, 0)), then it will first
occur on that Friday, and then the first Monday of every month after
that.
*/

Thursday

plugin architecture in air

links:
http://stackoverflow.com/questions/344705/building-a-plugin-architecture-with-adobe-air

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/modules/ModuleManager.html

http://livedocs.adobe.com/flex/3/loading_applications.pdf

http://livedocs.adobe.com/flex/3/html/help.html?content=18_Client_System_Environment_5.html#119371

Monday

get country name in winforms c#


// return two letter iso number like :"ES", "SE", "CA", "BE", "DE", "AT", "NL", "NO", "CH", "FI", "FR", "IR", "LU", "SW", "AU", "UK",
public string getCountry()
{
return RegionInfo.CurrentRegion.TwoLetterISORegionName.ToUpper();
}

Thursday

caching in .net system.runtime.caching example

 
using System.Runtime.Caching;
public class UseCacheSample {
private static void UseCacheSampleMethod()
{

Demo demo;
ObjectCache cache = MemoryCache.Default;
if (cache.Contains("demo"))
{
demo = (Demo)cache.Get("demo");
}
else
{
demo = new Demo();
demo.SetTimes();
cache.Add("demo", demo, new CacheItemPolicy());
}

}
}

Wednesday

windows cannot connect to the domain vmware


here is steps how to solve this :
1. Log in as a local administrator to the VM
2. Right click on Computer. Choose Properties
3. Click Network ID
4. Run through the Wizard - you will need a Domain level administrator password that is able to validate your domain login.


Tuesday

Are you solving a real problem?

Has your customer got a ?bleeding neck?? Is your software solving a problem compelling enough that someone is going to download it, install it, evaluate it, buy it and then learn to use it, with the accompanying risks of credit card fraud and malware? It is hard to change people?s habits. They are going to keep doing what they are doing now (e.g. pen and paper or Excel) unless you can convince them your software offers them very significant advantages.



2. How much will people pay for this product?


This is a complex question and depends on many factors. You should be able to get a rough idea by looking at your closest potential competitors. But there are some types of software that people don?t expect to pay for, no matter how difficult or expensive it is to develop ? for example web browsers and media players. There are some users who can?t pay ? for example children and people in some developing countries. And there are some people who won?t pay ? for example many Linux users. So good luck selling a media player aimed at teenage Linux users in China.


3. Is the market big enough?


Is the market big enough for you to make a living? How many people are looking for solutions to this sort of problem? This is less of a problem than most people think. Given the huge number of people with Internet access and credit cards it is possible for a small company to make a decent living from a market that appears very narrow. Narrowing your market also allows you to be much more focussed in your marketing.


4. Can you promote it cost effectively?


How are you going to reach customers: Adwords, SEO, partners, magazine ads, direct mail, social media, affiliates, resellers or other methods? Can you do it cost effectively? How much is each sale from Adwords going to cost you assuming a 1% conversion rate? If it costs you $31 in advertising for each sale of a $30 product, you aren?t going to be in business long. But if you can cross-sell it to customers you already have a relationship with, that is a huge plus.



5. How much competition is there?


If there are lots of established competitors, you may have a hard time getting noticed. Personally I wouldn?t want to go into any market where I didn?t have a reasonable shot of getting to the first page on Google for at least some of the important search terms. For example, I think it would be incredibly tough to succeed with yet another Twitter, RSS, todo list or backup application. Conversely, if there are no competitors, that means that there may be no market. Creating a new market is tough, especially for a small company. Ideally you want a market where there are competitors making a decent living, but you think you can do a better job than them, or at least be different to them in some important way.


6. How is your product different?


Many vendors try very hard to reach feature parity with their competitors. But successful marketing means being different to your competitors. How is your product going to be different? What is your positioning? Note that just being cheaper than your competitors is not enough.


7. How high is the barrier to entry?


How long will it take you to create a minimum sellable product? If the barrier to entry is too high, you may never have the time, cashflow and energy to reach v1.0. As a self-funded microISV I wouldn?t want to work on any product where I couldn?t deliver something sellable (a minimum viable product) within 6 months. Conversely if the barrier to entry is too low, then it will be easy for others to copy your idea if it is successful.



8. Can you reach critical mass?


Some types of applications need a certain number of users before they can take off (network effect). For example, a massively multi-player game or auction site isn?t going to be very interesting until the number of users reaches a certain threshold. Do you have the contacts and financial resources to reach this threshold?


9. Do you have the technical skills and domain knowledge to create this product?


If not, how long will it take to learn them? Different technologies suit different types of problems. Using an inappropriate technology, just because it is one you have experience in, is unlikely to end well.


10. Are you scratching your own itch?


If you can be your own customer, then this can be very helpful in coming up with a good solution. But be wary about assuming that your needs are the same as everyone elses.



11. What is the lifetime of the product?


Is the technology is going to be obsolete or will the market disappear within a couple of years?  Are customers likely to buy upgrades to new versions? The longer you can sell a product for, the more profitable it is likely to be.


12. Is a good domain available?


Can you get a good domain for your product? Domains that contain keywords that people are likely to search on will help with SEO.


13. What are the risk factors?


Every dependency is a risk factor. If the platform your products runs on dies, then your product dies.  If you are writing an add-on for another product, then you can be put out of business pretty much overnight if the core product dies or if the functionality of your add-on is incorporated into the core product. Can you get source code for third party libraries?



14. Is the passion there?


Good software takes a lot of time and effort. Don?t believe the hype about 4 hour work weeks. Is it going to be interesting and fun? Do you have the passion and commitment to still be working on this product in 10 years time?


15. Will it make the world a better place?


Software products can be an enormous force for good in the world, increasing productivity and allowing people to do things they couldn?t do otherwise. You don?t have to be the next Google to be doing something worthwhile. But creating a ?me too? clone of an existing software package or a product that encourages anti-social behaviour (e.g. spamming) isn?t going to make the world a better place.


Making a decision


You need to look at all these criteria before you make a decision. For example, a short lifespan or a small market might be compensated for by a high ticket price. If you are evaluating several products, create a simple table with a row for each criteria and a column for each product and compare them side by side.


Did I miss any important criteria?


Friday

best mobile app ideas

В течение моды и денег: разработка мобильных приложений

Последнее время постоянно слышу о том, как знакомые начинают заниматься разработкой приложений для мобильных устройств. Их становится все больше и больше. Не понятно, откуда берутся эти команды? И где они находят разработчиков? Ответ один – это тренд и все хотят попасть в течение моды и денег.

Немного подумав, я решила собрать советы для тех, кто сам начинает заниматься разработкой мобильных приложений, верю в то, что будет полезно ))




Для начала разработки приложения нужно:

• Провести анализ мобильных платформ (необходимо разбираться в особенностях)

• Провести анализ мобильных устройств (возможности)

• Набрать команду разработчиков

• Составить возможный бюджет

• Составить маркетинговую стратегию



Чтобы правильно попасть в течение, нужно ответить на вопросы:

Какие отрасли бизнеса нуждаются в выходе на мобильный рынок?




Актуальные отрасли для разработки приложений:

• Бизнес: планирование и менеджмент

• Общение

• Образование

• Развлечения, игры

• Финансы: управление деньгами, банковские услуги

• Геолокация

• Медицина и Фитнес


• Новости

• Социальные сети и блоги

• Видео и музыка



Какие особенности потребительского поведения?



Занимательная схема потребительского поведения в Японии, США и Европе (по данным comscore.com)





Как сделать приложение более эффективным в использовании конечным пользователем?




В хорошем мобильном приложении должно сочетаться три свойства:

1. Удобство в использовании. Это значит интуитивный дизайн и объединение всех возможностей мобильного устройства. Самые популярные платформы iPhone и Android, у них есть много общего, но продуманное приложение будет включать в себя функции, которые используют особенности каждой из них.

2. Вовлечение. Приложение должно быть увлекательное. Наиболее популярные приложения это игры. Но и те, которые не являются играми, тоже содержат в себе элемент развлечения. В приложении может использоваться огромное количество функционала, которое даже тяжело представить, но наилучший способ заставить человека использовать его это внести элемент развлечения.

3. Польза. Приложение должно принести существенную пользу пользователю. Тогда он будет использовать его долгое время.




Какие особенности монетизации на российском рынке.



Понятно, что в России ситуация обстоит иначе, чем на Американском или Европейском рынках. Активные позиции уже заняли несколько компаний, которые специализируются на разработке приложений, они понимают, что нужно рынку и как это сделать.

Считается, что около 90 процентов разработчиков не могут добиться успеха и вернуть деньги, которые вкладывались в их проекты.

На самом деле Россия — самый выгодный рынок для производителей мобильного ПО. Смартфонами в нашей стране пользуются всего 7% сотовых абонентов. Для сравнения: в Западной Европе – 28%. Российский рынок смартфонов в ближайшие годы, по прогнозам, ожидает титанический рост. Так что начинайте разрабатывать приложения уже сейчас.



Подводя итоги:

Наверное, выше представлены основные аспекты, о которых стоит задуматься до начала разработки мобильных приложений. Когда вами будет разработано первое приложение, появится опыт, вы получите feedback от пользователей, учтете его и следующее приложение будет гораздо лучше. В интернете есть множество постов, когда разработчики рассказывают о своем опыте, их тоже будет полезно почитать.

Еще полезно послушать людей, которые этим занимаются, как раз на тему создания мобильных приложений будет проходить интересное мероприятие 2 июня в Бизнес-инкубаторе «Ингрия» (Санкт-Петербург). Приглашены несколько спикеров, как со стороны агентства, так и со стороны заказчика. Подробнее на сайте ingria-startup.ru/novosti1/novosti/lead_the_way_sozdanie_mobilnih_prilozhenii/




Еще немного интересных фактов и рынке мобильных приложений:

• ТОП мобильных социальных медиа возглавляет Facebook в Европе и США, а в Японии это Mixi





• Статистика говорит о том, что к 2014 году будет скачено около 79.6 биллионов мобильных приложений



• Индустрия мобильных приложений будет составлять 35$ биллионов к 2014 году

flex urlencode

use encodeURIComponent() for that

UrlParam = UrlParam + '&name=' + encodeURIComponent(name.text) +
'&business=' + encodeURIComponent(buisness.text);
navigateToURL(new URLRequest(UrlParams),'_self');

Thursday

flex replace all string

here is example of code how to use flex replace function in order to get all replacements:

var str:String = "test xxx test yyy";
str.replace(/test/g, "WOW");
// str is now "WOW xxx WOW yyy"

flex grid refresh

here refresh samples of posible grid refresh calls

private function refresh():void{
MyDataProvider.MyDataArrayCollection.refresh();
myGrid.data=MyDataProvider.MyDataArrayCollection;
myGrid.invalidateList();
myGrid.invalidateDisplayList();
myGrid.dataProvider.refresh;
myGrid.executeBindings(false);
ArrayCollection(myGrid.dataProvider).refresh();
}

Wednesday

convert ape to mp3

with opensource software only, no installations required

1.Download ffmpg http://ffmpeg.zeranoe.com/builds/

2.Conver ape into Wav by ffmpeg.exe -i file1.ape file1.wav

3.Download lame http://lame.sourceforge.net/download.php

4.encode wav into mp3 with lame file1.wav

singelton c# (thread safe, lazy initialization )

       
public sealed class Singleton
{
Singleton()
{
}

public static Singleton Instance
{
get
{
return Nested.instance;
}
}

class Nested
{
// Explicit static constructor to tell C# compiler
// not to mark type as beforefieldinit
static Nested()
{
}

internal static readonly Singleton instance = new Singleton();
}
}

Friday

game sample OGS Mahjong 0.7

OGS Mahjong 0.7

Не далее чем в августе прошлого года, я писал топик о разрабатываемой силами программиста kornerr и моими небольшой игре под названием OGS Mahjong.




Будучи «проектом свободного времени», OGS Mahjong развивался медленно и неторопливо, однако за 9 месяцев его версия подросла до цифр 0.7.





Видео новой версии:

www.youtube.com/watch?v=rZ9RrAUGX7E

www.youtube.com/watch?v=3u1sxg4K5sQ



Что же изменилось в OGS Mahjong за эти 9 месяцев?




Прежде всего, игра была переписана практически с нуля. Кроме того:


  • Добавлена поддержка сохранения и загрузки партии.

  • Добавлен игровой режим «Шисен-сё» в вариантах «с гравитацией» и «без гравитации».

  • Добавлено приблизительное определение оптимальных настроек при первом запуске игры.

  • Значительно изменен интерфейс.

  • Добавлена автокамера, следящая за курсором. (включается в настройках управления)

  • Добавлены понятные сообщения об ошибках и подробное логирование по принципу «все в один файл».

  • Убрана поддержка неполных тем фишек, в связи с чем удалена тема «9 мая».


  • Улучшены алгоритмы подсчета доступных ходов и выбора фишек. Это уменьшает задержки, возникающие при игре на больших раскладках.

  • Добавлена немецкая локализация.

  • По многочисленным просьбам, в архив с игрой для каждой ОС были включены файлы данных, теперь их не нужно скачивать отдельным архивом.





По этим ссылкам можно скачать игру:





При желании, можно скачать архив с дополнительной музыкой. Его нужно распаковать в директорию с игрой.



Желающие покопаться в коде могут найти исходники в Mercurial-репозитарии:

http://osrpgcreation.hg.sourceforge.net:8000/hgroot/osrpgcreation/osrpgcreation



Подробные инструкции по сборке здесь:

code.google.com/p/ogstudio/wiki/InstallMJIN

code.google.com/p/ogstudio/wiki/InstallMJ




В технологическом плане, мы считаем что вышли на финишную прямую.



Дальнейшая работа будет сосредоточена на исправлении ошибок, улучшении юзабилити и внешнего вида игры, добавлении инсталлера, а также сборке deb и rpm пакетов для обладателей соответствующих дистрибутивов linux. Со всеми этими планами попробуем уложиться в следующие полгода. Как оно получится на самом деле — увидим.



Любые отзывы по поводу проблем юзабилити и прочих багов приветствуются.



Ну и если кто-то хочет помочь нам с визуальным оформлением игры — будем рады. К сожалению, ничего кроме строчки в титрах предложить не можем.



P.S. В комментариях к прошлому топику один из хабралюдей интересовался потраченным на разработку временем. Рассказ kornerr об этом опубликован на этой странице.







Monday

distinct linq example

1.Create IEqualityComparer class

public class DistinctTitle : IEqualityComparer<SourceType> {
public bool Equals(SourceType x, SourceType y) {
return x.title.Equals(y.title);
}

public int GetHashCode(SourceType obj) {
return obj.title.GetHashCode();
}
}

2. Comparer can be used as follows:

var x = (from t in dc.table
where t.sourceId = 5
order by t.itemId descending
select t)
.Distinct(new DistinctTitle())
.Select(t=>new{t.itemId, t.sourceId, t.title });

links for learning dot.net/c#

  • XNA RPG - изучение XNA на примере построения RPG-игры (руководство из 26 частей) (link);
  • Список событий в GLOBAL.ASAX (link);

  • Проект для ASP.NET- Git Web Access (link);

ASP.NET MVC

  • ASP.NET MVC 3 для начинающих: добавляем ввод даты с помощью jQueryUI и NuGet (link);


  • Руководство по Orchard, часть 1 - запуск блога (link);

  • Руководство по Orchard, часть 2 (link);

  • Custom Role Provider. Часть 1 (link);

  • Настройка шаблонов T4 MvcScaffolding (link);


  • Управление сессиями NHibernate в приложениях ASP.NET MVC (link);

  • patterns & practices- Project Silk Drop 7 (link);

  • Исопльзование Entity Framework Fluent API и Code First в ASP.NET MVC (link);


HTML5, JavaScript, веб-стандарты:

  • Работа с CSS 3 в Expression Web (link)

  • Мнение о том, когда использовать Canvas и SVG (link);

  • Новые полезные JavaScript CSS решения 2011 года. 16 свежих плагинов для веб-разработчика (link);


  • Результаты тестирования скорости JS в браузерах (link);

  • IE9 Compat Inspector - инструмент анализа сайта на проблемы с JavaScript (link);

  • Фрактал на JavaScript с помощью HTML5 (link);

  • 14 браузерных javascript - игр, использующих HTML5 (link);


  • Расширение ваших jQuery-приложений с Amplify.js (link);

  • Useful jQuery Plugins - April 2011 (link);

  • Взрывной логотип с помощью CSS3 и MooTools или jQuery (link);



Silverlight/WP7:

  • Создание приложения для Windows Phone 7 от начала до конца (link);

  • Обновление Silverlight 4 от 19 апреля (link);

  • Новый конкурс мобильных приложений под Windows Phone 7 (link);


  • Официальный гайдлайн по использованию кнопки Download for Windows Phone 7 (link);

  • Официальное руководство по построению WP7-приложений для работы с SharePoint и UAG (link);

  • Silverlight 5.0- Custom Markup Extensions and Roles (link);

  • Лучшие БЕСПЛАТНЫЕ платформы, инструменты и элементы управления для Windows Phone 7 (link);


  • Выпущены инструменты Phoney Tools 1.0 (link);

  • Уроки по Silverlight PivotViewer (link);

  • Silverlight 5 Beta Rough Notes–Linked RichTextBoxes (link);

  • Доступны исходные коды Silverlight 5 3D-проекта Housebuilder, показанного на MIX11 (link);


  • XAML и Data Binding- Расширенные возможности разметки и связывания данных в Silverlight (link);

Облачные технологии:

  • Апрельское обновление Windows Azure AppFabric SDK и анонс доступности сервиса Windows Azure AppFabric Caching Service (link);

  • 17 диаграмм Visio с описанием работы сценариев Windows Azure AppFabric Access Control Service (link);


  • Простая организация VPN с помощью Windows Azure Connect (link);

  • Сбор диагностических данных в вашем приложении Windows Azure (link);

  • Размещение Ruby on Rails на Windows Azure - часть 2 (link);

  • Как добавить тип проекта MVC 3.01 в мастер Azure Cloud Service (link);


  • Расширения IIS для Windows Azure (link);

Инструменты:

  • Выпущена новая версия пакетного менеджера NuGet 1.3 (link);

  • Выпущена предварительная версия SQL Server 2008 R2 Service Pack 1 (link);


  • Выпущены новые версии инструментов для миграции баз данных Oracle, Sybase, Access и MySQL на SQL (link);

  • А еще в Visual Studio есть External Tools… (link);

  • Обзор новых инструментов от команды WCF, которые были представлены на MIX11 (link);

  • Reflector Умер? Да здравствует JustDecompiler (link);


Другое:

  • Сертифицированным специалистам Microsoft платят на 21 % больше (link);

  • Продукты Microsoft Windows 7, Windows Server 2008 R2 и SQL Server 2008 SP2 получили сертификацию (link);

  • Dependency Injection pattern- три способа реализации (link);

  • Associations in EF 4.1 Code First- Part 4 – Table Splitting (link);


  • Entity Framework- Database Initializers and EF Code First (link);

  • Ускоряя Stackoverflow.com (link);

Thursday

flex/air open link in new window of system browser


<mx:LinkButton label="Click here " color="#0000FF" fontWeight="bold"
click='OpenUrl(event)' x="55" y="140" width="254" textDecoration="underline"/>


<fx:Script>
<![CDATA[
import flash.net.*;
import flash.system.*;

protected function OpenUrl(event:MouseEvent):void
{
navigateToURL( new URLRequest( "http://sourcefield.blogspot.com"));
}

imagemagic add text to image

rem different types of text annotations on existing images rem cyan yellow orange gold rem -gravity SouthWest rem draw text and anno...