Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» прикладное программирование и не только оно...

Автор: delover
Дата сообщения: 20.04.2012 19:10
Из всего можно извлечь корень - даже из мухи, муха пьяная лежит на столе, а стол деревянный, а у дерева корни. Вот. Цитата из фильма:

Код:
var s - string!
begin
s:= string('0.0 рублейэ)!
s :=blobtostr(nil)!
s:= #$30f.%000!
s:= nil as IUnknown!
s:=''Я не знаю чё за ошибка!"!
s:=!
return Компилятор адидни!
end
Автор: akaGM
Дата сообщения: 20.04.2012 19:19
водка палёная или трава отсырела?
Автор: delover
Дата сообщения: 21.04.2012 20:26
Да просто мозг устал воспринимать творения программеров молодых

Добавлено:
Пятым корнем была маленькая девочка, она плакала и писяла. Она сказала - я знаю что водичка питает корни, и я так же знаю, что те только мальчики могут писять на дерево. У всего есть корни, даже у маленькой девочки. SQRT(Девочка)=Беби+-количество. Шестым корнем был самолёт - он никогда не взлетал, по этому никто не погиб, но пока он стоял он пустил корни.
Автор: akaGM
Дата сообщения: 21.04.2012 21:38
препод что ли?
Автор: delover
Дата сообщения: 22.04.2012 12:46
основной заработок избавление уже сотворённых программ от глюков и мёртвого кода. редко приходится писать с нуля. но иногда такое вижу что понимаю - человек писавший это видимо делал это в первый раз и не знал что так вот лучше не писать, дабы не создать гемороя. однако чаще встечается написанное так - лиш бы заработало а там трава не рости. именно на этой неделе такие авгиевы конюшни подчищал. под конец недели не по себе уже стало.
Автор: delover
Дата сообщения: 24.04.2012 19:21
Я не совсем уверен как он в MSSQL сервере Double2 тип, во жена сидит и уже на мозг давит. ))) В Delphi есть Extended, не думаю что они совместимы, но в чём то схожи. В 64 версии Delphi объявили о намерении отказаться от более точных чисел чем Double (.Net + Delphi). Как известно тип TDateTime совместим с Double в достаточной для любых вичислений мере, но вот с NTFS системой появилось более точное время файла. В результате многие пользователи zip архивов получили постоянный глюк с неизвестно откуда набегаемыми двумя секундами. Возможно Ntfs время совместимо по точности с MSSQL Double2. И даже возможно в Win64 сейчас такая же заплата на это время как и в Delphi64 заплата на Extended. Не знаю для чего файлам нужна такая точность во времени сохранения относительно свап задержек, но такая точность допустима и в 64 бит версии. Я сомневаюсь что Ntfs или Delphi будут упираться за точные числа, но я не сомневаюсь что MSSQL сервер попытается решить эту задачу и будет тип данных совместимый с 32 битной версией Double2. Однако пока в наличии плавающие 2 секунды и отсутствие более точных форматов чем Double. В .NET ещё один тип - float, равносилен Single в Delphi, Currency сложно назвать типом с плавающей точкой. Вернее не правильно так называть - типы с плавающей точкой это реальные (дробные) числа, но не все дробные числа имеют плавающую точность. Так что в .NET4.0 имеется только 2 типа, там даже нелья писать float f = 1.5. Флоат-сингл получается из преобразования хранящихся Double данных ну или int данных. Грубо говоря кросплатформенной системе не столь уж важно всё многообразие типов. Интересно, является ли сервер MSSQL кросплатформенным?
Автор: delover
Дата сообщения: 26.04.2012 18:21
Ака
Я тут наврал, извини. Было время заглянуть в MSSQL. Там тип не Double2 а Datetime2, но это ничего совершенно не изменило в моих мыслях. Время выраженное в формате с плавающей точкой - это вполне обоснованная юзабельность. Будь Datetime2 расширенным SQLTimeStamp - он неконвертирум в плавающий, значит MulDiv и поехали пахать ассемблюр. Похоже Вы растерялись. Так, - мне нужно чаще всего знать номер дня, и уметь прибавлять некоторое количество миллисекунд. Кто видел Timestamp поймёт - там всё ручками делается. И теперь мне нужно вычисленный период умножить на количество часов в текущем году. Если это Double то полная автоматика при переводе количества секунд равных дню в день. Это юзабилити... Ну и я не имею ввиду что все операции с Double переносимы в Extended.

