Web Business

Symfony 1.4.20 – Database – Form Accesso Dati

Creare automaticamente con Symfony un Form per accedere ai dati del dababase.

In Symfony un progetto è composto da applicazioni suddivise in moduli, ad esempio:

– jobeet/apps/frontend/modules/contenuto
– jobeet/apps/frontend/modules/job
– jobeet/apps/frontend/modules/nome altro modulo …

– jobeet/apps/nome altra app…

1. Generiamo automaticamente il codice php per la gestione di un modulo di nome ‘job’
cmd.exe -> C:\wamp64\www\jobeet>symfony doctrine:generate-module –with-show –non-verbose-templates frontend job JobeetJob

verrà creato automaticamente:

apps/frontend/modules/job/actions/
apps/frontend/modules/job/templates/

in particolare apps/frontend/modules/job/actions/action.class.php


<?php

/**
 * job actions.
 *
 * @package    symfony
 * @subpackage job
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class jobActions extends sfActions
{
  public function executeIndex(sfWebRequest $request)
  {
    $this->jobeet_jobs = Doctrine_Core::getTable('JobeetJob')
      ->createQuery('a')
      ->execute();
  }

  public function executeShow(sfWebRequest $request)
  {
    $this->jobeet_job = Doctrine_Core::getTable('JobeetJob')->find(array($request->getParameter('id')));
    $this->forward404Unless($this->jobeet_job);
  }

  public function executeNew(sfWebRequest $request)
  {
    $this->form = new JobeetJobForm();
  }

  public function executeCreate(sfWebRequest $request)
  {
    $this->forward404Unless($request->isMethod(sfRequest::POST));

    $this->form = new JobeetJobForm();

    $this->processForm($request, $this->form);

    $this->setTemplate('new');
  }

  public function executeEdit(sfWebRequest $request)
  {
    $this->forward404Unless($jobeet_job = Doctrine_Core::getTable('JobeetJob')->find(array($request->getParameter('id'))), sprintf('Object jobeet_job does not exist (%s).', $request->getParameter('id')));
    $this->form = new JobeetJobForm($jobeet_job);
  }

  public function executeUpdate(sfWebRequest $request)
  {
    $this->forward404Unless($request->isMethod(sfRequest::POST) || $request->isMethod(sfRequest::PUT));
    $this->forward404Unless($jobeet_job = Doctrine_Core::getTable('JobeetJob')->find(array($request->getParameter('id'))), sprintf('Object jobeet_job does not exist (%s).', $request->getParameter('id')));
    $this->form = new JobeetJobForm($jobeet_job);

    $this->processForm($request, $this->form);

    $this->setTemplate('edit');
  }

  public function executeDelete(sfWebRequest $request)
  {
    $request->checkCSRFProtection();

    $this->forward404Unless($jobeet_job = Doctrine_Core::getTable('JobeetJob')->find(array($request->getParameter('id'))), sprintf('Object jobeet_job does not exist (%s).', $request->getParameter('id')));
    $jobeet_job->delete();

    $this->redirect('job/index');
  }

  protected function processForm(sfWebRequest $request, sfForm $form)
  {
    $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
    if ($form->isValid())
    {
      $jobeet_job = $form->save();
      $this->redirect('job/edit?id='.$jobeet_job->get());
    }
  }
}

Puntare il browser a: http://localhost/jobeet/web/index.php/job per vedere il form in azione

2. Personalizziamo il template a: jobeet/apps/frontend/templates/layout.php


<!-- apps/frontend/templates/layout.php -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <title>Jobeet - Your best job board</title>
    <link rel="shortcut icon" href="/favicon.ico" />
    <?php include_javascripts() ?>
    <?php include_stylesheets() ?>
  </head>
  <body>
    <div id="container">
      <div id="header">
        <div class="content">
          <h1><a href="<?php echo url_for('job/index') ?>">
            <img src="/legacy/images/logo.jpg" alt="Jobeet Job Board" />
          </a></h1>
 
          <div id="sub_header">
            <div class="post">
              <h2>Ask for people</h2>
              <div>
                <a href="<?php echo url_for('job/index') ?>">Post a Job</a>
              </div>
            </div>
 
            <div class="search">
              <h2>Ask for a job</h2>
              <form action="" method="get">
                <input type="text" name="keywords"
                  id="search_keywords" />
                <input type="submit" value="search" />
                <div class="help">
                  Enter some keywords (city, country, position, ...)
                </div>
              </form>
            </div>
          </div>
        </div>
      </div>
 
      <div id="content">
        <?php if ($sf_user->hasFlash('notice')): ?>
          <div class="flash_notice">
            <?php echo $sf_user->getFlash('notice') ?>
          </div>
        <?php endif; ?>
 
        <?php if ($sf_user->hasFlash('error')): ?>
          <div class="flash_notice">
            <?php echo $sf_user->getFlash('error') ?>
          </div>
        <?php endif; ?>
 
        <div class="content">
          <?php echo $sf_content ?>
        </div>
      </div>
 
      <div id="footer">
        <div class="content">
          <span class="symfony">
            <img src="/legacy/images/jobeet-mini.png" />
            powered by <a href="/">
            <img src="/legacy/images/symfony.gif" alt="symfony framework" />
            </a>
          </span>
          <ul>
            <li><a href="">About Jobeet</a></li>
            <li class="feed"><a href="">Full feed</a></li>
            <li><a href="">Jobeet API</a></li>
            <li class="last"><a href="">Affiliates</a></li>
          </ul>
        </div>
      </div>
    </div>
  </body>
</html>

Incompatibilità PHP 5.5

Puntare il browser a: http://localhost/jobeet/web/frontend_dev.php/job

preg_replace() è deprecata, andrebbe sostituita nelle librerie Symfony con preg_replace_callback(), cancelliamo i warning testuali generati nel codice e tentiamo di correggere l’errore (https://gist.github.com/gitllermopalafox/0a8b60eaafede6af0b75)

Correggere C:\wamp64\bin\php\php5.6.25\pear\symfony\response\sfWebResponse.class.php riga 409


protected function normalizeHeaderName($name)
  {
    // return preg_replace('/\-(.)/e', "'-'.strtoupper('\\1')", strtr(ucfirst(strtolower($name)), '_', '-'));    

    return preg_replace_callback(
                  '/\-(.)/', 
                  function ($matches) {
                    return '-'.strtoupper($matches[1]);
                  }, 
                  strtr(ucfirst(strtolower($name)), '_', '-')
        );
  }  

Correggere C:\wamp64\bin\php\php5.6.25\pear\symfony\util\sfToolkit.class.php riga 362:


public static function pregtr($search, $replacePairs)
  {
    // return preg_replace(array_keys($replacePairs), array_values($replacePairs), $search);
    foreach($replacePairs as $pattern => $replacement)
        $search = preg_replace_callback(
                    $pattern, 
                    function ($matches) use ($replacement){
                        if(array_key_exists(1, $matches)){ $replacement = str_replace("\\1", $matches[1], $replacement);}
                        if(array_key_exists(2, $matches)){ $replacement = str_replace("\\2", $matches[2], $replacement);}
                        return $replacement;
                    }, 
                    $search
                );
    return $search;
  }

By |PHP, Symfony, Web Business|Commenti disabilitati su Symfony 1.4.20 – Database – Form Accesso Dati

How to monetize an Indie Videogame

Have you just developed your first indie videogame? Good! But now we have to monetize!

Begin your marketing campaign the moment you have something that illustrates the fundamental mechanics and look of your game.

Splash Page

Create your videogame splash page, it will be your most important marketing tool!
You need some images, a video trailer and a brief presentation, your contacts and a giant download button :)
Be social! It is important to collect fans, to start you have to create a facebook and twitter pages.

Press Kit

Create for your Game journalists ready to use materials:

– Relevant Screenshots
– Video
– Press Coverage
– Game Info Sheet
– Fact Sheet
– Logos and Awards

To create apress kit see http://dopresskit.com/ also.

Where can I self promote?

During the development process, my advice is post your WIP (work in progress) inside forums and social media group for developers.
There are a lot of nice people here that can give you constructive opinions about content, graphic, music and appeal.
If you are a lucky guy, you may be contacted by an editor before even finish the game.

A good place to self promotion is:

– http://www.gamasutra.com/
– http://indiemegabooth.com/
– http://www.reddit.com/r/indiegaming
– http://www.indiecade.com/
– http://www.rockpapershotgun.com/
– http://kotaku.com/
– http://indiegames.com/index.html
– http://www.cinemablend.com/games/
– http://www.tigsource.com/
– http://indiegamemag.com/
– http://www.pcgamesn.com/indie
– http://theindiemine.com/
– http://indiegamerchick.com/
– http://gamejolt.com/
– http://www.indieteamup.com/
– http://www.gamespress.com/
– http://www.nomsg.net/
– http://videogamecaster.com/

Cross Promotion

– http://moregamers.com/

Game Jam

– http://globalgamejam.org/
– http://nordicgamejam.org/
– http://www.orcajam.com/
– http://www.tojam.ca/home/default.asp
– http://www.trianglegamejam.com/

Find a Publisher

Try to find a publisher, you can have a direct contact with him using his website.
Remember, the best practice is obtain a minimum of royalty in advance or sign a good contract flat fee.

Here a list a publisher fro Wikipedia:
– http://en.wikipedia.org/wiki/List_of_video_game_publishers

3D RAZA

– http://www.3draza.com

Type: Publisher finding

It connect your productions with large video game publishers who also distribute the games.
Videogame projects are revised case by case.
In exchange for the videogame publishing and distribution, they will take 15% of the game sales.

Steam

– http://www.steampowered.com/steamworks/FAQ.php
– http://steamcommunity.com/greenlight/ (great exposition here)

Type: publisher

Now your game can take advantage of a gaming platform that has over 40 million players worldwide and spans multiple systems.

It’s free: There’s no charge for bandwidth, updating, or activation of copies at retail or from third-party digital distributors.

It’s freeing: With Steamworks you avoid the overhead and delay of certification requirements—there are none. Distribute your game on your terms, updating it when and as often as you want

Ad Sense

– http://www.google.com/adsense/start/

Type: Pay per click

Ad Sense program of Google can be a good way to earn money, but you need a lot of users.
Ad Sense works well with Google Analitycs and other Web Master Tools of Google.
ADS can turn off users alot if you abuse of that.

Revenue: Ad Sense will pay you per click, 1000 impressions can return about 1 USD.

skillz – eSports for Everyone

– http://skillz.com/

Type: Play for cash

Skillz is the first cash competition platform for mobile games.

Skillz is the only place where you can win bragging rights and real money by playing your favorite mobile games. Compete against friends and rivals in exciting multiplayer competitions and show off your skills today!

How does it worK:
1. Create a free Skillz account and use it to log in to your favorite Skillz-enabled game.
2. Practice by playing for Z, the Skillz virtual currency. When you’re ready to win real money, enter a cash competition!
3. Get match results and collect your prize as soon as you and your opponents are done playing. You can withdraw your winnings anytime.

Revenue: enabling pay-to-play cash tournaments. Monetize gamers in a way that aligns with their competitive nature.

– http://cashplay.co/

Type: Play for cash

Integration of the Cashplay platform is simple and typically takes no longer than two days of programing for a mobile game integration. Cashplay currently supports games developed for iOS, Android and Unity.

Cashplay offers developers a completely new way to generate additional revenue from their mobile games via offering player vs. player cash tournaments.

Revenue: game developers who integrate Cashplay are rewarded on a revenue share basis meaning that you can earn up to 60% of the profit generated from every single completed cash tournament or challenge.

FGL

https://www.fgl.com

Type: sponsorship – publishing – monetize

Over 7,000 publishers are on FGL looking to buy HTML5, Android, iOS, Unity and Flash games right now.

Beefjack Promote

– http://promote.beefjack.com/

Type: sponsorship – publishing – monetize

Seriouslyweb

– http://seriouslyweb.com/services/indie-game-marketing

Type: sponsorship – publishing – monetize

Crowd funding

Crowdfunding is the practice of funding a project or venture by raising monetary contributions from a large number of people, typically via the internet. If you want find investors you will need a great presentation with the best graphic, cool characters, good music.
A video will be more effective of thousands of written words!

– https://www.kickstarter.com/
– https://www.indiegogo.com/
– http://epocu.com/

Alphafunding

This allows you to get your game out into the public eye before its released, and maybe make a few bucks in the process.

– http://www.desura.com/

Free-to-play

Create a Free-to-play game, find thousands of users and add pay items, props or quest.
This is the way of Dota2, Tera on Line, League of Legends and others.
Inside Tera on Line, a free fantasy MMORPG there are a lot of packs from 4 USD to 50 USD to make your character cool ;p
Walking in Tera I have seen a lot of customized characters, I think some characters have at least $ 100 of cosmetics!

IMO monetize a F2P game is a fascinating process that involves psychology, art and UXD (User Interface Design)

Psychology and Free-to-Play

– Flow Theory
Introduced by Mihaly Csikszentmihalyi, flow theory is something all gamers have been through. It’s that feeling of being fully immersed in a game not knowing how much time has passed.
Flow theory can be defined as a state of positive immersion in an activity. Its components are full absorption in that activity, clear goals, a high degree of concentration, and a distorted sense of time.
This is the state that can lead to impulse purchases.

– Impulse Purchases
Purchasing virtual goods largely relies on impulse buying, as there is little planning involved. Players usually purchase virtual goods after playing the game a certain amount of time and this differs for each game.

Virtual Goods

– Vanity Items
Vanity items provide purely aesthetic purposes, such as items that can change the look of an in-game avatar.

– Power Enhancements
Power enhancing items elevate the player’s abilities in the game, and therefore affect game play overall.

– Boosts
Boosts accelerate progression or make the game easier to play by speeding up game play elements, such as getting experiance point inside and RPG

– Consumables
gThey give the player the same kinds of upgrades

– Monetization Strategies
Now that we know what to sell, how do we sell it? The most basic necessity is having multiple ways to pay to remove any friction and help increase conversion of non-paying to paying players. The longer a user plays, the more likely they will pay. Other strategies include having a store that’s simple to navigate and constantly checking metrics.

Subscription Fees
Offering subscriptions can be part of almost any monetization strategy, and it offers great flexibility. Subscribers are power users.
Offering discounts, giving hard currency each month, having subscriber-only events, these are all ways to create more value and give players incentive to become subscribers.

By |Video Games Development, Web Business|Commenti disabilitati su How to monetize an Indie Videogame

Top 10 Best Free Online Conference Call Services

Top 10 Best Free Online Conference Call Services

A conference call is a telephone call in which the calling party wishes to have more than one called party listen in to the audio portion of the call. The conference calls may be designed to allow the called party to participate during the call, or the call may be set up so that the called party merely listens into the call and cannot speak. It is sometimes called ATC (Audio Tele-Conference).

business-voip-solutions

Conference calls can be designed so that the calling party calls the other participants and adds them to the call; however, participants are usually able to call into the conference call themselves by dialing a telephone number that connects to a “conference bridge” (a specialized type of equipment that links telephone lines).

Top 10 Best Free Online Conference Call Services

1. Skype

Skype is a best and most popular software that enables you to make free calls anywhere in the world. Skype is a free VOIP (voice over IP – which means you talk through the internet). You can easily join Skype, download their software onto your computer, and invite others to join. Skype also provides low-cost unlimited calling plans to land-lines and cell phones around the world. Now you can add up-to 10 person in a video conference that’s is really a plus point .

2. GoToMeeting

Goto meeting is a online free call conference tool that allows you to meet online rather than in a conference room. You can hold as many meetings as you want–no overages or hidden charges. Phone conferencing and VoIP is included. You can go for Free Trial
30 days of unlimited meetings with up to 15 attendees. Go to meeting conference call software is compatible for both mac and pc .

3. SightSpeed

Sightspeed brings you the world’s best video and voice calling service for both Mac and PCs, unlimited free PC – PC video calls. Reduced rates for PC – land-line / cell phone calls. Mac users can connect with full quality to Windows users, and vice versa.

4. Free conference calling
Free conference calls with a conferencing service equipped for 500 callers per conference call. Time period is up to six hours of conference time for each call. It also provides free Recording of your conference call for easy reference and playback via MP3. Listen, download and podcast easily.

5. Dimdim

Dimdim conference call service is an easy, open, affordable online meetings and webinars. Collaborate and share with no downloads required to host or attend. Mac, Windows, or Linux. Video conferencing is very easy to start-up. No installation required.With one-click audio, video and screen sharing and instant meeting capabilities.You can use the Free Trialthat lasts for 30 days.

6. Tokbox

Group video conferencing made simple. Connect face to face with 2 to 200 people. No fuss. No download. 20 to 25 people on the video conferencing is recommended. Tokbox aims itself clearly at the free consumer videoconferencing market.

7. MyMeeting123

It is Fast and easy, requires no extra equipment to host. MyMeeting123 offers both live web meetings and conference calling for users. They offer multiple plans to fit your needs, a 14-day money back guarantee, You can go for Free Trial: 14 days of unlimited meetings restricted to the plan you choose.

8. Paltalk

It allows you to make free video calls with up to 10 friends on Paltalk, AIM, ICQ and Yahoo Messenger. Free accounts only can open Webcams for a few seconds, while paid users can open multiple video windows.After that, you can still hear but not see the person

9. MegaMeeting

Mega meeting provides Web and video conferencing software for online meetings that helps to reduce travel related costs, extends your marketing reach, browser based and offers online conferencing with true VoIP audio, text chat and no long term contracts, it is compatible with : Windows, Mac, Linux. You can go for Free Trialthat lasts for 30 days.

10. Fuze Meeting

It offers online meetings in HD, login and upload your content in order to start a meeting. This conference call service has a great video tool that can display a variety of video file types including HD video. Video can be forwarded and backed up, you can also zoom in and add text, arrows, shapes and notes to the video. This service can display FLV, MOV, WMV and MP4 type video files.

By |Web Business|Commenti disabilitati su Top 10 Best Free Online Conference Call Services

Web Business – Virtual Data Rooms

A virtual data room (sometimes called a VDR) is an online repository of information that is used for the storing and distribution of documents. In many cases, a virtual data room is used to facilitate the due diligence process during an M&A transaction, loan syndication, or private equity and venture capital transactions. This due diligence process has traditionally used a physical data room to accomplish the disclosure of documents. For reasons of cost, efficiency and security, virtual data rooms have widely replaced the more traditional physical data room.

virtual-data-rooms

Technically speaking is a series of proprietary extranets that provide an online repository of data. Businesses typically use a secure virtual data room to share critical information with external customers and partners in a secure, online environment. The Virtual Data Room enables parties to view documents relevant to a particular transaction for authorized users. Documents are stored in electronic format on a central server and accessed via the Internet.

Benefits of a virtual data room

The largest financial benefits accrue to the seller although buyers also benefit. For the former, advantages include:

– Improvement in the number of bidders, opening the sale up to more bidders and therefore potentially better sale prices.[1]
– Increased bid throughout (and time zone access) if the virtual data room is accessible 24/7 over the allowed period.[2]
– Increased control and understanding of bidders.
– Reduced cost of the due diligence process overall by eliminating the need to travel, copy multiple physical binders and rent several dedicated physical due diligence rooms.[1]
– Resulting 20%-30% higher bid values.[citation needed]
– Usually more cost effective than physical data rooms.[3]
– Increased speed of transactions owing to improved accessibility.
– Enhanced information secures more deals at higher prices.[citation needed]
– Conventional physical data rooms restrict the bidder or buyers’ ability to get the correct people to the room simply due to the physical location. However, Virtual Data Room opens up global markets for M&A, takeovers and property deals compared with purely face-to-face and hardcopy document transactions (i.e. business letters).
– Information cannot be downloaded and taken away in a true Virtual Data Room – only viewed by a user with the correct permissions.

There are hundreds of virtual data room vendors active in the market, the most popular are:
Ansarada
Box
CapLinked
EthosData
Firmex
HighQ
Huddle
iDeals
Intralinks
Imprima
Merrill Datasite
Millnet
OneHub
RR Donnelley
SecureDocs
ShareVault
V-Rooms

By |Web Business|Commenti disabilitati su Web Business – Virtual Data Rooms