четверг, 26 января 2012
Vi Veri Veniversum Vivus Vici
среда, 25 января 2012
Vi Veri Veniversum Vivus Vici
Осторожно, быдлокод! Я не перловик все же.
Данный пример отсортирует те поля, в которых присутствует подстрока "TEXT", и засунет их в конец массива, а между полями обоих групп (без подстроки с подстрокой) отсортирует по порядку, указанному в хеше $order.
#!/usr/bin/perl -i use warnings; use strict; my $fields; my $order; $fields->{'partnumber'} = 'TEXT'; $fields->{'date_add'} = 'lol'; $fields->{'id'} = 'huj'; $fields->{'id1c'} = 'TEXT'; $fields->{'md5'} = 'TEZA'; $order->{'md5'} = 3; $order->{'id'} = 1; $order->{'date_add'} = 5; $order->{'partnumber'} = 2; $order->{'id1c'} = 4; my @keys = sort { ($fields->{$a}=~/s*TEXTs*/is) cmp ($fields->{$b}=~/s*TEXTs*/is) || $order->{$a} cmp $order->{$b} } keys %$fields; for my $key (@keys) { print "Key $key; Content: $fields->{$key}; Order: $order->{$key}n"; }
Данный пример отсортирует те поля, в которых присутствует подстрока "TEXT", и засунет их в конец массива, а между полями обоих групп (без подстроки с подстрокой) отсортирует по порядку, указанному в хеше $order.
среда, 18 января 2012
Vi Veri Veniversum Vivus Vici
Как часто это бесит в Git!
Заходим в нужную папку и выполняем:
Вместо .css, конечно, можно поставить любую маску. Ну и да, утилиту dos2unix надо вначале поставить.
По мотивам forrst.com/posts/Find_DOS_CRLF_files_and_conver...
Заходим в нужную папку и выполняем:
$ find . -type f -iname "*.css" -exec dos2unix "{}" +; dos2unix: converting file ./docblox/syntax_highlighter/tests/js/qunit.css to Unix format ... dos2unix: converting file ./docblox/syntax_highlighter/styles/shCoreDefault.css to Unix format ... dos2unix: converting file ./docblox/syntax_highlighter/styles/shCoreDjango.css to Unix format ... dos2unix: converting file ./docblox/syntax_highlighter/styles/shThemeDjango.css to Unix format ... dos2unix: converting file ./docblox/syntax_highlighter/styles/shThemeMDUltra.css to Unix format ... dos2unix: converting file ./docblox/syntax_highlighter/styles/shCoreRDark.css to Unix format ... dos2unix: converting file ./docblox/syntax_highlighter/styles/shCoreEclipse.css to Unix format ... dos2unix: converting file ./docblox/syntax_highlighter/styles/shCoreEmacs.css to Unix format ... dos2unix: converting file ./docblox/syntax_highlighter/styles/shThemeDefault.css to Unix format ... dos2unix: converting file ./docblox/syntax_highlighter/styles/shThemeFadeToGrey.css to Unix format ... dos2unix: converting file ./docblox/syntax_highlighter/styles/shThemeRDark.css to Unix format ... dos2unix: converting file ./docblox/syntax_highlighter/styles/shCoreMidnight.css to Unix format ... dos2unix: converting file ./docblox/syntax_highlighter/styles/shThemeEmacs.css to Unix format ... dos2unix: converting file ./docblox/syntax_highlighter/styles/shThemeWordpress.css to Unix format ... dos2unix: converting file ./docblox/syntax_highlighter/styles/shThemeMidnight.css to Unix format ... dos2unix: converting file ./docblox/syntax_highlighter/styles/shCoreFadeToGrey.css to Unix format ... dos2unix: converting file ./docblox/syntax_highlighter/styles/shCoreMDUltra.css to Unix format ... dos2unix: converting file ./docblox/syntax_highlighter/styles/shThemeEclipse.css to Unix format ... dos2unix: converting file ./docblox/syntax_highlighter/styles/shCore.css to Unix format ... dos2unix: converting file ./docblox/css/black-tie/jquery-ui-1.8.2.custom.css to Unix format ... dos2unix: converting file ./docblox/css/navigation.css to Unix format ... dos2unix: converting file ./docblox/css/jquery-ui.css to Unix format ... dos2unix: converting file ./docblox/css/default.css to Unix format ... dos2unix: converting file ./docblox/css/docblox/jquery-ui-1.8.16.custom.css to Unix format ... dos2unix: converting file ./docblox/css/api-content.css to Unix format ... dos2unix: converting file ./docblox/css/jquery.treeview.css to Unix format ... dos2unix: converting file ./docblox/css/sen.full.min.css to Unix format ... dos2unix: converting file ./docblox/css/theme.css to Unix format ...
Вместо .css, конечно, можно поставить любую маску. Ну и да, утилиту dos2unix надо вначале поставить.
По мотивам forrst.com/posts/Find_DOS_CRLF_files_and_conver...
пятница, 06 января 2012
Vi Veri Veniversum Vivus Vici
Почему-то у многих возникает вопрос, как просмотреть, чем отличается файл, который пришел после svn up.
понедельник, 26 декабря 2011
Vi Veri Veniversum Vivus Vici
Если внезапно понадобилось это сделать именно в конструкторе, то делаем так:
config - параметр функции constructor, в конце не забываем делать this.callParents(arguments);
Но все же правильно сделать это в initComponent.
config - параметр функции constructor, в конце не забываем делать this.callParents(arguments);
Но все же правильно сделать это в initComponent.
пятница, 16 декабря 2011
17:05
Доступ к записи ограничен
Vi Veri Veniversum Vivus Vici
Закрытая запись, не предназначенная для публичного просмотра
среда, 14 декабря 2011
Vi Veri Veniversum Vivus Vici
Для этого пришлось разобраться с новой системой обращения к частям грида и воспользоваться непосредственно манипуляциями с DOM:
Это немного измененный пример из документации самого экста, куда я добавил свою функцию. Для полной визуальной корректности стоит задать для второй иконки класс iconCls, в котором для нее будет прописано что-то с visibility: hidden (именно так по умолчанию отрабатывает hide). Ну и да, чтобы не повторять аргументы в вызове toggleIcons, можно не описывать их в хендлере, делать [].slice.call(arguments, 0), добавлять в конец параметр действия и вызывать toggleIcons.apply(this, args);
Ext.create('Ext.data.Store', { storeId:'employeeStore', fields:['firstname', 'lastname', 'senority', 'dep', 'hired'], data:[ {firstname:"Michael", lastname:"Scott"}, {firstname:"Dwight", lastname:"Schrute"}, {firstname:"Jim", lastname:"Halpert"}, {firstname:"Kevin", lastname:"Malone"}, {firstname:"Angela", lastname:"Martin"} ] }); var toggleIcons = function(grid, rowIndex, colIndex, firstAction) { var actions = { indexes: {show : 0, hide : 1}, acts: ['show', 'hide'] }; var rec = grid.getStore().getAt(rowIndex); var col = grid.getHeaderCt().getHeaderAtIndex(colIndex); var el = grid.getCell(rec, col).child('div'); var index = actions.indexes[firstAction]; var a = actions.acts; el.child('img')[a[index]]().next('img')[a[1 - index]](); } Ext.create('Ext.grid.Panel', { title: 'Action Column Demo', store: Ext.data.StoreManager.lookup('employeeStore'), columns: [ {text: 'First Name', dataIndex:'firstname'}, {text: 'Last Name', dataIndex:'lastname'}, { xtype:'actioncolumn', width:50, items: [{ icon: 'extjs/examples/shared/icons/fam/cog_edit.png', // Use a URL in the icon config tooltip: 'Edit', handler: function(grid, rowIndex, colIndex) { toggleIcons(grid, rowIndex, colIndex, 'hide'); } },{ icon: 'extjs/examples/restful/images/delete.png', tooltip: 'Delete', hidden: true, handler: function(grid, rowIndex, colIndex) { toggleIcons(grid, rowIndex, colIndex, 'show'); } }] } ], width: 250, renderTo: Ext.getBody() });
Это немного измененный пример из документации самого экста, куда я добавил свою функцию. Для полной визуальной корректности стоит задать для второй иконки класс iconCls, в котором для нее будет прописано что-то с visibility: hidden (именно так по умолчанию отрабатывает hide). Ну и да, чтобы не повторять аргументы в вызове toggleIcons, можно не описывать их в хендлере, делать [].slice.call(arguments, 0), добавлять в конец параметр действия и вызывать toggleIcons.apply(this, args);
вторник, 06 декабря 2011
Vi Veri Veniversum Vivus Vici
Обновив в пятницу федору с 15-й версии, я, придя на работу в понедельник, не ждал беды. Дело в том, что я разрабатываю форк mysqldiff'а (github.com/GuyFawkes/mysqldiff), и, внеся очередные изменения, решил выполнить ./perl_install.sh
На что оно ответило мне вот в такой форме:
Я попробовал все:
(ебаный downgrade не может в зависимости), но смог откатиться только до 5.14.1 с 5.14.2, поскольку более ранних перлов для 16-й федоры не существует в принципе.
Попробовал пляски с переустановкой перла, удалением и инсталлом Module::Build, но все было напрасно.
И тут, спасибо Косте, его осенило:
Команда выполнилась без ошибок.
Ну, затем в /etc/profile.d создал файлик с этой командой, установил mysql, потертый к хуям во время реинсталлов перла (сколько же всего он тянет, даже nginx удалил) и все заработало.
На что оно ответило мне вот в такой форме:
Я попробовал все:
(ебаный downgrade не может в зависимости), но смог откатиться только до 5.14.1 с 5.14.2, поскольку более ранних перлов для 16-й федоры не существует в принципе.
Попробовал пляски с переустановкой перла, удалением и инсталлом Module::Build, но все было напрасно.
И тут, спасибо Косте, его осенило:
Команда выполнилась без ошибок.
Ну, затем в /etc/profile.d создал файлик с этой командой, установил mysql, потертый к хуям во время реинсталлов перла (сколько же всего он тянет, даже nginx удалил) и все заработало.
понедельник, 05 декабря 2011
Vi Veri Veniversum Vivus Vici
пятница, 25 ноября 2011
Vi Veri Veniversum Vivus Vici
Неплохая заметка на эту тему: chodex.ru/tag/git-submodule/
четверг, 24 ноября 2011
Vi Veri Veniversum Vivus Vici
четверг, 10 ноября 2011
Vi Veri Veniversum Vivus Vici
Все эти годы, что я случайно закрывал вкладки с заполненными формами/несохраненными пассажами текста/etc., я мог нажать Ctrl+Shift+T
среда, 09 ноября 2011
Vi Veri Veniversum Vivus Vici
Секс с прелоадом. Нашли вот что: www.sencha.com/forum/showthread.php?149782-Tree...
Алсо, у нас не заработал "массив массивов", сделали просто return Ext.data.reader.Json.prototype.getResponseData.apply(this, arguments).root;
Алсо, у нас не заработал "массив массивов", сделали просто return Ext.data.reader.Json.prototype.getResponseData.apply(this, arguments).root;
Vi Veri Veniversum Vivus Vici
Форк на гитхабе: github.com/GuyFawkes/mysqldiff
понедельник, 07 ноября 2011
Vi Veri Veniversum Vivus Vici
Vi Veri Veniversum Vivus Vici
И отличный кодер: blog.sigfpe.com/
вторник, 01 ноября 2011
Vi Veri Veniversum Vivus Vici
Нечто вроде такого запроса:
SELECT table_name, column_name, referenced_table_name, referenced_column_name, constraint_name FROM `information_schema`.`KEY_COLUMN_USAGE`
where table_schema='schematest' and (referenced_table_name = 'sotm_product' or table_name = 'sotm_product') and referenced_table_name is not null;
Выполняются такие запросы очень медленно:
SELECT table_name, column_name, referenced_table_name, referenced_column_name, constraint_name FROM `information_schema`.`KEY_COLUMN_USAGE`
where table_schema='schematest' and (referenced_table_name = 'sotm_product' or table_name = 'sotm_product') and referenced_table_name is not null;
Выполняются такие запросы очень медленно:
mysql> explain SELECT table_name, column_name, referenced_table_name, referenced_column_name, constraint_name FROM `information_schema`.`KEY_COLUMN_USAGE`
where table_schema='schematest' and (referenced_table_name = 'sotm_product' or table_name = 'sotm_product') and referenced_table_name is not null;
+----+-------------+------------------+------+---------------+--------------+---------+------+------+--------------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+------------------+------+---------------+--------------+---------+------+------+--------------------------------------------------+
| 1 | SIMPLE | KEY_COLUMN_USAGE | ALL | NULL | TABLE_SCHEMA | NULL | NULL | NULL | Using where; Open_full_table; Scanned 1 database |
+----+-------------+------------------+------+---------------+--------------+---------+------+------+--------------------------------------------------+
1 row in set (0.04 sec)
пятница, 28 октября 2011
Vi Veri Veniversum Vivus Vici
SET foreign_key_checks = 0;
среда, 26 октября 2011
Vi Veri Veniversum Vivus Vici
Возникла такая ошибка, когда создаете таблицу? Смотрим:
Как же так? Ответ в этом посте: thenoyes.com/littlenoise/?p=81
Если вкратце, то имя связи по вторичному ключу, которое вы задавали ручками, уже существует.
Как же так? Ответ в этом посте: thenoyes.com/littlenoise/?p=81
Если вкратце, то имя связи по вторичному ключу, которое вы задавали ручками, уже существует.
понедельник, 17 октября 2011
Vi Veri Veniversum Vivus Vici
Пришлось пободаться - не работали. Затем в параметрах звука отключил "Internal Audio" на вкладке "Оборудование" (для этого нужно выделить и выбрать профиль - Off), а для наушников установил профиль Analog Stereo Output + Analog Mono Input