Добавлено:
Ещё про детство хочу рассказать. Был такой монитор - текстовый - там графики небыло. И было так 1 байт символ 1 байт на цвет фона и цвет буквы. Про псевдографическую мыщку не буду рассказывать. Там был баг - можно было задать 512 символов потеряв цвет символа а не фона, но один бит использовался для blink - мигания. Ну и я просто инвертировал фон с символом в своей проге. У меня нелзя было мигать но было 512 символов со всеми цветами. Я тогда думал о Русских школах в Киргизии и Грузии, вдруг они захотят на Intel286 увидеть английский+русский+родной но я не был социально адаптирован или просто всем по кайфу был развал сообщества. В общем мышка лазейку нашла а вот сыра ей не дали.

Добавлено:
А самый лучший фильм -это Ниньзя Чебурашки

Добавлено:
Короче тогда у всех беда была а у меня бесплатное счастье (ну хоть бесплатное). Может кто проснётся когда ни будь... Это только для антуража истественно...
Автор: boromirok
Дата сообщения: 29.04.2012 00:10

Цитата:
менно на этой неделе такие авгиевы конюшни подчищал
У меня такое ощущение, что все что я делаю это перекидываю тонны говен из старых конюшен в новые.
Автор: akaGM
Дата сообщения: 29.04.2012 10:22
если говно перекидывают, значит, это кому-то нужно...
Автор: delover
Дата сообщения: 02.05.2012 18:53
В говне бывает чтото интересное .
Автор: delover
Дата сообщения: 03.05.2012 19:16
Тут посмотрел как реализованы права пользователей в программе я просто уехал в аут. Там есть понятие блокировка функций. Если в таблице есть данные о заблокированной функции то при старте программы эти данные меняют у невидимых акций свойство Enabled на то которое было в таблице. Так чтобы по умолчанию сделать акцию запрещённой, мне надо придумывать функцию которую надо сначала запретить и только тогда у меня появятся права пользоваться тем что мне нужно. То есть чтобы чтото разрешить нужно что то другое запретить. При этом сначала читается таблица пользователей в мемдатасет, потом таблица прав отделов в тот же мем датасет, а потом из мемдатасета в невидимые акции без обработчиков и потом Enabled-ы этих акций используются как значения прав. В общем такое впечатление что у одного пользователя более 30 тысячь блокированных функций по этому через мемдатасет надо. А так как у акций есть свойство Name по этому надо через акции а не просто переменные. Вобщем мозг у меня конкретно начинает болеть после такого.
Автор: delover
Дата сообщения: 05.05.2012 10:45
да и понятно почему таблица прав пользователей никак не джойнится с таблицей прав отделов. Веть если я меняю значение на разрешонное то данные удаляются из таблици и просто узнать были ли права удалены или их изначально не было - узнать это я не могу, по этому не могу заранее выставить правильные значения всем пользователям. Я думаю такая система должна быть безжалостно уничтожена просто чтоб люди не мучались больше.

Добавлено:
Среди индусских прогриммистов умеющих писать программы на суахили есть редчайшие супер колдуны... Надеюсь конвульсии к вечеру у меня пройдут и можно будет сходить за пивом... Сейчас найду kolvoDon, жаль что в списке хинтов к программе нет функции поиска (Variable 'KolvoDon' might not initialized)...
[more]
Код: [no] procedure _AnalyseData(Str: String);
var
OnlyNum: Boolean;
PointNum: Byte;
SlashNum: Byte;
ColonNum: Byte;
KYNum: Byte;
KolvoDon: Boolean;
ps, ii, jj: Integer;
dmg, d, m, g: String;
begin
SetLength(Data, 0);
While True do
Begin
ps:=Pos(',', Str);
if ps>0 then
begin
SetLength(Data, Length(Data)+1);
Data[Length(Data)-1].Dan:=Copy(Str, 1, ps-1);
Delete(Str, 1, ps);
end
else
begin
SetLength(Data, Length(Data)+1);
Data[Length(Data)-1].Dan:=Str;
Break;
end;
End;//While True do

KYNum:=0;
For ii:=0 to Length(Data)-1 do
Begin
OnlyNum:=True;
PointNum:=0;
SlashNum:=0;
ColonNum:=0;
KolvoDon:=False;

for jj:=1 to Length(Data[ii].Dan) do
if Data[ii].Dan[jj] in ['À'..'ß', 'à'..'ÿ', '¨', '¸', '+', ' '] then
begin
OnlyNum:=False;
Break;
end
else if Data[ii].Dan[jj]='/' then
Inc(SlashNum)
else if Data[ii].Dan[jj]='.' then
Inc(PointNum)
else if Data[ii].Dan[jj]=':' then
Inc(ColonNum)
else if not (Data[ii].Dan[jj] in ['0'..'9']) then
OnlyNum:=False;

