АРХИВ ЗА АВГУСТ 2011
АВГУСТ 26, 2011

endomondo logo Спорт, GPS и Endomondo news

Hola.

Dudekos! Как делишки?

Любите заниматься спортом? Тогда цените Endomondo спортивную социальную сеть!

Можно трекать время, дистанцию, скорость и конечно же маршрут по GPS на вашем андроиде, ифоне, или другом телефоне.

Так же можно френдится, искать маршруты, итд итд, так что это качество соц сетка!

Мой ендомондо профиль.

АВГУСТ 19, 2011

oracle hate sux Grails/Java   Insert LARGE CLOB into Oracle 9i %d1%82%d0%b5%d1%85%d0%bd%d0%be%d0%bb%d0%be%d0%b3%d0%b8%d0%b8

Hi.

Ох уж этот оракл, юзабильность это не о нем.

На этот раз проблема с Oracle 9i драйвером для Java. Возникла проблема сохранения CLOB / BLOB данных в базу, используя драйвер для Oracle 9i. На 10g все вроде как даже работает..

Так вот когда пытаешься работать с CLOB / BLOB, то возникают различные ексепшены типа

  • java.sql.SQLException: Data size bigger than max size for this type: 50584
  • java.sql.SQLException: operation not allowed: streams type cannot be used in batching
Аха, можете попробовать, ни для какого типа данных у меня не получилось сохранить большой объект простым способом. А я пробовал много чего: CLOB, BLOB, LONG, LONG RAW. Но фига — больше 4-50kb не сохраняет.
В итоге пришел к изврашенному решению описанному где то в потайных документациях оракла. Решение использует Java JDBC для сохранения модели если это оракл драйвер версии 9. Для других баз и других версий оракла будет использоваться стандартное сохранение доменного класса Grails.
Моделька Grails
package my.com
  1.  
  2. class MyDomain {
  3.  
  4.  String bigData
  5.  
  6.  static constraints = {
  7.   bigData(maxSize: 1024 * 1024) // 1 MB
  8.  }
  9.  
  10.  static mapping = {
  11.   bigData type:"text" // this will create CLOB data type column
  12.  }
  13. }
Методы сервиса для сохранения большого CLOB’а
def isOracle9Driver = {
  1.   boolean isOracle9 = false
  2.  
  3.   try {
  4.    Connection conn = sessionFactory.getCurrentSession().connection()
  5.    DatabaseMetaData dbmd = conn.getMetaData()
  6.  
  7.    if (dbmd != null) {
  8.     String dbName = dbmd.getDatabaseProductName()
  9.     String dbDriverVer = dbmd.getDriverVersion()
  10.  
  11.     if ("Oracle".equals(dbName) && (dbDriverVer != null && dbDriverVer.startsWith("9."))) {
  12.      isOracle9 = true
  13.     }
  14.    }
  15.   } catch (Exception e) {
  16.    log.warn "Error getting DB Driver version — " + e.getMessage()
  17.    e.printStackTrace()
  18.   }
  19.  
  20.   return isOracle9
  21.  }
  22.  
  23.  def saveMyDomain(def bigData) {
  24.  
  25.   // RAW SQL USING JDBC FOR Oracle 9i DRIVER
  26.   if (isOracle9Driver()) {
  27.  
  28.    Connection conn = sessionFactory.getCurrentSession().connection()
  29.    PreparedStatement stmt
  30.    CallableStatement callableStmt
  31.  
  32.    try {
  33.  
  34.     //
  35.     // Insert new entry with empty clob
  36.     String sql = "BEGIN INSERT INTO my_domain (id,version,big_data) values (HIBERNATE_SEQUENCE.NEXTVAL,1,empty_clob()) RETURNING id INTO ?; END;"
  37.     callableStmt = conn.prepareCall(sql)
  38.     callableStmt.registerOutParameter(1, Types.INTEGER);
  39.     callableStmt.executeUpdate()
  40.  
  41.     long newId = callableStmt.getLong(1)
  42.     if (newId < 0) {
  43.      throw new IllegalStateException("Cannot get autogenerated ID of my_domain: got id=" + newId)
  44.     }
  45.     callableStmt.close()
  46.  
  47.     //
  48.     // Select for update
  49.     sql = "SELECT big_data FROM my_domain WHERE id=? FOR UPDATE"
  50.     stmt = conn.prepareStatement(sql)
  51.     stmt.setLong(1, newId)
  52.  
  53.     ResultSet rss = stmt.executeQuery()
  54.     if (!rss.next()){
  55.      throw new IllegalStateException("Cannot get result for 'select for update' of my_domain")
  56.     }
  57.  
  58.     //
  59.     // Update create entry with clob data
  60.     CLOB clob = (CLOB) rss.getClob("big_data")
  61.     clob.putString(1, bigData)
  62.  
  63.     sql = "UPDATE my_domain SET big_data=? WHERE id=?"
  64.     stmt = conn.prepareStatement(sql)
  65.     stmt.setClob(1, clob)
  66.     stmt.setLong(2, newId)
  67.     stmt.executeUpdate()
  68.     stmt.close()
  69.  
  70.     conn.commit()
  71.  
  72.     } catch (Exception e) {
  73.      log.error "Cannot save my_domain — " + e.getMessage()
  74.      e.printStackTrace()
  75.      conn.rollback()
  76.     } finally {
  77.      if (callableStmt != null) callableStmt.close()
  78.      if (stmt != null) stmt.close()
  79.     }
  80.   } else {
  81.    // DOMAIN CLASS SAVE
  82.    new MyDomain(
  83.      bigData: bigData
  84.     ).save(flush:true)
  85.   }
  86.  }
