среда, 13 ноября 2013 г.

Выбираю себе домашний комп

Первый комп мой был персоналкой, P-90 по-моему.
Его я постепенно апгрейдил до второго пня, поменяв все, кроме HDD, (просто докупал более объемный и увеличивал их количество).

Затем пришлось жить отдельно от родителей, и я купил себе первый ноут - его можно было таскать из комнаты в комнату. Потом появился ADSL инет и ноут припарковался на рабочий стоол. К нему был докуплена полноценная клавиатура, и само-собой мышка (ненавижу тачболы).
Затем появился монитор :) Чтобы экран был больше, а не жалкие 15".

Короче через некоторое время купил себе полноценный комп, ноут ушел на пенсию. Комп был из бывших серверов, и хотя через некоторое время стал "притормаживать" (появились 5-герои), все равно ничего уже не апгредил. Было лень, а потом момент упущен - для полноценного апгрейда нужно было менять все кроме корпуса и БП.

Думал на что поменять - на персоналку (что дешевле) или ноутбук (что дороже), потому что экран хочу большой. И тут я обратил внимание на моноблоки. Если не брать продукцию от яблока, то дешевле чем ноут получаешь большую производительность и большОй экран.
Плюс беспроводная мышь и клавиатура, давно беспроводной инет - к монитору (по-сути) уже один провод - питалово.

Ну и домохозяйки, окажутся правы, которые показывали на монитор и говорили "компьютер, процессор и т.п."

понедельник, 3 июня 2013 г.

Оптимизация кода - ускорение приложения

Ранее (вернее до вчерашнего дня) я под ускорением приложения подразумевал оптимизацию кода.
Например заместо for(int i=0;i писал for(int i=0;s[i];i++) ...
Ну и так далее, оптимизировал циклы и прочее, часто использовал указатели на char *, нежели пользовался стандартными функциями str.
Но все изменилось вчера, собрал небольшой, но вычислительный код на машинке под Lin64.
Компилил само-собой g++, и скорость на только что свежой тачке с толи с 4, толи 8 ядерным процессором показала практически туже что и на моем рабочем компьютере - винXP32, трехлетней выдержки.

Что за нах? Подумал и поискал в инете, нашел кучу ключей и собрал уже с ключами -m64 -Ofast -flto -march=native -funroll-loops, разница была в десять(10) раз!!!

Вот такая хреновина...

четверг, 13 декабря 2012 г.

Многострочный INSERT в VARCHAR поле

Сегодня портировали базу в IBM DB2, встряли на insert'ах в текстовые поля: varchar'ы и blob'ы, решение простое - нужно квотировать символы #10 и #13 как '||chr(10)||' и chr(13) соотвественно, чтобы весь insert был в одну строку. Без единого разрыва, как говорится

пятница, 5 октября 2012 г.

вперёд

Создаем новый проект, сделано 99%, до окончательного пуска осталось от пары недель до бесконечности, это для тех кто понимает.

Надеюсь все срастется, проект реально неплох.

понедельник, 10 сентября 2012 г.

Как сортировкать массивы в PHP по нескольким полям

Задался тут вопросом как сортировать в PHP массивы по нескольким ключам, поискал (не сильно долго в инете) ничего не нашел, а потому придумал свой вариант.

Все очень просто, и делается за три прохода:
1. Пробегаете ваш массив и одновременно создаете новый (tmp), где ключ - ключ в исходном массиве, а значение склейка ключей. Например для строковых $a.'-'.$b.'-'.$c, а для числовых можно воспользоваться умножением.
2. Сортируете полученный массив sort или rsort
3. Создаете новый массив пробегая по отсортированному tmp, создавая массив по заданному значению из tmp и значению из исходного массива.

Это возможно лишь потому, что PHP при создании нового элемента массива элемент точно добавляется в конец, в Perl это бы не прокатило. Там он бы попал по хешу для сортировки. Да и сортировать в Perl'е гораздо легче, следует лишь указать любую пользовательскую функцию перед sort. Да и Perl круче PHP, но пост совсем не про это....

пятница, 7 сентября 2012 г.

Firebird & x64 & Linux

А вернее Suse, значит на сервер наш администратор поставил deleveper пакеты Firebird и мы там ж, стали компилить наш проект. Он скомпилилися (ну вернее скомпилился после указания пару флагов компилятору про точность - но это gcc и сам отлично показывал).

Но затем при некой выборке из БД, выдавал какую-то ересь, причем полезли в дебри заголовочных файлов isbase.h нашли там ISC_INT64.

Для спецов скажу - там не учитывается x64 режим, нужно ставить еще define на просто int.

Для не спецов скажу - это пиздец товарищи когда ставишь delevoper пакет ожидаешь что он не будет содержать ошибки.

вторник, 7 августа 2012 г.

Случайно переключился с cp1251 на cp866 набрав слово "его".
Задумался над смыслом кодировки....