exoid.de //blog und portfolio

Rapid Dynamic Prototyping with CI and 960gs

AppleScript zum zum An- und Ausschalten der OSX Proxykonfiguration

201208.02

Proxy über AppleScript einschalten

Um nicht jedes Mal in die Systemeinstellungen gehen zu müssen

#---------------------------------------------------------------
set interface to "Wi-Fi" # Das hier ändern auf aktives Interface
#---------------------------------------------------------------
set status to do shell script "networksetup -getwebproxy " & interface & " | grep \"^Enabled: [a-zA-z]*$\" "
if status = "Enabled: No" then
	do shell script "networksetup -setwebproxystate " & interface & " on"
	do shell script "networksetup -setsecurewebproxystate " & interface & " on"
else
	do shell script "networksetup -setwebproxystate " & interface & " off"
	do shell script "networksetup -setsecurewebproxystate " & interface & " off"
end if
set status to do shell script "networksetup -getwebproxy " & interface & " | grep \"^Enabled: [a-zA-z]*$\" "
say "proxy status," & status using "Zarvox"

php: in_array() für stdClass Object Array

201105.12

Die inarray() Funktion für stdClass Object Arrays

Weil es in PHP nach meinem Wissen keine in_array() Funktion für stdClass Object Arrays gibt ein Wert in z.B. folgendem Array zu suchen ist
Array
(
    [0] => stdClass Object
        (
            [id] => 3
        )

    [1] => stdClass Object
        (
            [id] => 4
        )

    [2] => stdClass Object
        (
            [id] => 5
        )
)
habe ich diese Funktion geschrieben:
function in_array_field($suchwert, $feldname, $sucharray) {
    foreach ($sucharray as $wert){
        if (isset($wert->$feldname) && $wert->feldname == $suchwert)
            return true;                
    }            
    return false;
}
mit z.B. folgender Abfrage und dem Funktionsaufruf, kann ein Wert gesucht werden und eine andere Funktion zur Anzeige einer 404 Seite aufgerufen werden.
if(!in_array_field($id, 'id', $articleids))show_404();

applescript: Mount and Eject USB Drives

201130.11

USB Laufwerke auswerfen und wieder einhängen

Dieses Script habe ich geschrieben, weil manche externen USB Laufwerke nur in den Stromsparmodus gehen, wenn sie ausgeworfen wurden, dann aber nur wieder aktiviert werden können durch aus- und einschalten.
tell application "Finder"
	try
		eject "USB2"
	on error
		do shell script "diskutil mountDisk /dev/disk1"
	end try
end tell

Codeigniter helper erstellen

201129.11

Ein kleiner Helper in CodeIgniter

Ziel ist das Erstellen einer Helperfunktion in Codeigniter, die die Abfrage ob eine Variable gesetzt ist überflüssig macht. Über den Sinn kann man geteilter Meinung sein, auf jeden Fall hilfreich wenn jemand immer wieder die If-Abfrage vergisst, ob jetzt eine Variable gesetzt ist oder nicht. z.B.:

if (isset($tags)){echo $tags};

Erstellen der Datei /application/helpers/testing_helper.php und der Helperfunktion.
<?php
if ( ! defined('BASEPATH')) exit('No direct script access allowed');

if ( ! function_exists('issetecho'))
{
//&var ist ein Zeiger auf die Eingabevariable
//$prepend und $append sind optionale Parameter zum Umschliessen des ersten Parameters

    function issetecho(&$var,$prepend=FALSE,$append=FALSE)
    {
        if (isset($var)){
            echo $prepend.$var.$append;
            return TRUE;            
        }
        else{
            return FALSE;
        }
    }   
}
Laden des Helpers in der Datei /application/config/autoload.php Zeile 67
/*
| -------------------------------------------------------------------
|  Auto-load Helper Files
| -------------------------------------------------------------------
| Prototype:
|
|	$autoload['helper'] = array('url', 'file');
*/

$autoload['helper'] = array('testing');
Aufrufen des der erstellten Helperfunktion im View mit
<?php issetecho($date,'<div class="date">','</div>')?>

Netbeans Codeigniter Autocomplete

201125.11

So funktioniert die Autovervollständigung

Um in Netbeans die Codevervollständigung zu aktivieren reicht es eine Datei mit dem Namen netbeans_ci_code_completion.php (ein anderer Name würde auch gehen) in dem Projektordner im Unterordner "nbproject" anzulegen mit folgendem Inhalt:

<?php

/**
* @property CI_DB_active_record $db
* @property CI_DB_forge $dbforge
* @property CI_Benchmark $benchmark
* @property CI_Calendar $calendar
* @property CI_Cart $cart
* @property CI_Config $config
* @property CI_Controller $controller
* @property CI_Email $email
* @property CI_Encrypt $encrypt
* @property CI_Exceptions $exceptions
* @property CI_Form_validation $form_validation
* @property CI_Ftp $ftp
* @property CI_Hooks $hooks
* @property CI_Image_lib $image_lib
* @property CI_Input $input
* @property CI_Language $language
* @property CI_Loader $load
* @property CI_Log $log
* @property CI_Model $model
* @property CI_Output $output
* @property CI_Pagination $pagination
* @property CI_Parser $parser
* @property CI_Profiler $profiler
* @property CI_Router $router
* @property CI_Session $session
* @property CI_Security $security
* @property CI_Sha1 $sha1
* @property CI_Table $table
* @property CI_Trackback $trackback
* @property CI_Typography $typography
* @property CI_Unit_test $unit_test
* @property CI_Upload $upload
* @property CI_URI $uri
* @property CI_User_agent $agent
* @property CI_Validation $validation
* @property CI_Xmlrpc $xmlrpc
* @property CI_Xmlrpcs $xmlrpcs
* @property CI_Zip $zip
*/

class CI_Controller {};

/**
* @property CI_DB_active_record $db
* @property CI_DB_forge $dbforge
* @property CI_Config $config
* @property CI_Loader $load
* @property CI_Session $session
*/

class CI_Model {};

?>

Um die Autovervollständigung auch im Controller für ein erstelltes Model zu erreichen reicht es am Anfang des Controllers folgendes einzufügen

/**
* @property menu_model $menu_model
* @property content_model $content_model
 */

So kann die Autovervollständigung in Netbeans auf alle meine Methoden in den Models zugreifen, in diesem Fall die "menu_model.php" und die content_model.php

Bootcamp starten via Applescript

201124.11

Um nicht jedes Mal die ALT Taste während des Starts drücken zu müssen

"BOOTCAMP" mit dem Namen der eigenen Windowspartition ersetzen, die wird entweder auf dem Desktop angezeigt, oder kann über das Terminal mit dem Befehl "ls /Volumes/" abgerufen werden.

do shell script "bless -mount /Volumes/BOOTCAMP/ -legacy -setBoot -nextonly" password "meinpasswort" with administrator privileges
do shell script "shutdown -r now" with administrator privileges

Created by Tobias Pöhlsen, based on the 960 Grid System. Released under the GPL / MIT Licenses.