АВГУСТ 17, 2011

work with me Работка нужна кому? Питер, мобайл дев %d1%82%d0%b5%d1%85%d0%bd%d0%be%d0%bb%d0%be%d0%b3%d0%b8%d0%b8

Hi.

Приветик дудекос.

Кто хочет поработать со мной ну и ваобще с крутанскими чувачками, пока что удаленно, а вскоре в питерском офисе?

Нужны сотоны по:

  • Java/Android
  • Obj-C/C++/iPhone
  • Java/JEE/Groovy/Grails; SQL (Oracle, MySQL)
К кому обращаться:
  • Ну если интересно пишите мне icon smile Работка нужна кому? Питер, мобайл дев %d1%82%d0%b5%d1%85%d0%bd%d0%be%d0%bb%d0%be%d0%b3%d0%b8%d0%b8
  • Или сразу Саньку заливайте резюмку на godexsoft [at] gmail [dot] com.
PS Не забудьте — сегодня El Classico в час ночи по Москве! Смотреть обязатеельно! Первый матч 2-2, хотя Реал выглядил намного сильнее!
АВГУСТ 16, 2011

Хаи!

Нормик поездили покатались потусили и параллельно поработали.

Немножечко low-res фотографий прикрепляю ниже, совсем чуть чуть, не обработанных, я их вообще никогда не обрабатываю.

Природа

Разводик мостика в питере, а под ним плавают лодочки и кораблики небольшие.

nrz  mg 6231 Luki trip news

Таня чо то фоткает в поле по пути в Луки

nrz img 0133 Luki trip news

Лодочка на дачке

nrz img 5577 Luki trip news

Купания в озере

nrz img 5627 Luki trip news

По пути в Луки поле с хренями растущими

nrz img 6305 Luki trip news

Просто дорожка, кстати не плохая, даже можно ездить по ней

nrz img 6323 Luki trip news

Чтобы можно было покушать ночью на улочке нужно поддерживать тепло

nrz img 6639 Luki trip news

Атака тумана вечерком по дороге назад

nrz img 6811 Luki trip news

Причем дорогу ваобще было плохо видно километров 100

nrz img 6821 Luki trip news

Кошаки

Они спали пока мы работали

nrz img 6219 Luki trip news

Ходят всегда вместе

nrz img 6328 Luki trip news

И сторожат у забора тоже вместе

nrz img 6802 Luki trip news

Человеки

Танино переносное рабочее местечко

nrz img 0138 Luki trip news

Хорошо писать в травку

nrz img 5496 Luki trip news

Парковка на обочине

nrz img 5506 Luki trip news

Этим мы питались

nrz img 6189 Luki trip news

Малые играют в твистер

nrz img 6477 Luki trip news

Мортал Комбат 9 бэтл

nrz img 6568 Luki trip news

