Ошибка ld: symbol(s) not found for architecture x86_64

При попытке собрать php-5.2.10 на macOS 10.8.2, появляется ошибка ld: symbol(s) not found for architecture x86_64. Решить проблему можно следующем образом: 1) добавляем в Makefile строку EXTRA_CFLAGS=-lresolv 2) меняем в ext/iconv/iconv.c #define iconv libiconv to #define iconv iconv После этого php собирается отлично и без проблем. Источник: https://discussions.apple.com/thread/3507736?start=0&tstart=0

Выравнивание дива по вертикали и горизонтали

Иногда бывает нужно отцентрировать div на странице, это достаточно просто сделать через абсолютное позиционирование:
 <!DOCTYPE html> 
<html> 
<head> 
<style type="text/css"> 
div { 
background-color: #000; 
height: 500px; 
left: 50%; 
margin: -250px 0 0 -250px; 
top: 50%; 
position: absolute; 
width: 500px; 
} 
</style> 
</head> 
<body> 
<div></div> 
</body> 
</html> 
Это создаст квадрат Малевича 500x500 пикселей по центу страницы.

Видео с Youtube поверх дива с position=fixed

Столкнулся с проблемой отображения iframe с видео c Youtube поверх дива с position=fixed Вот решение: прописываем у ссылке на ролик get параметр wmode=transparent и заводим в фрейме новый атрибут wmode="Opaque <iframe title="YouTube video player" width="480" height="390" src="http://www.youtube.com/embed/lzQgAR_J1PI?wmode=transparent" frameborder="0" wmode="Opaque"> Решение на JS с поддержкой jquery: $(document).ready(function() $('iframe').each(function() var url = $(this).attr("src"); var char = "?"; if(url.indexOf("?") != -1) var char = "&"; $(this).attr("src",url+char+"wmode=transparent"); ); );

Отрывок из книги Сергея Тормашева «Наследие»

Даже волки, преследуя стадо оленей и пожирая слабых и плохо приспособленных, убивали лишь следствие. ГМО же боролось с самой сутью проблемы - уничтожала стадо по генетическому принципу. Ты не хочешь заботиться о себе и будущем своих детей? Тебе наплевать, что происходит с планетой и какая экология тебя окружает? Тебя не интересует, что ты ешь, пьешь, вдыхаешь? У тебя не хватает мозгов заработать достаточно денег на покупку чистой пищи в магазинах МАГБ? Тогда ГМО для тебя, добро пожаловать в фаст-фуд. Ешь на здоровье, и природа вздохнет спокойно - твои дети родятся нежизнеспособными и не дадут потомства. После твоей смерти уже никто не передаст следующему поколению твои гены тупоумия и недалекости. Вот что такое естественный отбор по Уэйну! Да будет так, и так будет!

Скругление углов на PHP / GD

Сегодня товарищ кинул ссылку на интересный скрипт, который позволяет округлять углы на php. Полезная вещь. Вот код скрипта. <?php /** * Углоскруглятель :) * * Sergey Fedotov <sergey89@gmail.com> * Version: 1.1 */ $filename = 'image.jpg'; $radius = 15; /** * Чем выше rate, тем лучше качество сглаживания и больше время обработки и * потребление памяти. * * Оптимальный rate подбирается в зависимости от радиуса. */ $rate = 3; $img = imagecreatefromstring(file_get_contents($filename)); imagealphablending($img, false); imagesavealpha($img, true); $width = imagesx($img); $height = imagesy($img); $rs_radius = $radius * $rate; $rs_size = $rs_radius * 2; $corner = imagecreatetruecolor($rs_size, $rs_size); imagealphablending($corner, false); $trans = imagecolorallocatealpha($corner, 255, 255, 255, 127); imagefill($corner, 0, 0, $trans); $positions = array( array(0, 0, 0, 0), array($rs_radius, 0, $width - $radius, 0), array($rs_radius, $rs_radius, $width - $radius, $height - $radius), array(0, $rs_radius, 0, $height - $radius), ); foreach ($positions as $pos) { imagecopyresampled($corner, $img, $pos[0], $pos[1], $pos[2], $pos[3], $rs_radius, $rs_radius, $radius, $radius); } $lx = $ly = 0; $i = -$rs_radius; $y2 = -$i; $r_2 = $rs_radius * $rs_radius; for (; $i <= $y2; $i++) { $y = $i; $x = sqrt($r_2 - $y * $y); $y += $rs_radius; $x += $rs_radius; imageline($corner, $x, $y, $rs_size, $y, $trans); imageline($corner, 0, $y, $rs_size - $x, $y, $trans); $lx = $x; $ly = $y; } foreach ($positions as $i => $pos) { imagecopyresampled($img, $corner, $pos[2], $pos[3], $pos[0], $pos[1], $radius, $radius, $rs_radius, $rs_radius); } header('Content-Type: image/png'); imagepng($img);

