Home

NetImperia Astral Life

NetImperia Home

Забавно

NetImperia


Patch для libiconv-1.13.1 возможность компиляци под Visual Studio

NetImperia


Во время моих мучений, в попытке запустить одну программу под виндой, написанную для Linux. Родился патч для libiconv-1.13.1

С его помощью можно компилировать библиотеку под Visual Studio.
Тестировал на Windows 7 + Visual Studio 2008 + Windows SDK 7.0

Кому надо можете качать. 
http://home.netimperia.com/files/libiconv-1.13.1-win-vc9-v1.patch

Инструкция по использованию:
1. Копируете в папку с libiconv патч
2. Запускаете patch -p1 < libiconv-1.13.1-win-vc9-v1.patch
3. Теперь запускаете Visual Studio Command Prompt (можете из SDK)
4. Переходите в папку с iconv
5. Запускаете nmake -f Makefile.msvc DLL=1 MFLAGS=/MD NO_NLS=1 DEBUG=0

Все пойдет компиляция.

Теперь что означают опции:

DLL=1   значит создавать DLL библиотеку  (если указать 0 то будет просто lib файл)

MFLAGS=/MD   Способ линковки библиотеки (могут быть /ML или /MT или /MD для релизов) Для дебаг версии то же самое только в конце маленькая буква d

NO_NLS=1   Означает что компилировать библиотеку без gettext. Если указать 0 то нужно будет положить в c:/usr/lib файл intl.lib для поддержки gettext

DEBUG=0    Тут все просто 0 это релиз    1 это дебаг версия...


Буду рад если кому пригодится.



Apache 2.2.11 Win64

NetImperia

Сегодня для своих нужд откомпилировал 64 битный Apache 2.2.11 под Windows.
Собирался с использованием библиотек Windows Vista SP1 и Windows Server 2003
Поэтому скорее всего на XP работать не будет.
Хотел с SSL собрать но не получилось. openssl библиотека пока не дружит с 64 битами.
Поэтому mod_ssl нету.

Также нету поддержки:
oracle, pgsql и sqlite3 так мне они не нужны да и нет их у меня. А собирать их лень.

Кому нужно можете скачать тут: http://home.netimperia.com/files/misc/apache_2.2.11-win_x64-no_ssl.rar


Надо будет собрать PHP 64х битный. Тогда будет полный комплект. Но руки до него видимо дойдут не скоро.


Моя видеокарта ASUS GeForce 8800GTX откинула коньки.

NetImperia

Моя видеокарта ASUS GeForce 8800GTX откинула коньки.
Компьютер работает, а изображения нет. Поставил другую видяшку все работает. Так что дело именно в карте.
Гарантия на нее еще минимум год осталась. Но вот подстава. Фирмы в которой я ее покупал больше нет(разорилась).
Многие наверное слышали про компанию Ултра. Всю эпопею можно посмотреть тут.

Решил написать в ASUS и спросить как мне быть. На что получил ответ:

Добрый день.

Спасибо за обращение в службу контроля качества
компании ASUSTeK.


Гарантийная политика по видеоадаптерам и материнским платам ASUS приведена
на нашем сайте
http://support.asus.com/repair/repair.aspx?SLanguage=ru-ru
Необходимо отметить, что это гарантия от ASUS, которую сам ASUS может
гарантировать только
при покупке комплектующих у наших партнеров, список которых также есть на
нашем сайте.
На данный момент прием в гарантийный ремонт комплектующих ASUS на территории
России
осуществляется только через продавцов продукции. У нас, как у
представительства, и у компании
ASUS к сожалению на данный момент нет собственных сервис центров в России
для конечных пользователей.
Имейте в виду, что предоставление продавцом меньшего, чем фирменный, срока
гарантии является первым признаком
неофициальности (серости) данной поставки, которая может не подпадать под
гарантию ASUS на территории России.

Пожалуйста, при ответе сохраняйте переписку.
С Уважением, Служба контроля качества
обслуживания ASUSTeK.



Так что я встрял по полной с видяшкой.

Это еще одно доказательство что пусть в Key.ru все и дороже. Но там не кинут так.

Теперь надо думать как ее самому отремонтировать или может кто возьмется за ремонт...
И главное возможно-ли это вообще.


