At Prog Beta

Blog:


  • Programming
  • Administration
  • Photo
  • Life



Experience:


  • Recipes
  • Portfolio
  • Tools




  • Позвольте поздравить всех поклонников Garbage с выходом свежайшего альбома “Not Your Kind Of People”, началом мирового турне, с тем, что после семилетнего перерыва у нас есть 15 полноценных треков. В эти выходные в Crocus City Hall в Москве Garbage выступили с концертной программой на просто оформленной сцене, с минимальным светом, в каноническом черном наряде. Хитов хватило на все полтора часа, проняло даже самых спокойных зрителей. Что касается самой группы, то перерыв в выступлениях я думаю они компенсируют по ходу турне. Мало кто обратил наверное внимание на посторонние звуки во время исполнения “Cherry Lips”, это аппаратура конечно дает себя знать, чисто технический момент. Одно радует – это безусловная решимость всего коллектива Garbage вернуться на сцену, выступать и создавать новые хиты. Надеемся на новые встречи и новые альбомы, тьфу тьфу тьфу.

  • Одной из основных причин протечек являются вездесущие элементы водопровода, выполненные из стали. Шаровые стальные краны могут разрушиться за недели, фитинги – как повезет. Ниже пример стального фитинга, который спокойно жил среди латунных соседей в течение 7 лет. Долгими днями и ночами, оставаясь без присмотра, он окислялся. Повезло его заметить, так как травить воду он начал вечером, через пару часов поток усилился многократно, еще через пару – произошло бы разрушение. Смотрим:

    1. Остатки резьбы

    2. Гайка

    3. Стальная резьба в латунном фитинге

    4. Для сравнения – правая часть латунного фитинга и его внутренности как новые

    Понятно конечно, что оцинкованная сталь и стальные водопроводы имеют массу плюсов. Но будете ли вы уверены в том, что домашние трубы всегда будут герметичны, что они действительно оцинкованы? Ответ один – только латунные фитинги и запорные краны (я очень уважаю Bugatti, купленные конечно в надежном месте, лучше у официального дилера). Обязательно проверяйте с помощью магнита все, что ваши мастера накручивают в водопровод, так как герой сегодняшнего репортажа попал на службу нелегально.

  • Java 01.05.2012 No Comments

    That’s it:

    public Color generateRandomColor(Color mix) {
        Random random = new Random();
        int red = random.nextInt(256);
        int green = random.nextInt(256);
        int blue = random.nextInt(256);
    
        // mix the color
        if (mix != null) {
            red = (red + mix.getRed()) / 2;
            green = (green + mix.getGreen()) / 2;
            blue = (blue + mix.getBlue()) / 2;
        }
    
        Color color = new Color(red, green, blue);
        return color;
    }

    Example:

    Or may it be a darker color based:

    Taken from: http://stackoverflow.com/questions/43044/algorithm-to-randomly-generate-an-aesthetically-pleasing-color-palette

  • Ubuntu 26.04.2012 No Comments

    Собственно вышла, качаем )

  • В популярном онлайн WYSIWYG редакторе CKEditor по умолчанию скрыта возможность добавления картинок в текст. Однако, если проявить усидчивость, эту возможность можно вернуть за минут 10, не потратив причем ни цента на коммерческий компонент CKFinder. Как? Рецепт ниже:

    1. В директории на сервере, где установлен CKEditor, найдите папку ckeditor/plugins/image/dialogs. Откройте файл image.js и найдите в нем свойство config.filebrowserBrowseUrl или в более новых версиях filebrowserImageBrowseLinkUrl. Рядом будет находиться свойство hidden:true; – соответственно, испарвьте его на hidden:false;

    2. Повторите пункт 1 для другого значения из этого же файла – Upload. Появятся новые кнопки и закладки:

    3. Теперь откроем файл config.js. В нем добавим строку config.filebrowserUploadUrl = ‘../ckupload.php’;, указывающую на новый файл с логикой загрузки файлов изображений на сервер.

    4. Создадим файл из пункта 3:

    <?
    require_once("../config/site_config.php"); 
    
    $file = time()."_".$_FILES['upload']['name'];
    $url = '../files/'.$file;
     //extensive suitability check before doing anything with the file...
        if (($_FILES['upload'] == "none") OR (empty($_FILES['upload']['name'])) )
        {
           $message = "No file uploaded.";
        }
        else if ($_FILES['upload']["size"] == 0)
        {
           $message = "The file is of zero length.";
        }
        else if (($_FILES['upload']["type"] != "image/pjpeg") AND ($_FILES['upload']["type"] != "image/jpeg") AND ($_FILES['upload']["type"] != "image/png"))
        {
           $message = "The image must be in either JPG or PNG format. Please upload a JPG or PNG instead.";
        }
        else if (!is_uploaded_file($_FILES['upload']["tmp_name"]))
        {
           $message = "You may be attempting to hack our server. We're on to you; expect a knock on the door sometime soon.";
        }
        else {
          $message = "";
          $move = @ move_uploaded_file($_FILES['upload']['tmp_name'], $url);
          if(!$move)
          {
             $message = "Error moving uploaded file. Check the script is granted Read/Write/Modify permissions.";
          }
          $url = $server_site_root."/files/".$file;
        }
    
    $funcNum = $_GET['CKEditorFuncNum'] ;
    echo "<script type='text/javascript'>window.parent.CKEDITOR.tools.callFunction($funcNum, '$url', '$message');</script>";
    ?>

    site_config.php:

    <?
    global $site_root, $version, $site_root, $server_site_root, $file_site_root;
    
    $site_root = "sport";
    
    $file_site_root = $_SERVER['DOCUMENT_ROOT']."/".$site_root;
    //$file_site_root = $_SERVER['DOCUMENT_ROOT']."/";
    $server_site_root = "http://".$_SERVER["HTTP_HOST"]."/".$site_root;
    
    ini_set("include_dir", ini_get("include_dir").":".$file_site_root);
    
    $version = "0.10";
    ?>

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

    5. Не забываем про права на папки для картинок.

  • function getStyle(elem, name) {
        // J/S Pro Techniques p136
        if (elem.style[name]) {
            return elem.style[name];
        } else if (elem.currentStyle) {
            return elem.currentStyle[name];
        }
        else if (document.defaultView && document.defaultView.getComputedStyle) {
            name = name.replace(/([A-Z])/g, "-$1");
            name = name.toLowerCase();
            s = document.defaultView.getComputedStyle(elem, "");
            return s && s.getPropertyValue(name);
        } else {
            return null;
        }
    }
    
  • Для сохранения данных с MySQL в правильной UTF-8 кодировке необходимо настроить на использование UTF-8 как базу данных и так и соединение с ней. Если первое обычно не представляет сложностей, то про второй аспект многие забывают. Вот рецепт:

     protected Connection getDBConnection()throws Exception{
            Class.forName("com.mysql.jdbc.Driver");
            Properties properties=new Properties();
            properties.setProperty("user","логин");
            properties.setProperty("password","пароль");
            /*
              Настройки, указывающие о необходимости конвертировать данные из Unicode
    	  в UTF-8, который используется в нашей таблице для хранения данных
            */
            properties.setProperty("useUnicode","true");
            properties.setProperty("characterEncoding","UTF-8");
            return(DriverManager.getConnection("jdbc:mysql://localhost:3306/имяБазы",
    	properties));
        }

Acer Asus crontab CSS CVS Database Replication Datanucleus Education and Training Files Operations Firefox FTP Gnome GRUB GSON GWT HP HTML Jaxb JDO JMS JQuery KUZMA Linux Bugs Linux Commands Maven2 MySQL Oracle PANDORA Patterns Php Spring Framework SVN TimesTen Tomcat Unix Commands ViewVC VirtualBox Volkswagen Weapon Of Choice Web Services Web Sites Wordpress XLA YODA Концерты