PHP IDE

A tak sobie z ciekawości sprawdziłem ile zasobów zajmą poszczególne edytory PHP. Wybrałem sobie 4: Eclipse, Netbeans, Textmate, Aptana, VIM.
Bardziej szczegółowo:

  • Eclipse Helios (Helios Service Release 2, build 20110218-0911)
  • Netbeans 7 (Build 201104080000)
  • Textmate (versja 1.5.10 (1631))
  • Aptana (versja 3, build: 3.0.5.201110061808)
  • VIM (versja 7.2.108)

w każdym edytorze został otwarty ten sam projekt ten sam plik do edycji, no może poza VIM gdzie otworzony został plik a nie projekt. I tak oto wyglądają zasoby mojego komputera.

VIM (2,9 MB) RAM
Textmate (46,5 MB) RAM
Eclipse (377,7 MB) RAM
Aptana 3 (389,3 MB) RAM
Netbeans (595 MB) RAM

To ja jednak zostanę przy Textmate :)

Rails 3.0.3 – mysql2 na OSX 10.6.8

Znowu ten sam problem, nowe Rails wymaga nowszego MySQL… odpalam Rails new project -d mysql no to super, potem baza rake db:create i …

rake aborted!
dlopen(/Users/wadziu/Sites/project/vendor/bundle/ruby/1.8/gems/mysql2-0.2.13/lib/mysql2/mysql2.bundle, 9): Library not loaded: /opt/local/lib/mysql5/mysql/libmysqlclient_r.16.dylib
  Referenced from: /Users/wadziu/Sites/project/vendor/bundle/ruby/1.8/gems/mysql2-0.2.13/lib/mysql2/mysql2.bundle
  Reason: Incompatible library version: mysql2.bundle requires version 17.0.0 or later, but libmysqlclient_r.16.dylib provides version 16.0.0 - /Users/wadziu/Sites/project/vendor/bundle/ruby/1.8/gems/mysql2-0.2.13/lib/mysql2/mysql2.bundle
/Users/wadziu/Sites/project/Rakefile:4
(See full trace by running task with --trace)

Rails 3.0.3 z wtyczką mysql2 wymagają min. libmysqlclient_r.17.dylib tak więc wypadałoby zainstalować nowszą wersję MySQL’a np.: versję 5.5.16 która ma libmysqlclient_r.18.dylib czyli wersję o +1 :)

no to ze strony http://dev.mysql.com/downloads pobieramy .dmg (oczywiście można pobrać źródła, skompilować etc. ale skoro jest paczka no korzystajmy z udogodnień). Instalacja click, click

MySQL

aliasy do .profile

alias mysql=/usr/local/mysql/bin/mysql
alias mysqladmin=/usr/local/mysql/bin/mysqladmin

no i przeładować

. ~/.profile

odpalamy MySQL’a

sudo /Library/StartupItems/MySQLCOM/MySQLCOM start

i właściwie to wszystko, już można zrobić rake db:create, rake db:migrate

warto jeszcze przejrzeć README.txt dostarczony z paczką mysql-5.5.16-osx10.6-x86_64.dmg

Posted in ROR

dodaj usuń pola formularza


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">

<html lang="en">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<title>form</title>
	<meta name="generator" content="TextMate http://macromates.com/">
	<meta name="author" content="Marcin Wadowski">
	<!-- Date: 2010-08-31 -->

	<style type="text/css" media="screen">
		body {background-color: #CCC;}
		.main_body {width: 650px; margin: auto; text-align: center;}
		.buttons {width: 650px; height: 50px; float: left;}
		.buttons p {cursor: pointer; float: left; width: 120px;}
		.form {width: 650px; float: left;}
		#add_field {color: #FFFF33; font-weight: bold;}
		#del_field {color: #FF0000;}
	</style>

	<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

	<script type="text/javascript" charset="utf-8">

		function incrementFieldsAmount()
		{
			var amount = $('#fields_amount').val();
			amount++;
			$('#fields_amount').val(amount);
			addFields();
		}

		function decrementFieldsAmount()
		{
			var amount = $('#fields_amount').val();
			if(amount > 1)
			{
				delFields();
				amount--;
				$('#fields_amount').val(amount);
			}
		}

		function addFields()
		{
			var f = $('#fields_amount').val();
			var current_field = f-1;
			var new_field = f;

			//last field content
			var f_current = ["div.fields", current_field];
			var html_current_field = $(f_current.join('_')).html();

			//new field content
			var f_new_field = ["<div class='fields_",new_field,"'>",html_current_field,"</div>"];
			var html_new_field = f_new_field.join("");

			$(f_current.join('_')).after(html_new_field);

			//new attr name for fields form
			var f1 = ["div.fields_",new_field, " input.field_1"].join('');
			var f1_attr_name = ["field_1_", new_field].join('');

			var f2 = ["div.fields_",new_field, " input.field_2"].join('');
			var f2_attr_name = ["field_2_", new_field].join('');

			var f3 = ["div.fields_",new_field, " input.field_3"].join('');
			var f3_attr_name = ["field_3_", new_field].join('');

			$(f1).attr('name', f1_attr_name);
			$(f2).attr('name', f2_attr_name);
			$(f3).attr('name', f3_attr_name);

		}

		function delFields()
		{
			var f = $('#fields_amount').val();
			var f_current = ["div.fields", f].join('_');

			$(f_current).remove();
		}

		$('document').ready(function(){
			$('#add_field').click(function(){incrementFieldsAmount();});
			$('#del_field').click(function(){decrementFieldsAmount();});
		});

	</script>

</head>
<body>
	<div class="main_body">

		<div class="buttons">
			<p id="add_field">+ add field</p>
			<p id="del_field">- del field</p>
		</div>

		<div class="form">
			<form action="form" method="POST">
				<input type="hidden" name="fields_amount" value="1" id="fields_amount">
				<div class="fields_1">
						<label for="field_name">Name</label>
							<input type="text" class="field_1" name="field_1_1" value="">

						<label for="field_surname">Surname</label>
							<input type="text" class="field_2" name="field_2_1" value="">

						<label for="field_street">Street</label>
							<input type="text" class="field_3" name="field_3_1" value="">
				</div>
				<input type="submit" name="some_name" value="submit" id="some_name">
			</form>
		</div>

	</div>
</body>
</html>

Rails with jQuery

No to żeby nie zapomnieć jak zamienić Prototype na jQuery w Rails3.
potrzebny gem to: “jquery-rails”

rails generate jquery:install
or
rails g jquery:install
      remove  public/javascripts/controls.js
      remove  public/javascripts/dragdrop.js
      remove  public/javascripts/effects.js
      remove  public/javascripts/prototype.js
    fetching  jQuery (1.5)
      create  public/javascripts/jquery.js
      create  public/javascripts/jquery.min.js
    fetching  jQuery UJS adapter (github HEAD)
    conflict  public/javascripts/rails.js
Overwrite /YourAppPath/public/javascripts/rails.js? (enter "h" for help) [Ynaqdh] Y
       force  public/javascripts/rails.js

oryginalny opis dostępny:
http://www.blog.bridgeutopiaweb.com/post/how-to-use-jquery-for-rails-3/