И снова fluxbox

После примерно полугода использования в качестве оконного менеджера XFCE4, я все таки решил вернуться к старому доброму fluxbox, может это от того, что у меня тяга ко всему простому и аскетичному, может от того что на еже fluxbox смотрится прикольний, но так или иначе мне пришлось восстонавливать все настройки с нуля, собственно поэтому решил написать пост, чтобы сохранились настройки, ну и может кому пригодиться, в конце поста представлен скриншот того, что получилось. Для начала обнаружил, что после перехода у меня слетела возможность переключаться на русский язык. Это показалось странным так как setxkbmap у меня запускался в .xsession, но как я понял после запуска fluxbox любые команды прописанные в startup игнорируются, поэтому прописал setxkbmap -layout us,ru -variant ,winkeys -option grp:caps_toggle,grp_led:scroll,terminate:ctrl_alt_bksp,compose:ralt в файл .fluxbox/startup перед командой запуска fluxbox exec fluxbox Прописал так же в этом же файле запуск коньков conky& Туда же добавляем обои рабочего стола, закидываем обои куда-нибудь в .fluxbox/bg/ и прописываем путь к обоене. В качестве обоены я решил использовать няшку из манги с тату-логотипом арчилинукса %)) Например вот так: fbsetbg -f bg/archMangaBabe.jpg Название виртуальных столов в панели - "Рабочий стол <N>" смотрится уныло и слишком длинно, поэтому решил поправить название на D<N>, правится это в файле .fluxbox/init: session.screen0.workspaceNames: D1,D2,D3,D4 Можно немного сэкономить место на экране и сделать автоскрытие тулбара session.screen0.toolbar.autoHide: true Так как экран на нетбуке маленький, то удобно когда в тулбаре показывается как можно больше открытых приложений, так что изменил ширину тулбара с 70 на 80 session.screen0.toolbar.widthPercent: 80 Редактим .fluxbox/menu и добавляем то что хотим видеть в меню, а так же убираем ненужные пункты, у меня получилось что-то вроде этого: [begin] (Trinity) [encoding] {UTF-8} [exec] (Terminal) {terminal} [separator] [exec] (Mc) {mc} [exec] (Thunar) {thunar} [separator] [exec] (Eclipse) {eclipse} [separator] [exec] (Firefox) {firefox} [separator] [exec] (Climm) {terminal -e climm} [exec] (Skype) {skype} [separator] [exec] (Moc) {terminal -e mocp} [exec] (Alsamixer) {terminal -e alsamixer} [exec] (Alsa reload) {terminal -e sudo alsactl restore} [separator] [exec] (Gimp) {gimp} [separator] [submenu] (System Tools) [exec] (top) {xterm} [exec] (top) {xterm -e top} [separator] [end] [submenu] (Fluxbox menu) [config] (Configure) [submenu] (System Styles) {Choose a style...} [stylesdir] (/usr/share/fluxbox/styles) [end] [submenu] (User Styles) {Choose a style...} [stylesdir] (~/.fluxbox/styles) [end] [workspaces] (Workspace List) [commanddialog] (Fluxbox Command) [reconfig] (Reload config) [exec] (About) {(fluxbox -v; fluxbox -info | sed 1d) | xmessage -file - -center} [end] [separator] [exec] (Xlock) {xlock -mode blank} [separator] [restart] (Restart) [exit] (Exit) [endencoding] [end] Вот что получилось :)     Няшка Arch   Используйте fluxbox. Всем удачи!

javascript как узнать все свойства объекта

Небольшая функция на javascript, которая позволяет узнать все свойства объекта Вот сама функция:
function fnShowProps(obj, objName){
    var result = "";
    for (var i in obj) // обращение к свойствам объекта по индексу
        result += objName + "." + i + " = " + obj[i] + "
\n";
    document.write(result);
}
Вот пример исползования:
fnShowProps(window.location, "location")
Результат:

location.pathname = /JavaScript/
location.protocol = http:
location.search = ?8
location.hash =
location.hostname = htmlcssjs.ru
location.href = http://htmlcssjs.ru/JavaScript/?8
location.host = htmlcssjs.ru
location.port =
location.reload = function reload() { [native code] }
location.replace = function replace() { [native code] }
location.assign = function assign() { [native code] }
Источник: http://htmlcssjs.ru/JavaScript/?8  

foreach в javascript

Во несколько способов реализации foreach в javascript Вариант 1:
for (var key in some_array) {
            var val = some_array [key];
	    alert (key+' = '+val);	
}
Источник: http://mihalytch.org.ua/programming/php/analogue-foreach-in-javascript.html Вариант 2:
for(i=0, c=arr.length; i<c; i++) {
	my_func(arr[i]);
}
Нужно отметить, что второй вариант не совсем реализует foreach, так как перебираются только значения массива без ключей.