Превышение максимального количества разрешенных динамических запросов
Превышение максимального количества разрешенных динамических запросов
Здравствуйте. Прошу помощи в следующей ситуации. Пишу программу в Delphi с использованием БД MySQL.
Обход ответа сервера (код 429, превышение количество запросов за единицу времени)
Делаю чекер задача которого банально в инди загружать страницу через get и проверять на наличие.
Превышение количества ПК над количеством лицензий
здравст. если купить лицензию любого антивируса скажем на 5ть машин и поставить скажем на 20.
Решение
Зачем два раза один и тот же Prepare выполняется, уме не приложу.
Для сравнения, попробовал отредактировать БД Navicat’ом.
Вот тут в логах сразу стало все четко. Нет никаких Prepare, Execute. Запрос обрабатывается сразу.
Осталось понять, как отключить все эти Prepare в Delphi.
Добавлено через 18 минут
Кажется, дошло, в чем ошибка.
У меня практически все запросы идут с параметрами, т.е. получаются как раз динамические запросы. Постараюсь строку запроса полностью сформировать у клиента (без участия переменных параметров) и на сервер отправить статический запрос. Думаю, должно помочь.
Добавлено через 5 часов 22 минуты
Ну, так и есть. В общем, рецепт выздоровления таков.
Если вы полный ламер и используете параметрические (читай, динамические) запросы вида
Перевожу: нельзя выполнить новый запрос, потому что превышено их допустимое количество.
А все потому, что каждый динамический запрос после его отправки кэшируется и остается в памяти. Эти запросы находятся в памяти, пока пользователь не разорвет соединение с базой данных.
Лично я решил не заморачиваться в хранимыми процедурами, тем более их применение в моем случае необоснованно, и собрал все запросы у клиента. Для вышеприведенного случая код будет такой:
Проблема с доступом к файлам (превышение количества символов в пути)
Имеется несколько компьютеров, на одном из них находится общая папка, которая раздаётся по сети.

