Artisan

Artisan
Рейтинг
379
Регистрация
04.03.2005
Пишу программы для вычислительных машин, от драйверов устройств, до сложных систем для работы с большим количеством знаний. Умею бережно использовать железо, и другие ресурсы.
dr_joker:
И мы решили снимать видео о плохом
качестве продукции наших конкурентов.

И вообще, как лучше поступить,
хочу услышать мнения экспертов.

Лучше точно опишите свой товар,

все его достоинства, и ясно укажите

отличительные признаки товара.

Если пачкать других,

то сами запачкаетесь.

cscope:
У excel 2007 до 1кк строчек, влезет 5 к товаров? Не соображу.
Понятное дело, что нужно видеть образец, но так на вскидку.

Логические листы НЕ страницы для прокрутки,

а отдельные похожие документы в одном файле.

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

для нескольких разных месяцев, у которых разное (большое)

количество строк, и которые обсчитываются отдельно.

Или один лист с зелеными карандашами,

а второй лист с красными карандашами.

У листов одинаковые колонки,

формулы, и дальше по списку.

Используют для удобства, чтобы

было меньше однотипных файлов.

Тогда все настройки можно

делать для одного файла с

логическими листами, вместо

размножения настроек на

много отдельных файлов.

cscope:
Ну т.е. изначально "заточить" движок интернет магазина так, чтобы можно было наполнять и обновлять товарные позиции с помощью импорта excel файла, где в отдельных колонках будут прописаны параметры товаров (подраздел, артикул, размеры, цена и т.д.) и какие нюансы нужно учесть?

Не обязательно сильно затачивать,

из Excel можно выгружать в html или

текстовый файл со всей разметкой.

Надо только учесть, что у Excel документа

может быть несколько логических листов.

Проще использовать один лист.

_SP_:
В реальной задаче надо проверять не любые, а в коридорах определенных ГОСТом. Коммутация оборудования на 220V "триггером" при наличии в сети 400+V (а так бывает) - это в общем-то крупная катастрофа. Соискатель, который ткнул бы меня в это носом без сомнения заработал бы немало баллов.

Катастрофа с жертвами,

а без жертв только авария.

Про жертвы я уже написал выше, если

вдруг появится 220 Вольт вместо нуля.

Для точного оборудования даже

~ 1 % может привести к авариям.

Ограничивать напряжение в

рабочих пределах должно железо,

а программа должна делать то, что

она может делать лучше железа.

Для этого есть молниеотводы,

заземление, плавкие предохранители,

автоматические выключатели,

и дальше по списку.

Если хозяин воткнул гаечный

ключ на место предохранителя,

сгорел АЦП, и отдает программе

нули, то программист уже

ничем не поможет.

Не надо плодить

лишние сущности.

_SP_:
ЗЫ. И да, в свой время в тесте по С был клёвый вопрос. Что будет результатом (дальше шло чумовейшее выражение со сдвигами итп) и место куда вписать ответ. Правильным ответом было: Немедленное увольнение. Но некоторые пытались вычислять. Тут вопрос кто нужен - кодер, те да, пусть вычисляют. Разработчики не должны вычислять фигню, они должны сделать так, чтобы её не было :)

Правильно, читайте пункт первый

выше про 400 Вольт напряжение.

Я уже писал выше, что лучше уточнить

кривую задачу, чем писать кривизну.

Не надо плодить

лишние сущности.

Rupor22:
Может уважаемый All поможет добрым советом,
или даже приглашением разместиться.

Вам поможет платная контекстная реклама.

edogs:
Спасибо что пояснили, а то поначалу Вас поняли полностью наоборот
(что Вы советуете, а не критикуете) и сильно удивились:)

В советах есть слова надо,

лучше, и другие типа таких.

edogs:
Кстати, если решать ТУ задачу в лоб, то мы бы назвали компромиссом
if(x=220 || x=0) x^=220; else {и вот тут по желанию или ничего или эксепшен}
Ибо если значения не предусмотренные ТЗ, то мы их как минимум не будем менять
их - делая их неопределенными по сути, а как максимум предупредим о проблеме.

Я предпочитаю писать

проще по возможности.

Если задача кривая, то

лучше уточнить задачу,

чем писать кривизну.

edogs:
Нашли заодно свой тест для php-шников, который еще больше 10 лет назад использовали (так что делаем поправку на реалии тех лет) http://abazaba.ru/temp/test.zip . В начале в комментах небольшая "легенда". Так вот проблема в том, что даже на 90% его не выполняли 90% пхп-шников, при этом не было ни одного оценивающего свой уровень ниже 8 баллов... как-то так. Надо будет стряхнуть с него пыль и еще раз где-нибудь на фрилансе запулить, посмотреть изменилось ли что-то за 10 лет с лишним:)

/* Скрипт брошен слегка недоделанным

предыдущим программистом, является частью

бОльшей системы, но сам по себе независим.

логин пользователя на входе в скрипт

передается в печеньях в переменной user_login

md5 хэш пароля хранится в печеньях

в переменной user_pwd */

Я бы ответил, что хранить plain text пароли

на сервере опасно, в прянике для сеанса надо

хранить не md5 пароля, а случайную строку,

которая генерится при начале сеанса,

и нет времени на такие тесты.

vbgm:
Спасибо!

1. Что есть K&R?

2. Это не инлайн процедура в сикоде. Это одна из асм-процедур в асм-программе. Весь движок будет на асме.
Там пока 30Кб кода и еще 12Кб в inc-файле всяческих прототипов, макросов, констант, структур и т.д.

