- 1
http://rosettacode.org/wiki/Category:Programming_Tasks
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+141
http://rosettacode.org/wiki/Category:Programming_Tasks
Сегодня это реально сразу куча.
+77
byte[] buffer = new byte[BUFFER_SIZE];
ReadState readState = ReadState.BOUNDARY;
InputStream input = request.getInputStream();
int read = input.read(buffer);
int pos = 0;
// This is a fail-safe to prevent infinite loops from occurring in some environments
int loopCounter = 20;
while (read > 0 && loopCounter > 0) {
for (int i = 0; i < read; i++) {
switch (readState) {
// Pos is calculated...
case BOUNDARY:
case HEADERS:
case DATA:
}
}
if (pos < read) {
// move the bytes that weren't read to the start of the buffer
int bytesNotRead = read - pos;
System.arraycopy(buffer, pos, buffer, 0, bytesNotRead);
read = input.read(buffer, bytesNotRead, buffer.length - bytesNotRead);
// Decrement loopCounter if no data was readable
if (read == 0) {
loopCounter--;
}
read += bytesNotRead;
} else {
read = input.read(buffer);
}
}
Кусок исходников из недров JBoss Seam(наткнулся профайлером).
Пацаны пофиксили багу с бесконечным циклом и 100 утилизацией CPU.
Весь класс:
https://www.java2s.com/Open-Source/Java/JBoss/jboss-seam-2.2.0/org/jboss/seam/web/MultipartRequestImpl.java.htm
Версия с бесконечным циклом:
http://www.docjar.com/html/api/org/jboss/seam/web/MultipartRequestImpl.java.html
+127
/* Групповые операции с обращениями */
public function issuegroupopsAction() {
$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
$operation = $this->_request->getPost('operation');
define('RTF_SYMBOL_PAGE_BREAK', '\page');
try {
// Валидация
if(!in_array($operation, array('print-letters', 'print-work-order'))) {
throw new Exception('Неверная операция');
}
$issue_numbers = explode(';', (string)$_POST['issues']);
if(!count($issue_numbers)) {
throw new Exception('Не выбрано ни одного обращения.');
}
// Вычитка указанных обращений
$filter = new Type_Issue_Filter(array('issue_number' => $issue_numbers));
$paginator = new Type_Paginator;
$paginator->items_per_page = 40;
$issues = services::Issue()->records($this->user->sessionId, $filter, array('executant', 'address'), 'number', $paginator);
if(!count($issues->items)) {
throw new Exception('Выбранные обращения не найдены.');
}
$templateMaker = new Prodom_Rtf_TemplateMaker;
$templatesDir = dirname(__FILE__).'/templates/';
$outputFiles = array();
// Вид операции с группой обращений
switch($operation) {
case 'print-letters': {
// Сформирвать письма
$templateMaker->readTemplatesFromRtfFile($templatesDir.'templates.rtf');
$outputFiles = array('executants_%u.rtf' => array('issue2', 'letter1'), 'declarant_%u.rtf' => array('letter2'));
break;
}
case 'print-work-order': {
// Печать заказ-нарядов
if(!is_null($this->user->organization->issue_form_template)) {
// Если для организации определен свой собственный шаблон
$templateMaker->readTemplatesFromRtfFile($templatesDir.$this->user->organization->issue_form_template);
} else {
// Если шаблон явно не определен
$templateMaker->readTemplatesFromRtfFile($templatesDir.'templates.rtf');
}
$outputFiles = array('issue_%u.rtf' => array('issue1'));
break;
}
}
$toworkIssueIds = array();
$outputs = array_fill_keys(array_keys($outputFiles), null);
// Перебор выбранных пользователем обращений
foreach($issues->items as $issue) {
// Переводим все новые обращения в статус "В работе"
$issue_new_statuses = array(ISSUE_STATUS_NEW, ISSUE_STATUS_CONFIRMED);
if(($operation == 'print-work-order') && in_array($issue->status_id, $issue_new_statuses) && ($issue->org_executor_id == $this->user->organization->id)) {
$toworkIssueIds[] = $issue->id;
}
// Подготовка полей обращения для печати на формах
$fields = $this->getIssuePrintFields($issue);
foreach($outputFiles as $fileName => $needTemplates) {
foreach($needTemplates as $template_code) {
$out = $templateMaker->getAppliedTemplate($template_code, $fields);
$outputs[$fileName] .= ($outputs[$fileName] ? RTF_SYMBOL_PAGE_BREAK : null) . $out;
}
}
}
if(count($toworkIssueIds)) {
$resp = services::Issue()->changeStatusMultiple($this->user->sessionId, $toworkIssueIds, ISSUE_STATUS_INWORK, null, null, null);
}
// Если на выходе только один файл, отправляем rtf
if(count($outputs) == 1) {
foreach($outputs as $fileName => $fileBody) {
// Генерация случайного имени файла
$fileName = str_replace('%u', substr(md5(implode('_', $issue_numbers)), 0, 7), $fileName);
// Вывод файла пользователю
header('Content-type: application/rtf');
header("Content-Disposition: attachment; filename={$fileName}");
echo $templateMaker->getHeader().$fileBody.$templateMaker->getFooter();
}
} else {
// Eсли на выходе больше одного файла, пакуем их архивом
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=issues.zip");
header("Content-Description: Files of an applicant");
// Создаем ZIP архив
$zip = new ZipFile();
foreach($outputs as $fileName => $fileBody) {
// Генерация случайного имени файла
$fileName = str_replace('%u', substr(md5(implode('_', $issue_numbers)), 0, 7), $fileName);
// Вывод файла пользователю в браузер
$fileBody = $templateMaker->getHeader().$fileBody.$templateMaker->getFooter();
$zip->addFile($fileBody, $fileName);
}
echo $zip->file();
}
}
catch(Exception $ex) {
die($ex->getMessage());
}
}
Функция распечатки документов с отчетами по выбранным обращениям
+68
@Override
public void execute() {
try {
Thread.sleep(1000L);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for (ClientListener listener : listeners) {
listener.disconnected(this);
}
}
+141
http://sqlserverplanet.com/troubleshooting/cannot-insert-explicit-value-for-identity-column-in-table-table-when-identity_insert-is-set-to-off
Последний комментарий
+115
try {
// Store settings in the database as a JSON string
machine.setSettings(CustomJacksonRepresentation.createCanonicalObjectMapper().writeValueAsString(
request.getSettings()));
} catch (final JsonMappingException e) {
// We obtained request by parsing JSON in the first place,
// no way it can fail to be serialized back o_O
throw new AssertionError(e);
} catch (final JsonGenerationException e) {
// See above
throw new AssertionError(e);
} catch (final IOException e) {
// Why does writeValueAsString throw IOException anyway? How CAN you fail to write to a String?
// Seriously, what were the writers of Jackson smoking that they exposed IOException in the API
// in a method specifically designed to serialize to String, just because the underlying implementation
// uses StringWriter (which doesn't really throw IOException anyway)?
// I mean, I understand if the string is too long to fit in memory, but that's an OutOfMemoryError
throw new AssertionError(e);
}
+106
if (curProperty[ele].ToString().ToLower() == "nan" || curProperty[ele] != m_MinimumDensity)
+142
if ($options->get('registrationSetup', 'requireDob')) {
// dob required
Без ДОБ-а не пущу.
+34
if (date('dmY', $lmtime) === date('dmY')) {
Нужно было узнать, не сегодняшний ли день в отметке $lmtime.
+127
<select name="animals">
<option value="1" addTags="<div class='kv'></div>">Медведь</option>
<option value="2" addTags="<input type='checkbox' />">Волк</option>
</select>
html в js - это прошлый век =)
http://www.xiper.net/collect/html-and-css-tricks/verstka-form/nice-select-jquery.html