if not OnlyNum then
Data[ii].Tip:=dtXXX
else if OnlyNum then
begin
if (PointNum=1) and (SlashNum=0) and (ColonNum=0) then
Data[ii].Tip:=dtCena
else if (PointNum=0) and (SlashNum=2) and (ColonNum=0) then
begin
Data[ii].Tip:=dtData;
dmg:=Data[ii].Dan;
g:=Copy(dmg, 1, Pos('/', dmg)-1);
Delete(dmg, 1, Length(g)+1);
m:=Copy(dmg, 1, Pos('/', dmg)-1);
Delete(dmg, 1, Length(m)+1);
d:=dmg;
Data[ii].Dan:=d+'.'+m+'.'+g;
end
else if (PointNum=0) and (SlashNum=0) and (ColonNum=2) then
Data[ii].Tip:=dtVrem
else if (PointNum=0) and (SlashNum=0) and (ColonNum=0) and (Length(Data[ii].Dan)=13) then
Data[ii].Tip:=dtEAN13
else
begin
Data[ii].Tip:=dtKtoYa;
Inc(KYNum);
end;
end;
End;//For ii:=0 to Length(Data)-1 do

If KYNum>0 then
for ii:=0 to Length(Data)-1 do
if Data[ii].Tip=dtKtoYa then
begin
if KolvoDon then
Data[ii].Tip:=dtCena
else
begin
Data[ii].Tip:=dtKolvo;
KolvoDon:=True;
end;
end;

end;
[/no]
Автор: delover
Дата сообщения: 12.05.2012 18:15
Сегодня. Оказывается жизнь - полоса белая полоса чёрная. Ну не Бог ли принёс, незнаю. В своей программе увидел настоящий.... Так волосы мои зашевелились потому что увидел. С меня слетело 15 лет махом. Незнаю кого Бог больше любит я увидел настоящий LowCase. Безусловное золото - знание базового паскаля. Просвечивает ассемблер и даже оптимизированный ассемблер. Уверенная рука автора делающего это уже 1000 раз. Очень важный момент для меня - знание буквы ё. Сопроводительный комментарий. Лаконичность свойственная скромным людям.
Автор: akaGM
Дата сообщения: 12.05.2012 18:24
а по-моему у тебя слишком хорошо инициализирована переменная squirrel...
Автор: delover
Дата сообщения: 12.05.2012 21:37

Код:
function LowCase(const S: String): String;
var
Ch: Char;
L: Integer;
Source, Dest: PChar;
begin
(* Перевод букв в нижний регистр *)
(* Аналог LowerCase, но включает русские буквы *)

L:=Length(S);
SetLength(Result, L);
Source:=Pointer(S);
Dest:=Pointer(Result);
While L<>0 do
Begin
Ch:=Source^;

(* а - 224, ё - 184, ж - 230, я - 255.
a - 97, z - 122 *)
if ( (Ch >= 'A') and (Ch <= 'Z') ) OR
( (Ch >= 'А') and (Ch <= 'Я') ) then Inc(Ch, 32)
else if Ch = 'Ё' then Ch:='ё';

Dest^:=Ch;
Inc(Source);
Inc(Dest);
Dec(L);
End;
end;
Автор: delover
Дата сообщения: 13.05.2012 01:49
Автор: miwa
Дата сообщения: 10.06.2012 21:20
delover
Что-то я здесь не увидел ассемблера, тем более оптимизированного.

P.S. Воистину скромный человек наверное пользовал бы AnsiLowerCase и не парился.
Автор: gidrosoldat
Дата сообщения: 04.07.2012 16:44
Доброе время суток,
последнее время с удовольствием изучаю C#. В основном почитываю Шилдта, осваиваю паттерны, немного практикуюсь. Сейчас это хобби, но в перспективе хотелось бы, что бы это хобби приносило некий доход. Дело в том, что я работаю в сфере далекой от программирования. Стажа работы программистов тоже нет. В последнее время я озаботился вопросом о дальнейшем плане.
Когда закончится эта замечательная книга, когда паттерны будут от зубом отскакивать и задачник будет решен - что дальше?

На сайте майкрософта есть раздел посвященный сертификации. Вот цитата со странички:

Цитата:
Сертификация Microsoft повышает вашу конкурентоспособность на рынке труда и открывает перед вами дополнительные возможности для продвижения по службе и поиска новой работы.
Согласно исследованию HeadHunter1, в России:

