Ознакомьтесь с нашей политикой обработки персональных данных

code monkey
URL
  • ↓
  • ↑
  • ⇑
 
15:53 

Загрузка контроллера динамически

Vi Veri Veniversum Vivus Vici
Понадобилось сие сделать в ExtJS 4. Совершенно неочевидно, что для этого есть getComponent.

Вот отличная ссылка

www.sencha.com/forum/showthread.php?132795-Dyna...


@темы: ExtJS 4

23:13 

Vi Veri Veniversum Vivus Vici

@темы: Code Monkey

12:12 

Бекап и восстановление Thundenbird под Ubuntu

Vi Veri Veniversum Vivus Vici
Нашел отличный пост: www.cyberciti.biz/faq/linux-backup-thunderbird-...

@темы: Thundenbird, Ubuntu

12:02 

Максимальная сумма элементов подмассива (javascript)

Vi Veri Veniversum Vivus Vici
  1. var a = [];
  2.  
  3. for (var i = 0; i < 10; a[i] = Math.round(Math.random() * 10), i++);
  4.  
  5. console && console.log(a);
  6.  
  7. function find(arr) {
  8. var currMin = Infinity;
  9. var currMinIndex = null;
  10. var maxDiff = -Infinity;
  11. var best = {};
  12. for (var i in arr) {
  13. var v = a[i];
  14. if (v < currMin) {
  15. currMin = v;
  16. currMinIndex = i;
  17. }
  18. if (v - currMin > maxDiff) {
  19. maxDiff = v - currMin;
  20. console && console.log('Now max diff from ' + v + ' and ' + currMin + ' is ' + maxDiff);
  21. best = {start: currMinIndex, stop: i, startValue : a[currMinIndex], stopValue : v};
  22. }
  23. }
  24. return best;
  25. }
  26.  
  27. var res = find(a);
  28.  
  29. for (var i in res) {
  30. console && console.log(i + ': ' + res[i]);
  31. }

@темы: JavaScript, Алгоритмы

14:45 

Вывод таблиц и имен полей в PostgreSQL

Vi Veri Veniversum Vivus Vici
Я использую PostgreSQL 9.1. В 9.0 и ниже в регулярках используйте вместо одного бекслеша два (\\)

  1. SELECT t.tablename, pa.attname
  2. FROM
  3. pg_tables t
  4. JOIN
  5. pg_type pt ON pt.typname = t.tablename
  6. JOIN
  7. pg_attribute pa ON pa.attrelid = pt.typrelid
  8. WHERE
  9. t.tablename NOT LIKE 'pg\_%'
  10. AND t.tablename NOT LIKE 'sql\_%'
  11. AND attname NOT IN ('cmin', 'cmax', 'ctid', 'oid', 'tableoid', 'xmin', 'xmax');

@темы: PostgreSQL, SQL

12:02 

RuntimeError: dictionary changed size during iteration

Vi Veri Veniversum Vivus Vici
Встречалась такая ошибка? Решение - использовать keys() у словаря.

Ссылки с подробными объяснениями:

drj11.wordpress.com/2009/04/02/python-iterating...

bayes.colorado.edu/PythonIdioms.html

@темы: Python

18:14 

Logitech USB Headset H530 и Fedora 15

Vi Veri Veniversum Vivus Vici
Пришлось пободаться - не работали. Затем в параметрах звука отключил "Internal Audio" на вкладке "Оборудование" (для этого нужно выделить и выбрать профиль - Off), а для наушников установил профиль Analog Stereo Output + Analog Mono Input

@темы: Fedora Core

12:42 

MySQL - Can't create table (errno: 121)

Vi Veri Veniversum Vivus Vici
Возникла такая ошибка, когда создаете таблицу? Смотрим:


Как же так? Ответ в этом посте: thenoyes.com/littlenoise/?p=81

Если вкратце, то имя связи по вторичному ключу, которое вы задавали ручками, уже существует.

@темы: MySQL

12:30 

Отключить проверку внешних ключей в MySQL

Vi Veri Veniversum Vivus Vici
SET foreign_key_checks = 0;

@темы: MySQL

12:22 

Как посмотреть таблицы, связанные с данной, в MySQL?

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;

Выполняются такие запросы очень медленно:


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)

@темы: MySQL

00:16 

Отличный блог

Vi Veri Veniversum Vivus Vici
И отличный кодер: blog.sigfpe.com/

11:11 

Best practices миграций в MySQL

Vi Veri Veniversum Vivus Vici
11:27 