Поговорили о Intel

NetImperia

Сегодня встречался с одним человеком который работает в Intel. Посидели пивка попили.

Разговор у нас затянулся на 4 часа. Обсуждали совершенно все.

Странно что всех кого я встречал раньше оттуда, были просто фанатиками. Которые до пены доказывали  что только Intel спасет мир. И что если ты не пользуешься их продукцией ты идиот.

Этот-же человек (он просил его не называть) совершенно адекватно смотрит на вещи.

Описывать весь разговор не буду. Лень да и незачем. Вот ключевые моменты.

1) В течении двух ближайших лет Intel порадует нас чем--то очень уникальным. И не просто процессором. (Сколько я не пытался вытянуть что от Intel'а ждать но не получилось. Он подписал бумагу. Поэтому держался стойко и только намекал)

2) Сейчас в Intel идет очень много проектов исследовательских для получения компонентов  из которых будут делать новые процессоры. Некоторые уже озвучены прессой. Другие еще в закрытой фазе. Помимо этого есть своего рода несколько засекреченных проектов. Из всего что он мне рассказал. Можно сделать вывод что это совершенно новые технологии которые сейчас невозможно реализовать потому что они очень дорогие. И они совершенно не похожи на те устройства что мы знаем сейчас.

3) Есть попытки реализации собственной видео карты. Но до полноценной ей еще далеко.

4) Интел понимает что только увеличением ядер в процессорах не решить сегодняшнюю проблему. И сейчас переходный период. Пока они наращивают ядра для того чтобы выиграть время. И довести новые разработки до ума.

5) Сейчас во время кризиса зарплаты работников понижены.

6) Он как и я не разделяет политику Intel в области Intel C++ Compiler.  Логичнее было на их месте раздавать его бесплатно.  Тем самым больше софта выходило оптимизированным под процессоры интеловские. И в следствии больше их продаж.

 

На самом деле обсуждали намного больше. Но о некотором я обещал не рассказывать :)

Могу намекнуть что скоро будут сюрпризы.


Так как я сторонник компании Intel....

NetImperia

Так как я сторонник компании Intel.... Не мог пройти мимо Спонсорского акаунта.

Интел форева.

Acid 3 Test (Opera, IE, Safari, FireFox)

NetImperia

Сегодня решил провести тестирование браузеров на правильное отображение стандартов.
Для этого был взят известный тест ACID 3 который находится по адресу
http://acid3.acidtests.org/


Протестированы были:


Google Chrome 1.0.154.48
Internet Explorer 8
Opera 9.64 (10487)
Apple Safari 4



И вот результаты:



Google Chrome 1.0.154.48









Internet Explorer 8







Opera 9.64 (10487)







Apple Safari 4






Как видно из скриншотов только 1 прошол все тесты...   Safari 4




PHP скорость глобальных переменных и переменных в классах

NetImperia

Сегодня было проведено тестирование скорости обращения к глобальным переменным. И переменным объявленным в классе.
Считалось только время выполнения операции. Инициализация переменных не учитывалась.


Пример глобальной переменной:

<?php
$cnt = 0;

$global_var = 1;

function test() {
global $global_var;
$global_var++;
}

$cnt = microtime(true);

test();

print (microtime(true) - $cnt);
?>

Пример класса:

<?php
$cnt = 0;

class a {
public $global_var = 1;
}
$b = new a();

function test() {
global $b;
$b->global_var++;
}

$cnt = microtime(true);

test();

print (microtime(true) - $cnt);
?>

Вывод:



Среди PHP программистов бытует мнение что работа с глобальными переменными вызывает тормоза в отличие от использования классов для хранения данных.
Тест показал что это полный бред. И все совершенно наоборот.
При обращении к переменным классов вы сразу теряете ~10-20%. А если считать еще и инициализацию самого класса. То потери еще больше.




Еще одно подтверждение тому что если хотите скорости используйте функциональное программирование, а не объектно-ориентированное.


Прощай VerliHub и Привет DBHUB

NetImperia