сертифицированный специалист Microsoft получает больше несертифицированного, в среднем, на 21%;
статус Майкрософт дает преимущество IT-специалисту при трудоустройстве в каждую вторую компанию.
71% опрошенных сертифицированных специалистов видят ощутимый эффект от наличия сертификата.

Вопрос первый: Действительно ли наличие сертификата помогает при устройстве на работу?
Вопрос второй: Какое сейчас самое перспективное направление в области разработки у microsoft?
Вопрос третий: При условии, что я бы хотел программировать (разрабатывать) приложения на какой экзамен стоит нацеливаться? Может на "Exam 70-511: Windows Applications Development with Microsoft .NET Framework 4" ?
Вопрос четвертый: Как лучше всего самостоятельно готовиться к экзамену? Конечно, есть курсы именно к этим экзаменам, но все они дорогостоящие (у нас около 1000 евро). Может есть более бюджетные варианты?
Вопрос пятый: Обращаться в учебную организацию для прохождения теста или проходить онлайн?
Автор: XPerformer
Дата сообщения: 07.07.2012 16:37
gidrosoldat
Не то чтобы я специалист в этом вопросе, но поскольку никто не ответил... на безрыбье как говорится...

По третьему вопросу
TS = Technology Specialist MCTS
Pro = Professional Developer MCPD

Если выбирается платформа = .Net 4 = Microsoft Visual Studio 2010
и направление – десктопные приложения = Windows Application
то сначала надо сдать один экзамен
1)    Для TS это 70-511
Для Pro надо дополнительно стать TS в двух смежных областях:
например
2)    70-513 Windows Communication Foundation Development
3)    70-516 Accessing Data
Завершающий экзамен
4)    70-518

По четвертому вопросу - есть на торрентах запись курсов, скачать, смотреть, делать
Подборка ссылок для подготовки к экзамену 70-511
http://www.jamesjfoster.com/blog/2010/resource-links-for-70-511-windows-application-development-certification-exam/
Подборка ссылок для подготовки к экзамену 70-513
Resource Links for 70-513 WCF Certification Exam
http://www.jamesjfoster.com/blog/2010/resource-links-for-70-513-wcf-certification-exam/

Автор: mdid
Дата сообщения: 09.07.2012 11:14
народ кто сталкивался с такой хреновинкой...на всех машинах моя прога работает отлично...но на одной вываливает ошибка при чтении текущей раскладки(когда текущая раскладка украинская)

она записана как A0000422 когда на остальных 00000422...я конечно могу читать только 3 последних символа но просто интересно с чего бы это? это какая то говносборка винды иль что? и как вообще винда тогда читает такой код? просто наши бравые админы поставили какую то вин хр game edition на рабочий комп
ПС
думаю в ветку админов писать бессмысленно в силу того что админам коды раскладки и нафиг не нужны
Автор: delover
Дата сообщения: 10.07.2012 09:31
miwa
Я думаю, что я не слишком наглый если расскажу на примере, что была библиотека TURBO Vision для Borland Pascal 7.0. Я написал резидентный граббер Turbo Debugger-a. Потом форматер ассемблерных скринов, в результате получил DeDe только для Паскаля. После этого я за 4 месяца востановил половину исходников Turbo Vision. Но потом купил все исходники у одного студента ББС-ника. Однако, как следствие привык видеть за текстом Pascal то как выглядит получаемый процессорный код. Его я и вижу в LowCase. Думаю не я один.



Прикол
Кусок из программы

Код: [no]procedure TFormXXX.ActionXXExecute(Sender: TObject);
begin
// Тут тупо ничего не должно быть!!!!!!!!!!!!!!!!!!!!!!!!!!
// --------------------------------------------------------
// Потому как компоненты TXXXXXComponent писали совершенно
// не знающие, что такое TAction и не умеющие с ними работать!
// Соответственно они изобратали велосипеды, закрывали аэропорты,
// топили все корабли и уничтожали весь остальной транспорт.
// А первые их модели велосипедов были с квадратными колёсами
// и рычагами вместо руля. Педаль была одна так как считалось,
// что второй ногой пользователь должен отталкиваться от земли.
// Вместо резиновых шин были прибиты досочки, по этому при езде
// всё скрипело и гремело. Читать умные книги - будь то учебники
// по Delphi - считалось равносильным измене Родине, и люди
// читающие такие книги навечно назывались ламерами и
// не допускались к велосипедам! Я ещё не всё написал.
end;[/no]
Автор: miwa
Дата сообщения: 11.07.2012 09:05
delover
Трогательная история. Особенно в том месте, где «привык видеть за текстом Pascal то как выглядит получаемый процессорный код».