Добавил в mysqldiff работу с вшнешними ключами

Vi Veri Veniversum Vivus Vici
Форк на гитхабе: github.com/GuyFawkes/mysqldiff

@темы: MySQL

16:41 

Загрузка всех детей в дерево ExtJS 4

Vi Veri Veniversum Vivus Vici
Секс с прелоадом. Нашли вот что: www.sencha.com/forum/showthread.php?149782-Tree...

Алсо, у нас не заработал "массив массивов", сделали просто return Ext.data.reader.Json.prototype.getResponseData.apply(this, arguments).root;

@темы: ExtJS 4

22:21 

:-(

Vi Veri Veniversum Vivus Vici
Все эти годы, что я случайно закрывал вкладки с заполненными формами/несохраненными пассажами текста/etc., я мог нажать Ctrl+Shift+T

12:11 

Подмодули в Zend Framework

Vi Veri Veniversum Vivus Vici
14:45 

Git Submodule

Vi Veri Veniversum Vivus Vici
Неплохая заметка на эту тему: chodex.ru/tag/git-submodule/

@темы: Git, Git submodule

21:51 

Установка дополнений гостевой ОС Ubuntu 11.10

Vi Veri Veniversum Vivus Vici
11:13 

vxs.so: undefined symbol: Perl_Gthr_key_ptr или ебля с Fedora 16

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 удалил) и все заработало.

@темы: Perl_Gthr_key_ptr, Perl, Fedora 16

11:47 

Динамически скрывать иконки в Ext.grid.column.Action

Vi Veri Veniversum Vivus Vici
Для этого пришлось разобраться с новой системой обращения к частям грида и воспользоваться непосредственно манипуляциями с DOM:

  1. Ext.create('Ext.data.Store', {
  2. storeId:'employeeStore',
  3. fields:['firstname', 'lastname', 'senority', 'dep', 'hired'],
  4. data:[
  5. {firstname:"Michael", lastname:"Scott"},
  6. {firstname:"Dwight", lastname:"Schrute"},
  7. {firstname:"Jim", lastname:"Halpert"},
  8. {firstname:"Kevin", lastname:"Malone"},
  9. {firstname:"Angela", lastname:"Martin"}
  10. ]
  11. });
  12.  
  13. var toggleIcons = function(grid, rowIndex, colIndex, firstAction) {
  14. var actions = { indexes: {show : 0, hide : 1}, acts: ['show', 'hide'] };
  15. var rec = grid.getStore().getAt(rowIndex);
  16. var col = grid.getHeaderCt().getHeaderAtIndex(colIndex);
  17. var el = grid.getCell(rec, col).child('div');
  18. var index = actions.indexes[firstAction];
  19. var a = actions.acts;
  20. el.child('img')[a[index]]().next('img')[a[1 - index]]();
  21. }
  22.  
  23. Ext.create('Ext.grid.Panel', {
  24. title: 'Action Column Demo',
  25. store: Ext.data.StoreManager.lookup('employeeStore'),
  26. columns: [
  27. {text: 'First Name', dataIndex:'firstname'},
  28. {text: 'Last Name', dataIndex:'lastname'},
  29. {
  30. xtype:'actioncolumn',
  31. width:50,
  32. items: [{
  33. icon: 'extjs/examples/shared/icons/fam/cog_edit.png', // Use a URL in the icon config
  34. tooltip: 'Edit',
  35. handler: function(grid, rowIndex, colIndex) {
  36. toggleIcons(grid, rowIndex, colIndex, 'hide');
  37. }
  38. },{
  39. icon: 'extjs/examples/restful/images/delete.png',
  40. tooltip: 'Delete',
  41. hidden: true,
  42. handler: function(grid, rowIndex, colIndex) {
  43. toggleIcons(grid, rowIndex, colIndex, 'show');
  44. }
  45. }]
  46. }
  47. ],
  48. width: 250,
  49. renderTo: Ext.getBody()
  50. });
  51.  


Это немного измененный пример из документации самого экста, куда я добавил свою функцию. Для полной визуальной корректности стоит задать для второй иконки класс iconCls, в котором для нее будет прописано что-то с visibility: hidden (именно так по умолчанию отрабатывает hide). Ну и да, чтобы не повторять аргументы в вызове toggleIcons, можно не описывать их в хендлере, делать [].slice.call(arguments, 0), добавлять в конец параметр действия и вызывать toggleIcons.apply(this, args);

@темы: ExtJS 4, JavaScript

Small Coder Blog

главная