Архив за 31.05.2013

uInfo v1.3

Новая версия скрипта получения информации о зашедшем пользователе.

  • Обновлён алгоритм получения версии браузера.
  • Поддержка Яндекс.Браузер
  • Поддержка версий для iOS
  • Поддержка Ubuntu

Живой пример работы: http://ip.ziggi.org/
GitHub: https://github.com/ziggi/uInfo

Создание приложения-ссылки в Google Chrome

В этой статье вы узнаете как создавать приложения-ссылки в Google Chrome. Зачем это? Это довольно удобно, ибо стандартной экспресс-панели Google Chrome не хватает множества настроек. Для некоторых сайтов уже существуют такие приложения-ссылки, но далеко не для всех.

Также бывает, что некоторые приложения ссылаются не туда, куда хотелось-бы, например главная страница YouTube — это страница с рекомендациями, но мне гораздо удобнее переходить сразу на свои подписки, поэтому я использую своё приложение, а не приложение от Google.

В итоге, вы можете получить что-то подобное:
chrome apps
Читать дальше »

Автоматоны Pawn

В языке Pawn есть механизм состояний(автоматон) — это такая система, которая позволяет определить несколько копий одной функции для использования в различных условиях. Я начну объяснять с примера, ибо так получится более наглядно, а ниже подробно опишу эту систему.

Пример

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

#include <a_samp>
 
forward data_Save(type);
forward message_Save(type);
 
enum {
	players,
	races
}
 
main() {
	data_Save(players);
	message_Save(players);
}
 
public data_Save(type)
{
	switch (type) {
		case players: {
			// saving
		}
		case races: {
			// saving
		}
	}
}
public message_Save(type)
{
	switch (type) {
		case players: {
			// send message to player
		}
		case races: {
			// send message to racers
		}
	}
}

А реализация с помощью автоматонов выглядит очень элегантно:

#include <a_samp>
 
forward data_Save();
forward message_Save();
 
main() {
	state dataType:players;
	data_Save();
	message_Save();
}
 
public data_Save() <dataType:players>
{
	// saving
}
 
public data_Save() <dataType:races>
{
	// saving
}
 
public message_Save() <dataType:players>
{
	// send message to players
}
 
public message_Save() <dataType:races>
{
	// send message to racers
}

Читать дальше »

Перейти к верхней панели