Кстати, просветите, пожалуйста. А «процессорный код» вашего lowcase-a, который генерируют fpc, tp7, d7 и dxe2 - он сильно отличается в вашем представлении?

mdid
Было бы не плохо узнать хотя бы язык программирования/среду разработки. Ну и еще увидеть проблемный участок кода.
Автор: delover
Дата сообщения: 13.07.2012 22:28
miwa
Ой да ну Вас - чем дальше в лес тем громче попугаи. Енам генерика стоит оценить или сами составили? Напомню что по сишарпу я столько неприятных моментов показывал, что боюсь если ещё напишу они меня побьют... )))
Если вернуться к LowCase так и быть расскажу. [no] Инструкция Inc(4 байта) всегда компилируется именно в ассемблерный Inc [мем]/регистр. Что касается строковой математики в циклах. Цикл for i:=1 to length do s[i]:=... всегда можно легко оптимизировать. Вместо запроса адреса строки с последующим прибавлением смещения по номеру итерации на каждую итерацию, - самое обычное решение - адрес символа засовывают в Inc. Вместо двух переменных получают одну, что всегда увеличивает шансы оптимизатора. Думаю достаточно. [/no]
Автор: delover
Дата сообщения: 14.07.2012 15:08
mdid

Цитата:
она записана как A0000422 когда на остальных 00000422...я конечно могу читать только 3 последних символа

По стандарту Вам положено читать не 3 а 8 последних символов. Они должны быть именно цифрами. Если есть инструкции преобразования в номер то символ "A" не нужен и его надо отбрасывать. Кодовая страница может быть записана по разному на разных версиях Windows. Может быть и так UTF_NEW_BLABLA_ABC00000422. Номер всегда 8 символов.
Автор: miwa
Дата сообщения: 15.07.2012 23:26
delover
Вы саме себе противоречите в двух соседних ветках (ну или я вас неправильно понимаю). В ветке о Firebird-е вы пишете, что являетесь сторонником простых, стандартных решений, а тут восхищаетесь функцией, которая пытается решить задачу, которую успешно решает стандартная функция.

Это еще не учитывая тот момент, что при переходе на юникодные версии компилятора ваша функция скорее всего не заработает.
Автор: delover
Дата сообщения: 18.07.2012 12:00

Цитата:
что при переходе на юникодные версии компилятора ваша функция скорее всего не заработает.

совершенно точно - не заработает.

Цитата:
а тут восхищаетесь функцией, которая пытается решить задачу, которую успешно решает стандартная функция.

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

Противоречия нет.


Цитата:
Трогательная история. Особенно в том месте, где «привык видеть за текстом Pascal то как выглядит получаемый процессорный код».

Она не трогательная, а скорее вездесуще ужасная. Приведу пример, когда люди не понимающие того, какой в программе получается код начинают использовать механизм OLE автоматизации. После этого на этой программе люди ещё и работают и изредка жалуются на глюки. Выловил я эту какушку недавно в программе которая то печатает то не печатает документ строгой отчетности. Суть ошибки:

> OleObject1.String1 := OleObject2.String2.
> DispOleObject1.String1: WideString;
> DispOleObject1.String1: OleVariant;

Очевидно что код присвоения создаётся во время выполнения в соответствии с правилами позднего связывания. Так как программа ничего не знает о типах интерфейсов на момент компиляции нет кода выполняющего конвертацию. Под отладчиком в лучшем случае я имел в этот момент ошибочную печать в худшем случае вылетали OutOfMemory и ошибки в ntdll.dll. Я не сразу разглядел ошибку но когда обратил внимание - был в шоке, как же можно так писать. Так же я нашол следы того что программист долго пытался понять почему у него ошибка в этих местах, но он так её и не понял.
Автор: delover
Дата сообщения: 25.07.2012 10:49
предлагаю прочесть http://alexthunder.livejournal.com/290612.html
Автор: alekc2008
Дата сообщения: 06.08.2012 13:52

Цитата:
delover

полностью согласен
Автор: delover
Дата сообщения: 07.08.2012 20:32

Цитата:
полностью согласен

Да пожалуй только Вы сможете оценить - слог - бренного поэта.
- Люди делятся на две категории из 10-и - те кто не знают бинарную систему и те кто знают.
Автор: delover
Дата сообщения: 31.08.2012 17:46
Че блин пугаете среди питниый

Добавлено:
*пятницы

Страницы: 12345678910111213141516171819202122232425262728293031

Предыдущая тема: Borland Developer Studio 2006 и Oracle пакеты


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.