Некоторое время назад я писал о том, что начал переделывать VerliHub для возможности соединять несколько серверов. Когда уже все было готово и были запущены сервера, вдруг открылась странная проблема. Через некоторое время работы сервера просто падали. Причем падения носили рандомный характер. После некоторого анализа было найдено порядка 60 утечек памяти в самом VerliHub. Некоторые из них не особо критичные и не вызывают критических паданий. А вот некоторые вызывают. И проявляются только когда много пользователей на сервере. И много пытается зайти на сервер.
Все эти проблемы перекочевали с оригинального VerliHub, в котором они по сей день существуют.
После углубленного анализа этих утечек стало ясно, что проще написать собственный сервер, чем их исправлять.
Вследствие чего было принято решение отказаться от VerliHub.
Пришлось думать что делать. Нужно было либо писать новый сервер, либо поискать что-то уже написанное.
Был найден хаб DBHub, он написан на C, а не C++ вследствие чего он очень прост для модификаций.
Но и в нем оказались проблемы. Несколько утечек памяти и несколько проблем с Security. Которые я довольно быстро исправил. В результате получился довольно простой стабильный хаб.
Теперь я работаю над его совершенствованием.
Линковка уже сделана.

Список всех изменений можно найти тут

Все предложения по улучшению приветствуются.
Пока хаб в стадии закрытой разработки. Поэтому исходники будут выложены попозже.

 

 


Python 2.6 for windows + mysqldb 1.2.2 + mod_wsgi

NetImperia

Вот подумал что моежт кому нужно. Поставил сегодня себе Python 2.6. Но как и ожидалось оказалось что некоторые модули у меня не заработали. Пришлось самому компилить.

Вот выкладываю малоли кому еще надо:

1) python_mysql версии 1.2.2 под Python 2.6 (компилил под Mysql 5.0.67)
брать тут: http://home.netimperia.com/files/misc/MySQL-python-1.2.2.win32-py2.6.exe


2) mod_wsgi версии 2.3 под Python 2.6 (компилил под apache 2.2.9)
брать тут: http://home.netimperia.com/files/misc/mod_wsgi.so


Компилировалось под:
Win Vista 32
WIN SDK 6.1
VS 2008

PHP & IE 7 и странности с Unicode

NetImperia

Сегодня работая над одним из сайтов обнаружил странность.
Сайт написан в UTF-8 и часть текстов на русском, часть на английском.

Так вот в результате заполнения формы и отсылки ее на сервер. Каким-то образом оказывается что
некоторые переданные переменные оказываются в UTF-8 а некоторые в cp1251. Почему такое происходит я еще не понял.
Причем этот глюк рандомный. И присуствует только в связке PHP + IE 7. Под Python и Perl такого нет и все данные в UTF-8.

Поэтому пришлось извращаться и писать провеки кодировок для всех принимаемых переменных.

Давно я таких извратов не писал...

function check_encoding($name) {
    if(isset($_REQUEST[$name])) {
        $c = mb_detect_encoding($_REQUEST[$name]);
        $m = get_magic_quotes_gpc();
        if($c='UTF-8') {
            if($m) {
                $_REQUEST[$name] = mb_ereg_replace("\\\\", '',$_REQUEST[$name]);
            }
        } elseif($c=='ASCII') {
            if($m) {
                $_REQUEST[$name] = stripslashes($_REQUEST[$name]);
            }
            $_REQUEST[$name] = mb_convert_encoding($_REQUEST[$name], 'UTF-8','ASCII');
        } else {
            $_REQUEST[$name] = mb_convert_encoding($_REQUEST[$name], 'UTF-8',$c);
            if($m) {
                $_REQUEST[$name] = mb_ereg_replace("\\\\", '',$_REQUEST[$name]);
            }
        }    
    }
}



Как говорится еще один повод отказываться от PHP...

Скорость языков.

NetImperia

Вот сидел я тут и задумывался о том, почему WEB такой тормозной и чтоб можно было придумать на этот счет.
Так как я пишу свой проект и планируется, что он будет очень крупный, приходится об этом задумываться. Но первое время естественно он будет жить на обычном хостинге.

Первое на что падает мысль. Это на язык программирования, который выбирается для написания проекта.

С и C++ лучшее, что можно придумать по скорости. Но у него есть серьёзный недостаток, его очень сложно поддерживать. А если будет допущена какая-то ошибка, то это вообще пиши, пропало. Пока ее найдешь, годы пройдут.  Поэтому стоит на нем писать, только если уже действительно жутко не хватает производительности. А  до этого лучше на чем-то другом писать.