Идем запускать воздушного змея

nrz img 6713 Luki trip news

Маша летает

nrz img 6745 Luki trip news

Наконец то я катаюсь на велике!

nrz img 6759 Luki trip news

Малой тоже летает!

nrz img 6768 Luki trip news

АВГУСТ 12, 2011

Hi.

Бабатили к Mortal Kombat 9 (PS3).

Baraka
Forward, Back, Forward, Circle in jumping distance

Cyber Sub-Zero
Down, Back, Forward, R2 in jumping distance

Cyrax
Down, Forward, Back, Triangle in jumping distance

Ermac
Down, Down, Back, Down, Triangle in jumping distance

Jade
Down, Down, Forward, Down, Circle in jumping distance

Jax
Down, Down, Down, X in jumping distance

Johnny Cage
Forward, Back, Forward, Circle in jumping distance

Kabal
Forward, Down, Back, X in jumping distance

Kano
Forward, Forward, Down, Down, X in jumping distance

Kenshi
Down, Back, Down, Square in jumping distance

Kitana
Forward, Down, Forward, Circle in jumping distance

Kratos
Down, Forward, Back, Triangle in jumping distance

Kung Lao
Down, Forward, Down, Triangle in jumping distance

Liu Kang
Down, Down, Down, Circle in jumping distance

Mileena
Down, Down, Forward, Back, Triangle in jumping distance

Nightwolf
Forward, Back, Forward, Back, Square in jumping distance

Noob Saibot
Forward, Up, Forward, Square in jumping distance

Quan Chi
Forward, Down, Back, Triangle in jumping distance

Raiden
Down, Back, Down, Circle in jumping distance

Rain
Back, Down, Forward, Square in full screen distance

Reptile
Back, Forward, Back, Down, X in jumping distance

Scorpion
Down, Back, Forward, Down, Triangle in jumping distance

Sektor
Back, Down, Down, Down, Circle in jumping distance

Shang Tsung
Down, Back, Down, X in jumping distance

Sheeva
Down, Down, Down, Back, Circle in jumping distance

Sindel
Down, Down, Down, Up in jumping distance

Skarlet
Down, Back, Down, Forward, Triangle in jumping distance

Smoke
Down, Back, Down, Forward, Down in jumping distance

Sonya Blade
Down, Down, Forward, X in jumping distance

Stryker
Down, Forward, Down, Back, Triangle in jumping distance

Sub-Zero
Down, Back, Down, Circle in jumping distance

АВГУСТ 12, 2011

Hi.

Коды к Mortal Kombat 9 (ps3).

  • Armless Kombat 911-911
  • Blocking Disabled 020-020
  • Breakers Disabled 090-090
  • Dark Kombat 022-022
  • Double Dash 391-193
  • Dream Kombat 222-555
  • Enhance Moves Disabled 051-150
  • Explosive Kombat 227-227
  • Foreground Objects Disabled 001-001
  • Headless Kombat 808-808
  • Health Recovery 012-012
  • Hyper Fighting 091-091
  • Invisible Kombat 770-770
  • Jumping Disabled 831-831
  • Kombos Disabled 931-931
  • Klassik Music 101-101
  • No Blood 900-900
  • Player 1 Half Health 220-000
  • Player 2 Half Health 000-110
  • Player 1 Quarter Health 110-000
  • Player 2 Quarter Health 000-110
  • Power Bars Disabled 404-404
  • Psycho Kombat 707-707
  • Quick Uppercut Recovery 303-303
  • Rainbow Kombat 234-234
  • Random Phrase 1 717-313
  • Random Phrase 2 448-844
  • Random Phrase 3 122-221
  • Random Phrase 4 009-900
  • Random Phrase 5 550-055
  • Random Phrase 6 031-130
  • Random Phrase 7 282-282
  • Random Phrase 8 123-926
  • Sans Power 044-440
  • Silent Kombat 300-300
  • Specials Disabled 731-731
  • Super Recovery 123-123
  • Throwing Disabled 100-100
  • Throwing Encouraged 010-010
  • Tournament Mode 111-111
  • Unlimited Super Meter 466-466
  • Vampire Kombat 424-424
  • XRays Disabled 242-242
  • Zombie Kombat 666-666
Страницы:12