
 * https://github.com/cmuench/n98-gitosis-admin
 *
 * Permission is hereby granted, free of charge, to any person obtaining
 * a copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject to
 * the following conditions:
 *
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
 *
 * @author <NAME> <<EMAIL>>
 */

namespace N98\Gitosis\Admin;

use Symfony\Component\Yaml\Yaml;

class ConfigurationLoader
{
    /**
     * @param string $configFile
     * @var array
     */
    protected $configArray;

    public function __construct($configFile)
    {
        if (!file_exists($configFile)) {
            throw new \InvalidArgumentException('Global config file was not found.');
        }
        $globalConfig = Yaml::parse($configFile);
        $this->configArray = $globalConfig;
    }

    /**
     * @return string
     */
    public function getLocale()
    {
        return $this->configArray['locale'];
    }

    /**
     * @return string
     */
    public function getGitosisSshHost()
    {
        return $this->configArray['gitosis']['ssh_host'];
    }

    /**
     * @return string
     */
    public function getGitosisSshUser()
    {
        return $this->configArray['gitosis']['ssh_user'];
    }

    /**
     * @return string
     */
    public function getGitosisAdminRootDirectory()
    {
        return $this->configArray['gitosis']['root_directory'];
    }

    /**
     * @return bool
     */
    public function isSecurityAuthentificationEnabled()
    {
        return $this->configArray['security']['authentification']['enabled'];
    }

    /**
     * @return array
     */
    public function getUsers()
    {
        return $this->configArray['users'];
    }

    /**
     * @return array
     */
    public function getRepositoryListFilters()
    {
        if (!isset($this->configArray['repository']['list']['filters'])) {
            return array();
        }

        return $this->configArray['repository']['list']['filters'];
    }

    /**
     * @return array
     */
    public function getRepositoryBlacklist()
    {
        if (!isset($this->configArray['repository']['list']['blacklist'])) {
            return array();
        }

        return $this->configArray['repository']['list']['blacklist'];
    }

    /**
     * @return array
     */
    public function toArray()
    {
        return $this->configArray;
    }

} Civic Center, designed by Frank Lloyd Wright.
(another view)
The featured artist this year was Julie Hirota, especially apropos because her quilting specialty is “art glass”, a medium at which Frank Lloyd Wright excelled. All the work that she had on display was attractive, but the piece that inspired me was “Queen of Hearts”
I don’t think I’ll duplicate this piece. I’d rather take the idea and apply the techniques to another subject–perhaps a book cover?
The most impressive quilt I saw this year was a carousel horse. I didn’t note the artist’s name, but I may be able to find it later. The front of the quilt showed “love of craft” and was well-executed, but this isn’t something I would normally like; however, the back of this quilt was incredible!
The plain black backing combined with the bright threads used for quilting this piece was extremely bold. It seems to shout, “Check out my quilting prowess!”, rightfully so. Only a master quilter could pull off something like this. Well done, and bonus points for chutzpah!
The show seemed a little “off” this year–fewer quilts, fewer visitors, a couple of vendors that regularly attend were missing. I’m not sure if this was due to the price of fuel, or perhaps because ticket prices have risen a bit, or something else. It was still an excellent show, and I’ll be coming back next year.
Pingback: SonicChicken weblog » Blog Archive » Marin Quilt Show rip-off
Forgot to say thanks for the great quilt pics. That carousel horse quilt is wonderful! Can you describe how the mosaic quilt is made? Is your image large enough to give a detail view to show how the tile effect is created? Are the pieces appliqued to a darker background? Thanks again! Great stuff I found here. Quilt Value Zone
The mosaic quilts are absolutely gorgeous. It sounds like it was a terrific show to attend.
Well my name may be quilting queen but no I don’t think I would duplicate this one either.
Hey I really like your picture of Marin’s Civic Center! I was wondering if I could use it for a blog I am writing?
Thanks for asking! My photo (and other content here) is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. In a not-legally-binding-nutshell, you’re free to use this material as long as:<gh_stars>10-100
# 06. 트랜잭션과 잠금

트랜잭션
  + 의미
  + 특징
  + 필요성
  + Operation
  + 동시성 제어

<br/>

격리 수준과 일관성
  + 의미
  + Read Phenomena
  + 격리 수준

<br/>

잠금 관리
  + 레코드 잠금 관리
  + 스키마 잠금 관리
  + 키 잠금 관리
  + 호환성
  + cubrid lockdb $DB-NAME
  + cubrid tranlist & cubrid killtran -i $TRAN-ID
  + Deadlock
  + From 2 Phase Locking to MVCC

<br/>

궁금한 점
  + U_LOCK 1
  + U_LOCK 2
  + SIX_LOCK
  + 키 잠금의 대상
  + Lock Escalation 1
  + Lock Escalation 2
  + Num blocked-holders
  + Slow Query
  + MVCC
  + Vacuum
  + Vacuum Cleanup
  + Cursor
  + REPEATABLE READ & PHANTOM READ에서의 INSERT 연산 시 LOCK 획득 차이

<br/>

## 1) 트랜잭션 (Transaction)

### 1. 의미 (Meaning)
##### 트랜잭션이란 업무적으로 의미가 있는 최소 작업 단위이자, 데이터베이스 운용에서 장애 발생 시 데이터를 복구하는 단위로 이용된다. 데이터베이스의 연산들은 SQL로 구성되기 때문에 트랜잭션은 작업 수행에 필요한 SQL들의 모임이라고 볼 수 있다.

<br/>

##### 트랜잭