PHP очень удобный язык. Наверное, из-за своего синтаксиса, который напоминает C++. На нем можно быстро писать что угодно. Но и у PHP есть недостатки. Он очень медленный.

Perl  я даже не рассматриваю, так как он равноценен PHP. Быстрее PHP он только при работе с регулярными выражениями.

Ruby это пока язык развивающийся. И он очень сырой. Поэтому я не стал-бы использовать на живом проекте. Да и библиотек под него еще не так много.

Java ну это можно сказать классика. Очень быстрый язык. Удобный объектно-ориентированный синтаксис. Но Java это немного другая весовая категория. И если сравнивать с PHP, Perl и другими скрптовыми языками, то это громадный грузовик. А PHP & Perl это своего рода маленькая мини машинка, которая может протиснуться в любую дырку. Поэтому Java обычно используют на заводах и во многих крупных проектах. Так как Java это не просто зашел клиент, java запустилась, обработала и отдала результат, как делают другие языки скриптовые.  Java постоянно висит в памяти. Чаще всего сами WEB серверы для нее сами написаны на Java. Своего рода монолитное приложение. Но в связи с этим у Java очень существенный недостаток. Она просто жутко прожорливая до памяти. Поэтому ее нужно использовать, только если есть выделенный сервер, на котором нет других проектов. И на котором минимум 4-8Gb памяти.

И чтоже у нас остается в результате?

Python - Довольно быстрый скриптовый язык с возможностью компиляции в байт код. Можно сказать, что это нечто среднее между Java и PHP. На нем можно писать как объектно орентированно, так и функционально. Для него существует множество библиотек. При этом он так устроен, что если скорость какой-то логики не устраивает всегда за считанные минуты этот код можно переписать на C++. Так как у Python очень удобная система написания модулей. Да и на практически любом хостинге он есть. Даже компания Google предоставляет халявный хостинг для проектов на Python. (http://code.google.com/appengine/)
Поэтому, на мой взгляд, это идеальный вариант для начинающихся проектов. Он быстрый. (во много раз быстрее PHP) Язык довольно простой. Хотя к нему и нужно некоторое привыкание. Особенно после PHP.


Так ссылки где показано сравнение скоротей разных языков:
http://dada.perl.it/shootout/
http://izumi.plan99.net/blog/index.php/2008/01/17/ruby-vs-php-performance/
http://www.timestretch.com/FractalBenchmark.html


Подкинули

NetImperia

Вот это чудо на улице нашли и нам подкинули:



Похоже, он убежал от хозяев и его покусали.  Задняя лапа сильно покусана он на нее не встает.
Сегодня к ветеринару на рентген ехать...



Выпустил новую версию модификации

NetImperia

Залил новую версию модификации VerliHub.
Все подробности об изменениях на сайте http://verlihub.netimperia.com/

Напоминаю что принимаются идеи по улучшению VerliHub. Если кто-то хочет чтобы появилось в хабе напишите я попробую это реализовать.
Tags:

Сварганил простенький сайт

NetImperia

Вот сварганил сайтик простенький на котором буду выкладывать новые модифицированные версии VerliHub.

http://verlihub.netimperia.com/
Выкладывать буду только сам модифицированный хаб.(с улучшениями и возможностями для линковки)
Линкер я пока не раздаю. Возможно со временем.

Так-же откыл багзиллу для отзывов и багов http://bugzilla.netimperia.com/

Линковка часть 2

NetImperia

Сегодня сделал первую рабочую версию линковки в VerliHub
Теперь оно умеет переписываться между серверами и искать на других серверах. Естественно создаёт и удаляет виртуальных пользователей. Те что на других серверах. Так что список юзеров тоже обновляется теперь. А вот скачка файл листов почему-то не заработала.
Сегодня уже разбираться не буду.

DC++ линковка

NetImperia

Занялся я тут неблагодарным делом. Делаю линковку DC++ серверов. Чтобы можно было несколько серверов объединить,  и они работали как один. Пользователи между ними чтобы файлы могли пересылать письма писать итд.

После изучения протокола DC++ я понял, что так просто это не сделать. Хотя многие вещи в нем уже предусмотрены. Пришлось придумывать собственные команды.
После написания дополнения к протоколу DC я начал изучать все бесплатные сервера. Оказалось что софта для серверов, да еще и с исходниками не так уж и много.  Виндовые серваки так вообще поголовно закрытые.
Поэтому я остановился на сервере Verlihub. Так как он уже давно существует, да и исходники раздаются всем желающим. Помимо этого в нем уже есть все, что мне необходимо.  После довольно длительного изучения его пришел к выводу, что писать плагин для него с теми возможностями, которые необходимы мне не выйдет. Я решил менять исходники самого сервера.

Вначале хотел сделать, чтобы сервер сам конектился к другим серверам. Но после попытки, которая не увенчалась успехом, решил отказаться от этой идеи. И сделал отдельный своего рода сервер, который соединяется к другим серверам и через него передаются все данные. К томуже плюс  такой реализации в том, что если нагрузка на сервер очень сильная, этот линковочный сервер можно вынести на отдельный комп.

Сегодня я реализовал линоковочный сервер версии 0.0.1a :) А также написал скрипты для компиляции под линукс. Теперь он работает как под Linux, так и под Windows.