В общем проблема вот в чем: Запрос прекрасно работает, но я его захотел сделать динамическим, что.
Обработка полей динамических запросов статического массива
13 Количество элементов файла и массива. integer word Структура записей. найти и вывести поля.
Плагин Floor Generator для 3ds Max – загрузка и установка
Наверное каждый из вас сталкивался с надобностью создать напольное покрытие для кухни, гостинной или зала. Использовать один и тот же ламинат или плитку для каждой 3D–сцены не выход, а покупать новые модели от проекта к проекту тоже затратно. В таком случае на помощь приходит замечательный плагин Floor Generator для 3ds Max, который мы упоминали в одной из наших статей “Лучшие плагины для моделирования и визуализации в 3ds Max«
Floor Generator способен воссоздавать очень качественные полы разного вида с соблюдением правильной геометрии и швов из заданных вами размеров, будь это плитка, ламинат или дерево. Результат радует своей реалистичностью, не уступая платным моделям с 3D–стоков.
Содержание
Пример созданного паркета в Floor Generator
Как загрузить Floor Generator
Как установить Floor Generator
А теперь быстро разберемся как установить плагин:
→ После окончания загрузки, у вас появится папка с одинаковыми файлами формата .dlm. Отличаются они только годом для вашей версии 3ds Max, что указано в их названии. Выберите подходящий вам вариант и скопируйте.
→ Найдите папку с предустановленным 3ds Max у вас на компьютере. В ней будет папка Plugins. Вставьте скопированный ранее файл Floor Generator в папку Plugins.
→ Запустите 3ds Max и создайте любой объект (например, Plane). Откройте вкладку с модификаторами и найдите Floor Generator. Если он применился без каких–либо ошибок, то вы успешно его установили.
Обзор возможностей плагина Floor Generator
Floor Pattern
Board Size
Если говорить простым языком, то этот раздел отвечает за размеры одного элемента (так называемой «доски») вашего напольного покрытия. Подробно рассмотрим каждый из них.
Max Length – настраиваемый параметр, отвечающий за максимальную длину планки.
Min Length – настраиваемый параметр, отвечающий за минимальную длину планки.
Spread – настраиваемый параметр, отвечающий за распределение размеров ваших планок. Например, если выставить низкое значение, то будет создано преимущественно большое количество длинных планок, а с высоким значением наоборот.
Max Width – настраиваемый параметр, отвечающий за максимальную ширину планки.
Min Width – настраиваемый параметр, отвечающий за минимальную ширину планки.
Spread – настраиваемый параметр, отвечающий за распределение размеров ваших планок. Например, если выставить низкое значение, то будет создано преимущественно большое количество длинных планок, а с высоким значением наоборот.
Grout Len – настраиваемый параметр, отвечающий за регулировку расстояния между планками в длину.
Grout Wid – настраиваемый параметр, отвечающий за регулировку расстояния между планками в ширину.
Min Offset % – настраиваемый параметр, отвечающий за минимальное смещение рядов ваших планок.
Max Offset % – настраиваемый параметр, отвечающий за максимальное смещение рядов ваших планок.
Активация Extrude H – дает возможность регулировать высоту вашего пола.
Активация Bevel H – дает возможность регулировать высоту фасок вашего пола, по аналогии с Extrude H.
Outline – настраиваемый параметр, отвечающий за срез фасок под определенным углом у ваших планок. По умолчанию этот параметр заблокирован так, чтобы создавать угол в 45 градусов.
Variation Per Board
Max Rotation – настраиваемый параметр, отвечающий за максимальное вращение планки вокруг своей оси. Чтобы в полной мере убедиться в работоспособности данного параметра и увидеть изменения нужно указать нужное вам значение в параметре Max Overlap в конце раздела.
Min Rotation – настраиваемый параметр, отвечающий за минимальное вращение планки вокруг своей оси.
Spread – настраиваемый параметр, отвечающий за распределение размеров ваших планок. Например, если выставить низкое значение, то будет создано преимущественно большое количество длинных планок, а с высоким значением наоборот.
Max Offset X – настраиваемый параметр, отвечающий за контроль максимального смещения по оси X.
Min Offset X – настраиваемый параметр, отвечающий за контроль минимального смещения по оси X.
Spread – делает все то же самое по аналогии с предыдущим разделом с таким же пунктом Spread.
Max Offset Y – настраиваемый параметр, отвечающий за контроль максимального смещения по оси Y.
Min Offset Y – настраиваемый параметр, отвечающий за контроль минимального смещения по оси Y.
Spread – делает все то же самое по аналогии с предыдущим разделом с таким же пунктом Spread.
Max Tilt – настраиваемый параметр, отвечающий за тот же принцип максимального смещения, как и Max Offset X, но только верхних частей ваших планок, создавая таким образом естественные неровности, что придает реалистичности.
Min Tilt – настраиваемый параметр, отвечающий за тот же принцип минимального смещения, как и Max Offset Y, но только верхних частей ваших планок, создавая таким образом естественные неровности, что придает реалистичности.
Spread – делает все то же самое по аналогии с предыдущим разделом с таким же пунктом Spread.
Max Overlap – тот самый параметр, от которого зависят все вышеперечисленное раздела Variation Per Board.
3DS MAX. помогите с проблемой!
Я не знаю как сформулировать свой вопрос. Вот скрин с проблемой: http://files.d-lan.dp.ua/download?file=74a1087153d26d438456110dcc315bc2#uploader
Раньше он так не делал, всё было нормально, работало. Теперь там пустота просто…
Уже ответил на вопрос по почте, здесь публикую на случай, если кто-то еще столкнется с чернотой или рабочим столом во вьюпортах 3ds Max.
Попробуйте переключиться на OpenGL или другой драйвер из списка в меню Customize — Preferences — Viewports — Choose Driver…
То же самое можно сделать из меню Пуск — Программы — Autodesk — Change Graphics Mode.
На форуме Autodesk есть обсуждение этой проблемы.
Здравствуйте, помогите, пожалуйста, не могу разобраться! Выбираю модификатор floor generator, а мне прыгает окно с input mesh warming: FloorGenerator requires a coplanar base object…как понять, что я не так сделала и почему модификатор не хочет работать нормально?
Катерина, не могу помочь — не работал с этим плагином.Могу только порекомендовать спросить у авторов плагина.
здравствуйте. модель ковра переведен в mesh, ковер при рендере черный. Да и если даже ковер вставляю модель с модификатором hair and fur, то ворс все равно черный ((( макс у меня 2014х64
Здравствуйте. Скиньте ссылку на файл сюда или на почту 3d@kleontev.ru, завтра посмотрю, что внутри.
Поменяйте материал ковра на VRayMtl, и все будет нормально — цвет визуализируется как положено.
Устранение ошибок при майнинге, связанных с неверной установкой или конфигурированием видеокарт
При настройке и эксплуатации оборудования для майнинга часто возникают различные ошибки.
В данной статье рассматриваются характерные ошибки, возникающие при майнинге при неверной сборке майнинг ферм или в связи с программными ошибками.
Аппаратные ошибки, приводящие к неверной работе или отсутствии видеокарт в диспетчере задач
На аппаратном уровне к ошибкам в определении видеокарт или к постоянному их вылету при работе приводят некоторые часто встречающиеся проблемы. К ним относятся:
Во всех случаях, связанных с поиском неисправностей в работе электро и радиоаппаратуры и вычислительной техники нужно помнить, что:
ОСНОВНЫМИ ПРИЧИНАМИ НЕИСПРАВНОСТЕЙ В ЛЮБЫХ ЭЛЕКТРИЧЕСКИХ УСТРОЙСТВАХ ЯВЛЯЮТСЯ НАЛИЧИЕ ЛИШНИХ ИЛИ ОТСУТСТВИЕ НУЖНЫХ КОНТАКТОВ.
Программные ошибки, связанные с видеокартами, приводящие к сбоям майнеров
При неверной настройке операционной системы, сбое в установке драйверов, неправильной конфигурации майнеров, избыточном разгоне возникают ошибки, в результате которых происходит сбой при запуске программы-майнера.
Ошибки, вызванные неправильной установкой драйверов
Как правило, в майнинг фермах с несколькими видеокартами возникают следующие ошибки, связанные с неправильной установкой драйверов:
Ошибка с кодом 43, как правило, возникает при установке новых драйверов в системе, что может сделать и сама система во время автоматической установки обновлений. Кроме того, драйвера могут слететь при сбоях в питании, появлении ошибок на носителе системы, воздействии вирусов и других проблемах.
После такого обновления может появиться ошибка 43, а также значительно упасть хешрейт видеокарт. Для видеокарт AMD после установки драйверов нужно применить AMD-Compute-Switcher, а для видеокарт Нвидиа включить P0 state согласно методике, описанной в статье «Оптимизация потребления видеокарт Nvidia при майнинге».
Если после применения патчера и мода (для Windows 7) и перезагрузки системы ошибка не исчезает, то возможно на видеокарте прошит неверный BIOS, произошел сбой при его записи, либо вышла из строя микросхема BIOS на видеокарте. Для устранения такой ошибки нужно:
При невозможности восстановить рабочее состояние видеокарты прошивкой верного Биоса или переключением переключателя BIOS на резерв нужно менять чип BIOS в сервис-центре, либо искать другую причину неполадок.
Ошибки в конфигурации майнера при указании видеокарт
Этот вид ошибок возникает в случае отсутствия или неправильного указания в пакетном файле для запуска майнинга видеокарт, которые должны осуществлять майнинг (как АМД, так и Nvidia).
Например, в программе claymore dual miner и других программах от этого программиста, иногда возникает ошибка NO AMD OPENCL found. Она появляется при запуске программы для майнинга и обозначает, что не найдено устройств, поддерживающих технологию OPENCL. В разных программах она может иметь различное написание, но ее суть сводится к невозможности найти подходящее для майнинга устройство. При отсутствии аппаратных ошибок и проблем, связанных с неверной установкой драйверов, неисправность нужно искать в конфигурации майнера.
Эта ошибка может возникать и в других программах, использующихся для майнинга. Например, в программе sgminer подобная ошибка называется clDevicesNum returned error, no GPUs usable. При запуске майнера появляется подобное сообщение:
[02:56:02] Started sgminer v0.1.1
[02:56:02] * using Jansson 2.11
[02:56:09] Specified platform that does not exist
[02:56:09] clDevicesNum returned error, no GPUs usable
[02:56:09] Command line options set a device that doesn’t exist
Еще раз повторимся, что если в диспетчере устройств нужные видеокарты отображены корректно и не имеют восклицательных знаков с кодами ошибки, то неправильно сконфигурирован BAT-файл. Это случается в системах с различными типами карт, установленными в системе (например, интегрированная видеокарта плюс видеокарты AMD или одновременное использование GPU от AMD и Nvidia и все три типа устройств вместе). Как правило, для устранения этой ошибки нужно либо правильно указать номера использующихся в майнере видеокарт, либо указать какую платформу (AMD или Nvidia) нужно использовать.
В sgminer (его различных версиях и подобных программах, например, cgminer) в смешанных системах может понадобиться указывать в командной строке параметр —gpu-platform 1 или 2.
Обычно, при отсутствии включенной внутренней видеокарты этот майнер работает без указания этого парметра, но в этом случае иногда может потребоваться использование команды —gpu-platform 0.
Другие ошибки, приводящие к сбоям в работе майнеров
Рассмотрим другие ошибки, которые иногда возникают при работе программ для майнинга:
ошибка WATCHDOG: GPU hangs in OpenCL call появляется при переразгоне видеокарт, некачественных райзерах, плохих (очень длинных) соединительных USB-кабелях. Не нужно выжимать из видеокарт все соки, увеличивая частоту памяти и видеоядра, так как простои, вызванные переразгоном, сведут на нет весь доход от такого майнинга. Понять то, где выставлены очень большие значения частоты поможет программа hwinfo, которая показывает ошибки по памяти для видеокарт AMD:
Как правило, при переразгоне по памяти вылетает одна из видеокарт, а при чрезмерном разгоне по ядру (или очень сильном даунвольтинге) компьютер полностью зависает;
Заключение
Майнинг требует наличия определенных знаний, связанных с эксплуатацией вычислительной техники и сетей связи. Это необходимо, потому что знание основ функционирования радиоаппаратуры и каналов связи дает возможность самостоятельно разобраться в причинах появления неполадок и понять, как их можно устранить наиболее рациональным способом.
Знание основ электротехнических цепей поможет избежать ошибок, связанных с навешиванием чрезмерной нагрузки на одну линию (например, более одной видеокарты на линию Molex), что часто приводит к подгоранию контактов или выходу из строя райзеров и видеокарт.
Понимание закона Ома поможет избежать проблем, связанных с использованием переходников с разъема питания SATA на райзера, которое гарантированно приведет к прогоранию контактов и связанным с этим проблемам.
Чем больше человек знает, тем больше он понимает, что знает очень мало или не знает ничего… Процесс поиска истины благотворно воздействует на человеческую карму и дает жизненный опыт, для обретения которого, возможно, мы и живем…
cs61a-lab04
Q1: List Indexing
For each of the following lists, what is the list indexing expression that evaluates to 7? For example, if x = [7], then the answer would be x[0]. You can use the interpreter or Python Tutor to experiment with your answers.
What would Python display? If you get stuck, try it out in the Python interpreter!
Q2: WWPD: Lists?
What would Python display? Try to figure it out before you type it into the interpreter!
Q3: If This Not That
Define if_this_not_that, which takes a list of integers i_list and an integer this. For each element in i_list, if the element is larger than this, then print the element. Otherwise, print “that”.
City Data Abstraction
Say we have an abstract data type for cities. A city has a name, a latitude coordinate, and a longitude coordinate.
Our ADT has one constructor:
make_city(name, lat, lon) : Creates a city object with the given name, latitude, and longitude.
We also have the following selectors in order to get the information for each city:
get_name(city) : Returns the city’s name
get_lat(city) : Returns the city’s latitude
get_lon(city) : Returns the city’s longitude
Here is how we would use the constructor and selectors to create cities and extract their information:
Q4: Distance
Q5: Closer city
You may only use the selectors and constructors introduced above and the distance function you just defined for this question.
Hint: How can use your distance function to find the distance between the given location and each of the given cities?
Q6: Don’t violate the abstraction barrier!
When writing functions that use an ADT, we should use the constructor(s) and selector(s) whenever possible instead of assuming the ADT’s implementation. Relying on a data abstraction’s underlying implementation is known as violating the abstraction barrier, and we never want to do this!
It’s possible that you passed the doctests for distance and closer_city even if you violated the abstraction barrier. To check whether or not you did so, uncomment the following lines in your lab04.py file:
These statements change the implementation of the city ADT. The nature of the abstraction barrier guarantees that changing the implementation of an ADT shouldn’t affect the functionality of any programs that use that ADT, as long as the constructors and selectors were used properly.
Now, rerun your tests for distance and closer_city without changing any of your code:
If you’ve followed the rules and used the constructor and selectors when you should’ve, the doctests should still pass!
If you passed the Ok tests before uncommenting those lines but not afterward, the fix is simple! Just replace any code that violates the abstraction barrier, i.e. creating a city with a new list object or indexing into a city, with the appropriate constructor or selector.
Make sure that your functions pass the tests with both the first and the second implementations of the City ADT and that you understand why they should work for both before moving on.
Optional Questions
All these questions can be found in lab04_extra.py
Q7: Flatten
Write a function flatten that takes a (possibly deep) list and “flattens” it. For example:
Hint: you can check if something is a list by using the built-in type function. For example,
I think the question may be thought as only having 3 conditions. First, the lst is empty list, we can only return []. Second, the first element in lst is a list, then we need call flatten recursively to its first element and the rest of the list. Last, the first element in lst is not a list(aka. one item), then we simply concat the first element and the flattened rest of the list.
Q8: Merge
This main idea of recursion is like the flatten function. There’re basiclly 4 conditions(while the solution can be shrinked to 3 conditions in the PDF solution). First, lst1 is empty list, then we return lst2. Second, lst2 is empty, then we return lst1. The rest of recursion is comparing the first element of the lst1 and lst2, then according to the result, we recursively call the merge function.
Connect N
We can generalize this game so that the goal is to connect N pieces instead of just 4. In this section, we will be implementing a command line version of Connect N!
Building Connect N
Let’s build the combat field for players ‘X’ and ‘O’.
In this lab, we will represent the playing board as a list of lists. We call such a list two-dimensional because we can visualize it as a rectangle. For instance, this list:
[[‘-‘, ‘-‘, ‘-‘, ‘-‘], [‘O’, ‘O’, ‘O’, ‘X’], [‘X’, ‘X’, ‘X’, ‘O’]]
would represent the following board:
What does the number of nested lists represent? What about the number of elements in each nested list? When you have made up your mind, you are ready to build the board!
Notice that just like lists are zero-indexed, our board is zero-indexed. This means that the columns and rows in the above board would be numbered like this:
Q9: Creating an empty board
This function should consist of a one-line return statement.
Hint: You can create a list in one line using a list comprehension.
This function should consist of a one-line return statement.
Q10: Updating the board
This function should consist of a one-line return statement.
Q11: Manipulating pieces
Note: Because get_piece is a selector, it is allowed to break through the data abstraction barrier. This means that it is aware that the board is implemented as a list and can use list operations to update it. This allows us to abstract away the inner implementation for all of the other functions that both the programmer and other users will use.
This function should consist of a one-line return statement.
Assume that the given column is on the board. Remember that you can get pieces in the board by using get_piece. The argument max_rows may be helpful in determining which rows you should check for an empty slot to put the piece in.
Hint: You will probably need to use the replace_elem function you wrote above twice to create the new board.
You are now crossing the abstraction barrier.
You have now implemented the constructor and selectors as well as ways to modify the attributes of your abstract data type, the board. From now on, you should never need to treat the board as if it were a list. Instead, trust your abstraction barrier and use the functions you have written so far.
Q12: Making a move
Let’s first write a function for players to make a move in the game. This is different from the put_piece function above in that put_piece assumes that the player gives a valid column number. make_move should only place the piece on the board if the given column is actually on the board. It returns a 2-element tuple (row index, board).
The arguments max_rows and max_cols describe the dimensions of the board and may be useful in determining whether or not a move is valid.
Q13: Printing and viewing the board
Wouldn’t it be great if we could actually see the board and the pieces on it? Let’s now write a function to help us do that.
The function print_board takes in a board (as defined by our abstraction) and the dimensions of the board, and it prints out the current state of the board.
Remember that we’re still on the other side of the abstraction barrier, and you must implement this function as if we didn’t know the board is a list of lists. This is called respecting the data abstraction barrier. Specifically, to get information about board, you should use the selectors you’ve implemented instead of indexing into it.
Hint: You might find that you’re failing doctests that seem to match your output. Chances are that you have an extra space character at the end of your rows in your board. A function that might come in handy is strip(), which removes leading and trailing whitespace from a string. For example:
Q14: Checking for victory
Fun, right? At long as you don’t care about winning… The last thing we need for our Connect N game to be fully functioning is the ability to detect a win.
First, let’s implement two helper functions check_win_row and check_win_col that check for horizontal and vertical wins for the given player.
Since we check for wins after each turn, and only the player who made the most recent move can have a win, check_win_row and check_win_col should only check for a win for the player that is passed as an argument. Also remember that num_connect tells you how many adjacent pieces are needed for a win. The arguments max_rows and max_cols describe the dimensions of the game board.