3. У меня все предусмотрено. В читаемых файлах последняя строка неудаляемая.

4. Нельзя. В eax содержится код ошибки последней выполненной функции для выходного лога. GetLastError - не вариант.

1.

http://en.wikipedia.org/wiki/The_C_Programming_Language

The C Programming Language (sometimes referred to as K&R, after its authors' initials) is a well-known computer programming book written by Brian Kernighan and Dennis Ritchie, the latter of whom originally designed and implemented the language, as well as co-designed the Unix operating system with which development of the language was closely intertwined. The book was central to the development and popularization of the C programming language and is still widely read and used today. Because the book was co-authored by the original language designer, and because the first edition of the book served for many years as the de facto standard for the language, the book was regarded by many to be the authoritative reference on C.

http://ru.wikipedia.org/wiki/Язык_программирования_Си_(книга)

«Язык программирования Си» (англ. The C Programming Language, также известная как K&R) — книга Брайана Кернигана и Денниса Ритчи, причём последний — один из непосредственных авторов и разработчиков языка Си. Книга стала основой для разработки и популяризации Си, до сих пор имеет спрос[1] и широко используется в качестве «классического» учебника по языку. Она долгое время была единственным справочным руководством и де-факто — стандартом языка.

2. Проще все на C наваять, и будет

лучше читаемость и переносимость.

3. Кто-нибудь "умный" сделает

последнюю строку без LF знака.

4. eax обычно используют для

крайнего кода, а тащить код из

глубины лучше в других регистрах.

Сами потом запутаетесь.

edogs:
Т.е. так a=a+1; // добавляем к a единичку
а не так b=b+2; // что бы увеличить скорость на 2
Уверены?

Автор хотел критику, я ему

написал, что мне не нравится.

; Умножаем на 8 байт (2 по 4)

Вместо того, чтобы написать,

что готовим место для указателя

и длины для каждой строки.

vbgm:
Я без словаря в крестах не разбираюсь.
Как в Хатч в masm32 организовал макрос, так я и пишу сейчас.
Судья я. Вот мой пример, прошу критики.

Я писал без крестов,

K&R, вот это наше все.

ASM в Вашем образце, культура

кодирования отвратительная.

В самом начале процедуры должно

быть описание, вход, выход, действия.

Комментарии описывают простые действия,

без пояснения зачем нужны эти действия.

Все числовые константы надо

define со смыслом предварительно.

#define ProcedureIndexFile 00020004h

#define LineFeed 0Ah

Константы для условий надо

define именовать обязательно.

#define FileFail 0

#define HeapFail 0

.if eax == FileFail

Зачем вообще ассемблер для этой задачи?

Страдают читаемость и переносимость.

Файловые действия сожрут столько

времени, что вся скорость теряется.

Не обязательно строка файла

заканчивается LF знаком, последняя

строка может быть без LF знака,

Вы такую строку не считаете.

loop LdCoreCfgFileLoop01

inc ebx ; надо считать последнюю строку без LF знака

jmp LdCoreCfgFileComplete01

Выходной код лучше отдавать

в обычном eax регистре.

Можно еще подумать,

но есть другие дела.

vbgm:
1. Источник электропитания - y;
Описать принцип кнопки-триггера,
переключающей напряжение 220В - 0В.
Flector:
в реальной задаче я бы проверял любые значения напряжения.
у меня сейчас ИБП питания показывает входящее 215в.

но в конкретной задаче на строго поставленном
ТЗ в виде триггера - никаких проверок на несоответствие
220 и 0 я делать ни в коем случае не буду.

В этой задаче явно написано,

что переключаем напряжение.

Откуда Вы точно знаете,

какое значение у переменной?

Я выше уже написал, что

может влиять на переменную.

Если у переменной может быть

значение 220, то это уже явно

не один бит, поэтому надо

учитывать все возможности.

220 Вольт есть опасное напряжение,

поэтому если надеяться, что выключено,

когда на самом деле включено,

то могут быть жертвы.

Flector:
в условии задачи явно есть слово триггер.
триггеры — это устройства с двумя состояниями.

Сферическая лошадь в вакууме.

Напряжение плавает, потому что движение

электронов при нормальных условиях случайно.

Дребезг контактов, системные прерывания,

преобразование типов данных, многопоточность,

взаимодействие между процессами, бывают даже

глюки транслятора языка программирования.

И могут быть другие причины.

---------- Post added 14-03-2015 at 11:12 ----------

Дополнение о сферических лошадях.

https://ru.wikipedia.org/wiki/Ошибка_Pentium_FDIV

Ошибка Pentium FDIV — это ошибка в модуле операций с плавающей запятой в оригинальных процессорах Pentium, выпускавшихся фирмой Intel в 1994 году. Ошибка выражалась в том, что при проведении деления над числами с плавающей запятой при помощи команды процессора FDIV в некоторых случаях результат мог быть некорректным.

Данная ошибка была впервые обнаружена и опубликована профессором Линчбургского колледжа Томасом Найсли в октябре 1994 года[1].

Согласно заявлению Intel причиной проблемы послужили неточности в таблице поиска, используемой при проведении операции деления[2].

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

Стремление производителя утаить проблему и реакция на ее обнаружение вызвали недовольство потребителей и обширную критику в СМИ, в том числе жесткий репортаж CNN. В результате компания изменила позицию и объявила, что будет свободно обменивать дефектные процессоры всем желающим. Энди Гроув принес публичные извинения. История стоила Intel более половины прибыли за последний квартал 1994 г. — $475 млн[3].

Доверьяй, но проверьяй!

(C) Рональд Рейган

Всего: 5983