Думаю, для начала хватит.

Мдя

NetImperia

Вчера таки решили поставить SVN сервер. А то достало что все через ssh+svn:// . И под виндой такое глючит.
Откомпилили SVN с горем пополам запустил руками. Все работает. Но тут-же возник вопрос ,а как запустить это по крону.
Порылся в интернете. И оказалось, что все примеры запуска которые дают. Не походходят. Там либо используется команда pspid либо daemon. А у нас на серваке их отродясь небыло. И поставить на него их не реал. Пришлось сворганить на скорую руку запускальщик. Изврат конечно получился. Но вроде работает :)

#!/bin/sh
############################################

data=`cat /home/svnser/server/run/svnserve.pid`
check="/proc/$data"
if [ -d $check ]; then
exit 1
fi

cd /home/svnser/server/bin
/home/svnser/server/bin/svnserve -d --listen-port 3764 -T -r /home/svnser/repos --pid-file /home/svnser/server/run/svnserve.pid
cd /home/svnser

exit 1

Microsoft Совсем озверел. (Microsoft angers the influencers)

NetImperia



Прочитав сегодня лицензию на новую операционную системму Vista, я вначале подумал что не правильно что-то понял. Но когда прочитал еще раз и понял что прочитал я все верно. Меня охватил гнев или даже скорее бешинство.

Теперь если вы покупаете Windows Vista. Вы как и раньше имеете право установить ее только на один компьютер. НО... После этого представим вы решили обновить свой компьютер, и прикупите либо новую материнскую плату либо новый винчестер(например он сгорит). Они раз вы это сделать сможете. А вот на второй обгрейд вам придется покупать новую Windows. Так как на этом лицензия исчерпывается.

Вот отрывок из интервью с работником Microsoft:
Microsoft just released details of Windows Vistas licensing/product activation scheme, and theyre far more restrictive than XPs. If a user makes a significant hardware change, Vista can be reactivated, but only once. So if you replace your motherboard and then replace your hard drive a few months later, you have to re-buy Windows.

Тоесть теперь помимо того что они привязывают к одному компьютеру. Так еще и к конкретному железу привязали.

А что если у меня комп сломается почему я должен покупать новую версию Windows.
Я честно не понимаю. Неужто Microsoft думает что после этого люди будут меньше пользоваться пиратскими версиями? Я лично знаком с несколькими людьми которые при том что купили Windows XP пользуются пиратской версией винды. Объясняя это тем что их задолбала активация.
А после такого я думаю многие даже и не будут покупать Windows.

Лично у меня после такой новости возникло желание заплатить эти деньги пиратам. Чтобы они потратили больше времени и крякнули нормально винду.

Отдам на халяву монитор 15 дюймов ViewSonic P655

NetImperia

Кому-нить нужен моник ViewSonic P655 на халяву?

Одно только но. Его надо ремонтировать ;)

При включении из него пошол дым. И теперь он только белый экран показывает.
Явно что-то с электроникой.
Вот с того момента как сломался лежит на шкафу.

Если так и не найдется тот кому он нужен выкину.

Есть коробка и все бумажки от него.