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

2. Гайка

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

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

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

-
В популярном онлайн 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)); }











