<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<!--}}}-->
Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}

a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}

h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}

.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}

.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}

.tabSelected{color:[[ColorPalette::PrimaryDark]];
	background:[[ColorPalette::TertiaryPale]];
	border-left:1px solid [[ColorPalette::TertiaryLight]];
	border-top:1px solid [[ColorPalette::TertiaryLight]];
	border-right:1px solid [[ColorPalette::TertiaryLight]];
}
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}

#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}

.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
	border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
	border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
	border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}

.wizard .notChanged {background:transparent;}
.wizard .changedLocally {background:#80ff80;}
.wizard .changedServer {background:#8080ff;}
.wizard .changedBoth {background:#ff8080;}
.wizard .notFound {background:#ffff80;}
.wizard .putToServer {background:#ff80ff;}
.wizard .gotFromServer {background:#80ffff;}

#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}

.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}

.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}

.tiddler .defaultCommand {font-weight:bold;}

.shadow .title {color:[[ColorPalette::TertiaryDark]];}

.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}

.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}

.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}

.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}

.sparkline {background:[[ColorPalette::PrimaryPale]]; border:0;}
.sparktick {background:[[ColorPalette::PrimaryDark]];}

.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}

.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}

.imageLink, #displayArea .imageLink {background:transparent;}

.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}

.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}

.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}

.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}

.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}

.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}

#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:'alpha(opacity:60)';}
/*}}}*/
/*{{{*/
* html .tiddler {height:1%;}

body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}

h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}

.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}

/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}

#mainMenu .tiddlyLinkExisting,
	#mainMenu .tiddlyLinkNonExisting,
	#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}

.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0em 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0em 1em 1em; left:0px; top:0px;}

.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}

#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}

#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0em 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 .3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

.wizard {padding:0.1em 1em 0em 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0em 0em 0em 0em; margin:0.4em 0em 0.2em 0em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0em 0em 0em 0em; margin:0.4em 0em 0.2em 0em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0em 0em 0em; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0em;}
.wizardFooter .status {padding:0em 0.4em 0em 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em 0.1em 0.2em;}

#messageArea {position:fixed; top:2em; right:0em; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em 0.2em 0.2em 0.2em;}
#messageArea a {text-decoration:underline;}

.tiddlerPopupButton {padding:0.2em 0.2em 0.2em 0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em 1em 1em 1em; margin:0;}

.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0em;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}

.tabset {padding:1em 0em 0em 0.5em;}
.tab {margin:0em 0em 0em 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}

#contentWrapper {display:block;}
#splashScreen {display:none;}

#displayArea {margin:1em 17em 0em 14em;}

.toolbar {text-align:right; font-size:.9em;}

.tiddler {padding:1em 1em 0em 1em;}

.missing .viewer,.missing .title {font-style:italic;}

.title {font-size:1.6em; font-weight:bold;}

.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}

.tiddler .button {padding:0.2em 0.4em;}

.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}

.footer {font-size:.9em;}
.footer li {display:inline;}

.annotation {padding:0.5em; margin:0.5em;}

* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0em 0.25em; padding:0em 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}

.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0px 3px 0px 3px;}

.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}

.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0em; font-size:.9em;}
.editorFooter .button {padding-top:0px; padding-bottom:0px;}

.fieldsetFix {border:0; padding:0; margin:1px 0px 1px 0px;}

.sparkline {line-height:1em;}
.sparktick {outline:0;}

.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}

* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0em; right:0em;}
#backstageButton a {padding:0.1em 0.4em 0.1em 0.4em; margin:0.1em 0.1em 0.1em 0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin:0em 3em 0em 3em; padding:1em 1em 1em 1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em 0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none ! important;}
#displayArea {margin: 1em 1em 0em 1em;}
/* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
noscript {display:none;}
}
/*}}}*/
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser excludeLists'></span></div>
<!--}}}-->
To get started with this blank TiddlyWiki, you'll need to modify the following tiddlers:
* SiteTitle & SiteSubtitle: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* MainMenu: The menu (usually on the left)
* DefaultTiddlers: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
These InterfaceOptions for customising TiddlyWiki are saved in your browser

Your username for signing your edits. Write it as a WikiWord (eg JoeBloggs)

<<option txtUserName>>
<<option chkSaveBackups>> SaveBackups
<<option chkAutoSave>> AutoSave
<<option chkRegExpSearch>> RegExpSearch
<<option chkCaseSensitiveSearch>> CaseSensitiveSearch
<<option chkAnimate>> EnableAnimations

----
Also see [[AdvancedOptions]]
<<importTiddlers>>
!fonksiyon tanımlama
{{{
#define KAREBUL(X,Y)((X*X+Y*Y)/2)
}}}
!Kullanımı
{{{
    cout << "Sonuc: " << KAREBUL(2,2);
}}}
! Komutları Kısaltmak
{{{
# alias tanımlamaları
alias ls="ls --color"
alias rm="rm -i"
alias zz="clear"
alias ll="ls -l --color"
}}}
! Yol Değişkeni Tanımlamak
{{{
export ANT_HOME=/home/gurcan/bin/ant
export PIG_HOME=/home/gurcan/bin/pig
export PIGDIR=/home/gurcan/pig
export HADOOP_INSTALL=/home/gurcan/bin/hadoop
export HADOOP_CONF_DIR=$HADOOP_INSTALL/conf
export PIG_HADOOP_VERSION=20
export PIG_CLASSPATH=$PIG_HOME/pig-0.6.0-core.jar:$HADOOP_CONF_DIR
export GROOVY_HOME=/home/gurcan/bin/groovy
export GRAILS_HOME=/home/gurcan/bin/grails
#export MODELSIM=/home/gurcan/bin/altera/modelsim_ase
export PATH=$PATH:$ANT_HOME/bin:$PIG_HOME/bin:$HADOOP_INSTALL/bin:$GROOVY_HOME/bin:$GRAILS_HOME/bin
}}}
{{{


background yes
font -*-clean-medium-r-*-*-12-*-*-*-*-*-*-* 
own_window no
minimum_size 80 5
draw_shades no
draw_outline no
draw_borders no
stippled_borders 0
border_margin 6
border_width 1
default_color red
default_shade_color lightgrey
default_outline_color white
alignment top_right
gap_x 20
gap_y 20
no_buffers yes
uppercase no
update_interval 4.0


TEXT

${color slate grey}

${stippled_hr 2 1}
${color}temp  :${color white} ${acpitemp} C
${color slate grey}${stippled_hr 2 1}

${color}host  :${color white} ${nodename} 
${color}os    :${color white} ${sysname} ${kernel}
${color}hiz   :${color white} ${freq}Mhz ${color white}
$hr
${color}uptime:${color white} $uptime ${color white}
${color}pil   :${color white} ${battery BAT0}
$stippled_hr

${color}cpu   :${color white} $cpu% $cpubar
${color}ram   :${color white} $memperc% $membar 
${color}kulmem:${color white} $mem 
$stippled_hr

${color #98c2c7}NAME             PID       CPU%      MEM%
${color #e5e5e5}${top name 1} ${top pid 1}   ${top cpu 1}    ${top mem 1}
${color #c4c4c4}${top name 2} ${top pid 2}   ${top cpu 2}    ${top mem 2}
${color #a3a3a3}${top name 3} ${top pid 3}   ${top cpu 3}    ${top mem 3}
${color #828282}${top name 4} ${top pid 4}   ${top cpu 4}    ${top mem 4}
${color white}
$stippled_hr

${color}root  : ${color white}${fs_free /} ${fs_bar /}
${color}home  : ${color white}${fs_free /home} ${fs_bar /home}
$stippled_hr

${color}tarih : ${color white}${time %a,} ${time %B %e %G}
${color}saat  : ${color white}${time %H:%M:%S} ${color white}
$hr
${color}down:${color white} ${downspeed eth1} k/s ${color}  up:${color white} ${upspeed eth1} k/s


}}}
{{{

(custom-set-variables
  ;; custom-set-variables was added by Custom -- don't edit or cut/paste it!
  ;; Your init file should contain only one such instance.
 '(c-default-style (quote ((c-mode . "k&r") (c++-mode . "k&r") (java-mode . "java") (other . "gnu"))))
 '(case-fold-search t)
 '(color-theme-selection "Arjen" nil (color-theme))
 '(current-language-environment "utf-8")

 '(default-input-method "rfc1345")
 '(exec-path (quote ("/usr/local/bin" "/usr/bin" "/bin" "/usr/bin/X11" "/usr/games" "/usr/lib/emacs/21.4/i486-linux-gnu" "/usr/lib/jdk/bin")))
 '(global-font-lock-mode t nil (font-lock))
 '(show-paren-mode t nil (paren))
 '(transient-mark-mode t))

(custom-set-faces
  ;; custom-set-faces was added by Custom -- don't edit or cut/paste it!
  ;; Your init file should contain only one such instance.
 '(toolbar ((t (:background "LightSlateGray" :foreground "AntiqueWhite" :box (:line-width 1 :style released-button)))))
 '(widget-field-face ((((class grayscale color) (background light)) (:background "gray85")))))



}}}
{{{
# -*- coding: utf-8 -*-  
# pythonstartup
import os
import readline
import rlcompleter
import atexit
#Bind ‘TAB’ to complete
readline.parse_and_bind('tab:complete')
#Set history file – ~\.pythonhistory

histfile = os.path.join(os.environ['HOME'], '.pythonhistory')
#Attempt read of histfile
try:
        readline.read_history_file(histfile)
except IOError:
        pass
#Write history file at shell exit
atexit.register(readline.write_history_file, histfile)
#Cleanup
del os, histfile, readline, rlcompleter
}}}
{{{
#!/bin/sh
# FILE: "/home/joze/src/tclreadline/sample.tclshrc"
# LAST MODIFICATION: "Thu, 23 Mar 2000 21:13:08 +0100 (joze)"
# (C) 1998 - 2000 by Johannes Zellner, <johannes@zellner.org>
# $Id: sample.tclshrc,v 1.1 2000/07/02 16:30:25 joze Exp $
# vim:set ft=tcl: \
exec tclsh "$0" "$@"


if {$tcl_interactive} {

    package require tclreadline

    # uncomment the following if block, if you
    # want `ls' executed after every `cd'. (This was
    # the default up to 0.8 == tclreadline_version.)
    #
    # if {"" == [info procs cd]} {
    #     catch {rename ::tclreadline::Cd ""}
    #     rename cd ::tclreadline::Cd
    #     proc cd {args} {
    #         if {[catch {eval ::tclreadline::Cd $args} message]} {
    #             puts stderr "$message"
    #         }
    #         tclreadline::ls
    #     }
    # }

    # uncomment the following line to use
    # tclreadline's fancy ls proc.
    #
    # namespace import tclreadline::ls

    # tclreadline::Print is on (`yes') by default.
    # This mimics the command echoing like in the
    # non-readline interactive tclsh.
    # If you don't like this, uncomment the following
    # line.
    #
    # tclreadline::Print no

    # uncomment the folling line, if you want
    # to change tclreadline's print behaviour
    # frequently with less typing.
    #
    # namespace import tclreadline::Print

    # store maximal this much lines in the history file
    #
    set tclreadline::historyLength 200

    # disable tclreadline's script completer
    #
    # ::tclreadline::readline customcompleter ""

    # go to tclrealdine's main loop.
    #
    tclreadline::Loop
}

}}}
{{{
#!/bin/sh
# FILE: "/home/joze/src/tclreadline/sample.tclshrc"
# LAST MODIFICATION: "Thu, 23 Mar 2000 21:13:08 +0100 (joze)"
# (C) 1998 - 2000 by Johannes Zellner, <johannes@zellner.org>
# $Id: sample.tclshrc,v 1.1 2000/07/02 16:30:25 joze Exp $
# vim:set ft=tcl: \
exec tclsh "$0" "$@"


if {$tcl_interactive} {

    package require tclreadline

    # uncomment the following if block, if you
    # want `ls' executed after every `cd'. (This was
    # the default up to 0.8 == tclreadline_version.)
    #
    # if {"" == [info procs cd]} {
    #     catch {rename ::tclreadline::Cd ""}
    #     rename cd ::tclreadline::Cd
    #     proc cd {args} {
    #         if {[catch {eval ::tclreadline::Cd $args} message]} {
    #             puts stderr "$message"
    #         }
    #         tclreadline::ls
    #     }
    # }

    # uncomment the following line to use
    # tclreadline's fancy ls proc.
    #
    # namespace import tclreadline::ls

    # tclreadline::Print is on (`yes') by default.
    # This mimics the command echoing like in the
    # non-readline interactive tclsh.
    # If you don't like this, uncomment the following
    # line.
    #
    # tclreadline::Print no

    # uncomment the folling line, if you want
    # to change tclreadline's print behaviour
    # frequently with less typing.
    #
    # namespace import tclreadline::Print

    # store maximal this much lines in the history file
    #
    set tclreadline::historyLength 200

    # disable tclreadline's script completer
    #
    # ::tclreadline::readline customcompleter ""

    # go to tclrealdine's main loop.
    #
    tclreadline::Loop
}

}}}
Özel bir aygıttır. Programda dosya sisteminde yer yokmuş gibi davranısını sağlamak için kullanılır.

! Örnek 
{{{
guya@debian:~$ cp /etc/fstab /dev/full
cp: `/dev/full' yazılıyor: Aygıt üzerinde boş yer yok
}}}
Linuxta bulunan özel bir aygıttır. 
* Çıktılarını görmek istemediğimiz programları /dev/null yönlndirerek çıktıdan kurtulabiliriz.
      {{{ $ command > /dev/null}}}

* Bir de dosyalrın içeriğini boşaltarak 0 byte haline getirmek için kullanılır.
      {{{ $ cp /dev/null bos_dosya.txt}}}
Linuxta özel bir aygıttır. C de ki rand fonksiyonu gibi random sayı üretmek için kullanılır.

{{{guya@debian:~$ od -t x1 /dev/random}}}
0000000 15 bf 91 fe 27 fb fa 1f 60 ca 03 88 65 c9 54 b8
0000020 b1 1a b9 1c 66 31 29 91 d3 23 e3 11 47 a0 87 85
0000040 cb f2 14 b2 0d 0c b7 78 ae 5f 1c dc 74 3f 36 c0
0000060 78 47 a8 d0 52 10 26 c6 e8 67 01 c9 8c 7e 00 70
0000100 63 3e 33 7d 7e 7e d8 03 0d 84 3c af 9d 93 00 00
0000120 b1 43 d9 a2 66 73 fa e9 2d 87 1d e0 8f 08 30 d2

farklı rastgele sayılar üretir. mouse,klavye kullandıkça sayıları artmakta, sayılar üretilmektedir. "od" aldığı "-t x1" seçenekleri hexadecimal sayılar üretilmesini sağlamak için ekleniyor. 
Sonsuz uzunlukta 0 byte içeren bir aygıttır.
Makinanın adını tutmaktadır.
!Örnek
{{{
debian
}}}
Bir web site ismini girdiğimizde o ismin ip karşılıklarını elde etmek için DNS denen serverlara baş vurulur ve ip nosu elde edlilir. İstenen sayfa ancak ip no elde edildikten sonra girilebilir.
Eğer çok fazla bir siteye sıklıkla erişiyorsak yada local ağda bir makinanın ip nosu yerine ismi ile erişmek istersek {{{/etc/hosts}}} dosyası kullanılır.
İsim çözücüler ilk önce bu dosyaya bakar orada bulamazlar ise bir üst kısımda bulunan DNS serverlara başvurulur. Eklenecek kısım şu şekilde olabilir:
{{{

www.javakahvesi.com                  92.23.43.76

}}}
Bir local ağda makinamızı başka bir makinadan gelen servislere kapatabiliriz. Bunu için {{{ /etc/hosts.deny}}} dosyası kullanılır. Bununiçin yasaklanacak bilgisayarın adı ve ip nosu girilir.
{{{
ALL: 10.1.23.232
}}}
böylelikle ip nosu girilen bilgisayara [[ping]],[[ssh]],[[telnet]],[[ftp]]... gibi servislere kapatırız. Artık o bilgisayardan bizim makinamıza ssh ile bağlanamıyacak gibi.
Eğer bu ağın yani C bandının tamamına bu servisleri  kapatmak istersek şu sekilde yapardık:
{{{
ALL: 10.1.23.*
}}}
Sistem açıldığında, sistem ile birlikte çalıştması istenen servislerin baştılmasında kullanılan dizindir. Gerekli betik dosyaları burada tutulur. Bir servis başlatılmak, durmak yada tekrar başlatılmak istendiğinde burada ki betik dosyalarından faydalanılır. 
!Örnek
Web sunucusunu başlatmak istersek
{{{
# /etc/init.d/apache start
}}}
controls the system-wide behaviour of bash. What you put in here will affect everybody who uses bash on your system.
Sistemdeki kesmeler ile ilgili istatistik bilgileri geri döndürür. 
! Kurulum
{{{
$ ./install -glnx86
}}}

! Eksik Paket
{{{
# apt-get install libxp6
}}}

! Çalıştırma
{{{
$  linux32 matlab
}}}

! Kaynaklar
# http://www.mathworks.com/support/solutions/en/data/1-O7POO/
# http://www.mathworks.com/matlabcentral/newsreader/view_thread/78458
Application Programming Interface
Uygulama geliştiricileri, api ' lere uygulama geliştiriler. Apiler bir grup fonksiyon tanımlar gelişricilerin parametre gönderipte sonuç alabileceği.
! En Yaygın 3 API
# [[Win32]] API
# [[POSIX]] API
# JAVA API
> Neden geliştiriciler system callsları direkt olarak çağırmak yerine apileri kullanırlar?
*Api ler ilk olarak taşınabilirliği ön planda tutarlar.  Dolayısıyla bu api yi kullanarak geliştirilen program, bu api ile derlenen her sistemde çalışmayı garanti eder.
*system calls apilere göre daha karmaşık ve daha çalışması zordur. 
# Başlat>Çalıştır'a tıklıyoruz.
#"telnet 192.168.2.1" yazıyoruz. Komut satırından modemde bulunan linux bağlanıyoruz. 
#login olarak "root" yazıyoruz, passwordu boş bırakabiliriz. Eğer web arayüzü için bir şifre tanımlamışsak burada o şifreyi kullanıyoruz.
#BusyBox komut satırı gelecektir. Busybox linux komutları içeren minimal bir linuxtur. Büyük sağıtımlarda bulunan bazı komutları içermektedir. 

!Modemizin cpusu hakkında bilgi almak
{{{
# cat /proc/cpuinfo
}}}
!Modemin Kernel numarasını öğrenmek
{{{
# cat /proc/version
}}}
linux çekirdeğinin numarasını öğreniyoruz.

Benim modemim bilgileri:
[img[images/airteis.jpg]]
! Modeme Yeni ip aldırmak
* ip numarasını ilk önce öğreniyoruz: 
{{{
# ifconfig
}}}
ppp0 satırı karşısındaki bölümde bizim modemimize ait olan dış ip gösterilmektedir. 
* modemi resetlemek için o görev ile sorumlu olan süreç pid numarasını buluyoruz. Bunun için ttnet için kullandığımız kullanıcı adı ile arama yaparak numarayı buluyoruz.
{{{
# ps | grep gurcan
}}}
Benim kullanıcı adım gurcan içerdiği için aramada gurcan keywordunu kullanıyorum. bunu içieren isteğimiz süreç numarasını ekrana basıyor. Satırın başındaki sayı bizim pid numaramızdır.
* Şimdi mevcut süreci öldürüyoruz pid nosu yardımıyla.
{{{
# kill 2096
}}}
süreci öldürdüğümüzde modem hemen tekrar yeni bir ip almaktadır. 
Bir problemi çözmek  için izlenilen metod yada süreç
Netbeans altındaki kurulu olan antı sistem geneli için genişletmek:
~/.bashrc dosyasının en sonuna aşağıdaki satırları ekliyoruz.
{{{
export ANT_HOME=/home/gurcan/netbeans-6.5/java2/ant
export PATH=${PATH}:${ANT_HOME}/bin
}}}
Apache web serverı bizim hangi işletim sistemini kullandığımızı, hangi web server versiyon numarısını kullandığımızı dünyaya duyurur. Örneğin bu duyuruları hata sayfalarında alta görülebilir. Bu tabi kötü niyetli insanları sisteme zarar vermelerin sağalabilir. Bunu engellemek için :
{{{
/etc/apache2/conf.d/security
}}}
Bu dosyadaki aşağıdaki satırları buluyoruz.
{{{
#ServerSignature Off
ServerSignature On
}}}
On halinden off haline getiriyoruz.
!Önemli Tanımlar
# Ana Kolon Hattı: İşletmeye ait beslemeye noktasından ana tabloya kadar olan besleme hattıdır.
# Kolon Hattı: Ana tablo ile tali tablo arasındaki hattıdır.
# Linye Hattı: Dağıtım tablosundan, son aydınlatma aygıtı yada prizin bağlandığı kutuya kadar olan hattıdır.
# Sorti Hattı: Linye hattı ile aydınlatma aygıtı yada priz arasındaki bağlantı hattıdır.

# Dağıtım tablosu, sayaç, lamba, anahtar, priz, yerleri belirlenerek başlanır. 
# Prizler ayrı linyeler halinde gruplanıp bir priz linyesine en çok 7 priz sortisi bağlanır. 10 amperlik otomat anahtarlı sigorta kullanılır.
# iletken kesiti en az 2.5 mm kare dir
# Lambalarda ayrı linyeler halinde gruplanır. Bir aydınlatma linyesine en çok 9 aydınlatma sortisi bağlanır. 6 amperlik otomat anahtarlı sigorta kullanılır. 
# Her daire için dağıtım tablosuna, ışık priz ve zayıf akım sortilerini taşıyacak güçte kaçak akım koruma rölesi konur.
# İletken kesiti, aydınlatma linyesi olarak buvatlar arasında en az 2.5 mm kare sorti olarak en az 1.5 mm karedir.
# Lambadan, lambaya geçiş yapılamaz. 

!Dikkat edilecek hususlar
# Mimari plan 1/50, 1/100 ölçekler ile çizilir.
# Öncelikle tablo yerleri belirlenir. Tabloya giriş ile beraber projede gösterilir.
# Mimari plan üzerinde önce, lamba çeşitleri seçilerek, aydınlatma hesaplarında elde edilen lamba güçleri ve sembolleri çizilir. 
# Solanlar ve mutfaklar için en az 2, odalar ve banyo için en az 1 priz tesis edilmelidir. 
# Çamaşır, Bulaşık makinası ve ocaklar için ayrı bir linye tesis edilmelidir. 
# Bir priz linyesine en fazla 7 sorti bağlabilir. 
# Aynı linyeye ait sortilerin birbirine yakın olmasına dikkat edilir. Böylece kaç priz linyesi oluşacağı belirlenerek tablodan itibaren enerji dağıtımı çizilir. 
# Konutlarda en az 2 adet aydınlatma linyesi bulunacaktır. Aydınlatmada en fazla 9 sorti bağlancağı dikkate alınmalıdır. 
# Linye hatları binanın taşıma duvarları yanından birbirine parelel olarak ve eşit aralıklarla gözle takip edilebiliecek çizilir.
# Anahtar yerleri, kapı açılma yönleri dikkate alınarak belirlenir. Sembolleri çizilir. Buvat yerlerine nokta ile işaret konur
# Linye hattı çiziminde bacaların yanından linyenin geçmemesine dikkat edilir. 
 
{{{
$ netstat -a -n 
}}}
Prompt yazısı ''PS1'' çevre değişkeninde tutulmaktadır.  Genel yapısı;
{{{
kullanıcıadı@hostadı:~$ 
}}}
Bu yapıyı değiştirmek için;
{{{
gurcan@yavuz:~$ PS1='>'
>
}}}
uzun bir isim varken, yapılan değişiklik ile artık küçüktür işareti oldu.
! Kaynaklar
[1] http://remind-nix.blogspot.com/2008/06/customizing-bash-command-prompt.html
[2] 
	/etc/fstab bu dosya sistem açılırken hangi bölümlerin ve nasıl bağlanacağını belirler.Buraya ekleyeceğimiz bir satır bizim sorunumuzu çözecektir.
			
	[[/dev/hda2       /yedek          vfat    users,owner,rw,umask=000,iocharset=utf8       0       0]]
Bu komuttaki "iocharset=utf8" seçeneği bizim fat bölümümüzü utf8 şeklinde bağlıyor.Böylelikle sorun çözülmüş oldu.	
						
									guya
								       21.04.07
! Latex Derlemek için
{{{
$ latex deneme.tex
}}}
veya
{{{
$ pdflatex deneme.tex
}}}
! Sınıfı Yüklemek
{{{
\documentclass[xcolor=dvipsnames]{beamer}
}}}
!Türkçe Karakter Kullanmak için
{{{
\usepackage[utf8]{inputenc}
\usepackage[turkish]{babel}
}}}
! Beamer Slide temaları için
{{{
\usetheme{Copenhagen}
}}}
Küme parantezi içerisine "Berlin, Warsaw,Singapore,Malmoe,Boadilla" yazılabilir.
!Renk Teması için
{{{
\usecolortheme[named=OliveGreen]{structure}
}}}
! Giriş Kısmına Konuşmacı bilgileri için
{{{
\title{Hastane Bilgi Yönetim Sistemi Programı}
\subtitle{Staj Projesi}
\author{Gürcan Yavuz}
\institute[UMBC]{
  Dumlupınar Üniversitesi \\
  Bilgisayar Mühendisliği \\
  \texttt{gurcanyavuz@gmail.com}
}
\date{23 Aralık 2008}
}}}
Bunları göstermek için 
{{{
\titlepage
}}}
kullanılır.
! Dokumana başlamak için
{{{
\begin{document}
% Herşey bu araya yazılır.
\end{document}
}}}
! Yeni Slide sayfası için
{{{
  \begin{frame}
\titlepage  %içerisi doldurulur
  \end{frame}
}}}
!Block Tanımlamak
{{{
\begin{block}{block başlığı}
%% yazı içeri yazılıyor
\end{block}
}}}
!itemları tek tek göstermek için
{{{
\begin{itemize} 
  \item Introduction 
  \pause 
  \item Statement of the main theorem 
  \pause 
  \item Technical lemmata 
  \pause 
  \item Proof of the main theorem 
  \pause 
  \item Conclusions 
\end{itemize}
}}}
Her item tek tek ekleniyor. 
! Dip not eklemek
{{{
\footnote{Bu bir dip nottur}
}}}
Eklenen yere bir tane rakam konur ve diğer altada küme parantezi içindeki yazı gönderilir.
order of magnitude veya Big-O Notation denmektedir. 
Aynı girdi boyutunda algoritmanın çalışma zamanı, girdiye göre değişebilmektedir. 
!worst-case
En uzun çalışma zamanındaki girdilerin sonuçlarına worst-case denir. 
!best-case
En kısa çalışma zamanındaki girdilerin sonuçlarına best-case denir.
Basamakları göstermede E işareti kullanırız. Exponent olarak adlandırılır.
	Örnek olarak soy ağacı programı olan Grampsın çevirisini yapmak için gramps programının dil paketi olan .po uzantlı dosyayı indiriyoruz.
	Çeviri yapmak için gtranslator programı ile po dosyasını açıyoruz.Çevirisini yapıyoruz ve kaydediyoruz.

	Çevirisi yapılan dosyayı derliyoruz ve mo uzantılı dosya oluşturuluyor.

	Derlemek için:
{{{
$ msgfmt tr.po -o gramps.mo
}}}
	
	mo uzantılı dosyayı programın kullanacağı alana kopyalıyoruz.

	Kopyalamak için:	
{{{
#cp gramps.mo /usr/share/locale/tr/LC_MESSAGES/
}}}

kopyalıyoruz.

! .mo dosyasından .po dosyası elde etmek.
{{{
$  msgunfmt  deneme.mo   >  deneme.po
}}}
sistemdeki örneğin ingilizce .mo dosyasını .po haline çevirip çeviri yapmaya başlayabiliriz.
* milli    :: 10^-3
* micro  :: 10^-6
* nano   :: 10^-9
* pico    :: 10^-12
 
{{{
# apt-get install gnome-bluetooth
# apt-get install bluez-gnome
# apt-get install bluetooth
}}}

İlk olarak gerekli olan programları kuruyoruz. 
1. Install bluez-utils
2. Install kdebluetooth 
3. Install konqueror
4.  /etc/bluetooth/hcid.conf dosyasını kontrol et aşağıdaki gibi olsun
       security should be user
       pairing should be multi
5.  /etc/init.d/bluetooth restart yeniden başlatıyoruz.
6. kbluetoothd başlatıyoruz. 
sistem saatine yerleşen K ya tıklayınca konqueror açılıyor ve orada 6300 işaretini görüyoruz. Telefonun içini istediğimiz gibi görebiliyoruz ve silebiliyoruz.
Diziyi bir çok defa devir daim ederek dolaşmaktadır. Her dolaşımda birbirini izleyen ikililer karşılaştırılmaktadır. Eğer ikililer azalan sıralı ise ikililer yer değiştirmektedir; değil ise aynen bırakılmaktadır.  Bu tekniğe bubble sort yada sinking sort denilmektedir. 
> Bubble sıralama yani kabarcık sıralama denilmektedir. Sebebi, küçük boyuttakiler yavaş yavaş yukarıya gitmekte, büyük olanlar ise aşağıya gönderilmektedir. 
! Sıralamanın örneği:
{{{
2954  >> 2594 >> 2549
}}}
Yukarıda 9 sona doğru taşınmaktadır. İkili olarak karşılaştırılır ve 9 diğerlerinden büyük olduğundan yer değiştirilerek sona atılır. 
> İlk dolaşımda son eleman en büyük eleman olmaktadır. 
! Örnek metodun kodu
{{{
    public static void bubbleSort(int[] dizi) {

        int temp;
        for (int k = 1; k < dizi.length; k++) {

            for (int i = 0; i < dizi.length - k; i++) {
                if (dizi[i] > dizi[i + 1]) { // ikili elemanlar azalan sıralamada ise
                    temp = dizi[i];
                    dizi[i] = dizi[i + 1];
                    dizi[i + 1] = temp; // elemanlar yer değiştirir.
                }
            }
        }
    }
}}}
Bu bir disk veya bir dosya olabilir. Bunu rasgele bilgilerle ve sıfırlarla doldurularak geri dönmesini engellenerek siler. Yani güvenli silmek.
{{{
# shred -n 2 -z -v /dev/hda1
}}}

-n :: kaç defa random data yazılacak
 2 :: sayısı
-z :: sıfırla doldurulması bildirilir.
-v :: ilerlemeyi gösterir.
! Formdaki min ve max butonları kaldırır.
{{{
MinimizeBox = false;
MaximizeBox = false;
}}}
! Yeniden Boyutlandırmayı iptal etmek
{{{
FormBorderStyle = FormBorderStyle.FixedSingle;
}}}
{{{
Rectangle rect = new Rectangle();
rect = Screen.GetWorkingArea(this);
}}}

taskbar harici pencere boyutunu bulur.
!CISC
>Complex Instruction Set Computer = karmaşık komut kümesi bilgisayarı
Çok sayıda komut destekler
!RISC
>Reduced Instruction Set Computer = azaltılmış komut kümesi bilgisayarı
Bu tasarımda gerekli komut sayısı azaltılarak donanım yükü yazılıma kaydırılmıştır
!CORBA
Common Object Request Broker Architecture = Ortak Nesne İstem Aracısı Mimarisi
> CORBA sayesinde programcılar kullandıkları nesnelerin hangi dilde yazıldıgına, dagıtık olup olmadıklarına, isletim sistemlerine ve iletisim protokollerine bakmaksızın programları gelistirebilirler
> CORBA dil bagımsızlıgını saglar
Bir dilde yazılan CORBA  nesnesi, baska bir dilde yazılan CORBA nesnesine istem gönderebilir. Nesneye yönelik bir dilde yazılan CORBA nesnesi(örnegin Java veya Smalltalk), C veya COBOL’da yazılan
bir nesneyle konusabilir, tersi de dogrudur.
!CPU
# Bİlgisayarın beynidir.
# Bellekten komutları alır.
# Komutların anlamlarını çözer ve çalıştırır. 
İşlemciler üzerinde yazmaçlar bulunur. İşlemcinin çalıştırdığı genelde komutlar yazmaçlar üzerinde işlem yapar. 
CPU da iki kip bulunur. User Mode ve Kernel Mode dur. İşleitm sistemi kernel mode da çalışır. Eğer kullanıcı giriş çıkış işlemleri yapacak ise bu işlemleri işletim sistemi üzerinden yapar. 
! Yazmaçlar (Registers)
!!Program Counter
Getirilecek bir sonraki komutun bellek adresini tutar. 
!! Stack Pointer
Bellekte bulunan yığının en üst adresini tutar. 
!CSS
Cascading Style Sheets: Stil şablonları
!Nedir? 
CSS, HTML'e ek olarak metin ve format biçimlendirme alanında fazladan olanaklar sunan bir web teknolojisidir. İnternet sayfaları için genelgeçer şablonlar hazırlama olanağı verdiği gibi, bağımsız olarak harflerin stilini; yani renk, yazı tipi, büyüklük gibi özelliklerini değiştirmek için de kullanılabilir.
!Amaç
Aşağıdaki şekli oluşturmak:
{{{
*
**
***
****
*****
******
*******
}}}
! Kod
{{{
void yildizYazdir() {
    int MAX = 7;

    for (int i = 1; i <= MAX; i++) {
        for (int j = 0; j < i; j++)
            cout << "*";
        cout << "\n";
    }
}
}}}
!Amaç
{{{
*
**
***
****
*****
******
*******
******
*****
****
***
**
*
}}}
!Kod
{{{
void ucgenYazdir() {
    int MAX = 7;
    for (int i = 1; i <= MAX; i++) {
        for (int j = 0; j < i; j++) {
            cout << "*";
        }
        cout << "\n";
    }
    for (int i = 6; i > 0; i--) {
        for (int j = 0; j < i; j++) {
            cout << "*";
        }
        cout << "\n";
    }
}
}}}
!Amaç
{{{
F
FE
FED
FEDC
FEDCB
FEDCBA
}}}
!Kod
{{{
void charUcgenDeneme() {
    char ch = 'F';
    int MAX = 6;

    for (int i = 1; i <= MAX; i++) {
        for (int j = 0; j < i; j++) {
            cout << (char)(ch - j);
        }
        cout << "\n";
    }
}
}}}
CPU-frequency-monitor applet gnome de yerleşik cpu hızını gösteren bir uygulamadır. Bu uygulama bize cpu hızını kontrol etmemizi sağlar. 
Bunun için ilk önce konsolda,  
{{{
#  chmod +s /usr/bin/cpufreq-selector
}}}
Komutunu çalıştırıyoruz. Daha sonra Gnome panele CPU-frequency-monitor applet ten bir tane ekliyoruz.Ve artık cpu hızını kontrol edebiliyoruz. Bu kontrol sayesinde fan sesinide azalmasınıda sağlıyoruz.
Critical Section = Kritik Bölge
!Tanım
Bir program içerisinde ortak olarak paylaşılan alanlara erişim yapılan kod bölümlerine kritik bölge(critical section) denilir.
/***
|''Name:''|CryptoFunctionsPlugin|
|''Description:''|Support for cryptographic functions|
***/
//{{{
if(!version.extensions.CryptoFunctionsPlugin) {
version.extensions.CryptoFunctionsPlugin = {installed:true};

//--
//-- Crypto functions and associated conversion routines
//--

// Crypto "namespace"
function Crypto() {}

// Convert a string to an array of big-endian 32-bit words
Crypto.strToBe32s = function(str)
{
	var be = Array();
	var len = Math.floor(str.length/4);
	var i, j;
	for(i=0, j=0; i<len; i++, j+=4) {
		be[i] = ((str.charCodeAt(j)&0xff) << 24)|((str.charCodeAt(j+1)&0xff) << 16)|((str.charCodeAt(j+2)&0xff) << 8)|(str.charCodeAt(j+3)&0xff);
	}
	while (j<str.length) {
		be[j>>2] |= (str.charCodeAt(j)&0xff)<<(24-(j*8)%32);
		j++;
	}
	return be;
};

// Convert an array of big-endian 32-bit words to a string
Crypto.be32sToStr = function(be)
{
	var str = "";
	for(var i=0;i<be.length*32;i+=8)
		str += String.fromCharCode((be[i>>5]>>>(24-i%32)) & 0xff);
	return str;
};

// Convert an array of big-endian 32-bit words to a hex string
Crypto.be32sToHex = function(be)
{
	var hex = "0123456789ABCDEF";
	var str = "";
	for(var i=0;i<be.length*4;i++)
		str += hex.charAt((be[i>>2]>>((3-i%4)*8+4))&0xF) + hex.charAt((be[i>>2]>>((3-i%4)*8))&0xF);
	return str;
};

// Return, in hex, the SHA-1 hash of a string
Crypto.hexSha1Str = function(str)
{
	return Crypto.be32sToHex(Crypto.sha1Str(str));
};

// Return the SHA-1 hash of a string
Crypto.sha1Str = function(str)
{
	return Crypto.sha1(Crypto.strToBe32s(str),str.length);
};

// Calculate the SHA-1 hash of an array of blen bytes of big-endian 32-bit words
Crypto.sha1 = function(x,blen)
{
	// Add 32-bit integers, wrapping at 32 bits
	add32 = function(a,b)
	{
		var lsw = (a&0xFFFF)+(b&0xFFFF);
		var msw = (a>>16)+(b>>16)+(lsw>>16);
		return (msw<<16)|(lsw&0xFFFF);
	};
	// Add five 32-bit integers, wrapping at 32 bits
	add32x5 = function(a,b,c,d,e)
	{
		var lsw = (a&0xFFFF)+(b&0xFFFF)+(c&0xFFFF)+(d&0xFFFF)+(e&0xFFFF);
		var msw = (a>>16)+(b>>16)+(c>>16)+(d>>16)+(e>>16)+(lsw>>16);
		return (msw<<16)|(lsw&0xFFFF);
	};
	// Bitwise rotate left a 32-bit integer by 1 bit
	rol32 = function(n)
	{
		return (n>>>31)|(n<<1);
	};

	var len = blen*8;
	// Append padding so length in bits is 448 mod 512
	x[len>>5] |= 0x80 << (24-len%32);
	// Append length
	x[((len+64>>9)<<4)+15] = len;
	var w = Array(80);

	var k1 = 0x5A827999;
	var k2 = 0x6ED9EBA1;
	var k3 = 0x8F1BBCDC;
	var k4 = 0xCA62C1D6;

	var h0 = 0x67452301;
	var h1 = 0xEFCDAB89;
	var h2 = 0x98BADCFE;
	var h3 = 0x10325476;
	var h4 = 0xC3D2E1F0;

	for(var i=0;i<x.length;i+=16) {
		var j,t;
		var a = h0;
		var b = h1;
		var c = h2;
		var d = h3;
		var e = h4;
		for(j = 0;j<16;j++) {
			w[j] = x[i+j];
			t = add32x5(e,(a>>>27)|(a<<5),d^(b&(c^d)),w[j],k1);
			e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
		}
		for(j=16;j<20;j++) {
			w[j] = rol32(w[j-3]^w[j-8]^w[j-14]^w[j-16]);
			t = add32x5(e,(a>>>27)|(a<<5),d^(b&(c^d)),w[j],k1);
			e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
		}
		for(j=20;j<40;j++) {
			w[j] = rol32(w[j-3]^w[j-8]^w[j-14]^w[j-16]);
			t = add32x5(e,(a>>>27)|(a<<5),b^c^d,w[j],k2);
			e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
		}
		for(j=40;j<60;j++) {
			w[j] = rol32(w[j-3]^w[j-8]^w[j-14]^w[j-16]);
			t = add32x5(e,(a>>>27)|(a<<5),(b&c)|(d&(b|c)),w[j],k3);
			e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
		}
		for(j=60;j<80;j++) {
			w[j] = rol32(w[j-3]^w[j-8]^w[j-14]^w[j-16]);
			t = add32x5(e,(a>>>27)|(a<<5),b^c^d,w[j],k4);
			e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
		}

		h0 = add32(h0,a);
		h1 = add32(h1,b);
		h2 = add32(h2,c);
		h3 = add32(h3,d);
		h4 = add32(h4,e);
	}
	return Array(h0,h1,h2,h3,h4);
};


}
//}}}
! Adı
Dynamic Host Configuration Protocol
Bir local ağda bilgisayarlar [[ ip no]] denilen 32 bitlik bir sayı ile ayrılırlar. Bunlar dinamik olarak yada statik olarak verilebilir. Dinamik olarak tüm ağdaki bilgisayarlara ip nolarını dağıtan sunucu DHCP sunucusudur. İp noları belli bir süreliğine ağdaki makinalara verir. 
!!! ip atama işlemi
Bu verme işlemi; bir bilgisayar ağa bağlanır.  Bu bilgisayar ağa bir mesaj gönderir. Ağda DHCP sunucu varmı diye. Ağda bulunan DHCP sunucu bu çağırıya cevap verir. Ve bu bilgisayara bir ip nosu önerir. Bu bilgisayarda bunu ip kabul eder.
{{{
$ dig www.google.com
}}}
Dağıtık sistemler; fiziksel olarak ayrı, muhtemelen heterojen bilgisayar sistemlerinin network ile bağlanır. kullanıcılarına çeşitli kaynakları sağlanır. Paylaşılan kaynaklar, hesaplama hızını artırma, fonksiyonellik,  veri  kullanılabilirliği, veri güvenirliği
Genelde süreçlerin ellerindeki kaynakları bırakmadan, başka süreçlere ait olan kaynakları istedikleri durumlarda gerçekleşir.
Bu durumda her iki süreçte bloklanırlar ve hiçbir zaman bu durumdan kurtulamazlar. Gerçekleşen bu duruma ölümcül kilitlenme (deadlock) denilir.
! Kurulum
{{{
# apt-get install fluxbox
# apt-get install conky
# apt-get install thunar
# apt-get install gtk-theme-switch2
# apt-get install eterm
}}}
* conky ayarı için [[.conkyrc]]

! Wallpaper 
* ~/.fluxbox/overlay
{{{
background: aspect
background.pixmap: /home/gurcan/Resimlerim/WallPaper/stormy.jpg
}}}

* vim ~/.fluxbox/init
{{{
session.screen0.rootCommand: fbsetbg -a /home/gurcan/Resimlerim/WallPaper/stormy.jpg
}}}

! Gtk2 Theme
{{{
# apt-get install gtk-theme-switch2
}}}
* Kurulduktan sonra istenilen tema seçilebilir.

! Menu
* vim ~/.fluxbox/menu 
{{{
[begin] (fluxbox)
[submenu](Sık Kullanılanlar)
        [exec] (Chrome) {/usr/bin/google-chrome}
        [exec] (Bash) {/usr/bin/gnome-terminal}
        [exec] (VirtualBox) {/usr/bin/virtualbox}
        [exec] (Thunar) {/usr/bin/Thunar}
        [exec] (Emacs) {/usr/bin/emacs}
[end]

[include] (/etc/X11/fluxbox/fluxbox-menu)
[end]
}}}

! Kaynaklar
# http://forums.gentoo.org/viewtopic-t-480588-start-0.html
# http://wiki.debian.org/FluxBox
# http://www.go2linux.org/setting-wallpaper-or-background-for-fluxbox
! Temin Etme
Altera'nın sitesinden  modelsim linux versiyonunu inidiriyoruz. 
{{{
https://www.altera.com/support/software/download/eda_software/modelsim/dnl-msim-64a-qii90.jsp
}}}
! Kurulum
burada linux uyumlu olan lisans gerektirmeyen starter versiyornunun indiriyoruz. Zip dosyayı açıyoruz. içerisindeki tar dosyayı açıyoruz. 
{{{
$ tar -xvf modelsim_ase_linux.tar 
}}}
açılan dosya içerisindeki install dosyasını çalıştırıyoruz. Bunun için csh gereklilik var. Bunun için 
{{{
# apt-get install csh
}}}
csh kuruyoruz. root olarak install dosyasını çalıştırıyoruz
{{{
# ./install_st
}}}

> Program sorunsuz kuruluyor ancak çalıştırmada hata meydana geliyor ve çalışmıyor. Galiba  sadece Suse ve Redhat destekleniyormuş.
Bazı dvd filmler şifreli olmaktadır. Bu dvdleri oyanatabilmek için: 

http://www.debian-multimedia.org/pool/main/libd/libdvdcss/

gerekli paketi indiriyoruz.
{{{
# dpkg -i <paketAdı>
}}}
ile kurulumu gerçekleştiriyoruz.
Sürümünü öğrenmek için konsolda:
{{{
$ cat /etc/issue
}}}
! Gerekli Araçlar Yüklüyoruz
{{{
# apt-get install build-essential linux-headers-$(uname -r) module-assistant
}}}
! 
{{{
# sh ati-driver-installer-<versiyon numarası>
}}}
! Lenny
DNS ayarlarını değştirmek için ilk önce 
{{{
 $ su
 # network-admin
}}}

gelen menü de DNS sekmesini açıyoruz. Buraya alttaki iki DNS ip sini giriyoruz.
{{{
    208.67.222.222
    208.67.220.220
}}}

ve aşağıdaki işlemleri yapıyoruz.
{{{
    # cp /etc/resolv.conf   /etc/resolv.conf.auto
    # vim /etc/dhcp3/dhclient.conf          // "dosyasını açıyoruz"
}}}

Bu dosyaya alttaki satırı ekliyoruz.
{{{
 prepend domain-name-servers 208.67.222.222,208.67.220.220;
}}}
kaydedip çıkıyoruz. network bağlantısını tekrar başlatıyoruz. Böylelikle ttnet DNS ini değiştirip openDNS 
yapıyoruz.

! Squeeze
{{{
# vim /etc/resolv.conf
}}}
{{{
nameserver 8.8.8.8
nameserver 8.8.4.4
}}}
{{{
root@yavuz:/home/gurcan# chattr +a /etc/resolv.conf 
}}}

! Kaynaklar
[1] https://store.opendns.com/setup/device/ubuntu/
[2] http://www.wallpaperama.com/forums/how-to-setup-change-edit-dns-nameservers-linux-command-shell-t1679.html
[3] http://doctus.org/showthread.php?p=440763 [erişim : 01.05.2011]
DVD leri menuleri ile oynatmak için:
{{{
# apt-get install ogle-gui ogle-mmx
}}}
Şifreli dvdleri oynatmak için:
{{{
$ wget http://www.dtek.chalmers.se/groups/dvd/deb/libdvdcss2_1.2.5-1_i386.deb
# dpkg -i libdvdcss2_1.2.5-1_i386.deb 
}}}
! Kaynaklar
[1] http://www.debuntu.org/how-to-play-dvd-under-ubuntu-linux
man sayfalarında bir şey aratırken devamlı bir uyarı mesajı ile karşılaşıyordum. Bu hata mesajı dil ayarları ile ilgiliydi. Bunu önlemek için sistemin dil ayarlarını tekrar yapılandırmam gerekiyordu. Gerekli adımlar:
{{{
 # su
 # dpkg-reconfigure locales
}}}

Çıkan listede tr UTF8 seçip çıkıyoruz.

Normal  kullanıcı düzeyinde dil seçeneklerini ayarlamak için ise 
{{{
 $set-language-env 
}}}
kullanılır.

!!!Not: 
 Bu işlemleri kullanıcı düzeyindeki komutu kullandığımda Türkçe karakterler konsolda gözükmemeye başladı. Bunu çözümü içim home dizini altındaki bash ayar dosyalarının tamamını sildim ve sistemi tekrar başlattığımda sorun düzelmiş oldu. 
{{{
 $man mount 
}}}
yazdığımda artık Türkçe bir man sayfası beni karşılıyor.
{{{
To do this, I created three directories (mkdir /deb1 /deb2 /deb3).

Add these three lines to /etc/fstab
/dev/hdc /deb1 udf,iso9660 user 0 0
/dev/hda /deb2 udf,iso9660 user 0 0
/dev/hdb /deb3 udf,iso9660 user 0 0

where X in /dev/hdX corresponds to the drive device created by VMware for the dvd isos.

Finally, I added these three lines to /etc/apt/sources.list
deb file:/deb1/ etch contrib main
deb file:/deb2/ etch contrib main
deb file:/deb3/ etch contrib main

That solved my problem, and I hope it solves yours. 
}}}
lenny deposu için 
{{{
deb http://http.us.debian.org/debian testing main contrib non-free
}}}
!Depo eklemenin kolay yolu
{{{
# echo "deb http://ftp.us.debian.org/debian lenny main" >> /etc/apt/sources.list
}}}
{{{
SysReq: Print Screen Tuşudur.
}}}

* Mevcut terminaldeki tüm süreçleri öldürmek
{{{
ALT + SysReq + k
}}}

* Kapanmayan süreçleri zoryarak kapatmak
{{{
ALT + SysReq + i
}}}
* Yeniden başlatmak
{{{
ALT + SysReq + b
}}}
Eğer internet bağlantımız iyi değilse yada internet bağlantımız yoksa  debian dvd lerini bir defa indirip onları yerel depo olarak kullanabiliriz. 
Debian dvdilerini bir yansıdan indiriyoruz.
!Bağlantı Noktaları Oluşturuluyor
İlk önce dvd isolarını bağlayacağımız dizinleri oluşturuyoruz.
{{{
#mkdir /mnt/deb1
#mkdir /mnt/deb2
#mkdir /mnt/deb3
#mkdir /mnt/deb4
}}}

!/etc/fstab dosyası
Her defasında elle bağlamamak için, dvd isolarını fstab içinde tanımlıyoruz. Açılışta, artık otomatik olarak bağlanacaklar. 
{{{
/mnt/yedek/Yedek/isolar/debian-503-i386-DVD-1.iso       /mnt/deb1       iso9660 ro,loop  0 0
/mnt/yedek/Yedek/isolar/debian-503-i386-DVD-2.iso       /mnt/deb2       iso9660 ro,loop  0 0
/mnt/yedek/Yedek/isolar/debian-503-i386-DVD-3.iso       /mnt/deb3       iso9660 ro,loop  0 0
/mnt/yedek/Yedek/isolar/debian-503-i386-DVD-4.iso       /mnt/deb4       iso9660 ro,loop  0 0
}}}

!/etc/apt/source.list
apt-get aracının depo listesine yerel iso depolarımızı ekliyoruz.
{{{
deb file:/mnt/deb1/ lenny contrib main
deb file:/mnt/deb2/ lenny contrib main
deb file:/mnt/deb3/ lenny contrib main
deb file:/mnt/deb4/ lenny contrib main
}}}

! Depo listesini güncelliyoruz
{{{
#apt-get update
}}}
Debian 5.0 Türkçe kurmaya çalışınca kurulum hata veriyor ve sonlanıyordu. İngilizce kurulum yapıllınca herhangi bir sorun ile karşılaçmadım. Sistem inglizce kurulmuş oldu. Dilini sonradan düzeltmek için yapılması gerekenler:
1. İlk önce deneme amaçlı sistemin default dilini öğreniyoruz.
{{{
$ locales
}}}
2. Değiştirmek için
{{{
$su
#dpkg-reconfigure locales
}}}
3.  Bize dillerin bir listesini getiriyor. Buradan ortam için geçerli dili seçiyoruz. Bizim tercihimiz iki tane olacak, öntanımlı Türkçe ve ikinci olarak da ingilizce olacak. Utf-8 tercih ediyoruz sistem için.
{{{
tr_TR.UTF-8
en_EN.UT-8
}}}
Merhaba
/***
|''Name:''|DeprecatedFunctionsPlugin|
|''Description:''|Support for deprecated functions removed from core|
***/
//{{{
if(!version.extensions.DeprecatedFunctionsPlugin) {
version.extensions.DeprecatedFunctionsPlugin = {installed:true};

//--
//-- Deprecated code
//--

// @Deprecated: Use createElementAndWikify and this.termRegExp instead
config.formatterHelpers.charFormatHelper = function(w)
{
	w.subWikify(createTiddlyElement(w.output,this.element),this.terminator);
};

// @Deprecated: Use enclosedTextHelper and this.lookaheadRegExp instead
config.formatterHelpers.monospacedByLineHelper = function(w)
{
	var lookaheadRegExp = new RegExp(this.lookahead,"mg");
	lookaheadRegExp.lastIndex = w.matchStart;
	var lookaheadMatch = lookaheadRegExp.exec(w.source);
	if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
		var text = lookaheadMatch[1];
		if(config.browser.isIE)
			text = text.replace(/\n/g,"\r");
		createTiddlyElement(w.output,"pre",null,null,text);
		w.nextMatch = lookaheadRegExp.lastIndex;
	}
};

// @Deprecated: Use <br> or <br /> instead of <<br>>
config.macros.br = {};
config.macros.br.handler = function(place)
{
	createTiddlyElement(place,"br");
};

// Find an entry in an array. Returns the array index or null
// @Deprecated: Use indexOf instead
Array.prototype.find = function(item)
{
	var i = this.indexOf(item);
	return i == -1 ? null : i;
};

// Load a tiddler from an HTML DIV. The caller should make sure to later call Tiddler.changed()
// @Deprecated: Use store.getLoader().internalizeTiddler instead
Tiddler.prototype.loadFromDiv = function(divRef,title)
{
	return store.getLoader().internalizeTiddler(store,this,title,divRef);
};

// Format the text for storage in an HTML DIV
// @Deprecated Use store.getSaver().externalizeTiddler instead.
Tiddler.prototype.saveToDiv = function()
{
	return store.getSaver().externalizeTiddler(store,this);
};

// @Deprecated: Use store.allTiddlersAsHtml() instead
function allTiddlersAsHtml()
{
	return store.allTiddlersAsHtml();
}

// @Deprecated: Use refreshPageTemplate instead
function applyPageTemplate(title)
{
	refreshPageTemplate(title);
}

// @Deprecated: Use story.displayTiddlers instead
function displayTiddlers(srcElement,titles,template,unused1,unused2,animate,unused3)
{
	story.displayTiddlers(srcElement,titles,template,animate);
}

// @Deprecated: Use story.displayTiddler instead
function displayTiddler(srcElement,title,template,unused1,unused2,animate,unused3)
{
	story.displayTiddler(srcElement,title,template,animate);
}

// @Deprecated: Use functions on right hand side directly instead
var createTiddlerPopup = Popup.create;
var scrollToTiddlerPopup = Popup.show;
var hideTiddlerPopup = Popup.remove;

// @Deprecated: Use right hand side directly instead
var regexpBackSlashEn = new RegExp("\\\\n","mg");
var regexpBackSlash = new RegExp("\\\\","mg");
var regexpBackSlashEss = new RegExp("\\\\s","mg");
var regexpNewLine = new RegExp("\n","mg");
var regexpCarriageReturn = new RegExp("\r","mg");

}
//}}}
JDK'da gelen Apache tarafında geliştirilen bir veritabanıdır. JDK gelmesi, kullanılmasını kolaylaştırır. Eğer netbeans kurulduysa kullanmak çok daha kolaydır. 
Sistemin diğer kısımlarında da kullanmak için classpath ayarlarının yapılması gerekir. Bunun için;
"bash.bashrc" dosyasının sonuna CLASSPATH eklemek gerekmektedir. Örneğin;
{{{
export PATH=$PATH:$DERBY_HOME/bin
}}}
burada $DERBY_HOME dosyanın yukarıda tanımlanması gerekir. Bunun için ise;
{{{
$DERBY_HOME=/usr/lib/jdk/db
}}}
yani java_home altındaki db dizinidir. Konsoldan DERBY kullanmak için [[ij]] aracı kullanılabilir.
Burada bin aslında $PATH değişkenine eklenmesi gerekir.  Derby sürücüsü için ise 
{{{
export $CLASSPATH=$CLASSPATH:$DERBY_HOME/lib/derby.jar
export $CLASSPATH=$CLASSPATH:$DERBY_HOME/lib/derbytools.jar
}}}

Not: 
CLASSPATH veya PATH tanımlanırken delimiter olarak " : " kullanılır.

!!!Derby Driver adı
org.apache.derby.jdbc.EmbeddedDriver
!!!bağlantı sağlamak için
jdbc:derby:<database_adı>
Eğer /lib dizini içerisine bakarsak, içinde {{{.so}}} ve {{{.a}}} uzantılı bir çok dosya görebiliriz. Bunlar C fonksiyonlarının birer kütüphanesidir.

Programların bu tür kütüphenelerini kullanmasının iki tür yolu vardır. Eğer bir programa statik olarak programa bağlarsak, bu kütüphaneler çalıştırılabilir dosyaların içine kopyalanır. .a uzantılı dosyalar bunun içindir. Eğer bir program dinamik olarak bağlanmış ise de, bu program çalıştırılması için bunlara ihtiyaç duyar. Bunlarda .so uzantılı dosyalardır.

[[ldd]] komutu, bize bir programın hangi kütüphanelere ihtiyaç duyar onu bize bildirir.

!Kaynak
http://users.rsise.anu.edu.au/~okeefe/p2b/power2bash/power2bash-5.html
! Fonksiyonlar
* realloc
* malloc
* calloc
>stdlib.h altında tanımlıdırlar. 
!malloc()
{{{
int *pd;
pd = (int *) malloc(miktar * sizeof (int));
}}}
!realloc
realloc işlevi daha önce malloc ya da calloc işlevleriyle elde edilmiş bir bellek bloğunu büyütmek ya da küçültmek için çağrılır.
{{{
pd = (int *) realloc(pd, sizeof(int) * (n + nplus));
}}}
Daha önce pd yeri malloc ile alaınmıştır şimdi büyütülmektedir. 
!calloc
{{{
int *pd;
/***/
pd = (int*) calloc(100, sizeof (int));
}}}
Birinci ile ikinci parametrenin çarpımı kadar heap alanından yer tahisis olur. 

! Elde edilen Alanı Geri Vermek
> tanımı
{{{
void free(void *block);
}}}
> kullanımı
{{{
free(pd);
}}}

* ''rehber'' adlı bir proje oluşturulur bir dizin içerisinde. Bu bulunulan dizin içerisinde rehber projesini oluşturur.
{{{
$ django-admin.py startproject rehber
}}}

* Veritabanı bilgileri girilmesi için ayar dosyası açılır.
{{{
$ vim rehber/settings.py
}}}

* içerikte ilgili kısım şu şekilde düzenlenir
{{{
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': '/home/gurcan/Desktop/python/rehber.dat',                      # Or path to database file if using sqlite3.
        'USER': '',                      # Not used with sqlite3.
        'PASSWORD': '',                  # Not used with sqlite3.
        'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
    }
}
}}}

* Ayarlar ile gerekli veritabanı oluşturulmaı için şu komut çalıştırılır.
{{{
$ ./manage.py syncdb
}}}

* Bir tane uygulama oluşturulur.
{{{
$ ./manage.py startapp index
}}}

* Uygulama aktif olabilmesi için kaydettirilmesi gerekmektedir. 
{{{
$ vim rehber/settings.py
}}}

* İlgili kısım şu şekilde değiştirilir.  Uygulama eklenir.
{{{
INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
     index',

    # Uncomment the next line to enable the admin:
    # 'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
)

}}}

* Gerekli modeller oluşturulur. Bunun için şu dosya açılır.
{{{
$ vim index/models.py 
}}}

* Gerekli değişiklikler yapılır.
{{{
rom django.db import models

class Birim(models.Model):
        isim = models.CharField(max_length=256)

class Bolum(models.Model):
        isim = models.CharField(max_length=256)

class Gorev(models.Model):
        isim = models.CharField(max_length=256)

class Kampus(models.Model):
        isim = models.CharField(max_length=256)

class Oda(models.Model):
        isim = models.CharField(max_length=256)

class Kayit(models.Model):
        isim = models.CharField(max_length=256)
        birim = models.ForeignKey(Birim)
        bolum = models.ForeignKey(Bolum)
        gorev = models.ForeignKey(Gorev)
        kampus = models.ForeignKey(Kampus)
        oda = models.ForeignKey(Oda)
        dahili = models.SmallIntegerField()
        kullaniciadi = models.CharField(max_length=256)

class Admin:
        pass

}}}

* Veritabanı oluşması için şu komut çalıştırılır.
{{{
$ ./manage.py syncdb
}}}

* admin panelini aktifleştirmek için;
{{{
$ vim rehber/settings.py
}}}

* Gerekli yer yorum satırı iptal edilir.
{{{
INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
     'index',
    # Uncomment the next line to enable the admin:
    'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
)
}}}

* admin paneli aktif olması için adres eşleme işlemi gerçekleştirilir.
{{{
$ vim rehber/urls.py 
}}}

* Gerekli yerler düzenlenir. Yorum satıları iptal edilir.
{{{
from django.conf.urls import patterns, include, url

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'rehber.views.home', name='home'),
    # url(r'^rehber/', include('rehber.foo.urls')),

    # Uncomment the admin/doc line below to enable admin documentation:
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
    url(r'^admin/', include(admin.site.urls)),
#     (r'^admin/', include('django.contrib.admin.urls')),                       
)

}}}

* admin paneli için gerekli log tablolarının oluşturulabilmesi için şu komut çalıştırılır.
{{{
$ ./manage.py syncdb
}}}

* Tarayıcıdan admin panelini görmek için sunucu çalıştırılmaya başlanır.
{{{
$ ./manage.py runserver
}}}

* http://127.0.0.1:8000/admin adresi ziyaret edilir.


! Kaynaklar
# django, Can Burak Cilingir, 2007
# The Definitive Guide to django, appress, 2008
# https://groups.google.com/forum/?fromgroups=#!topic/django-users/OTmtdzP2ppA [erişim : 24.8.12]
# http://stackoverflow.com/questions/6185771/nameerroradmin-not-found-in-django [erişim : 24.8.12], 
! Gerekli Kütüphaneler
{{{
#include <iostream>
#include <fstream>
}}}

! isim uzayı
{{{
using namespace std;
}}}
! Okuma Yapmak
{{{
    ifstream fin; // okumak için kullanıyoruz.
    char str[256];

    fin.open("test.txt");
    if (!fin) {
        cout << "Dosya açılamadı..." << endl;
    }
    cout << "Dosyadan okunanlar: " << "\n";
    fin.getline(str, 255);
    cout << str << "\n";
    fin.getline(str, 255);
    cout << str << "\n";

    fin.close();
}}}

! Dosyaya Yazmak
{{{
    ofstream fout;  // yazmak için kullanıyoruz.
    fout.open("test.txt"); // dosya açılıyor.

    if (!fout) {
        cout << "Dosya açılamadı..." << endl;
    }

    // Dosyaya yazılıyor
    fout << "Ad: " << "Gürcan" << "\n"
            << "Yas: " << 24 << "\n";

    // Bağlantı kapatılıyor.
    fout.close();
}}}

!Dosyadan Karakterleri tek tek okumak
{{{
void dosyaCharOku(){
    ifstream fin;
    char ch;
    fin.open("test.txt");

    if(!fin){
        cout << "Dosya okumada hata....";
    }

    cout << "Dosyadan okunanlar: " << endl;
    while(!fin.eof()){
        cout << (char)fin.get();
    }

    fin.close();
}
}}}
! CDT Kurmak
* Gerekli link 
{{{
http://download.eclipse.org/tools/cdt/releases/juno
}}}

! pyDev Kurmak
{{{
http://pydev.org/updates
}}}


! Subclipse
* Marketde kurulumu yapılır ve gerekli paket kurulur
{{{
sudo  apt-get install libsvn-java
}}}

! EGit 
* http://www.vogella.com/articles/EGit/article.html
Ekran görüntüsü almak için gui program kullanılabilir veya konsol program kullanılabilir. Konsolda ekran görüntüsü almak için
* Tüm ekranın görüntüsünü almak için:
{{{
 $gnome-screenshot
}}}

* Sadece bir pencerenin görüntüsünü almak için:
{{{
 $gnome-screenshot --window
}}}

* Belli bir süre bekletmek için:
{{{
 $gnome-screenshot --window --delay 5 
}}}
!Ekran çözünürlüğünü büyütmek.
{{{CTRL+ALT+"+}}}
> LCD ekranlardan Out of Range hatası meydana geldiğinde yararlı olabiliyor.

!Alıntı
{{{
You are welcome. I am not sure but it seems there is a problem with the Ubuntu splash screen resolution. I am also using Gutsy and my default splash screen had a very high resolution by default.
The file to change is:

/etc/usplash.conf

Mine looks like this:
# Usplash configuration file
xres=1024
yres=768

Can you start with editing this file, first backing up the original just in case with:
sudo cp /etc/usplash.conf /etc/usplash.bak

Then edit it with:
gksu gedit /etc/usplash.conf

and change the resolution as
xres=800
yres=600
}}}
{{{
M-x goto-line
}}}
yazmak zor olmaktadır. 
* Daha kısa yol için
{{{
M-g-g
}}}

! Kaynaklar
[1] http://www.stylesen.org/emacs_goto_line
	Emacs te öntanımlı olarak gelen c-set ayarlarını öntanımlı olarak ayarlamak için ilk önce:

	      	M-x customize
diyerek ayarların bulunan ayarlar menusu getirelim.

Bu ayarlar menusude "Programminig > languages > C > C Default Style" alt grubuna gidiyoruz.

burada C/C++ ayyarlarına "k&r" modunu seçip diğer oturumlar için de kaydederek çıkıyoruz.
! Kullanım
* M-x outline-minor-mode
* M-x hide-other
* Fonksiyonları daraltmak : M-x show-subtree
* Bütün fonksiyonları açmak : M-x show-all

! Kaynaklar
# http://mytechrants.wordpress.com/2009/01/05/emacs-tip-of-the-day-collapsing-functions/
modeline:
       Modeline kısmın(altaki mini bufferın üstündeki çizgi) rengini değiştirmek için
		M-x apropos: modeline
yazıp gelen kısımda

             Foreground: Value Menu Color: AntiqueWhite  (sample)
	     Background: Value Menu Color: LightSlateGray  (sample)
şekline getiriyoruz.

toolbar:
	toolbarıda yularıdaki gibi modifeye ediyoruz.

{{{

C = Control
M = Meta = Alt|Esc

Basics
C-x C-f "find" file i.e. open/create a file in buffer
C-x C-s save the file
C-x C-w write the text to an alternate name
C-x C-v find alternate file
C-x i insert file at cursor position
C-x b create/switch buffers
C-x C-b show buffer list
C-x k kill buffer
C-z suspend emacs
C-X C-c close down emacs

Basic movement
C-f forward char
C-b backward char
C-p previous line
C-n next line
M-f forward one word
M-b backward one word
C-a beginning of line
C-e end of line
C-v one page up
M-v scroll down one page
M-< beginning of text
M-> end of text

Editing
M-n repeat the following command n times
C-u repeat the following command 4 times
C-u n repeat n times
C-d delete a char
M-d delete word
M-Del delete word backwards
C-k kill line

C-Space Set beginning mark (for region marking for example)
C-W "kill" (delete) the marked region region
M-W copy the marked region
C-y "yank" (paste) the copied/killed region/line
M-y yank earlier text (cycle through kill buffer)
C-x C-x exchange cursor and mark

C-t transpose two chars
M-t transpose two words
C-x C-t transpose lines
M-u make letters uppercase in word from cursor position to end
M-c simply make first letter in word uppercase
M-l opposite to M-u

Important
C-g quit the running/entered command
C-x u undo previous action
M-x revert-buffer RETURN (insert like this) undo all changes since last save
M-x recover-file RETURN Recover text from an autosave-file
M-x recover-session RETURN if you edited several files

Online-Help
C-h c which command does this keystroke invoke
C-h k which command does this keystroke invoke and what does it do?
C-h l what were my last 100 typed keys
C-h w what key-combo does this command have?
C-h f what does this function do
C-h v what's this variable and what is it's value
C-h b show all keycommands for this buffer
C-h t start the emacs tutorial
C-h i start the info reader
C-h C-k start up info reader and go to a certain key-combo point
C-h F show the emacs FAQ
C-h p show infos about the Elisp package on this machine

Search/Replace
C-s Search forward
C-r search backward
C-g return to where search started (if you are still in search mode)
M-% query replace

    Space or y replace this occurence
    Del or n don't replace
    . only replace this and exit (replace)
    , replace and pause (resume with Space or y)
    ! replace all following occurences
    ^ back to previous match
    RETURN or q quit replace


Search/Replace with regular expressions
Characters to use in regular expressions:
^ beginning of line
$ end of line
. single char
.* group or null of chars
\< beginning of a word
\> end of a word
[] every char inside the backets (for example [a-z] means every small letter)

M C-s RETURN search for regular expression forward
M C-r RETURN search for regular expression backward
M C-s incremental search
C-s repeat incremental search
M C-r incremental search backwards
C-r repeat backwards
M-x query-replace-regexp search and replace

Window-Commands
C-x 2 split window vertically
C-x o change to other window
C-x 0 delete window
C-x 1 close all windows except the one the cursors in
C-x ^ enlarge window
M-x shrink-window command says it ;-)
M C-v scroll other window
C-x 4 f find file in other window
C-x 4 o change to other window
C-x 4 0 kill buffer and window
C-x 5 2 make new frame
C-x 5 f find file in other frame
C-x 5 o change to other frame
C-x 5 0 close this frame

Bookmark commands
C-x r m set a bookmark at current cursor pos
C-x r b jump to bookmark
M-x bookmark-rename says it
M-x bookmark-delete "
M-x bookmark-save "
C-x r l list bookmarks

    d mark bookmark for deletion
    r rename bookmark
    s save all listed bookmarks
    f show bookmark the cursor is over
    m mark bookmarks to be shown in multiple window
    v show marked bookmarks (or the one the cursor is over)
    t toggle listing of the corresponding paths
    w " path to this file
    x delete marked bookmarks
    Del ?
    q quit bookmark list


M-x bookmark-write write all bookmarks in given file
M-x bookmark-load load bookmark from given file

Shell
M-x shell starts shell modus
C-c C-c same as C-c under unix (stop running job)
C-d delete char forward
C-c C-d Send EOF
C-c C-z suspend job (C-z under unix)
M-p show previous commands

DIRectory EDitor (dired)
C-x d start up dired
C (large C) copy
d mark for erase
D delete right away
e or f open file or directory
g reread directory structure from file
G change group permissions (chgrp)
k delete line from listing on screen (don't actually delete)
m mark with *
n move to next line
o open file in other window and go there
C-o open file in other window but don't change there
P print file
q quit dired
Q do query-replace in marked files
R rename file
u remove mark
v view file content
x delete files marked with D
z compress file
M-Del remove all marks (whatever kind)
~ mark backup files (name~ files) for deletion
# mark auto-save files (#name#) for deletion
*/ mark directory with * (C-u * removes that mark again)
= compare this file with marked file
M-= compare this file with it's backup file
! apply shell command to this file
M-} change to the next file marked with * od D
M-{ " previous "
% d mark files described through regular expression for deletion
% m " (with *)
+ create directory
> changed to next dir
< change to previous dir
s toggle between sorting by name or date

Maybe into this category also fits this command:
M-x speedbar starts up a separate window with a directory view

Telnet
M-x telnet starts up telnet-modus
C-d either delete char or send EOF
C-c C-c stop running job (similar to C-c under unix)
C-c C-d send EOF
C-c C-o clear output of last command
C-c C-z suspend execution of command
C-c C-u kill line backwards
M-p recall previous command

Text
Works only in text mode
M-s center line
M-S center paragraph
M-x center-region name says

Macro-commands
C-x ( start macro definition
C-x ) end of macro definition
C-x e execute last definied macro
M-n C-x e execute last defined macro n times
M-x name-last-kbd-macro give name to macro (for saving)
M-x insert-keyboard-macro save named macro into file
M-x load-file load macro
M-x macroname execute macroname

Programming
M C-\ indent region between cursor and mark
M-m move to first (non-space) char in this line
M-^ attach this line to previous
M-; formatize and indent comment
C, C++ and Java Modes
M-a beginning of statement
M-e end of statement
M C-a beginning of function
M C-e end of function
C-c RETURN Set cursor to beginning of function and mark at the end
C-c C-q indent the whole function according to indention style
C-c C-a toggle modus in which after electric signs (like {}:';./*) emacs does the indention
C-c C-d toggle auto hungry mode in which emacs deletes groups of spaces with one del-press
C-c C-u go to beginning of this preprocessor statement
C-c C-c comment out marked area
More general (I guess)
M-x outline-minor-mode collapses function definitions in a file to a mere {...}
M-x show-subtree If you are in one of the collapsed functions, this un-collapses it
In order to achive some of the feats coming up now you have to run etags *.c *.h *.cpp (or what ever ending you source files have) in the source directory
M-. (Thats Meta dot) If you are in a function call, this will take you to it's definition
M-x tags-search ENTER Searches through all you etaged
M-, (Meta comma) jumps to the next occurence for tags-search
M-x tags-query-replace yum. This lets you replace some text in all the tagged files


GDB (Debugger)
M-x gdb starts up gdm in an extra window

Version Control
C-x v d show all registered files in this dir
C-x v = show diff between versions
C-x v u remove all changes since last checkin
C-x v ~ show certain version in different window
C-x v l print log
C-x v i mark file for version control add
C-x v h insert version control header into file
C-x v r check out named snapshot
C-x v s create named snapshot
C-x v a create changelog file in gnu-style
}}}
!Emacs Kısa yolları
C-g anlamı "control" tuşuna basılı tut ve "g" bas.
Bu komutu verilmiş komutu iptal eder.

M-w anlamı "Alt" tuşuna basılı tut ve "w" bas.

"C-x C-c" Emacsten çıkar.

"shift-farenin sol tuşu"  yazı tipii değiştirme menüsü getirir.

!Hareket Etmek
# Yön tuşlarıyla
# C-a Satır başına gider 
# C-e Satır Sonuna Gider
# M-< Dosyanın başına gider 
# M-> Dosyanın sonuna gider
# M-x goto-line n  n inci satıra gider

!Pencereler
# C-x 2 Pencereyi yatay olarak böler
# C-x 3 Pencereyi dikey olarak böler
# C-x o Pencereler arası hareket eder.
# C-x 0 Mevcut Pencereyi siler
# C-x 1 Bir pencere dışında diğerlerini siler

!Dosyalar
# C-x f Dosyayı bulur
# C-x i Dosyayı ekler
# C-x s Dosyayı siler
# C-x w Dosyayı Farklı Kaydeder
# C-x d Dizinin içeriğini listeler
# C-x C-d Dizinin içeriği listeler

!Buffer
# C-x b Diğer bufferı seçer.
# C-x C-b Diğer bufferları listeler
# C-x k Mevcut bufferları kapatır

!Kopyalama & Format işlemleri
# C-k kapat ve mevcut satırı kaydet
# C-w seçilmiş alanı kapatır
# C-space alanı seçer
# C-x x seçilmiş alanın başına yada sonuna gider
# M-w seçilmiş alanı  kaydeder
# C-y yapıştırır
# C-x u geri al
# M-q format paragraph

!Ara & Yerleştir
# C-s girilen kelimeyi ileriye doğru arar
# C-r girilen kelimeyi geriye doğru arar
# C-x % ara girilen kelimeyi yerleştir
# C-M-s düzenli ifadeyi ileriye doğru arar
# C-M-r düzenli ifadeyi geriye doğru arar  
! ls -l Problemi
ls -l yapıldığında kabuğun renk desteğinden kaynaklanan bozuk karakter gösteriminin çözümü:
[[.emacs]] dosyasına aşağıdaki satırları ekliyoruz:
{{{
(autoload 'ansi-color-for-comint-mode-on "ansi-color" nil t)
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
}}}
İstenmeyen bozuk karakterler Emacs yeniden açıldığında kaybolmuş oluyor.
! Karakter büyütmek
.emacs dosyasına ekleme yapıyoruz.
{{{
(set-face-attribute 'default nil :height 100)
}}}
100 demek 10 pt eşittir.
! Kullanım
* Değiştirilecek stringi girmek : M-x query-replacec
* Yer Değiştirmek için : <space> yada y
* Yer Değiştirmeden atlamak için : n
* Bütün hepsini değiştirmek için : !

! Kaynaklar
# 
Emacs jdk'nin altında bulunana binary dosyaları kendi shellinde çalıştırması için ilk önce 
 {{{M-x apropos path}}}

çıkan listede "{{{exec path}}}" kısmına gelip onu custimize ediyoruz. jdk nın bulunduğu dizini burdaki path e ekliyoruz.
öğrenmek için:
{{{
history|awk '{print $2}'|awk 'BEGIN {FS="|"} {print $1}'|sort|uniq -c|sort -rn|head -10
}}}
sonuçlar ise:
     76 g++
     60 ./ornek
     56 man
     55 ls
     31 gcc
     27 unrar
     26 clear
     25 cd
     14 killall
     12 ./senk
!FCFS
First come first served = İlk gelene ilk servis yapılır.
# Kesintisiz
# İlk gelen süreç ilk hizmeti alır
> turnaraoundtime bulunarak algoritma değerlendirilebilir. Süreçlerin gecikme süreleri toplanarak ortalaması alınması bize bu süreyi verir. 
!Amaç 
Faktoriyel hesabı yapan rekürsif bir fonksiyon yazmak:
! Kod
{{{
int factoriyelHesabi(int sayi) {
    if (sayi == 0 || sayi == 1)
        return 1;
    else
        return (sayi * factoriyelHesabi(sayi - 1));
}
}}}
! Gerekli Paketler
http://tr-spell.googlecode.com/files/firefox-tr-dict-v0.3.2.xpi xpi uzantılı dosyayı bir yere kaydediyoruz. 
! Kurulum
* Firefox'u açın. Dosya->Dosya Aç ya da File->Open File seçeneğini seçin.
* İndirdiğiniz dosyayı secin. Otomatik olarak Firefox eklentisinin yüklenmesi gerekir.
* Firefox'u tekrar başlatın. 
> Eğer etkin hale gelmediyse Edit > Preferences kısmındaki dil bölümünden Türkçe ekliyoruz ve yukarıya taşıyoruz. 
! Kaynak
[1] http://zembereknlp.blogspot.com/
Çeşitli Firefox protocolleri:
{{{
    * about:
    * about:blank
    * about:bloat
    * about:buildconfig
    * about:cache
    * about:config
    * about:crashes (only Firefox 3)
    * about:credits
    * about:logo
    * about kitchensink
    * about:license
    * about:mozilla
    * about:plugins
    * about:robots
}}}
ilk önce runlevel sayısını öğrenmemiz gerekiyor.
! Runlevel öğrenmek
{{{
# cat /etc/inittab | "grep default"
}}}
benim sistemimde bu 2 dir. Çeşitli runlevel seviyeleri vardır. Bunlardan, 2-5 çok kullanıcılı sistemi temsil etmektedir.

! gdm iptal etmek
Numarayı öğrendikten sonra bu sayıyı iptal etmeye geldi sıra.  Sistem açıldığında, bu sayı ile ilişkili bir dizindeki scriptler çalıştırılarak sistem açıldığında çalıştırılacak servisler başlatılıyor. Benim makinamda
{{{
/etc/rc2.d
}}}
olarak belirlenmiştir. Bunun altında çeşitli scriptler bulunmaktadır.  gdm ile ilgli olan script S30gdm dir. 
{{{
# mv S30gdm s30gdm
}}}
olan scriptin adını değiştiriyor ve yaparak gdm çalışmasını iptal ediyoruz.
! Elle gdm Çalıştırmak
{{{
# startx
}}}
gdm komut satırında yukarıdaki komut yardımıyla, çalıştırılıyor. 
!Tekrar Aktif Hale Getirmek
case-sensitive olduğundan dolayı, S ile s birbirnden farklı iki dosya meydana getiriyor. Hizmetimiz, dosya eski haline getirilince çalışmaya başlıyor.
{{{
mv s30gdm S30gdm
}}}

>Aslında rc2.d dizini altındaki dosyalar, [[/etc/init.d]] dizinindeki betik dosyalarına birer sembolik linktir sadece. rc2.d altındaki dosyaları iptal etmek istersek onu silebilirzde daha sonra ihtiyaç halinde tekrar link oluşturarak aktif halede getirebiliriz.
{{{
grub-install --root-directory=/dev/sda1 /dev/sda
}}}

! Grub2 Süre Değişimi
*  /etc/default/grub dosyası açılır.
{{{
# vim /etc/default/grub
}}}
* Aşağıdaki satır istenilen süre ile değiştirilir.
{{{
GRUB_TIMEOUT=5
}}}
* Ayarların aktif olması için aşağıdaki komut çalıştırılır.
{{{
# update-grub
}}}

! Sıralama Değiştirme
{{{
# vim /etc/default/grub
}}}
* istenilen işletim sistemi sırası girilir
{{{
GRUB_DEFAULT=0
}}}

! Kaynaklar
http://www.unixmen.com/how-to-change-the-default-boot-order-for-grub2-in-ubuntu-1004-and-ubuntu-1010-maverick-meerkat/
GA doğadaki evrim yöntemlerini kullanan bir arama yöntemidir. 
> GA yöntemi ilk olarak, John Holland ve arkadaşlarının yaptığı çalışmalarda 1970’li yıllarda ortaya çıkmıştır
! Nedir?
GA’nın temel amacı, fazla sayıda kısıt içeren ve karmaşık eniyileme sorunlarının çözümlerini, yazılımlar yardımıyla araştırmaktır. GA, rastsal arama tekniklerini kullanarak çözüm bulmaya çalışan, parametre kodlama esasına dayanan bir arama tekniğidir
> Genetik algoritmalar problemlerin çözümü için evrimsel süreci bilgisayar ortamında taklit ederler
! Kullanım Alanları
* Hat dengeleme
* Yapay sinir ağları
* Görüntü işleme
* Gezgin satıcı problemi (TSP)
* Eniyileme yöntemleri
To get started with this blank TiddlyWiki, you'll need to modify the following tiddlers:
* SiteTitle & SiteSubtitle: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* MainMenu: The menu (usually on the left)
* DefaultTiddlers: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
! Tanım
Getty is the program that enables you to log in through a serial device such as a virtual terminal, a text terminal, or a modem. It displays the login prompt.
İki parçadan oluşur:
# Aygıtın Kendisi
# Controller
> aygıt üzerinde bulunan bir çiptir. İşletim sistemi tarafından haberleşilir. Bu işlemi yapan yazılıma aygıt sürücüsü denir.
!Email Adres:
         <mail_adresi>@gmail.com
!Sunucu Türü
          POP
!Sunucu 
          pop.gmail.com
!Güvenli Bağlantı kullan
          SSL
!ileti gönderiliyor
     Sunucu tür SMTP
!Sunucu
      smtp.gmail.com
!Güvenli bağlantı
        SSL


!Minimal gnome kurulumu
{{{
#apt-get install x-window-system-core gdm gnome-core
}}}
Yapılmasını istediğimiz işleri bir tane .sh dosyasına kaydediyoruz. Bunu çalıştırılabilir bir dosya haline getiriyoruz ve bunu 
{{{ ~/.gnome2/nautilus-scripts }}} altına kopyalıyoruz. Oluşturduğumuz script hemen sağ tıkladığımızda ortaya çıkıyor. Kopyaladığımız altına dizin oluşturdukça scripts altına yeni menu grupları oluşacak.
Gnome de bulunan iki tane süpriz yumurta görmek için

!!! 1. oyun
Bunun için  ilk önce Alt+F2 ile çalıştır penceresini açıyoruz.
{{{ gegls from outer space }}}
yazıyoruz. Ve oyuna başlıyoruz.

!!! 2. masaüstünde dolaşan balık
ilk önce Alt+F2 ile çalıştır penceresini açıyoruz.
{{{ free the fish }}} yazıyoruz. Masaüstünde doloşan bir balık çıkıyor.
Usb için gönder kısmını eklemek için ilk http://www.gdr-exiles.com/nautilus/ adresinden sendto kısmından scriptti indiriyoruz. 
{{{
~/.gnome2/nautilus-scripts
}}}
altına kopyalayıp çalıştırılabilir yapıyoruz.
{{{
chmod a +x
}}}
! Nedir?
Pig interactive shelldir. 
! Local Mode Çalıştırmak
{{{
gurcan@yavuz:~/Desktop/workPig$ pig -x local
}}}
! Örnek
{{{
grunt> A = load 'passwd' using PigStorage(':'); 
grunt> B = foreach A generate $0 as id; 
grunt> dump B; 
grunt> store B; 
}}}
grunt shell kullanarak yukarıdaki adımları icra ediyoruz. Yukarıda örnek dosya  olarak /etc/passwd dosyası kullanılıyor. İlk önce bu dosya bulunulan dizine kopyalıyoruz. Yukarıdaki kod parçası passwd dosyası içerisindeki tüm kullanıcı idlerini alıyor.
!Paket depo adresleri
{{{
deb http://buildd.emdebian.org/debian/ unstable main
deb-src http://buildd.emdebian.org/debian/ unstable main
deb http://buildd.emdebian.org/debian/ testing main
deb-src http://buildd.emdebian.org/debian/ testing main
deb http://buildd.emdebian.org/debian/ lenny main
deb-src http://buildd.emdebian.org/debian/ lenny main
}}}

! Gerekli Paketler Kurulumu
{{{
libc6-mips-cross libc6-dev-mips-cross binutils-mips-linux-gnu 
gcc-4.3-mips-linux-gnu
}}}
! Local Mode için Örnek
local modda çalışan gömülü programlar için örnek java kodu:  
* idlocal.java
{{{
import java.io.IOException;
import org.apache.pig.PigServer;
public class idlocal{ 
public static void main(String[] args) {
try {
    PigServer pigServer = new PigServer("local");
    runIdQuery(pigServer, "passwd");
    }
    catch(Exception e) {
    }
 }
public static void runIdQuery(PigServer pigServer, String inputFile) throws IOException {
    pigServer.registerQuery("A = load '" + inputFile + "' using PigStorage(':');");
    pigServer.registerQuery("B = foreach A generate $0 as id;");
    pigServer.store("B", "id.out");
 }
}
}}}
! Derleme
* İlk önce gerekli bağılıkları içeren jar dosyasını bulunduğumuz yani java kodunun  bulunduğu dizine kopyalıyoruz. 
{{{
$ cp $PIG_HOME/pig-0.6.0-core.jar .
}}}
* kodu derleme
{{{
gurcan@yavuz:~/Desktop/pig/workspace$ javac -cp pig-0.6.0-core.jar idlocal.java 
}}}
* oluşturulan class dosyanı çalıştırmak:
{{{
gurcan@yavuz:~/Desktop/pig/workspace$ java -cp pig-0.6.0-core.jar:. idlocal 
10/05/14 12:10:44 INFO executionengine.LocalPigLauncher: Successfully stored result in: "id.out"
10/05/14 12:10:44 INFO executionengine.LocalPigLauncher: Records written : 34
10/05/14 12:10:44 INFO executionengine.LocalPigLauncher: Bytes written : 217
10/05/14 12:10:44 INFO executionengine.LocalPigLauncher: 100% complete!
10/05/14 12:10:44 INFO executionengine.LocalPigLauncher: Success!!
}}}
! MapReduce Mode için Örnek
ilk önce hadoop conf dizini yolu belirtiliyor.
{{{
$ export HADOOPDIR=$HADOOP_INSTALL/conf
}}}
* java kodu idmapreduce.java:
{{{
import java.io.IOException;
import org.apache.pig.PigServer;
public class idmapreduce{
   public static void main(String[] args) {
   try {
     PigServer pigServer = new PigServer("mapreduce");
     runIdQuery(pigServer, "passwd");
   }
   catch(Exception e) {
   }
}
public static void runIdQuery(PigServer pigServer, String inputFile) throws IOException {
   pigServer.registerQuery("A = load '" + inputFile + "' using PigStorage(':');")
   pigServer.registerQuery("B = foreach A generate $0 as id;");
   pigServer.store("B", "idout");
   }
}
}}}
* kodu derlemek:
{{{
$ javac -cp pig-0.6.0-core.jar idmapreduce.java
}}}
* oluşturulan class dosyanı çalıştırmak:
{{{
gurcan@yavuz:~/Desktop/pig/workspace$ java -cp pig-0.6.0-core.jar:. idmaprecude
}}}
! Kaynaklar
[1] http://hadoop.apache.org/pig/docs/r0.6.0/
! Dosya Sistemleri
* JFFS2
* UBIFS
* SquashFS  ve cramfs read-only kısımlar için dosya sistemleridir. tmpfs dosya sistemide geçici dosyalar içindir. 
! Native compiling on different platforms:
*endianness, word size, alignment, sign of char, optimizations
*nommu is its own can of worms: stack, malloc, vfork, mmap
*x86 is the common case, but this changes to x86-64 soon.
*Neither intel nor amd making x86 outside of embedded space anymore.
        Once current inventory sold, it's all 64-bit from here.
! Açılımı
Hadoop File System
> Aşağıdaki örneklerde hadoop path tanımlanmış olduğu kabul edilmiştir. 
! Dosya Sistemi İşlemleri
* Dosya sistemini formatlamak:
{{{
$ hadoop namenode --format
}}}
* clusterdaki dosyaları listelemek
{{{
hadoop@yavuz:~$ hadoop fs -ls /
Found 3 items
drwxr-xr-x   - hadoop supergroup          0 2010-06-04 23:22 /deneme
drwxr-xr-x   - hadoop supergroup          0 2010-06-04 23:24 /pi
drwxr-xr-x   - hadoop supergroup          0 2010-06-04 22:04 /tmp
}}}
* hdfs de dosya oluşturmak
{{{
hadoop@yavuz:~$ hadoop fs -mkdir test
}}}
* Dosyayı silmek
{{{
hadoop@yavuz:~$ hadoop fs -rmr test
Deleted hdfs://master:9000/user/hadoop/test
}}}
* local sistemden HDFS sistemine dosya kopyalamak
{{{
hadoop@yavuz:~/workspace$ hadoop fs -put /etc/passwd input
}}}
* HDFS de metin dosyanın içerini ekrana basmak 
{{{
hadoop@yavuz:~/workspace$ hadoop fs -cat input/passwd
}}}
* HDFS de sonuçlarını local sisteme almak
{{{
hadoop@yavuz:~/workspace$ hadoop fs -get input/passwd out
}}}
Hadoop, Doug Cutting tarafından yapıldı. 
Bir HDFS cluster, usta-işçi şablonunda iki tip düğüm vardır: Bir namenode (usta) ve datanodelar (işciler). namenode, dosya sistemi isim uzayını yönetir. dosya sistem ağacını ve dosyalara ve dizinlere ait meta bilgilerini yönetir. Bu bilgi, iki tür dosyada yerel disk üzerinde kalıcı olarak kaydedilir. isim uzayı image ve düzenleme logları.

Datanodelar, dosya sisteminin iş gücünü oluşturur.  Kendilerine söylendiğinde, blokları kaydeder veya onları geri elde eder, namenode peryodik olarak blokların listesini raporunu verir. 
> namenode olmadan, dosya sistemi kullanılamaz. 
 
! Ayar Dosyaları
Hadoop ayarları  iki tip ayar dosyaları ile yönetilmektedir:
# Öntanımlı read-only ayar dosyaları:  src/core/core-default.xml, src/hdfs/hdfs-default.xml ve src/mapred/mapred-default.xml.
# Siteye özel ayar dosyaları: conf/core-site.xml, conf/hdfs-site.xml ve conf/mapred-site.xml.

* One of the most common uses for Hadoop is in Web search.
* It's also used as the core of a variety of search engines, such as Amazon's A9 and Able Grape's vertical search engine for wine information
* New York Times used Hadoop 
Hadoop kurulumu Debian 5  üzerinde gerçekleştirilmiştir.  

! Hadoop Nedir?
Hadoop is an open source system that allows you to use a cluster of machines to solve a single problem using the MapReduce algorithm.
! Gerekli Paketler 
# hadoop core paketi. http://hadoop.apache.org/core/releases.html sitesinden hadoop en güncel paketini indiriyoruz.  
# java kurulumunu yapıyoruz.
# ssh da  gereklidir.
!Paket açılıyor
{{{
$ tar xzf hadoop-0.20.1.tar.gz
$ ln -s hadoop-0.20.1 hadoop
}}}
! Gerekli Paketler Kuruluyor
{{{
# apt-get install ssh
# apt-get install rsync
}}}
sun jdk kurulumu için [[bakınız|Sun JDK Kurulumu]]
{{{
$ vim ~/.bashrc
}}}
aşağıdaki satırları ekliyoruz
{{{
export HADOOP_INSTALL=/home/gurcan/bin/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
}}}
bash tekrar başlatıyoruz. Ve yaptığımız ayarları geçerli olmuş mu bakıyoruz.
! Ortam Değişken Ayarları
hadoop dizini altında conf/hadoop-env.sh dosyasında java_home yeri belirleniyor.
{{{
export JAVA_HOME=/usrlib/jdk
}}}

! Ayarlamalar
* vim $HADOOP_INSTALL/conf/core-site.xml dosyasına eklemeler yapıyoruz:
{{{
<configuration>
        <property>
                <name>fs.default.name</name>
                <value>hdfs://localhost:9000</value>
        </property>
</configuration>
}}}

* vim $HADOOP_INSTALL/conf/hdfs-site.xml dosyasına eklemeler yapıyoruz:
{{{
<configuration>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>
</configuration>
}}}

* vim $HADOOP_INSTALL/conf/mapred-site.xml dosyasına eklemeler yapıyoruz:
> JobTracker ait host ve ip bilgileri tanımlanıyor.
{{{
<configuration>
        <property>
                <name>mapred.job.tracker</name>
                <value>localhost:9001</value>
        </property>

</configuration>
}}}

! ssh şifre istemesi maskelemek
{{{
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
}}}

! Çalıştırmak
* yeni bir dağıtık sistem formatlamak:
{{{
$ hadoop namenode -format
}}}
* hadoop deamonları başlatmak:
{{{
$ start-all.sh
}}}
* NameNode ve  JobTracker için web arayüzünü görmek için:

>NameNode - http://localhost:50070/
>JobTracker - http://localhost:50030/

* giriş dosyalarını dağıtık dosya sistemine kopyalıyoruz:
{{{
$ bin/hadoop fs -put conf input
}}}
* Bazı örnekleri çalıştırıyoruz.
{{{
$ hadoop jar hadoop-0.20.1-examples.jar grep input output 'dfs[a-z.]+'
}}}
* Sonuçları Kontrol ediyoruz:
{{{
$ hadoop fs -get output output
$ cat output/*
}}}
! Daemonları durdurmak
{{{
$ stop-all.sh
}}}

! Paketden kurulum (ubuntu için)
{{{
deb http://archive.cloudera.com/debian intrepid-stable contrib
deb-src http://archive.cloudera.com/debian intrepid-stable contrib 
}}}
/etc/apt/source.list dosyasına yukarıdaki satırları ekliyoruz.
{{{
# apt-get update
# apt-get install hadoop
}}}
!hadoop kurulmuş mu?
{{{
$ hadoop version
}}}
!Örnek Uygulama Denemek
{{{
$ hadoop jar ~/bin/hadoop/hadoop-0.19.0-examples.jar pi 2 10
}}}
Örneğin amacı: A MapReduce program that estimates pi using the Monte Carlo method
Hadoop kurulumu Debian 5  üzerinde gerçekleştirilmiştir.
> single-node cluster kurulumudur.  

! Hadoop Nedir?
Hadoop is an open source system that allows you to use a cluster of machines to solve a single problem using the MapReduce algorithm.
! Gerekli Paketler 
# hadoop core paketi. http://hadoop.apache.org/core/releases.html sitesinden hadoop en güncel paketini indiriyoruz.  
# java kurulumunu yapıyoruz.
# ssh da  gereklidir.
! Java Kurulumu?
{{{
gurcan@yavuz:~$ java -version
java version "1.6.0_12"
Java(TM) SE Runtime Environment (build 1.6.0_12-b04)
Java HotSpot(TM) Client VM (build 11.2-b01, mixed mode, sharing)
}}}
Yukarıdaki gibi bir çıktı görmüyorsak java kurulu değildir.
! Gerekli Paketler Kuruluyor
* Hadoop ihtiyaç duyduğu paketleri sistemimize kuruyoruz.
{{{
# apt-get install ssh
# apt-get install rsync
}}}
sun jdk kurulumu için [[bakınız|Sun JDK Kurulumu]]

! Hadoop kullanıcısı oluşturma
Hadoop özel bir kullanıcı oluşturuyoruz. 
{{{
yavuz:/home/gurcan# adduser hadoop
}}}
* hadoop kullanıcısının home dizini alıtında binary dosyaların koyulacağı bin adlı bir dizin oluşturuyoruz.
{{{
hadoop@yavuz:~$ mkdir bin
}}}

!Paket açılıyor
{{{
$ tar xzf hadoop-0.20.1.tar.gz
$ ln -s hadoop-0.20.1 hadoop
}}}
oluşturduğumuz bin dizini altına, indirdiğimiz hadoop tarball dosyasını kopyalayıp açıyoruz. Kolayca ulaşmak için sembolik link oluşturuyoruz.

* Hadoop için gerekli path ayarlarını yapma için aşağıdaki işlemleri uyguluyoruz. 
{{{
$ vim ~/.bashrc
}}}
.bashrc dosyasını bir editor yardımıyla açıp  (benim tercihim vim oldu. Siz 'gedit'  veya 'emacs' ile de aynı işlemi yapabilirsiniz.) aşağıdaki satırları ekliyoruz
{{{
export HADOOP_INSTALL=/home/hadoop/bin/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
}}}
bash tekrar başlatıyoruz. Bash tekrar başlatılığında $HADOOP_INSTALL/bin altındaki scriptleri artık path belirtmeden kullanabilir hale geliyoruz.

! Ortam Değişken Ayarları
hadoop dizini altında conf/hadoop-env.sh dosyasında java_home değişkenini tanımlıyoruz. Burada java daha önce kurduğumuz yerini yolu belirtiyoruz.
{{{
export JAVA_HOME=/usr/lib/jdk
}}}

! Ayarlamalar
* vim $HADOOP_INSTALL/conf/core-site.xml dosyasına eklemeler yapıyoruz:
{{{
<configuration>
        <property>
                <name>fs.default.name</name>
                <value>hdfs://localhost:9000</value>
        </property>
</configuration>
}}}

* vim $HADOOP_INSTALL/conf/hdfs-site.xml dosyasına eklemeler yapıyoruz:
{{{
<configuration>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>
</configuration>
}}}

* vim $HADOOP_INSTALL/conf/mapred-site.xml dosyasına eklemeler yapıyoruz:
> JobTracker ait host ve ip bilgileri tanımlanıyor.
{{{
<configuration>
        <property>
                <name>mapred.job.tracker</name>
                <value>localhost:9001</value>
        </property>

</configuration>
}}}

! ssh şifre istemesi maskelemek
{{{
$ ssh-keygen -t rsa   -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
}}}
* Yol 2
{{{
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
}}}

! Çalıştırmak
* yeni bir dağıtık sistem formatlamak:
{{{
$ hadoop namenode -format
}}}
* hadoop deamonları başlatmak:
{{{
$ start-all.sh
}}}
* NameNode ve  JobTracker için web arayüzünü görmek için:

>NameNode - http://localhost:50070/
>JobTracker - http://localhost:50030/

* giriş dosyalarını dağıtık dosya sistemine kopyalıyoruz:
{{{
$ bin/hadoop fs -put conf input
}}}
* Bazı örnekleri çalıştırıyoruz.
{{{
$ hadoop jar hadoop-0.20.1-examples.jar grep input output 'dfs[a-z.]+'
}}}
* Sonuçları Kontrol ediyoruz:
{{{
$ hadoop fs -get output output
$ cat output/*
}}}
! Daemonları durdurmak
{{{
$ stop-all.sh
}}}

! Paketden kurulum (ubuntu için)
{{{
deb http://archive.cloudera.com/debian intrepid-stable contrib
deb-src http://archive.cloudera.com/debian intrepid-stable contrib 
}}}
/etc/apt/source.list dosyasına yukarıdaki satırları ekliyoruz.
{{{
# apt-get update
# apt-get install hadoop
}}}
!hadoop kurulmuş mu?
{{{
$ hadoop version
}}}
!Örnek Uygulama Denemek
{{{
$ hadoop jar ~/bin/hadoop/hadoop-0.19.0-examples.jar pi 2 10
}}}
Örneğin amacı: A MapReduce program that estimates pi using the Monte Carlo method
! Kaynaklar
[1] http://www.michael-noll.com/wiki/Running_Hadoop_On_Ubuntu_Linux_%28Single-Node_Cluster%29
[2] http://cakirhal.blogspot.com/2009/06/hadoop-uygulamalarna-giris.html
[3] [[Hadoop: The Definitive Guide| http://books.google.com/books?id=bKPEwR-Pt6EC&printsec=frontcover&dq=hadoop&ei=YunbS6ycN6eszgTgiayICQ&hl=tr&cd=1#v=onepage&q&f=false]]
{{{
hadoop@yavuz:~/workspace$ hadoop fs -mkdir wordcount
}}}
{{{
hadoop@yavuz:~/workspace$ hadoop fs -put passwd wordcount
}}}
hadoop paketi içerisindeki örnek uygulamalardaki wordcount uygulamasının icra edilmesidir.
{{{
hadoop@yavuz:~/workspace$ hadoop jar /opt/hadoop/hadoop-0.20.1-examples.jar wordcount wordcount/passwd passwd-output

}}}
# hadoop uygulaması çağırılıyor.
# hadoop a jar çalıştırılacağı belirtiliyor.
# jar dosyası adresi ile gösterildi.
# jar dosyasında birden fazla örnek olduğundan, istenen örnek adı belirtildi.
# bulunulan dizindeki kaynak dosya adı belirtildi.
# çıkış dosyası belirtilidi.
! Başlatmak
Benim oluşturduğum hadoop clusterda iki tane düğüm bulunmaktadır. Bunlar master olan ''yavuz'' ve slave olan ''thinkpad'' dir. Clusterdaki servisleri başlatmak için master makinede aşağıdaki scriptleri çalıştırıyoruz.
* /etc/hosts dosyası:
{{{
127.0.0.1       localhost
#
# hadoop için eklenen satırlar
#
192.168.2.2 thinkpad
192.168.2.3 yavuz
}}}
{{{
$ start-dfs
}}}
{{{
$ start-mapred
}}}
* masterdaki JVM de çalışan süreçler 
{{{
hadoop@yavuz:~$ jps 
5521 DataNode
5767 TaskTracker
5844 Jps
5682 JobTracker
5610 SecondaryNameNode
}}}
* slavede çalışan süreçler
{{{
hadoop@thinkpad:~$ jps 
2881 DataNode
2952 TaskTracker
3008 Jps
}}}
Donanım başarısızlıkları sonucunda  meydana gelen logları elde etmek için 
{{{
 # grep /var/log/messages 
}}}
* freestore diyede bilinir. 
* dinamik olarak ayrılan değişkenler için saklıdır
* her yeni dinamik değişkenler hafızada yer tüketirler. 
Pc'yi açtığımızda bir önceki oturumda açık bırakarak çıktığımız pencereler tekrar açılırlar. Bazen bunlar artık istemesekte  devamlı açılmaya devam ederler. Kapatsakta yeniden pc'yi açınca karşımıza çıkarlar. Bu olayı önlemek için {{{~/gnome2/session}}} dosyasını sileriz. Böylelikle sorun çözülmüş olur.
Web sayfalarını, word dokumanlarını yani herşeyi PDF olarak yazdırmak için bir debian da "pdf olarak yazdır" kısmı geliyor. Ama PDF yaz diyince her zaman istenilen sonucu vermiyor. Bunun için
{{{
 cups-pdf
}}}
programramını yüklemek daha iyi sonuç veriyor. Kurduktan sonra sadece printer ekle kısmından sanal bir tane printer seçip eklemek yeterli.
Örnek olarak seçtiğim
{{{
 "postscript-color-printer".
}}}
!Tanım
High-Performance Computing (HPC) is a branch of computer science that
focuses on developing supercomputers, parallel processing algorithms, and
related software.
!Kullanım Alanları
 Solve large scientific problems
– Advanced product design
– Environmental studies (weather prediction and geological studies)
– Research
Store and process large amounts of data
– Data mining
– Genomics research
– Internet engine search
– Image processing
>>oil companies use HPCs to analyze geographical data to try to determine where to drill for oil.
>>If you follow Linux much, you’re probably well aware of the Top 500 list of supercomputing systems and the fact that more than two-thirds of the systems on the Top 500 run some version of Linux.

>HPC temelde bir cluster teknolojisidir. High Performance Computing teknolojisi için, birden fazla bilgisayarın işlem gücünü bir araya getirerek tek bir sistemmiş gibi çalıştırılmasına olanak sağlayan bir teknoloji diyebiliriz. Bu sayede işlenmesi günler aylar süren veriler/işlemler çok daha kısa sürelerde sonuca ulaştırılabilmekte.
interprocess communication süreçlerin birlikte çalışmasını sağlayan mekanizmadır. 
!iki temel model bulunmaktadır IPC için. 
!! shared memory
bir hafıza bloğuna biri yazarken diğeride buradan okuma yapar. Bunun sonucunda, tüketici, üretici problemi ortaya  çıkar. 
!! messaing passing
* It is init's job to get everthing running the way it should be. It checks that the file systems are ok and mounts them. It starts up "daemons" to log system messages, do networking, serve web pages, listen to your mouse and so on. It also starts the getty processes that put the login prompts on your virtual terminal

* Init reads the file /etc/inittab, which tells it what to do.

* Init reads the file /etc/inittab, which tells it what to do. Typically, the first thing it is told to do is to run an initialisation script. The program that executes (or interprets) this script is bash, the same program that gives you a command prompt. In Debian systems, the initialisation script is /etc/init.d/rcS, on Red Hat, /etc/rc.d/rc.sysinit. This is where the filesystems get checked and mounted, the clock set, swap space enabled, hostname gets set etc. 

* Next, another script is called to take us into the default run-level. This just means a set of subsystems to start up. There is a set of directories /etc/rc.d/rc0.d, /etc/rc.d/rc1.d, ..., /etc/rc.d/rc6.d in Red Hat, or /etc/rc0.d, /etc/rc1.d, ..., /etc/rc6.d in Debian, which correspond to the run-levels. If we are going into runlevel 3 on a Debian system, then the script runs all the scripts in /etc/rc3.d that start with `S' (for start). These scripts are really just links to scripts in another directory usually called init.d

* our run-level script was called by init, and it is looking in a directory for scripts starting with `S'. It might find S10syslog first. 

* To change what subsystems start up by default, you must set up these links in the rcN.d directory, where N is the default runlevel set in your inittab.
DB2 7.2 requires libncurses.so.4. Many older distributions come with libncurses.so.4. Many newer distributions come with libncurses.so.5 (or newer). Some distributions come with both. If your distribution does NOT have libncurses.so.4, create a symbolic link to the newer library as follows.

{{{
cd /usr/lib
ln -s libncurses.so.5.2 libncurses.so.4
}}}
If you are an expirienced Java programmer, you probably want to have the latest JDK on your Debian box. Normally there is no need to install it manually since JDK (as well as JRE) is available in modern distros as .deb package and therefore may be downloaded and installed from one of the official mirrors using familiar apt-get (or aptitude, or Synaptics, or whatever...) interface.

But what if you are not satisfied with the version of Java which is packaged with your distribution? At the moment, the official "production" version of JDK is 6.0 update 3, but for exmaple Debian Etch does not include Java 6 at all (only Java 5 is supported). This is a noticeable drawback since Java 6.0 contains some important features, such as high-quality font antialiasing. The only way to solve this situation is to download the latest JDK from Sun website and install it manually with a bit of Debian magic ;)

So, here are step-by-step installation instructions:
1. Download self-extracting package containing JDK: jdk-6u3-linux-i586.bin.
2. Make sure it has execution privileges:
{{{chmod 755 ./jdk-6u3-linux-i586.bin}}}
3. Run it, answer yes and watch the files being extracted.
4. Copy the extracted directory to /usr/lib/jvm:
{{{sudo cp jdk1.6.0_03 /usr/lib/jvm}}}
5. Check which versions of Java are already installed in your system:
{{{sudo update-alternatives --display java}}}
Notice what priority is assigned to the currently selected one
6. Update symlinks to make them point to your freshly installed Java:
{{{
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_03/jre/bin/java 65 --slave /usr/share/man/man1/java.1.gz java.1.gz /usr/lib/jvm/jdk1.6.0_03/man/man1/java.1
}}}
7. Check that java has correct version now:
{{{java -version}}}
8. If something went wrong, try assigning higher priority to your JDK or select appropriate version in manual mode:
{{{update-alternatives --config java}}}
9. You can do the same trick with javac:
{{{
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_03/bin/javac 65 --slave /usr/share/man/man1/javac.1.gz javac.1.gz /usr/lib/jvm/jdk1.6.0_03/man/man1/javac.1
}}}

!Not
yukarıda verilen 6. madde de javayı update eden komutlar işe yaramza ise ordaki  65, değerini yükseltip deneriz. Ondan daha yüksek öncelikli başka java varsa onun değerinden daha yukarıda bir değer vermeliyiz.
	İlk önce java.sun.com sitesinden JDK indirilir.İndirdiğimiz paket .bin uzantılıdır.İlk yaptımız:
		{{{ #chmod +x jdk-1_5_0_06-linux-i586.bin}}}
	Daha sonra çalıştırılıyoruz.
		{{{ # ./jdk-1_5_0_06-linux-i586.bin}}}
bunun ardından bulunduğumuz klasörde jdk-1_5_0_06 dizini oluşuyor.
		 {{{#mv jdk-1_5_0_06 /usr/lib}}}
/usr/lib dizinine taşıyoruz.
	 Ardından jdk ya JAVA_HOME sembolik link oluşturuyoruz.
		 {{{#ln -s jdk-1_5_0_06 jdk}}}
@@###########################################################@@
	 En sonunda JAVA_HOME çevre değişkenini tanımlamak için /etc/profile dosyasının sonuna aşağıdakini ekliyoruz.
		    JAVA_HOME="/usr/lib/jdk"
		    export JAVA_HOME
Kaydedip makinayı restart ediyoruz.

        Bu PATH ayarları denediğimde java PATH eklenemedi. Başka bir yol daha denedim. O da şu:
home dizini altındaki ".bashrc" dosyasının içine (ben alias kısmına) aşağıdaki satırları ekledim.
              PATH:$PATH:/usr/lib/jdk/bin
java PATH tanınmaya başlandı.
@@###########################################################@@

NOT: Yukarıdaki çevre değişkenleri ayarı işe yaramadı. Son olarak bulunan çözüm:
Aşağıdaki satırları {{{ /etc/bash.bashrc}}} dosyasının en sonuna ekliyoruz.
{{{
export JAVA_HOME=/usr/java/jdk
export JDK_HOME=$JAVA_HOME
export PATH=$PATH:$JAVA_HOME/bin
}}}

Sonrada ayarların etkin olabilmesi için 
 [[$bash -login]]
komutunu çalıştırıyoruz. Olup olmadığını görmek için de {{{ $ env }}} komutunu kullanıyoruz.Çıktıda 
{{{
 JAVA_HOME=/usr/java/jdk
 JDK_HOME=/usr/java/jdk
}}}

satırlarını görürsek çevre değişkenlerini ayarlamışız demektir.
JAVA_HOME  jdk nereye kurulu onu gösteriyor.Örnek olarak şuan sistem de "/usr/lib/jdk" altında. 
JSP: Java Server Page programlama yapmak için  gerekli olanlar: JDK ve Apache Jakarta Tomcat
!!!Apache Tomcat kurmak
1. İlk olarak apache-tomcatı indiriyoruz. Download kısmındaki core bölümündeki .tar.gz uzantılı sıkıştırılmış dosyayı indiriyoruz.
2. Bu dosya indirdiğimiz yere açıyoruz.
{{{
$ tar -xvf  apache-tomcat-5.5.26.tar.gz
}}}
3. Yüklenecek yere taşıyoruz
{{{
# mv  apache-tomcat-5.5.26 /usr/lib
}}}
4. Bu dosyaya bir soft link oluşturuyoruz.
{{{
# ln -s apache-tomcat-5.5.26 apache-tomcat
}}}
{{{
java.version  	Java Runtime Environment version
java.vendor 	Java Runtime Environment vendor
java.vendor.url 	Java vendor URL
java.home 	Java installation directory
java.vm.specification.version 	Java Virtual Machine specification version
java.vm.specification.vendor 	Java Virtual Machine specification vendor
java.vm.specification.name 	Java Virtual Machine specification name
java.vm.version 	Java Virtual Machine implementation version
java.vm.vendor 	Java Virtual Machine implementation vendor
java.vm.name 	Java Virtual Machine implementation name
java.specification.version 	Java Runtime Environment specification version
java.specification.vendor 	Java Runtime Environment specification vendor
java.specification.name 	Java Runtime Environment specification name
java.class.version 	Java class format version number
java.class.path 	Java class path
java.library.path 	List of paths to search when loading libraries
java.io.tmpdir 	Default temp file path
java.compiler 	Name of JIT compiler to use
java.ext.dirs 	Path of extension directory or directories
os.name 	Operating system name
os.arch 	Operating system architecture
os.version 	Operating system version
file.separator 	File separator ("/" on UNIX)
path.separator 	Path separator (":" on UNIX)
line.separator 	Line separator ("\n" on UNIX)
user.name 	User's account name
user.home 	User's home directory
user.dir 	User's current working directory
}}}
! Kaynaklar
[1] http://java.sun.com/j2se/1.4.2/docs/api/java/lang/System.html
!!! Sınıflar
Bunlar normal sınıflardır. Bunlar sınıf ismi ile aynı isimde bir dosya kaydedilirler. Derlendiğinde bunlar
{{{
BenimSinifim.java > BenimSinifim.class
}}}
dosyası oluşur.

!!! inner sınıflar
Bunlar bir dış sınıf içinde tanımlanırlar. Bunlar derlendiğinde
{{{
BenimSinifim.java > BenimSinifim.class
ve
BenimSinifim.java > BenimSinifim$InnerSinifim.class
}}}
diye ayrı bir class daha oluşur.

!!! İsimsiz sınıflar
Bunlarda sınıflar oluşturulurken sadece bir yapıcı ile oluşturulurlar. Derlendiğinde 
{{{
BenimSinifim.java > BenimSinifim.class
ve 
BenimSinifim.java > BenimSinifim$1.class
}}}
şeklinde dosya oluşurlar. Bu sınıf genelikle event handling te kullanılır.
      java Appletlerini çalıştırmak için jre programı gerekmektedir. Bunun için ilk önce sun sitesinden en güncel jre programını indiriyoruz. Bu linux için .bin uzantılı self installer bir dosya gereklidir.. iİk önce bunu çalıştırabilir bir dosya haline getiriyoruz.
      {{{$chmod +x <jre_dosyası>}}} 
     Daha sonra dosyayı çalıştırıyoruz.
       {{{$ ./<jre_dosyası>}}}
     Bir tane <jre> adında bir dosya oluşturuldu. Bunu bir başka klasöre root iken kopyalıyoruz.
      {{{# mv <jre klasörü> /usr/java/}}}
     Daha sonra web browserların plugin klasörlerine "libjavaplugin_oji.so" birer soft link oluşturuyoruz. Bunun için (plugin dizinleri içinde)
     {{{# ln -s /usr/java/<jre dosyası>/plugin/i386/ns7/lilibjavaplugin_oji.so}}}
diyerek bulunulan dizine link oluşturduk.
     Sonucunda jre çalışır hale geldi.

Not:
   /usr/lib/mozilla/plugin klasörüne yapıldığında çalışması gerekirken bende çalışmadı. Bende
"libjavaplugin_oji.so" dosyası kopyasını "~/.mozilla/plugin" altında oluşturdum. Jre artık çalışır hale geldi.

Not:
/usr/lib/iceweasel/plugin dizinine bu soft link oluşturulduğunda  ve web browse yenide başlatıldığında artık java tanınmış oldu.
!Elde Etmek
http://www.kernel.org. sitesinden tar ball arşiv dosyasını indiriyoruz. Kernel iki formatta dağıtılmaktadır. GNU zip (gzip) ve bzip2 format. bzip2 daha iyi sıkıştırma sağlamaktadır.
> Kernel ile çalışırken root olmamak gerekir. İlk önce home dizininde çalışıp, yüklerken root olmak gerekir.
! Arşivi Açmak
{{{
$ tar xvjf linux-x.y.z.tar.bz2
}}}
Buradaki x.y.z kernelin versiyon numarasıdır.
! patch kullanmak
{{{
patch p1 < ../patch-x.y.z
}}}
her defasında yeni bir kernel indirmekten ise patch yaparak sadece gerekli olan kod kısımları güncelleyerek gereksiz indirmeyi önleyebiliriz.
!Derlemek için gerekli olanlar
Derlemek için gerekli olan  üç paket gerekmektedir. Bunlar:
!! Derleyici
Linux çekirdeği C dili ve çok küçük kısmı assembly ile yazılmıştır. Çekirdeği derlemek için, gcc C derleyicisi kullanılmalıdır. Derleyici sürümünü belirlemek için:
{{{
$ gcc --version
}}}
!! Linker
C derleyicisi derleme işinin tamamını kendi başına yapamamaktadır. Buna ek olarak, [[binutils]] denen araca ihtiyaç vardır.bağlama ve kaynak dosyalarını assembly etmek için gereklidir. binutils sürümünü belirlemek için:
{{{
$ ld -v
}}}

!!Make
çekirdek kaynak kod ağacında ilerleyerek, hangi dosyanın derlenmesi gerektiğine belirler. Daha sonrada gerekli araçları çağırarak çekirdek derleme işlemini  yapar.
{{{
$ make -- version
}}}

!Gerekli Paketler Kuruluyor
>Gerekli derleyiciler kuruluyor.
{{{
# apt-get install build-essential
}}}
> menuconfig özelliği için gerekli olan ncurses kütüphanesi kuruluyor. 
{{{
# apt-get install ncurses-dev
}}}
> make xconfig özelliği için gerekli olan qt kütüphanesi kuruluyor. 
{{{
# apt-get install libqt3-mt-dev
}}}
> make  gconfig arayüzü için gtk kütüphanesi kuruluyor.
{{{
# apt-get install libgtk2.0-dev libglib2.0-dev libglade2-dev
}}}

! Kernel Kaynak Kodu Elde Ediliyor
{{{
$ wget http://www.kernel.org/pub
}}}
Kaynak dosyanın açılacağı bir dizin oluşturuyoruz.  Bu dizine, indirdiğimiz arşiv dosyasını taşıyoruz. 
{{{
$ mkdir ~/linux
$ mv linux-2.6.32.4.tar.bz2 /home/gurcan/linux
$ cd ~/linux
}}}
Arşiv dosyası dizine açıyoruz. Oluşan yeni dizine geçiyoruz
{{{
$ tar xvjf linux-2.6.32.4.tar.bz2
gurcan@debian:~/linux$ cd linux-2.6.32.4/
}}}

!Kerneli İnşa Etmek
Kernel ayar yapmak için çeşitli araçlar mevcuttur. Bunlardan bir tanesi metin tabanlı olan: 
{{{
$ make config
}}}
Bu araç tek tek bütün seçenekleri, "evet" , "hayır" veya "module" olarak olarak sorar. Bu işlem çok uzun sürmektedir.
[img[images/makeconfig.png]]
{{{
$ make menuconfig
}}}
Bu araç ncurses tabanlıdır. Daha kullanıcı dostudur.  Bunu kullanmak için ncurses kütüphanesine ihtiyaç vardır.
[img[images/makemenuconfig.png]]
{{{
$ make xconfig
}}}
qt kütüphanelerini kullanmaktadır. Bunu kullanmak için qt kütüphanesine ihtiyaç vardır.
[img[images/makexconfig.png]]
{{{
$ make gconfig
}}}
gtk tabanlıdır. Bunun için gtk kütüphanesi kurulması gereklidir.
[img[images/makegconfig.png]]
Bu araçlar ayar dosyalarını çeşitli kategorilere bölmüştür. 
{{{
$ make defconfig
}}}
Bu araç mevcut mimariye göre ayarları oluşturur.Daha önce kernel ayarlamamışsak bu yöntem faydalıdır. 
{{{
$make
}}}
bütün ayar işlemleri bittikten sonra kerneli derlemek için kullanılır.
{{{
$ make -jn
}}}
bu komut inşaa işlemi bir çok işe bölerek, çoklu işlemcilerde daha hızlı gerçekleşmesini sağlar.  Buradaki sayısı iş sayısıdır. 
!Kerneli Yüklemek
 arch/i386/boot/bzImage  dizini altındaki kernel imageni grub kullanıyorsak /boot altına  vmlinuz-version adına benzer bir şekilde kopyalayıp,  /boot/grub/grub.conf  dosyasında gerekli düzenlemeleri yapıyoruz. 

Linux kurulumunu ve güncellemesini daha hızlı ve otomatikleştirmeye yarar. İlk önce bir ayar dosyası oluşturulur. Ve sistem bu ayar dosyasıma göre boot edilir. Eğer ayar dosyası doğru ayarlanmış ise kurulum esnasında herhangi bir soru sorulmaz. 
Konsol ile klavye düzenini değiştirmek için:
{{{
$ setxkbmap -layout tr
veya
$ setxkbmap -layout us
}}}
Konsolda klavye düzenimizi tr'den us yapmış olduk
Bunun ncurses yapılı bir program olan moc kullanılabilir. Klavyeden yönetilen program gerçekten ilginç bir uygulama. [[Tilda]] ile birlikte kullanıldığında arka plan da çalışması sağlanarak kullanılabilir. Kurmak için 
{{{
# apt-get install moc
}}}
Çalıştırmak için 
{{{
$ mocp
}}}
! Kurulum
{{{
# apt-get install lam-runtime lam4-dev
}}}
! Kartın Bağlantı Yerini Berlileme
{{{
gurcan@yavuz:~$ dmesg | tail
[35973.398531] usb 1-4.4: Ignoring serial port reserved for JTAG
[35973.399204] ftdi_sio 1-4.4:1.1: FTDI USB Serial Device converter detected
[35973.399329] usb 1-4.4: Detected FT2232C
[35973.399335] usb 1-4.4: Number of endpoints 2
[35973.399341] usb 1-4.4: Endpoint 1 MaxPacketSize 64
[35973.399346] usb 1-4.4: Endpoint 2 MaxPacketSize 64
[35973.399352] usb 1-4.4: Setting MaxPacketSize 64
[35973.399763] usb 1-4.4: FTDI USB Serial Device converter now attached to ttyUSB0
[35973.399802] usbcore: registered new interface driver ftdi_sio
[35973.399807] ftdi_sio: v1.5.0:USB FTDI Serial Converters Driver
}}}

! Seri Port ile bağlanma
{{{
>>> ser = serial.Serial('/dev/ttyUSB0', 115200, timeout=1)
>>> x = ser.read(0)  # 10 byte  okunuyor
>>> ser.close()
}}}

! Kaynaklar
[1] http://pyserial.sourceforge.net/shortintro.html [erişim : 19.06.2011]
{{{
$ lsusb
Bus 001 Device 005: ID 0471:df55 Philips (or NXP) LPCXpresso LPC-Link
}}}
Konu:Laptop ta pil ayarları

Çözüm:
	Laptop ta kurulması gereken paketler aşağıda sıralanmıştır.
	       hdparm: harddiskler ile alakalı bir programdır.
	       acpi-support: acpi yapılandıran program
	       laptop-mode :gerekli programlardan bir tanesi
!Gerekli paket ekleniyor
{{{
\usepackage{listings}
}}}
!Dosyadan Kod ekleniyor
{{{
\lstinputlisting{d1.java}
}}}
tex dosyası ile aynı yerde bulunması gerekiyor.
! Renklendirmek 
{{{
\lstset{language=Java}
}}}
Kaynak kodun hangi dile ait olduğu belirtiliyor.
! Diğer yol
Aynı şekilde paket ekleniyor. Ve kod direkt tex dosyasına ekleniyor.
{{{
\begin{lstlisting}
Kaynak Kod buraya geliyor.
\end{lstlisting}
}}}
Linux için konsalda yapmak için 
{{{
 $ strip --strip-all <lazarus_binary>
}}}

Ayrıca http://upx.sourceforge.net/ exe küçülten programda kullanılabilir.
Büyük olma sebebi derlenirken debug optionları binary eklenmesidir.
/***
|''Name:''|LegacyStrikeThroughPlugin|
|''Description:''|Support for legacy (pre 2.1) strike through formatting|
|''Version:''|1.0.2|
|''Date:''|Jul 21, 2006|
|''Source:''|http://www.tiddlywiki.com/#LegacyStrikeThroughPlugin|
|''Author:''|MartinBudden (mjbudden (at) gmail (dot) com)|
|''License:''|[[BSD open source license]]|
|''CoreVersion:''|2.1.0|
***/

//{{{
// Ensure that the LegacyStrikeThrough Plugin is only installed once.
if(!version.extensions.LegacyStrikeThroughPlugin) {
version.extensions.LegacyStrikeThroughPlugin = {installed:true};

config.formatters.push(
{
	name: "legacyStrikeByChar",
	match: "==",
	termRegExp: /(==)/mg,
	element: "strike",
	handler: config.formatterHelpers.createElementAndWikify
});

} //# end of "install only once"
//}}}
Katsayılar matrisinin determinantı sıfıra eşit olmalıdır.  Eğer determinant sıfıra eşit ise lineer bağımlıdır denir.
Linux kernelleri iki şekilde gelmektedir. stable ve development. Stable karalı sürümü temsil etmektedir. Development en son sürümdür ve çok hızlı gelişir. Deneysel olarak kullanmak isteyenlere tavsiye edilir. 
Kernel sürüm numaraları nokta ile ayrılmış 3 rakamdan oluşmaktadır. 
{{{
2.6.12
}}}
* ilk olan major sürümdür.
* ikinci olan minor sürümdür.
* son sayıda revizyon sayıdır. 
İkinci olan sayı kernelin stable mı yoksa development mı olduğunu belirleyen sayıdır. Eğerki bu sayı çift ise stable yani kararlıdır. Eğer sayı tek ise de bu kernel development sürümdür. 
Son numarada uygulanan yama seviyesini belirtmektedir.
! Kernel Versiyonunu Öğrenmek
{{{
$ uname -r
}}}
Linux ayar dosyaları ve log dosyaları genelde metin dosyalarıdır. Bundan dolayı dosyalar arasında arama yapmak, sıralamak gibi işlemler sistem yönetimi için çok önemli bir yer tutar. Hata gidermede [[sort]], [[ grep]], [[ head ]], [[ tail]] ve [[ find]] gibi komutlar sistem yönetiminde hayat kurtarıcı olabiliyorlar.

!!!sort
sort komutu metin dosyası içindeki satırları alfabetik sıraya göre sıralanmasını sağlıyor.

{{{ # sort /etc/password | less }}}
* Burdaki koda göre kullanıcıların adı alfabetik sıraya göre sıralıyor.
* sort alanlara göre sırala yapması içinde kullanabiliriz:
{{{ # sort -t : --key=3 /etc/passwd | less }}}
  Burada alan ayracına göre sıralama yapılıyor. Üçücü alanlar sıralanıyor.Burada (UID ) ya göre sıralanıyor.

!!!grep
Çeşitli metin dosyaları için de bir tane anahtar kelime aramak için grep komutu kullanılır.
{{{ # grep -s -r duck /etc }}} ( etc içinde duck kelimesini arıyoruz.)
Linux altında yazdığınız bir bash dosyasına çalışma izni yada okuma izni vermek için "chmod " komutu kullanılır.
{{{
chmod 755 <dosyanın  adı>
}}}
şeklindedir.

burada 755 sayısının anlamı;birinci sayının manası dosya sahibi yazma(w),okuma(r) ve çalıştırma(x) hakkına sahiptir.
    ikinci sayının manası grubun okuma(r) ve çalıştırma(x) hakkına sahiptir,
    üçüncüsü ise diğer geri kalan kişilerin okuma(r) ve çalıştırma(x) hakkına sahiptir.

Bu sayıların türetilmesi ise:
{{{
read    yani okuma'nın      değeri 4 dür. (r)
write   yani yazma'nın      değeri 2 dir. (w)
execute yani çalıştırma'nın değeri 1 dir. (x)
		    

Bunların teker teker toplanması ile yukarıdaki sayılar oluşmaktadır.

Bir dosyanın kullanıcı izinlerini görmek için aşağıdaki komut yeterlidir:


ls -l <dosyanın adı>
}}}

Çıktısı aşağıdaki gibi olur:
{{{
-rwxr-xr-x 1 guya1 guya1 73 2007-04-23 15:19 for1.sh
}}}
	Bu örnek for1.sh adlı dosyanın izinlerini göstermektedir.
! NTP
network time protocol server
{{{
apt-get install ntp ntpdate
}}}
Linuxta aygıtlar iki gruptur. Blok aygıtlar ve karakter aygıtlar. /dev dizini içinde aygıtların sembolük bağları bulunur.
Linuxta aygıtların iki tane numaraya sahiptirler: major ve minor aygıt no. major  no aygıtlar için hangi sürücü uygun onu bellrler. Bu numara linux kernel içinde sabittir.

Örnek olarak:
    3 [[major aygıt numarası]] [[IDE]] 'ler içindir. IDE'lerde ikiye ayrılırlar : "Slave" ve "Master" .O [[minor aygıt numarası]] "master", 64 minör numarası da "slave" için ayrılır.
    master üzerindeki Bireysel bölümlerin(partition) minör aygıt numaraları 1,2,3 ve bu şekilde artarak numaralandırılır.

!major && minör numaraları
{{{
guya@debian:/dev$ ls -l hda hda1 hda2 hda3
brw-rw---- 1 root disk 3, 0 2008-02-29 23:40 hda
brw-rw---- 1 root disk 3, 1 2008-02-29 23:41 hda1
brw-rw---- 1 root disk 3, 2 2008-02-29 23:40 hda2
brw-rw---- 1 root disk 3, 3 2008-02-29 23:41 hda3
}}}

not: minör numaralar bölümlerle birlikte artıyor. hda dosyası diskin tamamını temsil etmektedir. 
*hdan : n buradaki  disk üzerindeki bölümleri temsil etmektedir. 
! Numaraları öğrenmek için 
{{{
$ cat /proc/devices
}}}
veya
{{{
$ cat /usr/src/linux/Documentation/devices.txt
}}}

[[mknod]] komutu ile aygıt girdisi(düğümü) oluşturulabilir. mknod komutu kullanarak Karakter aygıtı veya blok aygıtını root oluşturabilir. 

!Örnek : Aygıt Düğümü Oluşturmak 
{{{
 # mknod ./lp0 c 6 0
}}}
* 1. parametre :: Bulunulan dizine hangi aygıt oluşturulacak onu bellirler.
* 2. parametre :: Aygıtın türü (blok ve veya karakter)
* 3. parametre :: Major aygıt no
* 4. parametre :: Minör aygıt no
!aygıtları listelemek 
{{{
$ ls -l lp0
crw-r-----       1  root    root    6,  0 Mar   7   17:03  lp0
}}}

ls komutu aygıt kayıtları (entry) gösterir. ' -l ' veya ' -o ' seçenekleri kullanılırsa satırın başındaki harf aygıtın türünü bize bildirir. ' c ' yukarıdaki örnekte. Numaralar ise major ev minör aygıt numaralarıdır.

!aygıt kaydını silmek 
Yukarıdaki aygıtı silmek için:
{{{
  # rm ./lp0
}}}

!Özel Aygıtlar
* [[/dev/null]]
* [[/dev/zero]]
* [[/dev/full]]
* [[/dev/random]]
!!! Bir Komut için yardım toplamak
{{{
$ <komut_adı> --help
}}}
!!! man sayfaları
{{{
$ man <komut_adı>
}}}

eğer komut adını bilmiyorsak sadece bir keyword girerek o kelime ile ilgili tüm komutları listeliyor.
{{{
$ man -k <keyword>
}}}
veya
{{{
$ apropos <keyword>
}}}
Bir komut hakkında tek cümle bilgi almak.
{{{
$ whatis <komut_adı
}}}
!LGPL (Lesser GNU Public License)
GPL karşın, Bir program LGPL ise o programı bir başka programda kullanabiliriz. Kodun açık olması zorunluluğu getirmez.  Kodun kapalı veya açık  dağıtılmasına izin verir. 
Ama eğer LGPL sahip bir programın kodunda bir değişiklik yapılırsa o programın lisansı LGPL olamak zorundadır.
/***
|''Name:''|LoadRemoteFileThroughProxy (previous LoadRemoteFileHijack)|
|''Description:''|When the TiddlyWiki file is located on the web (view over http) the content of [[SiteProxy]] tiddler is added in front of the file url. If [[SiteProxy]] does not exist "/proxy/" is added. |
|''Version:''|1.1.0|
|''Date:''|mar 17, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#LoadRemoteFileHijack|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0|
***/
//{{{
version.extensions.LoadRemoteFileThroughProxy = {
 major: 1, minor: 1, revision: 0, 
 date: new Date("mar 17, 2007"), 
 source: "http://tiddlywiki.bidix.info/#LoadRemoteFileThroughProxy"};

if (!window.bidix) window.bidix = {}; // bidix namespace
if (!bidix.core) bidix.core = {};

bidix.core.loadRemoteFile = loadRemoteFile;
loadRemoteFile = function(url,callback,params)
{
 if ((document.location.toString().substr(0,4) == "http") && (url.substr(0,4) == "http")){ 
 url = store.getTiddlerText("SiteProxy", "/proxy/") + url;
 }
 return bidix.core.loadRemoteFile(url,callback,params);
}
//}}}
! Lİnuxda Öğrenmek
{{{
$ /sbin/ifconfig | grep HWaddr
}}}
ekrana eternet kartının mac adresini basar.
! Windowsda Öğrenmek
{{{
> ipconfig -all
}}}
Fiziksel adres satırı bize MAC adresini vermektedir. 
> Eğer bilgisayarda wireless kartıda bulunuyorsa, bu kartında MAC adreside ekrana basılmaktadır.
Windows kurulumu olduktan sonra giden grubu tekrar kurmak için
{{{ # grub-install /dev/hda}}}
Live CD kullanarak Grubu tekrar kurmak için:
{{{sudo grub}}}

grub> konsoluna düşüyoruz.
{{{ find /boot/grub/stage1}}}

Bulunan tüm linux grubları listelencektir.Düzeltilmesi gereken grub'un olduğu bölüm kullanılır.
Ör:(hd0,2) gibi

{{{root(hd0,2)}}}
{{{setup(hd0,2)}}}

"succeeded" ve "Done" yazarsa işlem doğru tamamlanmıştır.

{{{quit}}}
 
!MBR içeriği
MBR 512 byte dan oluşan diskin ilk bölümüdür(ilk sektordur.). Bu bölüm iki büyük alan içerir. İlk 446 bytelık kısım boot code kısmıdır. 
Diğer kalan 66 bytelık kısım ise partition tablosudur(2 byte signature kısmıdır.). lilo, grub-install veya DOS da "fdisk /mbr" çağırıldığında 
bu araçlar ilk 446 lık kısmı yazarlar. "cfdisk" veya başka bir disk partiton program çağırıldığında bunlar kalan 66 bytelık kısmı yazarlar.

>446 kısım boot code 
>66   kısım partition tablosu

>MBR ye doğrudan yazmak çok tehlikelidir. System çalışmaz hale gelebilir veya bütün disk bölümleri okunmaz hale gelebilir.
Knoppix altında yapılması gereken:(sadece knoppix linuxta çalışır)
{{{
# install-mbr /dev/hda (fdisk /mbr ile aynı işi yapar.)
}}}
default MBR yi yükler ve böylece windows kendi başlıyabilir.
!Windows altında yapılması gereken:
{{{
> fdisk /mbr
}}}
! MBR yi kopyalamak için:(mbr nin tamamını kopyalar.)
{{{
# dd if=/dev/hda of=/home/guya/mbr_backup bs=512 count=1
}}}
> !!!!!!!! bs boyutuna dikkat !!!!!!
* if  :: MBR girdi kısmıdır.
* of :: kopyalanacak yer.
* bs :: kopyalanacak byte sayısıdır.
* count:: kopyalama sayısıdır.
! MBR silmek için:(boş bir boot code için)
{{{
# dd if=/dev/zero of=/dev/hda bs=446 count=1
}}}
Silmek için "/dev/zero" aygıtını girdi olarak alıyoruz. Çıktı için de "/dev/hda"
yani bizim  MBR kısmını alıyoruz. Ve sadece boot code kısmı silindi.

> !!!!bs boyutuna dikkat!!!

! MBR tamamını silmek yani partiton tablosunu ve boot code kısmını silmek 
{{{
# dd if=/dev/zero of=/dev/hda bs=512 count=1
}}}

!MBR tekrar yüklemek için:(sadece boot code kısmını tekrar yükler)
{{{
#dd if=/home/guya/mbr_backup of=/dev/hda bs=446 count=1
}}}
Alınan image boyutu büyük olsada yani 512 olasada "bs=446" olunca sadece 
boot code kısmı yüklenir.
!MBR tekrar yüklemek için:(partition tablosunu ve boot code yüklemek için)
{{{
#dd if=/home/guya/mbr_backup of=/dev/hda bs=512 count=1
}}}
buradaki 
* dd=> hard diskin imageni almak için komut
* bs=> byte size anlamına gelir.(girişte ve çıkışta bir kerede alması gereken byte miktarını söyler)
* count=> bs miktarının bu işlemi kaç defa yapılamsını söyler.burada 1 defa diyor.

Büyük dosyaları indirirken,  çeşitli nedenlerden dosya bozulabilir. Dosyanın doğruluğunu kontrol amaçlı md5sum kullanılır. Örneğin, indirilen bir linux dağıtımının md5sum çıktısını, indirilen sitede ilan edilen ile karşılaştırarak dosyanın bütünlüğünün doğruluğunu öğrenebiliriz.
{{{
$ md5sum debian4-0.iso
}}}
[[Bloğum|http://gurcanyavuz.wordpress.com]]
[[tiddlywiki kılavuzu]]
Linuxta aygıtlar, iki sayı ile tanımlanır.  Bu sayılar, major ve minör sayılarıdır.  Bu ikisi birlikte eşşiz yani tek bir rakam oluşturur. Bu sayılar kernele, gerekli olan aygıt sürücüsünü bulmada yardım eder. 
> isimler, aygırlara atanır. Bunun sebebi insanları sayılardan ziyade isismleri daha rahat hatırlamasıdır. 
Kernel minör & major sayıları aygıt sürücülerni tanımlamada kullanır.  İki sayının birden kullanılmasının sebebi, aygıt sürücüsünün genel yapısından kaynaklanmaktadır. İlk olarak, sistem aynı anda aynı aygıt sürücüsü tarafıdan yönetilen bir çok aygıt barındırabilir.  Aynı kodu kernele birden fazla yüklemeninde bir anlamı yoktur. İkinci olarakta, aynı gruptaki aygıtlar gruplandırılarak kernel veri yapısına yüklenebilir. 

> Major sayısı aygıt sürücüsünün kendisini adreslemesi için kullanılır. <major.h> dosyasında bu sabitler tanımlanmaktadır. 
Örnek olarak, bir sistemde birden fazla SATA disk oldğunu farz edelim. Bunlar sda ve sdb de bulunsunlar. Bunların, her ikisininde  major sayıları 8'dir. Bu aygıtların sürücüleri farklı minor sayıları ile tanımlanmaktadır. Birincisi sda 0 iken, diğeri sdb 16 olablilir. 
>Peki bu sayılar arasındaki farkın bu kadar fazla olmasının sebebi nedir?
/dev/sda tüm bir diski tanımlarken,  sda1 , sda2 ... bunlarda diskin bölümlerini temsil etmektedir. 
Programlama yaparken tüm kodları derleme yapmada en iyi yardımcımız Makefile dosyasıdır. Uzantı almaya bu yapıya derleme esnasında yapılacak işlemler teker teker kaydedilir ve "[[make]]" komutu ile bu rutinler icra edilir.
Bu yapıda "#" karakteri yorum satırlarını ifade etmek için kullanılır.
Değişken tanımlama için  örnek olarak:
!!Makefile Genel Yapısı
{{{
hedef: bağımlı_1 bağımlı_2
       komutlar
}}}

!Makefile Değişkenleri
{{{ CC = g++}}} ve bunu satırklarda kullanmak için
{{{ $(CC) }}} bu ifade artık g++ yı işaret eder.
Bu $(CC) bir  değişkendir. Bunu ister Makefile dosyası içerisinde tanımlar, istersekde  onu konsolda make komutuna  gönderebiliriz.
{{{ $ make CC=gcc}}} şeklinde  Makefile dosyasına gönderebiliriz.
veya programımızı debug etmek istiyorsak 
{{{ $make CFLAGS= -g}}}  yapabiliriz.

!!Örnek bir Makefile dosyası 

{{{
#
# yorum satırı
#

CC = g++

proje: pro.o
         $(CC) -w pro.o -o proje

pro.o: pro.cpp
         $(CC) -w -c pro.cpp  

clean: 
        rm -rf *.o
}}}

Bu örnek Makefile dosyasını kullanmak için konsolda:
      {{{ $ make}}} yazarız.

"clean" komutu için ise:
     {{{ $ make clean }}} yazılır.

!!!Makefile içindeki Dahili değişkenler

{{{ CC }}} :: C programlarını derlemek için tanımlanan derleyici varsayılan değer: {{{cc}}}
{{{ RM }}} :: programları silmek için kullanılan program varsayılan değer : {{{rm -rf}}}
{{{ $@ }}} :: kullanılan andaki hedefin adını belirtir. Kısaca çıktı dosyasının adıdır.
{{{ $< }}} :: kullandığı andaki girdi dosyasını belirtir.

!!!Makefile içinde konsol komutları kullanmak
Yukarıdaki Makefile dosyasına aşağıdaki satırları ekleriz.

{{{
install:
         mkdir /etc/uygulamam
         cp ./uygulamam.conf  /etc/uygulamam/uygulamam.conf

uninstall:
         rm -rf  /etc/uygulamam
         rm -rf  /etc/local/bin/uygulamam
}}}
!!! Yapılırken konsola yazı yazdırmak
{{{
dosya: dosya.c
        @echo "Dosyalar derleniyor"
        gcc -w dosya.c -o dosya
}}}
{{{
# apt-get install manpages-dev
}}}
Map refers to the process of chopping input into a smaller set of sub-problems for processing
Type the text for 'New Tiddler'
MapReduce is a programming model specifically implemented for processing large data sets. The model was developed by Jeffrey Dean and Sanjay Ghemawat at Google
! Programlama Modeli
The computation takes a set of input key/value pairs, and produces a set of output key/value pairs. The user of  the MapReduce library expresses the computation as two functions: Map and Reduce.Map, written by the user, takes an input pair and produces a set of intermediate key/value pairs. The MapReduce library groups together all intermediate values associated with the same intermediate key I and passes them to the Reduce function. The Reduce function, also written by the user, accepts an intermediate key I and a set of values for that key. It merges together these values to form a possibly smaller set of values. Typically just zero or one output value is produced per Reduce invocation. The intermediate values are supplied to the user's reduce function via an iterator. This allows us to handle lists of values that are too large to fit in memory. 
! Kaynaklar
[1] MapReduce: Simplified data processing on large clusters : Jeffrey Dean , Sanjay Ghemawat, MapReduce: simplified data processing on large clusters, Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation, p.10-10, December 06-08, 2004, San Francisco, CA 
{{{
    for (i = 0; i < AMatrisiSatirSayisi; i++) {
        for (k = 0; k < BMatrisiSutunSayisi; k++) {
            araToplam = 0;
            for (j = 0; j < AMatrisiSutunSayisi; j++)
                araToplam += A[i][j] * B[j][k];
            E[i][k] = araToplam;
        }
    }
}}}
E[][] = A[][]*B[][] işlemini yapan kod parçasıdır. iç içe 3 tane for döngüsünden oluşmaktadır. 
!Memory (Bellek)
Cpu bilgileri bellekten alır ve tekrar belleğe yükler. 
!Hızlara Göre Bellek sıralaması (En hızlı register)
Disk < RAM < Cache (Ön Bellek) <  Register
! Boyuta Göre Sıralama
Disk > RAM > Cache (Ön Bellek) >  Register
> Bir bilgi ilk önce ön bellekte aranır, yoksa bellekte aranır orada yoksa disk üzerinde aranır. Daha sonra registerlara alınrak işlemler icra edilir. 
!Virtual Address
Program tarafından kullanılan adrese denir. 
! Fiziksel Adress
Bellek tarafından kullanılan adrese denir. 
Zaman içinde karşılaştığım problemlere bulduğum çözümlerin yer aldığı bir sayfadır. Burada yayınlanma amacı yanımda taşımaktan ziyade internet ile heryerden ulaşma ihtiyacından kaynaklanmaktadır.  Yazılar sorunlarıma ya tamamen yada kısmen çözüm olmuştur. Siz deneyince aynı sonuçları vermiyebilir. 
{{{
DateTime dt = DateTime.Now;
int i = dt.Second;
}}}
true type font yüklemek için;
{{{
# apt-get install msttcorefonts
}}}
> paketi yüklemek için contrib deposu ekli olması gerekmektedir.
! Modeme Bağlanmak
loginde kullanıvı olarak "root" yazıyoruz, passwordu  boş bırakabiliriz. Eğer web arayüzü için bir şifre tanımlamışsak burada o şifreyi kullanıyoruz.
{{{
gurcan@yavuz:~$ telnet 192.168.2.1
Trying 192.168.2.1...
Connected to 192.168.2.1.
Escape character is '^]'.

BusyBox on localhost login: root
Password: 
}}}

* Bağlandığımızda aşağıdaki ekran bizi karşılar:
{{{
BusyBox v0.61.pre (2007.08.15-10:02+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

# 
}}}
! Modem ile ilgili bilgiler Almak
* Cpu ait bilgiler:
{{{
# cat /proc/cpuinfo 
processor               : 0
cpu model               : MIPS 4KEc V4.8
BogoMIPS                : 140.90
wait instruction        : no
microsecond timers      : yes
extra interrupt vector  : yes
hardware watchpoint     : yes
VCED exceptions         : not available
VCEI exceptions         : not available
}}}
*  Modemdeki işletim sistemine ait bilgiler:
{{{
# cat /proc/version 
Linux version 2.4.17_mvl21-malta-mips_fp_le (onur@otavil) (gcc version 2.95.3 20010315 (release/MontaVista)) #4 Wed Aug 15 13:09:13 EEST 2007
}}}
! Kurulum
{{{
yavuz:/home/gurcan/Desktop# cp mipsel_toolchain_i386_binaries_jasp.tar.bz2 /opt/
}}}
* Sıkıştırılmış dosya açılıyor.
{{{
yavuz:/opt# tar xvf mipsel_toolchain_i386_binaries_jasp.tar.bz2 
}}}
opt dizini altındakileri bir üst dizine çıkarıyoruz.
{{{
yavuz:/opt# mv opt/* .
}}}
* normal kullanıcı olarak PATH ayarlamaları yapıyoruz.
{{{
gurcan@yavuz:~$ vim /home/gurcan/.bashrc
}}}
aşağıdaki satırları ekliyoruz.
{{{
export MIPS_HOME=/opt/mipselroot/
export PATH=$PATH:$MIPS_HOME/bin
}}}
! Program Derlemek
{{{
$ mipsel-uclibc-gcc okuden.c -o oku
}}}
! Linker Çağırılıyor
{{{
$ mipsel-uclibc-ld oku
}}}
a.out dosyası oluşturuldu. 
> a.out dosyası dışında başka bir isim verildiğinde çalışmıyor.
web üzerinde bir yere dosyayı koyuyoruz. Modem üzerinde wget yardımıyla çekiyoruz.
! Modeme dosyayı çekiyoruz
{{{
# wget http://mf.dpu.edu.tr/~guya/a.out 
}}}
!Program icra ediliyor
{{{
# chmod 700 a.out 
# ./a.out 
}}}
> Modeme program göndermenin bir yoluda [[TFTP]] dir.
!Tanım
* Moblin is a Linux-based platform for building operating systems and applications for mobile devices
* is Linux-based.
!Kurulum
{{{
# apt-get install mono-gmcs libmono-winforms2.0-cil
}}}
gerekli bağımlılıkları bulup yükleyecektir.
!Program Derleme
{{{
$ gmcs -r:<Kütüphane Adı> <Kaynak Dosya Adı>
}}}
Exe uzantılı derlenmiş dosya oluşur.
{{{
$ gmcs -r:System.Windows.Forms Deneme.cs
}}}
!Programı Çalıştırma
{{{
$ mono <Exe Dosya Adı>
}}}
{{{
$ mono Deneme.exe
}}}
! Gerekli Paketlerin Kurulumu
{{{
# apt-get install apache2 php5 mysql-server php5-mysql libapache2-mod-php5 php5-gd
}}}
! Gerekli Eklemler Yapılıyor
{{{
gedit /etc/php5/apache2/php.ini
}}}
Dosyası içerisine altaki satırları eğer yoksa ekliyoruz.
{{{
extension=mysql.so 
extension=gd.so
}}}
! Moodle İndiriyoruz
{{{
$ wget http://download.moodle.org/download.php/stable19/moodle-weekly-19.tgz. 
}}}
! Paketleri Açıyoruz
{{{
$ tar -zxvf <Moodle Sıkıştırılmış Dosyası>
}}}
! Moodle Apache ye Komunlandırıyoruz
{{{
# mv moodle /var/www/
}}}
! Apache'yi Tekrar başlatıyoruz
{{{
#/etc/init.d/apache2 restart. 
}}}
! Kuruluma Devam Ediyoruz
{{{
http://localhost/moodle
}}}
Tarayıcıda gerekli adımları icra ediyoruz.
* gerekli olan bir paketi kuruyoruz.
{{{
# apt-get install libstdc++5
}}}

! indirme
http://www.mplayerhq.hu/design7/dload.html#binary_codecs adresinden temin ediyoruz.
* Dosyayı açıyoruz.
{{{
gurcan@yavuz:~/Desktop$ tar xvf essential-20071007.tar.bz2 
}}}

{{{
gurcan@yavuz:~/Desktop$ cd essential-20071007/
}}}
* codecleri barındıracak dizini oluşturuyoruz.
{{{
# mkdir /usr/lib/codecs
}}}
* codecleri kopyalıyoruz.
{{{
# cp * /usr/lib/codecs
}}}
* Mplayer – Video window and select Preferences  from the menu. 
* Select the Video tab and change the Available drivers: to x11 X11 (XImage/Shm).
* Select the Codecs & demuxer tab and change the Video codec family: to RealVideo decoder and the Audio codec family: to FFmpeg/libavcodec audio decoders. When you’re done, click OK and close down  MPlayer

! Kaynaklar
[1] http://www.simplehelp.net/2007/07/27/how-to-play-rmvb-files-in-ubuntu/
! Dumlupınar
# Genetik Algoritma Nedir? Bir algoritma daha nedir?
# YSA kullanım alanı nedir?
# Flip-Flop birbirlerine çevirimi 
# matrix çarpımını yapan programın kodu?
# software agent nedir?
# Veri madenciliği ile ilgili bir soru
# dizi tanımlama
# c# kodunu visual basic çevirimi yap;
# for döngüsü tanımlama.
# bağlı liste nedir?
# graf nedir ? 
# bellek tahsis yapan fonksiyonlar nelerdir? 
# MİB yapısındaki elemanlar
# bir ağda gerekli şeyler nelerdir
# web servisi nedir? Nelerdir?
# CSS nedir? Ne amaçla kullanılır?


!Aşkın 
# jk dan D ff çevrim
# pointer tanımlama
# bir ağda gerekli şeyler nelerdir
# for döngüsü tanımlama
# do - while döngüsü
# union nedir ne iş yapar.
# ekonomik kriz

!Sevcan
# ff çevrimi
# overclock nedir zararları yararları
# pointer tanımlama
# bir ağda gerekli olan şeyler nelerdir. 
# obama

!Halil
# web agent nedir?
# visual basic > c# çevirmi
# matrix ile işlem yapan program
# dağıtık parelel programlama farkı
# bulanık mantık ile ilgli bir soru
# struct tanımlama
# ff çevriimi

! OsmanGazi
# Türev soru 
# A algoritmasına göre en kısa yol?
# Race condition, mutual exclusion, context switch ? fork ile program çıktısı, çocuk ana ağacı oluştur.
# Dosyadan karakter okuma yapan program
# SQL kodununun çıktısını yaz
# c++ kodunun çıktısı ne olur yazın
# 8 tane ledi devamlı yakan programı 8085 ile yazın 
# Moodle nedir ne iş yapar.

! Dokuz Eylül
# hash table nedir. abstract spesifikasyonu nelerdir.? pree code ile codyaınız.
# verilen süreçleri SJF, pre-emptive , cpu ? algoritmalarına göregraiklerie göster. system call nedir? Örnek ver bir işletim sisteminde
# verilen algoritmaların kopmplexi miktarını(kaç adım gerekir?) göster? (big-o)
# Bilgisayarr ağları ile alakalı sorulardı. Verilen ip adreslerini c sınıfı istenen miktarad alt ağa ayırmamız istendi.

! Diğer
# seri iletişim çeşitleri nelerdir? açıklayınız.
!Amaç
Yarış durumlarından sakınmak için karşılıklı dışlama (mutual exclusion) yöntemi kullanılır.
!Tanım
Bir süreç ortak değişken üzerinde işlem yapıyorsa başka bir süreç bu değişken üzerinde işlem yapamaz ve dışlanır.
! Hangi portlar Kullanılıyor?
! 
{{{
$ netstat -an 
}}}
windows  ve linuxta bu komut geçerlidir.
! Gateway Adresini öğrenmek
{{{
$ netstat -nr
}}}
İnternet bağlantımıza ait ip değerleri listeleniyor.
! Çevre Değişkenleri
* FULL_CURRENT_PATH: C:\Documents and Settings\Administrator\My Documents\JavaP\NotHelloWorld.java
* CURRENT_DIRECTORY: C:\Documents and Settings\Administrator\My Documents\JavaP\
* FILE_NAME: NotHelloWorld.java
* NAME_PART:NotHelloWorld
* EXT_PART:java
! java kodunu derlemek
F5 basıp açılan dialog penceresine aşağıdakini yazıyoruz.
{{{
javac “$(FILE_NAME)”
}}}
! java kodunu çalıştırmak
F5 basıp açılan dialog penceresine aşağıdakini yazıyoruz.
{{{
java “$(NAME_PART)”
}}}
!Ubuntu
{{{
Go to System->Administration->Hardware Drivers and check the box to enable the restricted drivers for your NVIDIA card if the option is provided.

If the restricted driver remains unactivated after attempting to activate it in the Hardware Drivers dialog, you may not have the appropriate linux headers installed to compile the driver. Ensure that the linux-headers-XXX and linux-restricted-modules-XXX packages are installed, where XXX matches the version of the kernel you are using (linux-image-XXX).

If the activation hangs on download/install dialog, you can install the driver using System->Administration->Synaptic Package Manager, make sure you pick the latest driver version recommended by the "Hardware Drivers" tool and all its dependencies. Go to Hardware Drivers tool and activate the driver you just installed. 
}}}
Nam -ı Diğer Operating System yani işletim sistemidir. Örnek olarak Linux, Windows, FreeBSD gibi...
Konu:Bulunamayan octet-stream problemi

Ortaya çıkan octet-stream problemini çözmek için yapılması gerekenler:

ilk önce "Kontrol Merkezi" aç. 
"KDE Bileşenleri" seçeniği altında "Dosya ilişkileri"ni aç.
Burada ağaçlı yapıda "application"grubunu aç.
bu grubunun altında "octet-stream" seçeneğinin olmadığına emin ol.
daha sonra "Ekle" butonu bas ve karşına gelen ekranda 
"Grup" kısmına "application" seç. "Tür adi" yerine "octet-stream" yaz.
Sağ taraftaki kısımda "Dosya Adı Kalıpları" yerine aşağıdakileri ekle:
	*.bin
	*.class
	*.dms
	*.exe
	*.lha
	*.lzh
"Açıklama" kısmınada "octet-stream" yaz.
"Uygulama Tercih Sırasıı" yerine program eklemye gerek yok.
Kaydedip çık.

Sorun:Eğer ki kaydediyorsun ama bir türlü kaydedilmiyorsa aşagıdaki yolu izle:

	"/home/guya/.share/mimelnk/application/octet-stream.desktop" dosyayı bir editör yardımı ile aç.
Bu dosyanın altında 
	"MimeType=application/x-kdeuser" yazan kısımdaki "application/x-kdeuser" yeri "application/octet-stream" olarak değiştirip,programı 
kaydedip çıkıyoruz.
Offline wordpressde gerekli yazılımlar 
*apache web server
*php desteği
*phpmyadmin
*mysql
bunlar kurulduktan sonra /var/www/ altına wordpress i  kopyalıyoruz. Kopyaladıktan sonra {{{wp-config.php}}} dosyasını örnek dosyaya göre oluşturuyoruz. Bu dosyaya database adı, kullanıcı adı ve şifresini giriyoruz. 
Mysqlde  de wordpress adında bir veritabanı oluşturuyoruz.
Zemberek, açık kaynak kodlu Türkçe Doğal dil işleme kütüphanesi ve OpenOffice eklentisidir.
> Proje su anda Turkce kelime denetleme, kelime cozumleme, kelime onerme, olusturma, Turkce karakter kullanilmadan yazilan yazilarin donusturulmesi, heceleme gibi islemleri gerceklestirmektedir. 
OpenOffice.org 3.0 gerektirmektedir. Java sisteminizde kurulu olması gerekmektedir. 
! Zembereği İndirme
{{{
http://www.openoffice.org.tr/component/option,com_docman/task,doc_download/gid,98/Itemid,77/
}}}
! Ekleme
{{{
Araçlar > Eklenti Yöneticisi
}}}
Yeniden başlatıyoruz. Türkçe imla denetimi hazır hale geliyor. 
! Kaynak
[1] http://forum.openoffice.org.tr/index.php/topic,1150.0.html
[2] http://tr.wikipedia.org/wiki/Zemberek_%28yaz%C4%B1l%C4%B1m%29
[3] http://code.google.com/p/zemberek/
!Kurulum
{{{
# apt-get install openmpi-bin openmpi-doc libopenmpi-dev
}}}
! Derleme & Çalıştırma
{{{
$ mpicc -o hello hello.c
$ mpirun -np 8 ./hello
}}}
* -np, which specifies the number of processes you want to run. 
! Kaynak
[1] http://www.cs.ucsb.edu/~hnielsen/cs140/openmpi-install.html#apt
ParallelKnoppix, or PK, is a modified Knoppix live CD designed for use in creating HPC clusters.
! Gerekli Programlar
[1] http://www.sprut.de/electronic/soft/usburn/linux/usburn_0_4.tar
[2] http://www.sprut.de/electronic/soft/usburn/linux/usburngui_0_5_i386.tar.gz

! kaynaklar
[1] http://www.sprut.de/electronic/pic/projekte/brenner8/index.htm
[2] http://www.sprut.de/electronic/soft/usburn/linux/usburn_linux.htm
Portable Operating System Interface
! Açılımı
Parallel Virtual Machine
! Amacı
bilgisayarların paralel bir ağ üzerinden konuşturulması içim kullanılan bir yazılım aracıdır. Heterojen  makinalardan oluşan bir ağ'ı tek bir dağıtık paralel işlemci olarak kullanmak için geliştirilmiştir.
! Kurulum
{{{
# apt-get install pvm pvm-dev
}}}
İkinci paket pvm programları geliştirmek için gereklidir. 
* Aşağıdaki satırları [[.bashrc]] dosyasına ekliyoruz.
{{{
export PVM_ROOT=/usr/lib/pvm3
export PVM_RSH=/usr/bin/ssh
export PVM_ARCH=LINUX64
}}}
* çalıştığını kontrol etmek için konsolda aşağıdaki komutu veriyoruz. Eğer çalışıyorsa pvm konsolu karşılar bizi.
{{{
$ pvm
}}}
* Clusterda düğüm eklenmesi istenirse düğümler hosts dosyasında tanımlanır. Ve master makineden slave makinelere şifresiz bağlantı sağlanır.
{{{
$ ssh-keygen -t rsa   -f ~/.ssh/id_rsa
$ scp ~/.ssh/id_rsa.pub pro@a1:~
$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
}}}
* ana makinede şifre oluşturulur ve bu şifre scp yardımıyla diğer makinelere kopyalanır. Bu makinelerin authorized_keys dosyalarına ekleme yapılır.

* Oluşturduğumuz cluster da düğüm eklemek istersek
{{{
pvm> add a1
}}}
* topluca düğüm eklenmesi istenirse, ilk önce /etc/hosts dosyasında düğümlerin ip ve host isimlerini giriyoruz. Daha sonra burada bulunan düğümlerinin adlarını her bir satırda bir düğüm olacak  şekilde bir dosyaya kaydediliip pvm i bunun ile birlikte başlatılır.
{{{
$ pvm host
}}}
* Debian tabanlı dağıtımlarda, host dosyası ekleyince pvm kendisini sonlandırmak ta bunu önlemek için /etc/host dosyasında 
{{{
127.0.1.1 ana
}}}
gibi bir satır bulunmakta. Bu makinenin kendisini temsil etmektedir. Bunun yorum satırı yapıyoruz. Yani aşağıdaki gibi yapıyoruz:
{{{
# 127.0.1.1 ana
}}}
! Kaynaklar
[1] http://tr.wikipedia.org/wiki/PVM 
!Alıntı
>Modern ağ kartları bilgisayarın işletim sistemi açılmadan kendi başlarına “dhcp” ile ağdan ip almalarına olanak sağlayan bir protokolle donatılmışlardır. Bios bilgisayarı ağ kartı ile açmak isterse ağ kartı kendi mac adresini kullanarak ağda yayın yapan bir “dhcp” sunucusu bulup ondan bilgisayarın açılması için gerekli olan çekirdek dosyalarını indirebilir. Bu sayede salkıma katılacak bilgisayarlar cd olmaksızın sadece ağ kartı üzerinden açılarak çalışmaya katılabilirler.
!PXE
The Preboot eXecution Environment (PXE, pronounced pixie and also known as Pre-Execution Environment) is an environment to boot computers using a network interface independently of available data storage devices (like hard disks) or installed operating systems.
PXELinux is a program for booting off a network server using a boot PROM compatible with the Intel Pre-Execution Environment (PXE) specification.
/***
|''Name:''|PasswordOptionPlugin|
|''Description:''|Extends TiddlyWiki options with non encrypted password option.|
|''Version:''|1.0.2|
|''Date:''|Apr 19, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#PasswordOptionPlugin|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0 (Beta 5)|
***/
//{{{
version.extensions.PasswordOptionPlugin = {
	major: 1, minor: 0, revision: 2, 
	date: new Date("Apr 19, 2007"),
	source: 'http://tiddlywiki.bidix.info/#PasswordOptionPlugin',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	license: '[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D]]',
	coreVersion: '2.2.0 (Beta 5)'
};

config.macros.option.passwordCheckboxLabel = "Save this password on this computer";
config.macros.option.passwordInputType = "password"; // password | text
setStylesheet(".pasOptionInput {width: 11em;}\n","passwordInputTypeStyle");

merge(config.macros.option.types, {
	'pas': {
		elementType: "input",
		valueField: "value",
		eventName: "onkeyup",
		className: "pasOptionInput",
		typeValue: config.macros.option.passwordInputType,
		create: function(place,type,opt,className,desc) {
			// password field
			config.macros.option.genericCreate(place,'pas',opt,className,desc);
			// checkbox linked with this password "save this password on this computer"
			config.macros.option.genericCreate(place,'chk','chk'+opt,className,desc);			
			// text savePasswordCheckboxLabel
			place.appendChild(document.createTextNode(config.macros.option.passwordCheckboxLabel));
		},
		onChange: config.macros.option.genericOnChange
	}
});

merge(config.optionHandlers['chk'], {
	get: function(name) {
		// is there an option linked with this chk ?
		var opt = name.substr(3);
		if (config.options[opt]) 
			saveOptionCookie(opt);
		return config.options[name] ? "true" : "false";
	}
});

merge(config.optionHandlers, {
	'pas': {
 		get: function(name) {
			if (config.options["chk"+name]) {
				return encodeCookie(config.options[name].toString());
			} else {
				return "";
			}
		},
		set: function(name,value) {config.options[name] = decodeCookie(value);}
	}
});

// need to reload options to load passwordOptions
loadOptionsCookie();

/*
if (!config.options['pasPassword'])
	config.options['pasPassword'] = '';

merge(config.optionsDesc,{
		pasPassword: "Test password"
	});
*/
//}}}
Uzun süre pdf dosyaları birleştirmek için program arıyordum. Bİr kaç tane buldum ama onlar da ücretli programlardı. Yardıma sourceforge.com yetişti. Java dili ile yazılmış olan pdfsam programmı pdfleri birleştirmede ve ayırmada gerçekten çok başarılı. Tek gerekli olan java sanal makinesidir.
* makes it simpler to write mapreduce programs
* PigLatin abstracts you from specific details and focus on data processing

! Yorumlar
* tek satır yorumlar
{{{
-- yorum satırıdır
}}}
*  C-tipi yorumlar
{{{
/*
 * Bu bir yorum satırıdır
 */
}}}
* e tuples in the bag correspond to the rows in a table. Unlike a relational table, however, Pig relations don't require that every tuple contain the same number of fields or that the fields in the same position (column) have the same type.
! Gereklilikler
# Hadoop 20 - http://hadoop.apache.org/core/
# Java 1.6 - http://java.sun.com/javase/downloads/index.jsp
# Ant 1.7 - (isteğe bağlı derleme için gerekli) http://ant.apache.org/
# JUnit 4.5 - (isteğe bağlı birim testler için) http://junit.sourceforge.net/
! Çalışma Modları
* Local Mode : tek makinede çalıştırma
* Mapreduce Mode: hadoop clusterda çalıştırma
! Yüklemek
!! Local Mode
pig dağıtımı apache sitesinde temin edilir. İndirdiğimiz sıkıştırılmış dosyayı home dizini altında oluşturduğumuz bin dizini içerisine açıyoruz.
{{{
gurcan@yavuz:~/bin$ tar xvf pig-0.6.0.tar.gz
}}}
* kolay erişim için kısa yol oluştuyoruz. 
{{{
gurcan@yavuz:~/bin$ ln -s pig-0.6.0 pig
}}}
* pig kurulum dizini path ayarlarını yapmak için .bashrc dosyasını açıyoruz.
{{{
gurcan@yavuz:~$ vim .bashrc
}}}
dosyaya aşağıdaki satırı ekliyoruz.
{{{
export PIG_HOME=/home/gurcan/bin/pig
}}}
bu satırı ekledikten sonra path değişkenini güncelleme yapıyoruz.
{{{
export PATH=$PATH:$PIG_HOME/bin:
}}}
* pig komutlarının bir listesini almak için:
{{{
gurcan@yavuz:~$ pig -help
}}}
* Grunt Shell başlatmak için:
{{{
gurcan@yavuz:~$ pig
}}}
!! Map Reduce Mode
* hadoop altındaki [[core-site.xml]], [[hdfs-site.xml]] ve [[mapred-site.xml]] dosyalarını barındıran  ''conf'' dizini adresini belirtiyoruz.
{{{
$ export HADOOPDIR=$HADOOP_INSTALL/conf
}}}
! Kaynaklar
[1] http://hadoop.apache.org/pig/docs/r0.6.0/
! Gereklilikler
# JAVA sistemde olması gerekmekte. Kurulumu için [[bakınız|Sun JDK Kurulumu]]
# Pig sistemde olması gerekir. Kurulum ve ayarları için [[bakınız|Pig Setup]]
! Diğer Adımlar
* ilk önce pig tutorial indiriyoruz. Bir dizine açıyoruz: 
{{{
$ tar -xzf pigtutorial.tar.gz 
}}}
* pigtmp dizini oluşacak bunu içine giriniz.
{{{
$ mv pigtmp
}}}
* Pig Script 1 ve Pig Script 2.  dosyaları dizinde varmı kontrol ediyoruz.
{{{
$ ls
}}}
* scriptleri çalıştırmak:
{{{
$ java -cp /home/gurcan/bin/pig/pig-0.6.0-core.jar  org.apache.pig.Main -x local script1-local.pig
}}}
* oluşturulan sonuçlara bakıyoruz:
{{{
$ cat script1-local-results.txt
}}}
! MapReduce mode
{{{
$ java -cp pig.jar:/home/gurcan/bin/hadoop/conf/ org.apache.pig.Main script1-hadoop.pig
}}}
{{{
$ mkdir ~/pig
}}}
{{{
$ tar -xzf pigtutorial.tar.gz
}}}
{{{
$ cd pigtmp
}}}
{{{
$ cp pig.jar ~/pig
}}}
* [[.bashrc]] dosyasına ekliyoruz.
{{{
export PIGDIR=/home/gurcan/pig
}}}
! Örnek
{{{
$ start-all.sh 
}}}
{{{
$ hadoop fs -copyFromLocal excite.log.bz2 .
}}}
Pig scriptlerini vim altında yazmak için vim de bazı ayarlamalar yapılması gerekmetedir. 
http://www.vim.org/scripts/download_script.php?src_id=10654 adresinden pig.vim dosyasını indiriyoruz. 
{{{
gurcan@yavuz:~$ mkdir -p .vim/syntax
}}}
* pig.vim dosyasını bu dizinin altına kopyalıyoruz. 
{{{
gurcan@yavuz:~$ cp pig.vim .vim/syntax/
}}}
* dosya uzantısını tanımlanmasını sağlamak için .vimrc dosyasını düzenliyoruz eğer dosya yoksa oluşturup aşağıdaki satırları ekliyoruz.
{{{
gurcan@yavuz:~$ vim .vimrc
}}}
eklenecek satılar:
{{{
augroup filetypedetect
          au BufNewFile,BufRead *.pig set filetype=pig syntax=pig
  augroup END
}}}
Bu işlemleri yaptıktan sonra artık pig scriptlerini vim altında açtığımızda, satırlar  vim tarafından tanınmakta, renklendirilmektedir.
! Kaynaklar
[1] http://www.vim.org/scripts/script.php?script_id=2186
* Kullanılan veriseti 
{{{
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
Debian-exim:x:101:103::/var/spool/exim4:/bin/false
statd:x:102:65534::/var/lib/nfs:/bin/false
messagebus:x:103:106::/var/run/dbus:/bin/false
gdm:x:104:109:Gnome Display Manager:/var/lib/gdm:/bin/false
haldaemon:x:105:111:Hardware abstraction layer,,,:/var/run/hal:/bin/false
gurcan:x:1000:1000:gurcan,,,:/home/gurcan:/bin/bash
sshd:x:106:65534::/var/run/sshd:/usr/sbin/nologin
ogrenci:x:1001:1001:,,,:/home/ogrenci:/bin/bash
mpi:x:1002:1002:,,,:/home/mpi:/bin/bash
cakirhal:x:1003:1003:,,,:/home/cakirhal:/bin/bash
mysql:x:107:114:MySQL Server,,,:/var/lib/mysql:/bin/false
ntp:x:108:115::/home/ntp:/bin/false
misafir:x:1004:1004:,,,:/home/misafir:/bin/bash
phpmyadmin:x:1005:1005:,,,:/home/phpmyadmin:/bin/bash
hadoop:x:1006:1006:,,,:/home/hadoop:/bin/bash
}}}
* pig Başlatma
{{{
$ pig -x local
}}}
* Yükleme 1
{{{
grunt> p = load 'passwd';    
}}}
* Yükleme 2
{{{
grunt> A = load 'passwd' using PigStorage (':');
}}}
* ilk sutun alınıp ekrana basmak
{{{
grunt> C = foreach A generate $0; 
grunt> dump C;    
}}}
* 6. sütuna göre gruplandırma:
{{{
grunt> G = group A by $6;
grunt> dump G;  
}}}
* Bir sütundaki değere göre filtreleme yapmak: 
{{{
grunt> F = FILTER A by $3 == 33;
grunt> dump F; 
}}}
3. sutundaki değer 33  ise ekrana basılıyor.
* Değere göre sıralama: 
{{{
grunt> O = ORDER A BY $2;
grunt> dump O; 
}}}
* sıralamayı azalan şekilde yapmak
{{{
grunt> o = order h by $0 desc;
}}}
2. sutuna göre sıralama yapılıyor. Ekrana basılıyor.
* Ekrana basılan satır sayısını sınırlamak:
{{{
grunt> L = LIMIT A 3;
grunt> dump L
}}}
* Bir sutundaki değerlerden iki tane varsa sadece bir tanesini alıp ekrana basmak
{{{
grunt> X = foreach A generate $3;
grunt> M = distinct X;           
grunt> dump M;
}}}
3. sutundaki değerleri ekrana basıyor. sutunlarda aynı değerden iki  tane varsa sadece biri alarak ekrana basılıyor.
* iki sutunu birleştirerek ekrana basıyor.
{{{
grunt> B = foreach A generate $0 , $6;
grunt> dump B; 
(root,/bin/bash)
(daemon,/bin/sh)
(bin,/bin/sh)
}}}
* iki sutunu araya tab koyarak kaydetmek
{{{
grunt> store big1 into 'out5' using PigStorage ('\t');
}}}
* içinde sayı bulunan bir sutunu sayı ile ile toplamak
{{{
grunt> t3 = foreach p generate $3+10;
}}}
* Okunan örnek veri seti yapısı:
{{{
gurcan yavuz akhisar anadolu lisesi dpu bilgisayar
gurcan yavuz akhisar anadolu lisesi dpu bilgisayar
gurcan yavuz akhisar anadolu lisesi dpu bilgisayar
}}}
yukarıdaki satırları barındıran deneme adlı bir dosyamız mevcut. Yukarıdaki dosyayı kullanılarak pig komutlarını deneyeceğiz. pig ait grunt shell de komutlar deneyeceğiz. grunt shell çalıştırıyoruz.
{{{
$ pig -x local
}}}
* veri seti dosyamızı grunt shell yüklüyoruz. Dosyadaki ayracı olarak ''boşluk'' olduğunu belirtiyoruz. Dosyadaki ayraç yapısını tanımladıktan sonra oku adlı bir değişkene atıyoruz. Dosyayı yüklerken alanların boşluk olarak ayrıldıklarını tanımlarken alanların tiplerini belirtmedik ve öntanımlı tip olan [[bytearray]] olarak tanımlanmasını sağladık.
{{{
grunt> oku = load 'deneme' using PigStorage(' ');
}}}
* oku adlı değişkene yükledikten sonra her satırın ilk elemanını alarak bir değişkene atadık. 
{{{
grunt> gir = foreach oku generate $0;
}}}
* Ayırdığımız ilk sutunu ekrana basıyoruz.
{{{
grunt> dump gir; 
(gurcan)
(gurcan)
(gurcan)
grunt> 
}}}


Pig komutlarını toplu şekilde icra etmek için  kullanılırlar. 
! Örnek pig Script dosyası (id.pig)
{{{
A = load 'passwd' using PigStorage(':'); 
B = foreach A generate $0 as id;
dump B; 
store B into 'id.out';
}}}
(ilk önce /etc/passwd dosyasını bulunulan dizine kopyalamak gerekiyor.)
* pig dosyasını local modda çalıştırmak
{{{
$ pig -x local id.pig
}}}
* pig dosyasını mapreduce modda çalıştırmak
{{{
$ pig id.pig
veya
$ pig -x mapreduce id.pig
}}}
! Kaynaklar
[1] http://hadoop.apache.org/pig/docs/r0.6.0/
! Nedir?
PigPen is an eclipse plugin that helps users create pig-scripts, test them using the example generator and then submit them to a hadoop cluster as well. 
! İndirme
Pigpen [[buradan|http://issues.apache.org/jira/secure/attachment/12393772/org.apache.pig.pigpen_0.0.1.jar]] indirilebilir. 
! Yükleme
eclipse/plugins/ dizini altına jar dosyasını kopyalıyoruz.
! Kullanımı
Kullanmak için ilk önce bağlanılacak cluster path tanımlamamız gerekiyor.Bunun için eclipse ortamında window -> preferences -> Pig açıyoruz. Burdaki menude pig.jar yerini belirtiyoruz. 
JobConf ayar yerine yeni bir değişken ekliyoruz. ''ConfigurationPath'' adında bir değişken ekliyoruz.
{{{
Key : ConfigurationPath
value: /home/gurcan/bin/hadoop/conf
}}}
belirtiyoruz.
! Kaynaklar
[1] http://wiki.apache.org/pig/PigPen
!Pixels (Picture Elements)
Grafikleri göstermek için kullanılan, ekrandaki noktalardır.
{{{
import time
print "bekle"
time.sleep(4)
print "devam et.."
}}}
! Kaynaklar
[1] http://answers.yahoo.com/question/index?qid=20100614151945AA8VPLJ [erişim : 19.06.2011]
* Yardım sayfasını görüntülemek
{{{
>>> import sys
>>> help(sys)
}}}

* module ait mevcut fonksiyon ve değikenleri listelemek
{{{
>>> dir(sys)
}}}

* Açıklamalara erişmek
{{{
>>> print sys.__doc__
}}}
yapılması gereken tek şey programın başına eklenen şu satırdır.
{{{
# -*- coding:utf-8 -*-
}}}

bu python daki Türkçe karakter problemini çözer.
* Gerekli paketler kurulumu:
{{{
# apt-get install python-gnome2-extras
}}}

! Örnek Kod
{{{
#! /usr/bin/python

import gtk

import egg.trayicon     # egg == python-gnome2-extras

def callback(widget, ev):

        print "Button %i pressed!" % ev.button

tray = egg.trayicon.TrayIcon("TrayIcon")

box = gtk.EventBox()

label = gtk.Label("Click Me!")

box.add(label)

tray.add(box)

tray.show_all()

box.connect("button-press-event", callback)

gtk.main()
}}}
System Tray de bir icon oluşturuluyor. Tıklandığında kabuğa tıklandığı belirtiliyor.

! Kaynak
[1] 
* telnet bağlantısını yapmak için telnetlib kütüphanesi kullanılmaktadır.
! Kütüphanenin Dahil edilmesi
{{{
from telnetlib import Telnet
}}}

! Modeme Bağlantı
* ilk önce ip nosu ile modeme bağlantı yapılıyor.
{{{
# telnet baglantisi aciliyor.
tn = Telnet(modemIpNo)
}}}
* istenilen string kadar okuma yapılıyor
{{{
# telnet baglantisindan okuma yapiliyor
tn.read_until("login: ")
}}}
* karşı tarafa yazma yapılıyor. Yazmanın sonunda \n karakteri mevcut komutu onaylamak için.
{{{
# telnet baglantisina yazma islemi yapiliyor
tn.write("root\n")
}}}
{{{
# telnet baglantisindan okuma yapiliyor
tn.read_until("Password: ")
# telnet baglantisina yazma islemi yapiliyor
tn.write("şifre\n")

tn.read_until('#')
}}}

! Bağlantıyı Kapatmak
* Açılan bağlantı kapatılıyor.
{{{
tn.close()
}}}
! Kaynak
[1] Python Yardım Dosyaları
Debian da kod tamamalama gelmiyor. Bunun çözümü için bir tane, linkteki gibi  [[.pythonstartup]] dosyası düzenlenir. .bashrc dosyasında 
{{{
export PYTHONSTARTUP=~/.pythonstartup
}}}
satırı eklenir.
! Kaynaklar
[1] http://blog.eznet.frih.net/?p=116
! =matplotlib kurulumu=
{{{
# apt-get install python-matplotlib 
}}}
!RAD
Rapid Application Development
!Nedir?
Hızlı Uygulama Geliştirme demektir.  Delphi'de RAD'dır
Netscape tarafından 1999 yılında bulunmuş XML tabanlı bir teknolojidir. 
Type the text for 'New Tiddler'
Konsoldan ram ile ilgili boyut gibi bilgilere ulaşmak için:
{{{
$ cat /proc/meminfo
}}}
Real player kurmak için ilk önce realplayer sitesiden linuxa ait olan bin uzantılı dosyayı indiriyoruz.
* Bağımlı olduğu {{{libstdc++5}}} (debian 4. CD de) runtime kütüphanesini kuruyoruz.
* Konsolda .bin uzantılı dosyayı çalıştıralabilir hale getiriyoruz. Bunun için: 
                {{{ $ chmod +x "Realplayer.bin" }}}
* Root haklarına sahip oluyoruz.
* {{{./RealPlayer10GOLD.bin }}} ile kurmaya başlıyoruz. Kurulmasını için bir yer belirtilmesi isteniyor. Ben {{{/opt/RealPlayer}}} seçiyorum.
* Daha sonraki sorulara evet diyerek kurulumu tamamlıyorum.
# Endüstriyel kontorl sistemlerinde
# Zaman Kısıtlaması çok önemlidir.
Berkeley üniversitesinin java derslerini indirmek için konsolda aşağıdaki kodu yazmak yeterlidir.
      
                       {{{$mplayer -noframedrop -dumpfile out.rm -dumpstream rtsp://url/to/file.rm}}}
Reduce refers to the assembly of answers from the sub-problems into a single set of output.
!Adı
Uzaktan yordam çağırma
!Tanım
bir bilgisayardan diğer bir bilgisayardaki yordam(lar)ı çağırma
Aşağıdaki kısayol yardımıyla bilgisayarı yeniden başlatmadan x-window-system i yediden başalatabiliriz. 
{{{
ctl+alt+backspace
}}}
Bu kısa yolu yaptığımızda bizi tekrar login ekranına getiriyor.
! SJF
Shortest Job First = En Kısa Süreli İş İlk
# Kesintisiz
# Süreçlerin toplam çalışma sürelerinin belirli olduğu düşünülür
# Zamanlayıcı, kuyrukta bulunan süreçlerden en kısa sürede tamamlanacak olan süreci seçer.
Shortest Remaining Time Next
En kısa çalışma zamanı kalan tercih edilir. 
SVN kullanmak için ilk önce svn client bir programa ihtiyaç vardır. Bunlara örnek olarak windows altında çalışan Tortoise SVN programıdır. 
!Repository Dosya Yapısı
{{{
-/
-------- proje
------------- trunk
------------- tag
------------- branch
}}}
!Çalışma Kopyasını güncellemek
{{{
svn update
}}}
!Depodan Dosya indirmek
{{{
svn checkout <depo adresi>
}}}
! Local Repository oluşturmak
{{{
$svnadmin create <local_path>
}}}
! Birinci Yol
{{{
form.ShowDialog();
}}}
! İkinci Yol
{{{
Form2 form2 = null;

void button_click(object sender, EventArgs e)
{ 
   if(form2 == null)
   {
      form2 = new Form2();
      form2.Disposed += new EventHandler(f_Disposed);
      form2.Show();
   }
}

void f_Disposed(object sender, EventArgs e)
{
   form2 = null;
}

}}}
! Kurulum
{{{
# apt-get install samba samba-common samba-client
}}}
! Kullanıcı ekleme
Samba kullanma için samba kullanıcı hesabı oluşturulması gerekiyor. samba hesabı Linux hesabı ile eşleşme gerekmektedir. Dolayısıyla ilk önce linux kullanıcısı oluşturup sonra samba hesabı oluşturulmalıdır.
{{{
# useradd gurcan
# smbpasswd -a gurcan
}}}
ikinicisi kullanıcı için şifre tanımlanıyor.
! Harici Hard Diski paylaşmak
{{{
[Elements]
    path = /media/Elements
    browseable = yes
    read only = no
    guest ok = no
    create mask = 0644
    directory mask = 0755
}}}
! Samba Yeniden Başlatmak
{{{
# /etc/init.d/samba restart
}}}
* tüm paylaşılanların bir genel görümünü almak: 
{{{
gurcan@yavuz:~$ smbclient -L localhost
}}}
! Kaynaklar
[1] http://ubuntuforums.org/showthread.php?t=202605
[2] http://www.debianadmin.com/file-server-configuration-in-debian-using-samba.html
O anda çalışan  süreçlerden hangisinin durdurulup, hangisinin çalıştırılacağına karar veren ve kesmeleri yöneten yazılımdır. 
>İşletim sisteminde, birden fazla hazır durumda bulunan bu süreçlerden hangisinin işlemciyi kullanacağına karar veren mekanizmaya zamanlayıcı(scheduler) denilir ve
>kullanılan algoritmaya da zamanlama algoritması ([[scheduling algorithm]]) denilir.
!İnterrupt Vector
Bilgisayarın belleğinde her I/O aygıt sınıfı ile ilişkili olan bir tablo bulunmaktadır. Bu tabloya kesme vektörü(interrupt vector) adı verilmektedir. Her kesmeye karşılık bir prosedür vardır ve adresi
bu tabloda tutulur
İkiye ayrırlır:
!Senkron Seri İletişim
# Alıcı ve verici aynı saat işaretini kullanırlar.
# Hızlı veri iletimi gerektiği durumlarda kullanılır.
!Asenkron Seri İletişim
# Herhangi bir zamanda veri gönderilebilir. Veri gönderilmediği zaman hat boşta kalır
# Senkron seri iletişimden daha yavaştır
{{{
#!
}}}
{{{
# useradd www -g www -d /dev/null -s /sbin/nologin
}}}
home dizini olarak /dev/null seçildi. Ve Kabuk olarak /sbin/nologin seçildi böylelikle kullanıcının sisteme login olmasını engellemiş oluyoruz. 
>Tabi bunun ne gibi bir amacı olabilir?
Bunun amacı bir web sunucu için kullanıcı tanımlaması yapmak için. Sisteme giremiyecek ancak sayfa yayınlanacak gibi bir mantıkdır.
Bilgisayar Hakkında Herşey....
Karalama Defteri
!Software Agent
Yazılım Ajanı yada Yazılım etmeni
!Tanımı
> Özel bir amaca adanmış, süreğen ve başka bir insanın bizim için yapabileceği bir şeyi aynı ilişki içinde yapan yazılım parçası ya da bilgisayar programıdır.
Bir yazılım birimidir. Başka yazılım etmen(ler)i ve/veya başka yazılım birim(ler)i (nesne yönelimli yazılım birimleri gibi) ile beraber çalışabilir. Yapay zeka içerirler. 
> Yazılım ajanı yapay zekâ tabanlı olan ve özerk olarak kullanıcıya yardımcı olarak çalışabilen bir yazılım birimidir.
! Kullanım Alanları
* Elektronik ticaret
* Elektronik  bankacılık
* webteki bilgileri indexleme
* webte bakım
* ilk önce fdisk gibi bir program yardımı ile bir partition oluşturulur.
* mkswap komutu ile swap alanı haline getirilir
{{{
# mkswap -v1 /dev/hda8
}}}
( daha denenmedi)
* kaydedilir ve aktif hale getirilir
{{{
# swapon -a
# swapon -s
}}}
* bunu açılışta bağlanması için /etc/fstab dosyası içerisine aşağıdaki satır eklenir
{{{
/dev/hda8 none swap sw 0 0
}}}
/***
|''Name:''|SparklinePlugin|
|''Description:''|Sparklines macro|
***/
//{{{
if(!version.extensions.SparklinePlugin) {
version.extensions.SparklinePlugin = {installed:true};

//--
//-- Sparklines
//--

config.macros.sparkline = {};
config.macros.sparkline.handler = function(place,macroName,params)
{
	var data = [];
	var min = 0;
	var max = 0;
	var v;
	for(var t=0; t<params.length; t++) {
		v = parseInt(params[t]);
		if(v < min)
			min = v;
		if(v > max)
			max = v;
		data.push(v);
	}
	if(data.length < 1)
		return;
	var box = createTiddlyElement(place,"span",null,"sparkline",String.fromCharCode(160));
	box.title = data.join(",");
	var w = box.offsetWidth;
	var h = box.offsetHeight;
	box.style.paddingRight = (data.length * 2 - w) + "px";
	box.style.position = "relative";
	for(var d=0; d<data.length; d++) {
		var tick = document.createElement("img");
		tick.border = 0;
		tick.className = "sparktick";
		tick.style.position = "absolute";
		tick.src = "data:image/gif,GIF89a%01%00%01%00%91%FF%00%FF%FF%FF%00%00%00%C0%C0%C0%00%00%00!%F9%04%01%00%00%02%00%2C%00%00%00%00%01%00%01%00%40%02%02T%01%00%3B";
		tick.style.left = d*2 + "px";
		tick.style.width = "2px";
		v = Math.floor(((data[d] - min)/(max-min)) * h);
		tick.style.top = (h-v) + "px";
		tick.style.height = v + "px";
		box.appendChild(tick);
	}
};


}
//}}}
{{{
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)

# The loopback interface
auto lo
iface lo inet loopback

# The first network card - this entry was created during the Debian installation
# (network, broadcast and gateway are optional)
auto eth0


iface eth0 inet static
       address 192.168.1.10
       netmask 255.255.255.0
       network 192.168.1.0
       broadcast 192.168.1.255
       gateway 192.168.1.1
}}}
/etc/network/interfaces dosyası yukarıdaki gibi olması gerekitor.
! Dosya izini Değiştiriliyor
{{{
$ chmod +x jdk-6u12-linux-i586.bin
}}}
! Dosya Çalıştırılıyor
{{{
$ ./jdk-6u12-linux-i586.bin 
}}}
! Dosya Yerine Taşınıyor
{{{
#  mv jdk1.6.0_12/ /usr/lib
}}}
! Sembolik Link Oluşturuluyor
{{{
# cd /usr/lib
# ln -s jdk1.6.0_12/ jdk
}}}
! Çevre Değişkenleri Ayarlaması
{{{
# vim /etc/profile
}}}
Dosyaya aşağıdaki satırlar ekleniyor. 
{{{
export JAVA_HOME=/usr/lib/jdk
export JDK_HOME=$JAVA_HOME
}}}
Dosya sonundaki PATH değişkeni  aşağıdaki hale getiriyoruz.
{{{
export PATH=$PATH:$JAVA_HOME/bin
}}}
[[/etc/profile]] dosyası bash özelliklerini belirlemektedir. 
> ~/.bashrc dosyasında da bu işlemi kullanıcı bazlıda yapabilirdik. 
Bu dosyada yaptığımız değişkenlerin etkisini görebilmek için bash yeniden başlatılmalıdır. Log out olup tekrar girilmelidir. Hemen değişiklikleri görmek
istersek 
{{{
# bash --login
}}}
yaparak bash tekrar başlatabiliriz.
! Tanımlı Java Değişkeni Var mı?
{{{
# update-alternatives --display java
}}}
başka java değişkeni varmı bakılıyor. Mesala gnu java derleyicisi tanımlı onun kontrolu yapılıyor. Buradaki liste bize mevcut java değerlerini ve bunların öncelik değerlerini belirtir. Buradaki sayı nekadar yüksek ise
en yüksek önceliğe sahiptir.
! Öntanımlı java değiştiriyoruz
{{{
# update-alternatives --install /usr/bin/java java /usr/lib/jdk/jre/bin/java 1200 --slave /usr/share/man/man1/java.1.gz java.1.gz /usr/lib/jdk/man/man1/java.1
}}}
öncelik değer, tanımlıyoruz. 1200 değeri diğer java değerlerinden daha yüksek olduğundan artık java bizim yüklediğimiz olur.
! Kontrol
{{{
$ java --version
}}}
java versiyonun kontorlunu yapıyoruz. Yaptığımız işlemler doğruluğunu yapıyoruz. 
{{{
$ env
}}}
ortam değişkenlerin kontrollu yapılıyor.
!Tanım
> İşletim sistemi ile kullanıcı programları arasında tanımlı olan arayüz, işletim sistemi tarafından tanımlanan bir prosedürler kümesidir.
System Calls; İşletim sistemi tarafından sağlanan servisler için arayüz sağlar. Bu çağırılar,assembly ile yazılmış  alt seviye görevler olabilir , C veya C++ ile yazılmış    rutinler  olarak  elde edilebilir. 
Örneğin bir dosya bir başka dosya kopyalama işleminde bir çok systam calls iş yapar. Örneğin, dosyanın açılıp dosya adının belirlenmesi, verilerin bir yerden okunup bir yere kopyalanması, işin bitirilmesi bunların hepsi bir system callsdur. 
!System Calls Çeşitleri
> Süreç Kontorlu
>> yükleme, oluşturma, hafıza tahsisi gibi işlemler
> Dosya işleme 
>>açma, kapama, oluşturma gibi işlemler 
> aygıt işleme 
>> aygıt isteme, özelliklerini belirleme, yazma ve okuma gibi işlemler
> bilgi  bakımı
>> mevcut zamanı, günü alma belirleme, sistem hakkında ilgili bilgiler alma gibi  işlemler
> iletişim
>> mesaj alma ve gönderme, iletişim kurma ve kaldırma gibi işlemler
!Örnek
Örneğin  bir C programı printf() fonksiyonunu  çağırsın. C kütüphanesi bunu alır ve işletim sistemindeki gerekli olan system callu çağırır yani bu örnekteki karşılık write() çağırısıdır. C kütüphanesi write() dan geri dönen değeri alır ve kullanıcı programına geri döndürür. 
Belli bir süre sonra sıkıntı vermeye başlayan sistem sesini kapatmak için:
* Aşağıdaki dosyayı açıyoruz.
{{{
#vim /etc/inputrc
}}}
* Yoru satırı ise başındaki '#' kaldırıyoruz. Eğer yoksa dosyaya ekliyoruz.
{{{
set bell-style none
}}}
{{{text section}}} olarak da bilinir. Çalışma halindeki program olarak düşünülebilir.  Ve süreç kaynaklara - - CPU time, memory, dosya, I/O aygıtları - - ihtiyaç duymaktadır.
Bir program pasif bir varlıktır. Diskte saklanan bir talimatlar listesidir. Buna karşın, süreç bir aktif varlıktır örneğin bir sonraki çalıştırılacak komutu belirtir ve kaynaklar ile ilişkilidir. Bir program memory e yüklendiğinde bir süreç halini alır
!stack
Geçici verileri depolamada kullanılır. fonksiyon parametreleri, geri dönüş adresleri, yerel değişkenler
!heap
Süreç çalışma zamanında tahsis edilen dinamik hafızadır. 
! Süreç durumları
* New
* Running
* Waiting 
* Ready
* Terminated
Bir süreç işletim sisteminde process control block ile temsil edilir. 
!Süreç Tablosu
tüm süreçlerin bilgilerinin barındırıldığı İşletim sistemi tarafından tutulan tablodur.
Bir süreç birçok süreç oluşturabilir. Yeni bir süreç üreten sürece parent, yeni üretilen sürece child adı verilir. Ve oluşturulan yeni süreçlerde yeni süreçler oluşturabilir aynı bir ağaç yapısı gibi devam eder. 
İşletim sistemleri, süreçlere pid yani process identifier numarası verir. 
!!!Bir süreç yeni bir süreç ürettiğinde  iki muhtemel durum olur.
# parent child ile eş zamanlı çalışırlar. 
# parent child işini bitirinceye kadar çalışır.
!!! Adres uzayı için iki durum vardır.
# child süreç parent sürecin bir kopyasıdır.
# cocuk sürec yeni bir program yüklüdür.
! Yeni süreç üretmek
unix de süreç için [[fork()]]  fonksiyonu kullanılır. fork() çağırıldığında geriye çocuk için '0', hata durumlarında negatif değer ve 0 dan farklı durumlar içinde parent geriye döndürülür.
> fork() [[System Calls]] yeni süreç oluşturmanın tek yoludur. 
!Adı
 tftp - trivial file transfer program

> Tftp is the user interface to the Internet TFTP (Trivial File Transfer Protocol), which allows users to transfer files to and from a remote machine.

! Programın Kurulması
{{{
# apt-get install xinetd tftpd-hpa tftp
}}}
! Kurulmuş mu?
{{{
gurcan@debian:~$  /usr/sbin/in.tftpd -V
tftp-hpa 0.48, with remap, with tcpwrappers
}}}
! Ayarlamalar
* /etc/xinetd.d/tftp dosyası oluşturulup alttaki satırlar ekleniyor:
{{{
service tftp
{
protocol        = udp
socket_type     = dgram
wait            = yes
user            = root
server          = /usr/sbin/in.tftpd
server_args     = -s /tftpboot
disable         = no
}
}}}
* /tftpboot dizini oluşturup sahipliğini değiştiriyoruz.
{{{
$ mkdir /tftpboot
$ chmod -R 777 /tftpboot
$ chown -R nobody /tftpboot
}}}
* tftpd başlatıyoruz.
{{{
# /etc/init.d/xinetd start
}}}
! TFTP Test Ediyoruz
* Localde çalışıyormu bakıyoruz.
{{{
gurcan@debian:~$ netstat -l -u | grep ftp
udp        0      0 *:tftp                  *:*  
}}}
* Daha sonra paylaşmak isteğimiz bir dosyayı içine atıyoruz. 
{{{
gurcan@debian:~/Desktop$ tftp localhost
tftp> 
tftp> get server.c
Received 2376 bytes in 0.0 seconds
tftp> q
gurcan@debian:~/Desktop$ ll server.c 
-rw-r--r-- 1 gurcan gurcan 2228 Mar  2 00:53 server.c
}}}
localhost ta tftp bağlanıyoruz. Paylaştığımız dosyayı bulunduğumuz dizine kopyalıyoruz.
!Örnek
!!! dosya alınıyor
{{{
# tftp -r server.c -g 192.168.2.4
}}}
192.168.2.2 ipli makinadan /tftpboot dizini altında bulunana server.c adlı paylaşılan dosya modemimizin içerisine çekiliyor.
! Busyboxtaki tftp yapısı
{{{
    tftp [OPTIONS] HOST [PORT]

    Transfer a file from/to tftp server

    Options:

            -l FILE Local FILE
            -r FILE Remote FILE
            -g      Get file
            -p      Put file
            -b SIZE Transfer blocks of SIZE octets
}}}
!Kaynaklar
[1] http://docs.blackfin.uclinux.org/doku.php?id=setting_up_a_tftp_server
[2] http://busybox.net/downloads/BusyBox.html
!Tanım
TFTP is a very simple file-transfer protocol, which is very similar to FTP but which doesn't use any kind of authentication
!Yükleme
{{{
# apt-get install tftpd-hpa
}}}
! Aktif hale getirmek
/etc/default/tftpd-hpa dosyasında değişklik yapmak gerekiyor.
{{{
#Defaults for tftpd-hpa
RUN_DAEMON="yes"
OPTIONS="-l -s /var/lib/tftpboot"
}}}
!Parlaklık ayarı
{{{
echo 85 >  /proc/acpi/video/VGA1/LCDD/brightness
}}}
Başlangıç scripttine koyup ayarlanabilir.
! Kamerayı Test Etmek
{{{
$ mplayer -tv driver=v4l2:device=/dev/video0 tv:// 
}}}
! Wireless
{{{
$ wget  http://intellinuxwireless.org/iwlwifi/downloads/iwlwifi-5000-ucode-8.24.2.12.tgz
}}}
driver indirip  kaydediyoruz. İçerisindeki dosyayı /lib/firmware altıan kopyalıyoruz. daha sonra 
{{{
# modprobe iwlang
}}}
modülü yüklüyoruz.

!Bluetooth
{{{
# modprobe btusb
}}}
!!! swap alanını öğrenemek
Bunun için /etc/fstab dosyasına bakılıp dev adını öğreniriz.
{{{
$ vim /etc/fstab

/dev/hda2       none            swap    sw              0       0

}}}
bende hda2 swap alanı olarak gözüküyor.
!!! swap alanını kapatmak
{{{
# swapoff  /dev/hda2
}}}
!!! swap alanıı açmak
{{{
# swapon /dev/hda2
}}}

!!! Swap alanı çalışyormu kontrol
{{{
$ cat /proc/swaps
}}}
eğer varsa bağlı oldu device da bildirenbir çıktı verecektir.
!Tread Nedir?
Hafif prosestir. Aynı proses üzerinde birden fazla işlem yürütme imkanını sağlar. Threadler tüm kaynakları paylaşırlar. 
> Threadler, prosesler gibi birbirlerinden bağımsız değildirler. Global değişkenleri paylaşırlar. 
Her thread in kendi yığını vardır. 
>yığında, çağırılmış ama dönülmemiş metotlar ile ilgili kayıtlar ve yerel değişkenler vardır. 
! Thread Modeli
Aynı adres uzayında başka bir ifadeyle aynı süreç içerisinde aynı programın farklı bölümleri (iş parçacığıthread) yarı paralel olarak çalıştırılabilir. Bu şekilde aynı
süreç içerisinde birden fazla süreç parçacıkları paralel olarak işlem yaparlar. Bu modele thread modeli denilir.
Kde bulunanan yakuake programının gnome versiyonu.
{{{
# apt-get install tilda
}}}

Yükledikten sonra kısa yol ataması yapılması gerekiyor.
CPU'nun kontrolunun işletim sisteminde olduğundan emin olmamız gerekmektedir.  Bir kullanıcı programının sonsuz bir döngü içinde takılıp kalması yada işletim sistemine kontrolu vermemesini engellememiz gerekmektedir. Bunu gerçekleştirmek için [[Timer]] kullanırız. 
Timer belli bir periyot sonra kesme göndermeye ayarlanır. Bu peryot sabit bir zaman dilimi olabilir. Örneğin; 1/60 saniye gibi yada değişken sürede de olabilir.   
Kullanıcı programının çok uzun süre çalışmasını Timer sayesinde engelleyebiliriz. 
Tomcat servlet containerdır. Kullanmak için bir tane ve daha fazla yönetici gerekmektedir. Bunu eklemek için "<Tomcat yüklüolduğu dizin>/conf " dizi altındaki "tomcat-users.xml" düzenlenir. Aşağıdaki satırlar dosyanın içine tamemen kopyalanır. guya adlı ve şifreside guya olan bir manager eklemiş olduk.

{{{
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="manager"/>
  <user username="guya" password="guya" roles="manager"/>
</tomcat-users>
}}}
!!!Not
Tomcat manager bize oluşturduğumuz yada bir yerden aldığımız [[war]] dosyalarını deploy yapmamızı sağlar.
/***
Description: Contains the stuff you need to use Tiddlyspot
Note, you also need UploadPlugin, PasswordOptionPlugin and LoadRemoteFileThroughProxy
from http://tiddlywiki.bidix.info for a complete working Tiddlyspot site.
***/
//{{{

// edit this if you are migrating sites or retrofitting an existing TW
config.tiddlyspotSiteId = 'karalamadefteri';

// make it so you can by default see edit controls via http
config.options.chkHttpReadOnly = false;
window.readOnly = false; // make sure of it (for tw 2.2)
window.showBackstage = true; // show backstage too

// disable autosave in d3
if (window.location.protocol != "file:")
	config.options.chkGTDLazyAutoSave = false;

// tweak shadow tiddlers to add upload button, password entry box etc
with (config.shadowTiddlers) {
	SiteUrl = 'http://'+config.tiddlyspotSiteId+'.tiddlyspot.com';
	SideBarOptions = SideBarOptions.replace(/(<<saveChanges>>)/,"$1<<tiddler TspotSidebar>>");
	OptionsPanel = OptionsPanel.replace(/^/,"<<tiddler TspotOptions>>");
	DefaultTiddlers = DefaultTiddlers.replace(/^/,"[[WelcomeToTiddlyspot]] ");
	MainMenu = MainMenu.replace(/^/,"[[WelcomeToTiddlyspot]] ");
}

// create some shadow tiddler content
merge(config.shadowTiddlers,{

'TspotOptions':[
 "tiddlyspot password:",
 "<<option pasUploadPassword>>",
 ""
].join("\n"),

'TspotControls':[
 "| tiddlyspot password:|<<option pasUploadPassword>>|",
 "| site management:|<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . .  " + config.tiddlyspotSiteId + ">>//(requires tiddlyspot password)//<br>[[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]], [[download (go offline)|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download]]|",
 "| links:|[[tiddlyspot.com|http://tiddlyspot.com/]], [[FAQs|http://faq.tiddlyspot.com/]], [[blog|http://tiddlyspot.blogspot.com/]], email [[support|mailto:support@tiddlyspot.com]] & [[feedback|mailto:feedback@tiddlyspot.com]], [[donate|http://tiddlyspot.com/?page=donate]]|"
].join("\n"),

'WelcomeToTiddlyspot':[
 "This document is a ~TiddlyWiki from tiddlyspot.com.  A ~TiddlyWiki is an electronic notebook that is great for managing todo lists, personal information, and all sorts of things.",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //What now?// &nbsp;&nbsp;@@ Before you can save any changes, you need to enter your password in the form below.  Then configure privacy and other site settings at your [[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]] (your control panel username is //" + config.tiddlyspotSiteId + "//).",
 "<<tiddler TspotControls>>",
 "See also GettingStarted.",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Working online// &nbsp;&nbsp;@@ You can edit this ~TiddlyWiki right now, and save your changes using the \"save to web\" button in the column on the right.",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Working offline// &nbsp;&nbsp;@@ A fully functioning copy of this ~TiddlyWiki can be saved onto your hard drive or USB stick.  You can make changes and save them locally without being connected to the Internet.  When you're ready to sync up again, just click \"upload\" and your ~TiddlyWiki will be saved back to tiddlyspot.com.",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Help!// &nbsp;&nbsp;@@ Find out more about ~TiddlyWiki at [[TiddlyWiki.com|http://tiddlywiki.com]].  Also visit [[TiddlyWiki.org|http://tiddlywiki.org]] for documentation on learning and using ~TiddlyWiki. New users are especially welcome on the [[TiddlyWiki mailing list|http://groups.google.com/group/TiddlyWiki]], which is an excellent place to ask questions and get help.  If you have a tiddlyspot related problem email [[tiddlyspot support|mailto:support@tiddlyspot.com]].",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Enjoy :)// &nbsp;&nbsp;@@ We hope you like using your tiddlyspot.com site.  Please email [[feedback@tiddlyspot.com|mailto:feedback@tiddlyspot.com]] with any comments or suggestions."
].join("\n"),

'TspotSidebar':[
 "<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . .  " + config.tiddlyspotSiteId + ">><html><a href='http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download' class='button'>download</a></html>"
].join("\n")

});
//}}}
! Kaynak
# http://en.kioskea.net/faq/759-ubuntu-disabling-ipv6-support
# 
| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |
| 08/03/2010 00:30:49 | YourName | [[/|http://karalamadefteri.tiddlyspot.com/]] | [[store.cgi|http://karalamadefteri.tiddlyspot.com/store.cgi]] | . | [[index.html | http://karalamadefteri.tiddlyspot.com/index.html]] | . |
| 08/03/2010 00:30:54 | YourName | [[/|http://karalamadefteri.tiddlyspot.com/]] | [[store.cgi|http://karalamadefteri.tiddlyspot.com/store.cgi]] | . | [[index.html | http://karalamadefteri.tiddlyspot.com/index.html]] | . | ok | ok |
| 08/03/2010 00:35:23 | YourName | [[/|http://karalamadefteri.tiddlyspot.com/]] | [[store.php|http://karalamadefteri.tiddlyspot.com/store.php]] | . | [[index.html | http://karalamadefteri.tiddlyspot.com/index.html]] |  |
| 08/03/2010 00:36:14 | YourName | [[/|http://karalamadefteri.tiddlyspot.com/]] | [[store.cgi|http://karalamadefteri.tiddlyspot.com/store.cgi]] | . | [[index.html | http://karalamadefteri.tiddlyspot.com/index.html]] | . |
| 08/03/2010 01:19:25 | gurcanyavuz | [[karalamadefteri.html|file:///D:/Belgeler/K%C3%BCt%C3%BCphane/ipu%C3%A7lar/wiki/karalamadefteri.html]] | [[store.cgi|http://karalamadefteri.tiddlyspot.com/store.cgi]] | . | [[index.html | http://karalamadefteri.tiddlyspot.com/index.html]] | . |
| 23/04/2011 13:22:14 | gurcanyavuz | [[karalamadefteri.html|file:///home/gurcan/K%C3%BCt%C3%BCphane/ipu%C3%A7lar/wiki/karalamadefteri.html]] | [[store.cgi|http://karalamadefteri.tiddlyspot.com/store.cgi]] | . | [[index.html | http://karalamadefteri.tiddlyspot.com/index.html]] | . |
| 25/09/2012 22:01:06 | gurcanyavuz | [[karalamadefteri.html|file:///home/gurcan/Desktop/karalamadefteri.html]] | [[store.cgi|http://karalamadefteri.tiddlyspot.com/store.cgi]] | . | [[index.html | http://karalamadefteri.tiddlyspot.com/index.html]] | . |
/***
|''Name:''|UploadPlugin|
|''Description:''|Save to web a TiddlyWiki|
|''Version:''|4.1.3|
|''Date:''|Feb 24, 2008|
|''Source:''|http://tiddlywiki.bidix.info/#UploadPlugin|
|''Documentation:''|http://tiddlywiki.bidix.info/#UploadPluginDoc|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0|
|''Requires:''|PasswordOptionPlugin|
***/
//{{{
version.extensions.UploadPlugin = {
	major: 4, minor: 1, revision: 3,
	date: new Date("Feb 24, 2008"),
	source: 'http://tiddlywiki.bidix.info/#UploadPlugin',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	coreVersion: '2.2.0'
};

//
// Environment
//

if (!window.bidix) window.bidix = {}; // bidix namespace
bidix.debugMode = false;	// true to activate both in Plugin and UploadService
	
//
// Upload Macro
//

config.macros.upload = {
// default values
	defaultBackupDir: '',	//no backup
	defaultStoreScript: "store.php",
	defaultToFilename: "index.html",
	defaultUploadDir: ".",
	authenticateUser: true	// UploadService Authenticate User
};
	
config.macros.upload.label = {
	promptOption: "Save and Upload this TiddlyWiki with UploadOptions",
	promptParamMacro: "Save and Upload this TiddlyWiki in %0",
	saveLabel: "save to web", 
	saveToDisk: "save to disk",
	uploadLabel: "upload"	
};

config.macros.upload.messages = {
	noStoreUrl: "No store URL in parmeters or options",
	usernameOrPasswordMissing: "Username or password missing"
};

config.macros.upload.handler = function(place,macroName,params) {
	if (readOnly)
		return;
	var label;
	if (document.location.toString().substr(0,4) == "http") 
		label = this.label.saveLabel;
	else
		label = this.label.uploadLabel;
	var prompt;
	if (params[0]) {
		prompt = this.label.promptParamMacro.toString().format([this.destFile(params[0], 
			(params[1] ? params[1]:bidix.basename(window.location.toString())), params[3])]);
	} else {
		prompt = this.label.promptOption;
	}
	createTiddlyButton(place, label, prompt, function() {config.macros.upload.action(params);}, null, null, this.accessKey);
};

config.macros.upload.action = function(params)
{
		// for missing macro parameter set value from options
		if (!params) params = {};
		var storeUrl = params[0] ? params[0] : config.options.txtUploadStoreUrl;
		var toFilename = params[1] ? params[1] : config.options.txtUploadFilename;
		var backupDir = params[2] ? params[2] : config.options.txtUploadBackupDir;
		var uploadDir = params[3] ? params[3] : config.options.txtUploadDir;
		var username = params[4] ? params[4] : config.options.txtUploadUserName;
		var password = config.options.pasUploadPassword; // for security reason no password as macro parameter	
		// for still missing parameter set default value
		if ((!storeUrl) && (document.location.toString().substr(0,4) == "http")) 
			storeUrl = bidix.dirname(document.location.toString())+'/'+config.macros.upload.defaultStoreScript;
		if (storeUrl.substr(0,4) != "http")
			storeUrl = bidix.dirname(document.location.toString()) +'/'+ storeUrl;
		if (!toFilename)
			toFilename = bidix.basename(window.location.toString());
		if (!toFilename)
			toFilename = config.macros.upload.defaultToFilename;
		if (!uploadDir)
			uploadDir = config.macros.upload.defaultUploadDir;
		if (!backupDir)
			backupDir = config.macros.upload.defaultBackupDir;
		// report error if still missing
		if (!storeUrl) {
			alert(config.macros.upload.messages.noStoreUrl);
			clearMessage();
			return false;
		}
		if (config.macros.upload.authenticateUser && (!username || !password)) {
			alert(config.macros.upload.messages.usernameOrPasswordMissing);
			clearMessage();
			return false;
		}
		bidix.upload.uploadChanges(false,null,storeUrl, toFilename, uploadDir, backupDir, username, password); 
		return false; 
};

config.macros.upload.destFile = function(storeUrl, toFilename, uploadDir) 
{
	if (!storeUrl)
		return null;
		var dest = bidix.dirname(storeUrl);
		if (uploadDir && uploadDir != '.')
			dest = dest + '/' + uploadDir;
		dest = dest + '/' + toFilename;
	return dest;
};

//
// uploadOptions Macro
//

config.macros.uploadOptions = {
	handler: function(place,macroName,params) {
		var wizard = new Wizard();
		wizard.createWizard(place,this.wizardTitle);
		wizard.addStep(this.step1Title,this.step1Html);
		var markList = wizard.getElement("markList");
		var listWrapper = document.createElement("div");
		markList.parentNode.insertBefore(listWrapper,markList);
		wizard.setValue("listWrapper",listWrapper);
		this.refreshOptions(listWrapper,false);
		var uploadCaption;
		if (document.location.toString().substr(0,4) == "http") 
			uploadCaption = config.macros.upload.label.saveLabel;
		else
			uploadCaption = config.macros.upload.label.uploadLabel;
		
		wizard.setButtons([
				{caption: uploadCaption, tooltip: config.macros.upload.label.promptOption, 
					onClick: config.macros.upload.action},
				{caption: this.cancelButton, tooltip: this.cancelButtonPrompt, onClick: this.onCancel}
				
			]);
	},
	options: [
		"txtUploadUserName",
		"pasUploadPassword",
		"txtUploadStoreUrl",
		"txtUploadDir",
		"txtUploadFilename",
		"txtUploadBackupDir",
		"chkUploadLog",
		"txtUploadLogMaxLine"		
	],
	refreshOptions: function(listWrapper) {
		var opts = [];
		for(i=0; i<this.options.length; i++) {
			var opt = {};
			opts.push();
			opt.option = "";
			n = this.options[i];
			opt.name = n;
			opt.lowlight = !config.optionsDesc[n];
			opt.description = opt.lowlight ? this.unknownDescription : config.optionsDesc[n];
			opts.push(opt);
		}
		var listview = ListView.create(listWrapper,opts,this.listViewTemplate);
		for(n=0; n<opts.length; n++) {
			var type = opts[n].name.substr(0,3);
			var h = config.macros.option.types[type];
			if (h && h.create) {
				h.create(opts[n].colElements['option'],type,opts[n].name,opts[n].name,"no");
			}
		}
		
	},
	onCancel: function(e)
	{
		backstage.switchTab(null);
		return false;
	},
	
	wizardTitle: "Upload with options",
	step1Title: "These options are saved in cookies in your browser",
	step1Html: "<input type='hidden' name='markList'></input><br>",
	cancelButton: "Cancel",
	cancelButtonPrompt: "Cancel prompt",
	listViewTemplate: {
		columns: [
			{name: 'Description', field: 'description', title: "Description", type: 'WikiText'},
			{name: 'Option', field: 'option', title: "Option", type: 'String'},
			{name: 'Name', field: 'name', title: "Name", type: 'String'}
			],
		rowClasses: [
			{className: 'lowlight', field: 'lowlight'} 
			]}
};

//
// upload functions
//

if (!bidix.upload) bidix.upload = {};

if (!bidix.upload.messages) bidix.upload.messages = {
	//from saving
	invalidFileError: "The original file '%0' does not appear to be a valid TiddlyWiki",
	backupSaved: "Backup saved",
	backupFailed: "Failed to upload backup file",
	rssSaved: "RSS feed uploaded",
	rssFailed: "Failed to upload RSS feed file",
	emptySaved: "Empty template uploaded",
	emptyFailed: "Failed to upload empty template file",
	mainSaved: "Main TiddlyWiki file uploaded",
	mainFailed: "Failed to upload main TiddlyWiki file. Your changes have not been saved",
	//specific upload
	loadOriginalHttpPostError: "Can't get original file",
	aboutToSaveOnHttpPost: 'About to upload on %0 ...',
	storePhpNotFound: "The store script '%0' was not found."
};

bidix.upload.uploadChanges = function(onlyIfDirty,tiddlers,storeUrl,toFilename,uploadDir,backupDir,username,password)
{
	var callback = function(status,uploadParams,original,url,xhr) {
		if (!status) {
			displayMessage(bidix.upload.messages.loadOriginalHttpPostError);
			return;
		}
		if (bidix.debugMode) 
			alert(original.substr(0,500)+"\n...");
		// Locate the storeArea div's 
		var posDiv = locateStoreArea(original);
		if((posDiv[0] == -1) || (posDiv[1] == -1)) {
			alert(config.messages.invalidFileError.format([localPath]));
			return;
		}
		bidix.upload.uploadRss(uploadParams,original,posDiv);
	};
	
	if(onlyIfDirty && !store.isDirty())
		return;
	clearMessage();
	// save on localdisk ?
	if (document.location.toString().substr(0,4) == "file") {
		var path = document.location.toString();
		var localPath = getLocalPath(path);
		saveChanges();
	}
	// get original
	var uploadParams = new Array(storeUrl,toFilename,uploadDir,backupDir,username,password);
	var originalPath = document.location.toString();
	// If url is a directory : add index.html
	if (originalPath.charAt(originalPath.length-1) == "/")
		originalPath = originalPath + "index.html";
	var dest = config.macros.upload.destFile(storeUrl,toFilename,uploadDir);
	var log = new bidix.UploadLog();
	log.startUpload(storeUrl, dest, uploadDir,  backupDir);
	displayMessage(bidix.upload.messages.aboutToSaveOnHttpPost.format([dest]));
	if (bidix.debugMode) 
		alert("about to execute Http - GET on "+originalPath);
	var r = doHttp("GET",originalPath,null,null,username,password,callback,uploadParams,null);
	if (typeof r == "string")
		displayMessage(r);
	return r;
};

bidix.upload.uploadRss = function(uploadParams,original,posDiv) 
{
	var callback = function(status,params,responseText,url,xhr) {
		if(status) {
			var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
			displayMessage(bidix.upload.messages.rssSaved,bidix.dirname(url)+'/'+destfile);
			bidix.upload.uploadMain(params[0],params[1],params[2]);
		} else {
			displayMessage(bidix.upload.messages.rssFailed);			
		}
	};
	// do uploadRss
	if(config.options.chkGenerateAnRssFeed) {
		var rssPath = uploadParams[1].substr(0,uploadParams[1].lastIndexOf(".")) + ".xml";
		var rssUploadParams = new Array(uploadParams[0],rssPath,uploadParams[2],'',uploadParams[4],uploadParams[5]);
		var rssString = generateRss();
		// no UnicodeToUTF8 conversion needed when location is "file" !!!
		if (document.location.toString().substr(0,4) != "file")
			rssString = convertUnicodeToUTF8(rssString);	
		bidix.upload.httpUpload(rssUploadParams,rssString,callback,Array(uploadParams,original,posDiv));
	} else {
		bidix.upload.uploadMain(uploadParams,original,posDiv);
	}
};

bidix.upload.uploadMain = function(uploadParams,original,posDiv) 
{
	var callback = function(status,params,responseText,url,xhr) {
		var log = new bidix.UploadLog();
		if(status) {
			// if backupDir specified
			if ((params[3]) && (responseText.indexOf("backupfile:") > -1))  {
				var backupfile = responseText.substring(responseText.indexOf("backupfile:")+11,responseText.indexOf("\n", responseText.indexOf("backupfile:")));
				displayMessage(bidix.upload.messages.backupSaved,bidix.dirname(url)+'/'+backupfile);
			}
			var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
			displayMessage(bidix.upload.messages.mainSaved,bidix.dirname(url)+'/'+destfile);
			store.setDirty(false);
			log.endUpload("ok");
		} else {
			alert(bidix.upload.messages.mainFailed);
			displayMessage(bidix.upload.messages.mainFailed);
			log.endUpload("failed");			
		}
	};
	// do uploadMain
	var revised = bidix.upload.updateOriginal(original,posDiv);
	bidix.upload.httpUpload(uploadParams,revised,callback,uploadParams);
};

bidix.upload.httpUpload = function(uploadParams,data,callback,params)
{
	var localCallback = function(status,params,responseText,url,xhr) {
		url = (url.indexOf("nocache=") < 0 ? url : url.substring(0,url.indexOf("nocache=")-1));
		if (xhr.status == 404)
			alert(bidix.upload.messages.storePhpNotFound.format([url]));
		if ((bidix.debugMode) || (responseText.indexOf("Debug mode") >= 0 )) {
			alert(responseText);
			if (responseText.indexOf("Debug mode") >= 0 )
				responseText = responseText.substring(responseText.indexOf("\n\n")+2);
		} else if (responseText.charAt(0) != '0') 
			alert(responseText);
		if (responseText.charAt(0) != '0')
			status = null;
		callback(status,params,responseText,url,xhr);
	};
	// do httpUpload
	var boundary = "---------------------------"+"AaB03x";	
	var uploadFormName = "UploadPlugin";
	// compose headers data
	var sheader = "";
	sheader += "--" + boundary + "\r\nContent-disposition: form-data; name=\"";
	sheader += uploadFormName +"\"\r\n\r\n";
	sheader += "backupDir="+uploadParams[3] +
				";user=" + uploadParams[4] +
				";password=" + uploadParams[5] +
				";uploaddir=" + uploadParams[2];
	if (bidix.debugMode)
		sheader += ";debug=1";
	sheader += ";;\r\n"; 
	sheader += "\r\n" + "--" + boundary + "\r\n";
	sheader += "Content-disposition: form-data; name=\"userfile\"; filename=\""+uploadParams[1]+"\"\r\n";
	sheader += "Content-Type: text/html;charset=UTF-8" + "\r\n";
	sheader += "Content-Length: " + data.length + "\r\n\r\n";
	// compose trailer data
	var strailer = new String();
	strailer = "\r\n--" + boundary + "--\r\n";
	data = sheader + data + strailer;
	if (bidix.debugMode) alert("about to execute Http - POST on "+uploadParams[0]+"\n with \n"+data.substr(0,500)+ " ... ");
	var r = doHttp("POST",uploadParams[0],data,"multipart/form-data; ;charset=UTF-8; boundary="+boundary,uploadParams[4],uploadParams[5],localCallback,params,null);
	if (typeof r == "string")
		displayMessage(r);
	return r;
};

// same as Saving's updateOriginal but without convertUnicodeToUTF8 calls
bidix.upload.updateOriginal = function(original, posDiv)
{
	if (!posDiv)
		posDiv = locateStoreArea(original);
	if((posDiv[0] == -1) || (posDiv[1] == -1)) {
		alert(config.messages.invalidFileError.format([localPath]));
		return;
	}
	var revised = original.substr(0,posDiv[0] + startSaveArea.length) + "\n" +
				store.allTiddlersAsHtml() + "\n" +
				original.substr(posDiv[1]);
	var newSiteTitle = getPageTitle().htmlEncode();
	revised = revised.replaceChunk("<title"+">","</title"+">"," " + newSiteTitle + " ");
	revised = updateMarkupBlock(revised,"PRE-HEAD","MarkupPreHead");
	revised = updateMarkupBlock(revised,"POST-HEAD","MarkupPostHead");
	revised = updateMarkupBlock(revised,"PRE-BODY","MarkupPreBody");
	revised = updateMarkupBlock(revised,"POST-SCRIPT","MarkupPostBody");
	return revised;
};

//
// UploadLog
// 
// config.options.chkUploadLog :
//		false : no logging
//		true : logging
// config.options.txtUploadLogMaxLine :
//		-1 : no limit
//      0 :  no Log lines but UploadLog is still in place
//		n :  the last n lines are only kept
//		NaN : no limit (-1)

bidix.UploadLog = function() {
	if (!config.options.chkUploadLog) 
		return; // this.tiddler = null
	this.tiddler = store.getTiddler("UploadLog");
	if (!this.tiddler) {
		this.tiddler = new Tiddler();
		this.tiddler.title = "UploadLog";
		this.tiddler.text = "| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |";
		this.tiddler.created = new Date();
		this.tiddler.modifier = config.options.txtUserName;
		this.tiddler.modified = new Date();
		store.addTiddler(this.tiddler);
	}
	return this;
};

bidix.UploadLog.prototype.addText = function(text) {
	if (!this.tiddler)
		return;
	// retrieve maxLine when we need it
	var maxLine = parseInt(config.options.txtUploadLogMaxLine,10);
	if (isNaN(maxLine))
		maxLine = -1;
	// add text
	if (maxLine != 0) 
		this.tiddler.text = this.tiddler.text + text;
	// Trunck to maxLine
	if (maxLine >= 0) {
		var textArray = this.tiddler.text.split('\n');
		if (textArray.length > maxLine + 1)
			textArray.splice(1,textArray.length-1-maxLine);
			this.tiddler.text = textArray.join('\n');		
	}
	// update tiddler fields
	this.tiddler.modifier = config.options.txtUserName;
	this.tiddler.modified = new Date();
	store.addTiddler(this.tiddler);
	// refresh and notifiy for immediate update
	story.refreshTiddler(this.tiddler.title);
	store.notify(this.tiddler.title, true);
};

bidix.UploadLog.prototype.startUpload = function(storeUrl, toFilename, uploadDir,  backupDir) {
	if (!this.tiddler)
		return;
	var now = new Date();
	var text = "\n| ";
	var filename = bidix.basename(document.location.toString());
	if (!filename) filename = '/';
	text += now.formatString("0DD/0MM/YYYY 0hh:0mm:0ss") +" | ";
	text += config.options.txtUserName + " | ";
	text += "[["+filename+"|"+location + "]] |";
	text += " [[" + bidix.basename(storeUrl) + "|" + storeUrl + "]] | ";
	text += uploadDir + " | ";
	text += "[[" + bidix.basename(toFilename) + " | " +toFilename + "]] | ";
	text += backupDir + " |";
	this.addText(text);
};

bidix.UploadLog.prototype.endUpload = function(status) {
	if (!this.tiddler)
		return;
	this.addText(" "+status+" |");
};

//
// Utilities
// 

bidix.checkPlugin = function(plugin, major, minor, revision) {
	var ext = version.extensions[plugin];
	if (!
		(ext  && 
			((ext.major > major) || 
			((ext.major == major) && (ext.minor > minor))  ||
			((ext.major == major) && (ext.minor == minor) && (ext.revision >= revision))))) {
			// write error in PluginManager
			if (pluginInfo)
				pluginInfo.log.push("Requires " + plugin + " " + major + "." + minor + "." + revision);
			eval(plugin); // generate an error : "Error: ReferenceError: xxxx is not defined"
	}
};

bidix.dirname = function(filePath) {
	if (!filePath) 
		return;
	var lastpos;
	if ((lastpos = filePath.lastIndexOf("/")) != -1) {
		return filePath.substring(0, lastpos);
	} else {
		return filePath.substring(0, filePath.lastIndexOf("\\"));
	}
};

bidix.basename = function(filePath) {
	if (!filePath) 
		return;
	var lastpos;
	if ((lastpos = filePath.lastIndexOf("#")) != -1) 
		filePath = filePath.substring(0, lastpos);
	if ((lastpos = filePath.lastIndexOf("/")) != -1) {
		return filePath.substring(lastpos + 1);
	} else
		return filePath.substring(filePath.lastIndexOf("\\")+1);
};

bidix.initOption = function(name,value) {
	if (!config.options[name])
		config.options[name] = value;
};

//
// Initializations
//

// require PasswordOptionPlugin 1.0.1 or better
bidix.checkPlugin("PasswordOptionPlugin", 1, 0, 1);

// styleSheet
setStylesheet('.txtUploadStoreUrl, .txtUploadBackupDir, .txtUploadDir {width: 22em;}',"uploadPluginStyles");

//optionsDesc
merge(config.optionsDesc,{
	txtUploadStoreUrl: "Url of the UploadService script (default: store.php)",
	txtUploadFilename: "Filename of the uploaded file (default: in index.html)",
	txtUploadDir: "Relative Directory where to store the file (default: . (downloadService directory))",
	txtUploadBackupDir: "Relative Directory where to backup the file. If empty no backup. (default: ''(empty))",
	txtUploadUserName: "Upload Username",
	pasUploadPassword: "Upload Password",
	chkUploadLog: "do Logging in UploadLog (default: true)",
	txtUploadLogMaxLine: "Maximum of lines in UploadLog (default: 10)"
});

// Options Initializations
bidix.initOption('txtUploadStoreUrl','');
bidix.initOption('txtUploadFilename','');
bidix.initOption('txtUploadDir','');
bidix.initOption('txtUploadBackupDir','');
bidix.initOption('txtUploadUserName','');
bidix.initOption('pasUploadPassword','');
bidix.initOption('chkUploadLog',true);
bidix.initOption('txtUploadLogMaxLine','10');


// Backstage
merge(config.tasks,{
	uploadOptions: {text: "upload", tooltip: "Change UploadOptions and Upload", content: '<<uploadOptions>>'}
});
config.backstageTasks.push("uploadOptions");


//}}}

! Adı
Virtual Local Area Network

! Meydana Gelen Hata
{{{
Extracting VMware Installer...done.
  File "/usr/lib/vmware-installer/2.0/python/lib/sqlite3/__init__.py", line 0
SyntaxError: ('unknown encoding: ISO-8859-1', ('/usr/lib/vmware-installer/2.0/python/lib/sqlite3/__init__.py', 0, 0, None))
}}}

! Kurulum 
* Ekleme yapılır
{{{
# dpkg-reconfigure locales
}}}
* Çalıştırma
{{{
# LANG=en bash ./VMware-Player-4.0.4-744019.i386.bundled
}}}

! Kaynak 
# http://www.esintibilisim.com/blog/447/vmware-installer-hatasi?
# http://hilaltarakci.blogspot.com/2011/07/vmware-installation-error-unknown.html
! Kaynak
# http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1004919
Sorun:highlight problemi

Çözüm:
	Vimde bir kaynak kodu açtığımda renklendirme yapmıyordu.Bunu sağlamak için 
			{{{:syntax on}}} yazmak yeterlidir.
        Sürekli bir renklendirme gerçeklendirmek için {{{/etc/vim/vimrc}}} içindeki {{{ "syntax on }}} halindeki yorum satırındaki {{{ ' " ' }}} tırnak işaretini kaldırıyoruz.
        Artık renkendirme artık kalıcı hale geldi.
        
* Satır numaralarını göstermek 
{{{
:set number
}}}
* Sutunu işaretlemede kullanılır.
{{{
:set cursorcolumn
}}}
* Satırı işaretlemede kullanılır.
{{{
:set cursorline
}}}
* Ekranı dikey olarak bölmek
{{{
: vsplit <dosyaAdı>
}}}
! Web Server için ayarlar
!!!Protocol tanımlaması yapılıyor
{{{
C:\Program Files\Sun\VirtualBox>VBoxManage setextradata "debian5.3"  "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestweb/Protocol" TCP
}}}
Kullanılacak protocol belirtiliyor. 
!!! Misafir sistem
{{{
C:\Program Files\Sun\VirtualBox>VBoxManage setextradata "debian5.3"  "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestweb/GuestPort" 80

}}}
Misafir makinanın hangi portu ile haberleşmek istiyorsak onu belirtiyoruz. Burada 80 portunu tanımlıyoruz. 
!!! Host Makina tarafı
{{{
C:\Program Files\Sun\VirtualBox>VBoxManage setextradata "debian5.3" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestweb/HostPort" 5555
}}}
5555 portunu misafir makinaya ulaşmak için ayarlıyoruz. 

! SSH için ayarlar
!!!Protocol tanımlaması yapılıyor
{{{
C:\Program Files\Sun\VirtualBox>VBoxManage setextradata "debian5.3"  "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol" TCP
}}}
Kullanılacak protocol belirtiliyor. 
!!! Misafir sistem
{{{
C:\Program Files\Sun\VirtualBox>VBoxManage setextradata "debian5.3"  "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort" 22

}}}
Misafir makinanın hangi portu ile haberleşmek istiyorsak onu belirtiyoruz. Burada 80 portunu tanımlıyoruz. 
!!! Host Makina tarafı
{{{
C:\Program Files\Sun\VirtualBox>VBoxManage setextradata "debian5.3" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort" 2222
}}}
2222 portunu misafir makinaya ulaşmak için ayarlıyoruz. 
Artık VirtualBox üstündeki linux server ımıza putty yardımıyla ulaşabiliyoruz.

> İşlemler VM çalışmaz iken yapılması gerekmektedir. 

!Kaynaklar
[1] [[two guest same time | http://opensourceexperiments.wordpress.com/2008/04/18/virtualbox-case-study-making-host-only-networking-work-between-two-ubuntu-guest-os-virtual-machine-on-windows-vista-host/]]
! Tanım
It refers to one piece of hardware running  multiple kernels (which are sometimes all the same and sometimes from completely different operating systems) on top of a lower layer of software that manages their
access to the hardware. Each kernel, called a guest, acts as if it has the whole processor to itself.
! İşlemci Desteliyor mu?
{{{
# egrep ‘(vmx|svm)’ –color=always /proc/cpuinfo
}}}
! Çözüm
{{{
# /etc/init.d/vmware-USBArbitrator start
}}}

! Kaynak
# http://superuser.com/questions/367026/no-usb-devices-detected-by-vmware-arch-linux-host
* Açılımı: World Wide Web Consortium 
> Dünya Çapında Ağ Birliği (World Wide Web Consortium ya da kısaca W3C) Ekim 1994'te Ağ'ın mucidi Tim Berners-Lee tarafınan MIT ve CERN bünyesinde kurulmuş uluslararası Dünya Çapında Ağ (WWW) standartlarını belirleyen örgüttür.
> Bu komitenin temel amacı; HTML çıktılarının veya HTML kodlarının her tarayıcıda aynı görüntüyü vermesi için ortak kararlar almaktır
> Yapmış olduğunuz sayfaların http://validator.w3.org sitesinden Xhtml standartlarına uygun olup olmadığını kontrol edin.
> Firefox extension 'HTML Validator' plugin var.
! W3C Standartları Neden Önemlidir?
* Arama motorları Web Standartlarına Uygun Web Sitelerine daha çok önem verirler
* Farklı tarayıcılarda görsel bozulmaların meydana gelmemesi açısından önemlidir.

! Birliğin belirlediği standartlar 
* HTML
* MathML
* XHTML
* XML
* SVG
* PNG
!Birliğin standartlarına uyan ağ tarayıcıları 
* Mozilla Firefox
* Opera
* Internet Explorer
* Apple Safari
* Google Chrome


wammu adlı program ile telefonun rehberine, mesajlarına, gelen çağrılara ulaşabiliyoruz. pc üzerinden arama, mesaj gönderme işlemlerini yapabiliyoruz. Wammu için sitesinden .deb paketi indirilip kurulabilir. python kütüphanelerine ihtiyaç duymakta ve wx ile yazıldığı için galiba python module de gerekli.
telefonun program tarafından tanınması için {{{python-bluez}}} paketi gerekli aksi halde program bluetooth yardımıyla telefonu tanımamakta.
gurcanyavuz
{{{
- Click start
- Type: cmd
- Right-click cmd when it appears under Programs
- Click Run As Administrator

Once the prompt is up type bcdedit.exe
this will list all of the OS that start up in Windows Boot Manager

Once you have this list you use the command bcdedit.exe/delete file name
example: bcdedit.exe/delete {802d5e32-0784-11da-bd33-000476eba25f}
}}}
! 1. Yol
{{{
[sourcecode language='java']

Kaynak kod buraya yazılıyor.

[/sourcecode]
}}}
wordpress.com da öntanımlı olarak desteklenir

! 2. Yol
* ilk önce gerekli plugin indiriyoruz.
{{{
http://downloads.wordpress.org/plugin/codecolorer.0.9.8.zip
}}}
* Kurulum yapılıyor
{{{
wp-content/plugins/codecolorer
}}}
altına kopyalıyoruz.
* Kullanımı:
{{{
[cc lang="lang"]code[/cc]

veya

<code lang="lang">code</code>
}}}
! XHTML
XHTML ismi EXtensibile HyperText Markup Language kelimelerinin kısaltılmasından gelmektedir
> XHTML'in amacı, webde yazılmış kötü HTML kod yazımının önlenmesi ve bir HTML yazım standardının oluşturulmasıdır.
! XHTML yazma 
* etiket ve parametreler küçük harfle yazılmalı
* parametre değerleri kesinlikle alıntılanmalı yani tırnak işareti içinde yazılmalı
* parametre değerlerinde kısaltılma yapılmamalı
* name parametresi yerine “id” parametresi kullanılmalı
* Xhtml dokümanlara zorunlu olarak DTD (Doküman Tipi) tanımlanmalı Etiket ve Parametreler küçük harfle yazılmalı!
! XHTML DTD
* Xhtml belgeler içinde doküman tipi tanımlamanın zorunludur
* Xhtml üzerinde doküman tipi tanımları sürekli olarak kodlamanın birinci satırında yer alır.
* Xhtml dokümanı 3 öğeden oluşmaktadır. DOCTYPE, Body ve Head.
!! Örnek XHTML Kabuğu
{{{
<!DOCTYPE …>
<html>
<head>
<title>… </title>
</head>
<body> … </body>
</html>
}}}
* DTD 3 Ana Türden Oluşur!
* Bunlar STRICT, TRANSITIONAL ve FRAMESET olarak adlandırılmaktadır.
* Strict, doküman tipi Türkçe’ye “Tam” manasında çevrilebilir. Bu doküman tipinin tanımlandığı dosyalarda hem Xhtml hem de Css bileşenleri rahatlıkla kullanılabilir.
* Transitional, doküman tipi ise “Geçişli” olarak dilimize çevrilebilir. Bu tip dokümanlar Html etiketlerini tam kullanabilmek için tanımlanabilirler, modern tarayıcılar bu tarz doküman tipi tanımlanmış olan sayfalarda Css eklentilerini ve kodlarını icra etmezler. Adından da anlaşılacağı gibi bu tip Html geçiş tipidir.
* Frameset, tip ise sayfalarında “Çerçeve” kullanan tasarımcılar için oluşturulmuştur. Bu doküman tipi iki yada daha fazla frame yani çerçeveye sahip sayfalar için kullanılabilir.
!Nedir ? 
* XMPI is a graphical user interface for running MPI programs, monitoring  MPI processes and messages, and  viewing  execution  trace  files. 
* XMPI  is  constructed  from  the  Motif widget set.
* XMPI is an X/Motif based graphical user interface for running, debugging and visualizing MPI programs.
! Açıklama
* XMPI provides a graphical display of the state of the processes  within an  MPI application
! Çalışması
* When XMPI is started, its top-level overview window is blank.
* Once an application is started  or a  trace file is loaded the overview window fills with a tiled group of  hexagons, each representing the state of one MPI process and labeled by the  process  rank  within  MPI_COMM_WORLD.
* A  traffic  light  symbol indicates whether the process is running or blocked.  No traffic  light is  shown  for  processes  which  have  either finalized  or  not  yet initialized the MPI library.
* A mouse click inside a hexagon pops up an additional window  containing more  detailed  information  about  the  process.
* If  the  process is blocked, the function name, peer process  rank,  communicator,  message tag  and  element  count  are  displayed
! Süreçlerin Gösteren Araç
> İş parçacıklarının hangi düğümlerde olduğunu ve bu düğümlerin durumunu gösteren araçtır. 
!XP
Extreme Programming
İki temel rol vardır. Müşteri ve Programcı olmak üzere.
F klavyeyi sisteminize bağladıktan sonra :

1- Başlat > Ayarlar > Denetim Masası
2- Bölge ve Dil Seçenekleri > Diller (Sekmesi) > Ayrıntılar (Butonu)
3- Ekle > Türkçe -Türkçe F
4- Varsayılan seçim menüsünden > F klavye
5- Uygula yazısına tıklayıp pencereleri kapatın.
!Kurulum
{{{
$ sudo su
# apt-get install ubuntu-xen-desktop bridge-utils
}}}
xen aktif etmek için sistemi tekrar başlatıyoruz. xen çekirdeğinden başlatıyoruz.
{{{
# reboot
}}}
! Network ayarları yapmak
{{{
/etc/xen/xend-config.sxp
}}}
dosyası içinde 
{{{
(network-script network-bridge)
}}}
satırını aktfi hale getiriyoruz.
!/etc/xen-tools/xen-tools.conf dosyasında ayar yapılıyor.
{{{
dir = /home/xen
debootstrap = 1
size = 4Gb # Disk image size.
memory = 128Mb # Memory size
swap = 128Mb # Swap size
fs = ext3 # use the EXT3 filesystem for the disk image.
dist = edgy # Default distribution to install.
image = sparse # Specify sparse vs. full disk images.
}}}
! Gelen Sanal xen misafirleri için home dizini oluşturuluyor
{{{
mkdir /home/xen
mkdir /home/xen/domains
}}}
!Sanal Makina oluşturuluyor
{{{
xen-create-image -hostname=mailserver -ip=10.0.0.21 -netmask=255.255.255.0 -gateway=10.0.0.1 -passwd
}}}
oluşturulan sanal makinayı çalışır hale getiriyoruz:
{{{
xm create mailserver.cfg
}}}
!Çalışanları listesini almak
{{{
#xm list
}}}
Gnome masaüstünde kullanılan appletleri xfce masaüstünde kullanmak için
{{{
#  apt-get install xfce4-xfapplet-plugin
}}}

kurmak yeterlidir.
* Xhtml etiketleri gereği gibi dizilmelidir.
> Etiketlerin kapatılma sıraları önemlidir. 
* Xhtml dokümanları “tam ve uygun kod” yazımı ile yazılmalıdır.
* Etiket ve parametre isimleri “küçük harflerle” yazılmalıdır.
> Xhtml yazımı kesinlikle etiket ve parametrelerin büyük harfle yazımını kabul etmez.
* Tüm Xhtml etiketleri mutlaka “kapatılmalıdır
> Xhtml dilinde kodlama yaparken kesinlikte tüm açılan etiketler kapatılmalıdır. Açılan etiketlerin sırayla kapatılması Xhtml için doğru bir yazımdır. 
> {{{ <br>, <img>, <hr> }}} gibi. Xhtml dilinde bu etiketlerinde bir kapatılma biçimleri vardır. Etiketler sonuna /> işareti atılarak bu etiketler kapatılmalıdır.
	 Xine her açtığımızda meydana gelen hata ekranını ortadan kaldırmak için:
		1.Ev dizinine gidelim.Burada "Görünüm" menüsüden "gizli dosyaları gösteri" işaretliyerek gizli dosyaları
gösterelim.
		2.".xine" dizini altında "keymap" dosyasını bir text editör yardımı ile açalım.
		3.Ben "Kwrite" programı ile açarak "Ctrl+R" diyerek yani "değiştir"i açıyoruz.
		4."Aranan Metin" kısmına "VOID" yaz "Yerine Konulacak Metin" yerine "void" yazarak onaylayıp değiştiriyoruz.
		5.Kaydedip çıkıyoruz.
		

	Tekrar Xine açtığımızda Error ekranı ile bir daha karşılaşmıyoruz.
K-Means Algoritması
!Nedir?
Bilgisayar programlarının tasarımı, geliştirilmesi, test edilmesi ve bakımı konularını ele alan mühendislik dalıdır
> Yazılım Mühendisliği, eldeki kaynak kısıtlarını gözeterek, yüksek kalitede yazılım üretmenin gerekleri olan sağlıklı mühendislik usullerinin ve iyi yönetim pratiğinin oluşturulması ve bunların uygulanmasıdır. Yazılım kalitesinin ne olduğunun somut biçimde betimlenmesi de bu disiplinin doğrudan ilgi alanındadır.
gurcanyavuz
Çeşitli konsol komutlarının kendilerini kullanmaktansa onların argüman almış hallerini kullanmak çoğu zaman daha kolay ve güzel olmaktadır. Bu mevcut komutları bu argümanlı hallerini aldırmak için [[alias]] komutu kullanılır. Bunun için 
{{{
$ alias rm="rm -i"
}}}
böylelikle rm komutu artık bir şeyi silmeden önce silmek istermisin diye bir soru soracaktır. Ama bu sadece mevcut bashte geçerlidir. Kapatıldığında bu özellik gitmektedir. Bunun kalıcı hale getirmek için [[.bashrc]]  dosyasına eklemek yeterlidir.
Örnek bashrc dosyası 
{{{
# alias tanımlamaları
alias ls="ls --color"
alias rm="rm -i"
alias zz="clear"
alias ll="ls -l --color"
}}}
şeklinde eklemek yeterlidir.
! Kurulum
{{{
me@myhost$ sudo apt-get install apache2 php5
}}}
! public_html Dizini Oluşturuluyor.
{{{
$ mkdir public_html
$ cd public_html
$ touch index.html
$ echo "<html><h1> Merhaba  </html>" > index.html
}}}

!public_html kullanımı Aktif Hale Getiriyoruz
{{{
me@myhost$ cd /etc/apache2/mods-enabled
me@myhost$ sudo ln -s ../mods-available/userdir.conf userdir.conf
me@myhost$ sudo ln -s ../mods-available/userdir.load userdir.load
me@myhost$ sudo /etc/init.d/apache2 restart
}}}
mods_enabled dizini altına sembolik link oluşturarak, Apache modüllerini aktif hale getiriyoruz. Artık kullanıcılar home dizinleri
altına public_html oluşturarak sayfalarını yayınlayabilirler. 

Cpunun yükünü veya hafızanın ne kadar kullanılıdığını öğrenmek için güzel bir program. masaüstünü gömülür ve orada devamlı sistem ile alakalı bilgileri bize verir. Kurmak için 
{{{
# apt-get install conky
}}}
Kurduktan sonra  gösterilecek bilgileri belirlemek için [[.conkyrc]] dosyasına ihtiyacımız var. Bunun için conkynin sitesinden örnek bir tane indiriyoruz. Daha sonra kendimize göre kişiselleştiriyoruz. Bunun için conky ye ait değişkenleri bilmemiz gerekli. Bunun için man sayfalarına yada web sitesine başvurulabilir.
Bir süreç PCB ile temsil edilir. Bu yapı süreç ile ilgli bilgileri barındırır. Bunlar, süreç durumu, CPU registarları, ve hafıza yönetimi gibi bilgileri içerir. 
>İşletim sisteminin, CPU daki süreçin durumunu kaydedip yeni bir sürecin kayıtlı durumunu restore yapması işlemine context switch denir. 
{{{
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
        <property>
                <name>fs.default.name</name>
                <value>hdfs://localhost:9000</value>
        </property>

</configuration>
}}}
Linuxta pdf yazdırmak için sanal printer kullanılabilir. Bu her şeyi pdf yapmak için en iyi yoldur. Bunun için 
{{{
    # apt-get install cups-pdf
}}}
ayarları için ise web tarayısında {{{ localhost:631 }}} girilip yazı eklenebilir.
{{{
   1.  Click Add Printer. You will be asked for a username/password that has admin rights for printers on your Ubuntu machine.
   2. Add New Printer: Enter "PDFPrinter" for name, and any values you like for Location and Description
   3. Device: Select "Virtual Printer"
   4. Make/Manufacturer: Select "Generic"
   5. Model/Driver: Select "Generic Postscript Printer Foomatic/Postscript (recommended) en"
   6. Set your preferred PDF options (eg page size, A4 for me)

}}}
yukarıdaki adımları gerçekleştiririz.
unix turu isletim sistemlerinin ftp, network, ses gibi islevlerini arka planda yuruten hizmet programlarina verilen isim.
The datanode manages the storage attached to a node, of which there can be multiple nodes in a cluster. Each node storing data will have a datanode daemon running.
> Hadoop clusters contain a single NameNode and hundreds to thousands of DataNodes.
DataNodes respond to read and write requests from HDFS clients. They also respond to commands to create, delete, and replicate blocks received from the NameNode.

Datanodelar HDFS istemcilerden gelen okuma ve yazma isteklerine cevap vermekten sorumludur. Namenode dan gelen create, delete ve replicate block gibi isteklere cevap vermektir.
Host makineye ait usb portlarının guest makinede kullanabilmek için yapılması gerekenler:

* mevcut kullanıcı 'vboxusers' grubuna eklenir. 
*  /etc/fstab dosyasına şu satır eklenir:
{{{
none /proc/bus/usb usbfs devgid=1001,devmode=664 0 0
}}}
* bir de usb grubu oluşturulur.
!!! APT-GET 

* apt-get update
{{{
 Paket listesini günceller
}}}

* apt-get install <paket_ismi>
{{{
 Paketi sisteme kurar.
}}}

* apt-get remove <paket_ismi>
{{{
 Belirtilen paketi siler
}}}

* apt-get remove [[--]]purge <paket_ismi>
{{{
 Paketi konfigurasyon dosyalarıyla birlikte siler.
}}}


* apt-cache search <aranacak_kelime>
{{{
 Veritabanında bu ifadeyi arar.
}}}

* apt-get dist-upgrade
{{{
 Sistemin bir üst süreme terfi etmesini sağlar.
}}}

* apt-cache show <paket_ismi>
{{{
 Paket ile ilgili bilgileri geri döndürür.
}}}

*apt-get clean
{{{
 /var/cache/apt/archives dizinindeki tüm deb paketlerini siler.
}}}

*apt-cache pkgnames
{{{
 Sistemde kurulu olan tüm paketleri listeler.
}}}

!!!dpkg 
* dpkg -L <paket_ismi>
{{{
 Paket içerisindeki dosyaları listeler
}}}

* dpkg -l <paket_ismi>
{{{
 Paket ile ilgili bilgileri geri döndürür.
}}}
Bunun için synaptic kullanılır. Orada görevlere göre kurmak seçilip oradaki {{{sql server}}} kurmak istenir. Böylelikle postgresql kurulur.

Bir kaç ayar gerekmektedir.
deneme
Emacste çeşitli ayar yapmak için ,
{{{
   M-x customize
}}}
Direk olarak değiştirilmek istenen değişkenin sayfasına gitmek için
{{{
  M-x customize-variable
}}}
! Alıntı
{{{
#!/bin/sh 
#
# /usr/bin/fan  A script written by cwwilson721 to allow
#            the fan to turn off after resuming from
#            'hidernate. Had to make fan go 'on' then 'off'
#            for this to work. All other ACPI functions 
#            seem not to be affected.
#

    # Turn on the fan
    echo -n "0" > /proc/acpi/fan/FAN0/state

    # And then, turn off the fan
    echo -n "3" > /proc/acpi/fan/FAN0/state
}}}
Fan çok fazla çalışıyordu. bilmeden birkaç paket yükedim ve daha az çalışıyor gibi.
1. laptop grubunu yükledim.
2. lm-sensors yükledim 
3. ipmitool yükledim
! Emulator
{{{
# apt-get install fceu
}}}
* eski atari oyunlarının nes dosyalarını çalıştırmak için gerekli emulator ykleniyor

! Tanımış mı Kontrol
{{{
$ cat /dev/input/js0
}}}

! Oyunu Başlatmak
{{{
$ fceu -inputcfg gamepad1 FLINTSTONES_RESCUE.NES 
}}}

! Kaynaklar
[1] http://ubuntuforums.org/showthread.php?t=338457 [erişim : 10.07.2011]
[2] http://ubuntuforums.org/archive/index.php/t-16961.html [erişim : 10.07.2011]
https://support.mozilla.org/en-US/kb/install-firefox-linux?redirectlocale=en-US&redirectslug=Installing+Firefox+on+Linux
! amd64 bit altında kurulum
{{{
# apt-get install flashplugin-nonfree
}}}
Sistem çağırısı unix sistemlerde yeni bir süreç oluşturmanın tek yoludur. Geriye bir değer döndürür. Bu değer
* Çocuk süreçte 0
* Ana süreçte çocuk sürecin süreç numarasını 
geri döndürür.

> fork() çağırımı yapıldığı andan itibaren programın geri kalan kısmından iki tane aynı kopya oluşmaktadır. Yani iki ayrı süreç oluşur. Her ikisinin pid noları farklıdır. Bundan sonra yapılan işlemler
>iki defa icra edilir. Çocuk ve Ana süreçleri birbirinden ayırmak için if - else döngüsü yardımıyla ana ve çocuk süreç belirlenebilir. 

!Gerekli Kütüphaneler
{{{
#include <unistd.h>
#include <sys/_types.h>
}}}
> Sistemdeki her sürecin bir süreç numarası bulunur. Bu süreç numarasına PID(Process Identifier) denilir
> Linux'da pid ler için, <sys/types.h> dosyasında tanımlı olan pid_t veri tipi kullanılır. fork() gibi çeşitli süreç yönetim fonksiyonları <unistd.h> kütüphanesinde tanımlıdır.

! Çalışması
Mevcut sürecin birebir kopyasını oluşturur, iki süreçde fork() fonksiyonundan sonraki satırdan itibaren kendi başlarına çalışmaya devam eder.
! exec()
Fonksiyonları kümesi, mevcut sürecin çalıştırmak istenilen başka bir programın sürecine dönüşmesini sağlar.


The fs.default.name parameter is critical to configure. If it is not configured, there is no shared file system.
An example of an HDFS URI is hdfs://NamenodeHost[:8020]/. The file system protocol is hdfs, the host to contact for services is NamenodeHost, and the port to connect to is 8020, which is the default port for HDFS.
Bunun için [[vsftp]] programı kululur. Gerekli ayarlar için /etc/vsftpd.conf dosyası kullanılır
!Adı
VSFTPD = Very Secure File Transfer Protokol Daemon

!Kurulum
{{{
# apt-get install vsftpd
}}}
Gerekli ayarlar /etc/[[vsftpd.conf]] dosyası içerisinde bulunmaktadır. Gerekli 
! Server başlatmak,durmak, yeniden başlatmak
{{{
# /etc/init.d/vsftpd start
}}}
{{{
# /etc/init.d/vsftpd stop
}}}
{{{
# /etc/init.d/vsftpd restart
}}}
gDesklets is a system for bringing mini programs (desklets), such as weather forecasts, news tickers, system information displays, or music player controls, onto your desktop, where they are sitting there in a symbiotic relationship of eye candy and usefulness
{{{
# apt-get install gdesklets
}}}
! Kaynaklar
[1] http://www.gdesklets.de/
Amacımız glade ile python için hızlı bir şekilde gui programlama yapmak. Bunun için ilk önce gerekli paketleri kuruyoruz. Bunlar:
* python
* glade
* python-gtk
* python-glade
* Bir kaç tane daha paket ??
Glade ile bir proje açtıktan sonra programımızın arayüzünü tasarlıyoruz. Kaydettikten sonra bir tane {{{.glade }}} uzantılı bir tane dosya oluşacak.

Bir python programı açıp aşağıdaki şekilde kaydediyoruz.
{{{
import gtk
import gtk.glade

class Deneme:
    def __init__(self):
        self.window = gtk.glade.XML("pydeneme.glade", 'window1')

if __name__ == '__main__':
    Deneme()
    gtk.main()
}}}

Ve programımızı çalıştırıyoruz. Sonuç gui programımız çalışıyor. Ama daha bir fonksiyon eklemedik.
İstenilen bir dosya şifrelemek için:
!!! şifrelemek
{{{
 $ gpg -c <dosya_adı>
}}}
bizden bir şifre isteyecek iki defa girdikten sonra ".gpg" uzantılı bir dosya oluşturacak.

!!!açmak
{{{
 $ gpg <dosya_adı.gpg
}}}
şifre istenilecek ve dosya açılarak normal dosya oluşturulacak.

!Amacı:
	Programımızın çalışmasındaki istatistik bilgileri bize verir. Bunlar hangi fonksiyonun ne sıklıkla çağırıldığı, nerede çağırıldığı fonksiyon için toplam ne kadar zaman gerektidiği gibi bilgileri bize sağlar.  Böylelikle programımızın optimize etmemizi sağlar. Daha hızlı çalıştırılmasını sağlayabiliriz.

!Kullanımı:
	gprof kullanmak için programımızı derlerken gcc ye {{{"-pg"}}} seçeneğini ekliyoruz. Bu nesneye ve çalıştırılabilir dosyaya profil bilgilerini eklememizi  temin ediyor.
	yapılanlar:
		1. Profile enable etmek için program derlenir ve bağlanır.
		2. Profile verisi oluşturmak için program çalıştırılır.
		3. Profile bilgisini analiz etmek ve göstermek için gprof kullanılır.	

	Program "-pg" seçeneği ile derlendikten sonra  programı çalıştırıyoruz. Bulunulan dizine "gmon.out" adlı bir dosya oluşturuluyor. Bu dosya profile bilgilerini barındırıyor. gprof kullanarak bilgileri bir tabloda bunları listeliyoruz.

gprof için en güzel işlem bir makefile dosyası oluşturmaktır.
!Örnek Makefile dosyası 
{{{
proje: den.o
	$(CC) -pg den.o -o den

den.o: den.c
	$(CC) -pg -c den.c 

clean: 
	rm -rf *.o *~
}}}

Bu makefile dosyasını çalıştırmak için ::
{{{
 $ make CC=gcc
}}}
Derlendikten sonra programı çalıştırıyoruz ki "gmon.out" dosyası oluştursun.
{{{
 $ ./den
}}}
gprof ile profile bakmak için ::
{{{
 $ gprof den
}}}

Kendisine gönderilen bir dosyada uygun şablonu arar. Bulduğu satırları ekran çıktı olarak basar. 
{{{
default 1

timeout 10

title Microsoft Windows XP Professional
root (hd0,1)
savedefault
makeactive
chainloader +1

title Ubuntu, kernel 2.6.17-10-generic
root (hd0,4)
kernel /boot/vmlinuz-2.6.17-10-generic root=/dev/sda5 ro quiet splash
initrd /boot/initrd.img-2.6.17-10-generic
quiet
savedefault
boot

title Ubuntu, kernel 2.6.17-10-generic (recovery mode)
root (hd0,4)
kernel /boot/vmlinuz-2.6.17-10-generic root=/dev/sda5 ro single
initrd /boot/initrd.img-2.6.17-10-generic
boot

title Ubuntu, memtest86+
root (hd0,4)
kernel /boot/memtest86+.bin
quiet
boot
}}}

  
! default 1
öntanımlı açılacak işletim sistemi belirtiliyor. Sıralama 0 dan başlıyor. Örneğin yukarıda ubuntu öntanımlı işletim sistemi olarak belirtilmiş.
! timeout 10
grub yükleyicisini gösterilme süreni belirmektedir.
* root (hd0,1) satırında harddiskin hangi bölümünde onu belirtiyoruz.  Örneğin, windows /dev/hda3 altında olsun. O satırımız (hd0,2) olacak.
Çözüm:
{{{
 gcc -w < c dosyası> `pkg-config --cflags --libs gtk+-2.0` -o <çalıştırılabilir dosya>
}}}
The hadoop.tmp.dir parameter is critical to configure. If it is not configured, data loss will occur.
! Kaynaklar
[1] Pro Hadoop
{{{
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>

</configuration>
}}}
C++ da gelen bir özelliktir. 
> fonsiyon tanımlanmasındaki geri dönüş tipinin önüne yerleştirmek, derleyiciye, o fonksiyonunun bir kopyasını, fonsiyon çağrısından kaçınmak üzere fonksiyonun kullanıldığı yerde yaratmasını tavsiye eder. 
! Tanımlamaya Örnek
{{{
inline double kup(const double s) (return s*s*s);
}}}
fonksiyon her çağırıldığında bir fonksiyon kopyası oluşturur yani tek bir fonksiyon kopyası yerine çağırıldığında bir kopya daha gömmer koda. Küçük fonksiyonlar içi yeterli olasada daha karmaşık fonksiyonlarda daha fazla yer kaplar hale gelir. 
Kaynak: Linux Kernel Architechture page: 522
! DHCP olmadan
{{{
# ifconfig eth0 10.0.0.10 netmask 255.0.0.0 gw 10.0.0.1
}}}
Java’yı linux’da kurmak biraz daha kolay olacak.

http://java.sun.com/javase adresinden “bin” uzantılı sisteminize uygun Java versiyonunu indiriniz. İndirdikten sonra linux’da konsolu kullanarak “chmod +x jdk1.6.0.bin” ve “./jdk1.6.0.bin” komutlarını çalıştırın. Dikkat edin jdk1.6.0.bin benim internetten indirdiğim java kurulum dosyasının ismidir.

snapshot1.jpg

Java kendini bulunduğunuz klasör altında “jdk1.6.0_01″ isminde kurmuş olacaktır. Şimdi Linux’da path ayarlarını yapmamız gerekecek. Konsolda “cd” komutunu çalıştırın, böylece kullanıcı klasörünüzün bulunduğu yere gideceksiniz. Burada bulunan .bashrc dosyasını değiştirmemiz gerekli. Bu işlem için herhangi bir editör kullanabilirsiniz. “kwrite .bashrc” komutuyla dosyayı açın ve en sonuna

#/usr/jdk1.6.0_01 Javanin kuruldugu yer
alias java='/usr/jdk1.6.0_01/bin/java'
 
JAVA_HOME=/usr/jdk1.6.0_01
export JAVA_HOME
 
PATH=$PATH:$JAVA_HOME/bin
export PATH

satırlarını yazın. Dikkat edin “/usr/jdk1.6.0_01″ adresi Java’nızı kurduğunuz klasördür. Buradaki ayarları kendi bilgisayarınıza göre yapmalısınız.

Linux’da Java kurulumunu tamamladınız. Artık yeni bir konsol açarak “java -version” komutuyla kurulumu test edebilirsiniz
each cluster will have a single jobtracker that is responsible for scheduling work at the datanodes 
JVM süreçleri için ps aracıdır.
Sistemimde 1.5GB  ram olmasına karşın linux tamamını görmüyordu. bunu düzeltmek için /boot/grub/menu.lst dosyaındaki kernel satırına aşağıdaki eklemeyi yaparız::
{{{
   mem=<ram boyutu>
}}}
Not:
 Bu sadece normalde tanıması gereken kadar rami tanımayanlar içindir. Eğer 8 gb ram olupta tanınmadıysa ancak kernel tekrar derlenirse tanınabilir.
debian da gnomeye kurulduktan sonra lazarusun kötü görüntüsünü düzeltmek için
* ilk önce konsolda root iken:
{{{ # startlazarus}}} ile lazarusu başlatıyoruz.
* Tools > Configure "Build  Lazarus..."
* Quick Build Options tabında {{{LCL  interface}}} kısmında {{{gtk2}}} seçerek lazarusu tekrar derliyoruz.

Derleme bittikten sonra lazarus görsel kısmı düzeliyor.
Databaselere ulaşmak için lazarusta SQLdb kullanılır. Lazarus paketinin bir üyesidir. Ama kullanmak için ilk önce eklenmesi gerekir. 
Bunun için:
 Paketi yüklemek için "Components -> Open Package File (.lpk)" gidilir. {{{usr/share/lazarus/components/sqldb}}} seçilir. Seçtikten sonra karşımıza Package Manager gelir. Install basarız. Karşımıza bir uyarı penceresi gelmektedir buna Yes diyerek yükleriz. Eğer herhangi bir hata vermeden yüklendiyse {{{SQLdb}}} tabı karşımıza gelecektir. Eğer {{{printer4lazarus error}}} gibi hata meydana geldiyse notu okuyun.

@@ NOT @@
printer4lazarus hatasında unit libc bulunamadı gibi bir  hata geri döndürür. Bunu için
{{{/usr/share/fpcsrc/packages/base/libc/libc.pp}}} Printer4lazarus bileşeni için {{{Compiler Option}}} kısmında path yukarıdaki yolu ekleyip {{{Compile}}} diyerek bileşeni derliyoruz Pathi other unit kısmına ekliyoruz.. Sonucunda hata mesajı artık gözükmiyor.
 
Debianda ethernet kartı tanıdıysa ve network kartı  yapılandırılmadıysa 
@@color(green): /etc/network/interface@@ dosyasının en sonuna aşağıdaki satırları ekliyoruz.
{{{
iface eth0  inet  dhcp
auto  eth0
}}}
Daha sonra network servisini tekrar açıyoruz.
{{{
$ /etc/init.d/network  restart
}}}

Burada ip nin DHCP den alınması sağlandı. static de atanabilirdi.
Bir depolama aygıtında açık olan dizin ve dosyaların ne olduğunu bulmakta kullanılan bir komuttur. Örneğin, usb diski çıkarmaya çalışırken usb  çıkarmada hata meydana gelirse, hangi dosyalar açık oluduğunda faydalı olablilir. 
{{{
$ lsof /mnt/sda1
}}}
Burada sda1 dosya sisteminde açık olan dosyaların listesini geriye döndürür. 
! Psedo Mode
{{{
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
        <property>
                <name>mapred.job.tracker</name>
                <value>localhost:9001</value>
        </property>

</configuration>
}}}
! Full Distrube Mode
The mapred.job.tracker parameter is critical to configure. If it is not configured, only a single machine will be used for task execution The URI specified in this parameter informs the Hadoop Core framework of the JobTracker’s location.
The appropriate value for a cluster is JobtrackerHost:8021
{{{
deb http://www.debian-multimedia.org lenny main non-free
}}}
parametre deklarasyonu farklı olmak şartı ile, aynı sınıf içinde aynı adı paylaşan iki veya daha fazla metod  tanımlanma işine denir. 
> Bu metodların parametre tipler veya sayıları farklı olur. 
!!! Mysqlde karakter problemini aşmak
{{{
alter table TABLE_NAME convert to character set utf8;
}}}

!!! Bir başka metod
{{{
    default-character-set=utf8



Unfortunately, once a database and their tables have been defined as latin1, they remain as latin1 unless you run this for each database:

    alter database mydatabase charset=utf8;



and for each table:

    alter table mytable charset=utf8;



and for each varchar/char type column:

    alter table mytable alter column mycol charset=utf8;

}}}

!!! Javada bir yol
{{{

So, I finally assumed that it was latin1 coming back all the time. Here's the code that converts it to UTF-8:

private String convertStringFromLatin1ToUTF8(String stringForconversion) {
try {
String stringToConvert = stringForconversion;
byte[] convertStringToByte = stringToConvert.getBytes("ISO-8859-1");
return new String(convertStringToByte, "UTF-8");
} catch (UnsupportedEncodingException e) {
System.out.println"convert String FAILED: " + stringForconversion + "<br/>");
return stringForconversion;
}
}
}}}
//Aşağıdaki adımları yapınca mysql girilebiliyor artık.//

{{{
I did figure it out and it was just like this.

[root@D2645 ~]# killall mysqld
[root@D2645 ~]# /usr/libexec/mysqld --skip-grant-tables --user=root &
[1] 16941
[root@D2645 ~]# 071023 18:59:17 InnoDB: Started; log sequence number 0 43665
071023 18:59:17 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.0.27' socket: '/var/lib/mysql/mysql.sock' port: 3306 Source distribution
mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 5.0.27

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> USE mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

mysql> update user set password=password("YOUSETPASSWORD") Where user="root";
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 Changed: 3 Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye
[root@D2645 ~]# killall mysqld
071023 19:00:57 [Note] /usr/libexec/mysqld: Normal shutdown

[root@D2645 ~]# 071023 19:00:57 InnoDB: Starting shutdown...
071023 19:01:00 InnoDB: Shutdown completed; log sequence number 0 43665
071023 19:01:00 [Note] /usr/libexec/mysqld: Shutdown complete

mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
[1]+ Done /usr/libexec/mysqld --skip-grant-tables --user=root
[root@D2645 ~]# /etc/init.d/mysqld start
Starting MySQL: [ OK ]
[root@D2645 ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 5.0.27

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

}}}
mysql bağlantısı için classpath ayarları yapmak gerekiyor. Bunun için @@color(green): bash.bashrc@@ aşağıdaki satırların eklenmesi gerekmektedir.
{{{
export CLASSPATH=$CLASSPATH:/usr/lib/jdk/lib/mysql-connector-java-5.1.6-bin.jar
}}}
!!! Kullanıcı girişi
{{{
$ mysql -u <kullanıcı_adı> -p
}}}
!!! Kullanıcı Oluşturmak
mysql kurulduğunda root kullanıcısı vardır. Şifresi yoktur. O diğer kullanıcıları ve databaseleri oluşturur.
{{{
mysql> GRANT SELECT ON db.* TO guya@localhost IDENTIFIED BY 'password';
}}}
select ten sonra insert de eklersek yükleme izni verilmiş olur.
{{{
mysql> GRANT ALL ON db.* TO guya@localhost IDENTIFIED BY 'password';
}}}
tüm ayrıcalıklar veriliyor.
!!! Kullanıyı database e bağlamak
{{{
mysql> uses <database_ismi>
}}}
!!! Databaseleri listelemek & tabloları listelemek
{{{
mysql> show DATABASES;
mysql> show TABLES;
}}}
!!! Database olşturmak
{{{
mysql> CREATE DATABASE <database_ismi>
}}}
Netbeans de mysql kullanmak için ilk önce makinaya "mysql-server"  kurulur.
{{{
    # apt-get install mysql-server
}}}

Kurulumdan sonra meydana gelen bir hata var onu düzeltmek gerekiyor. Onun için daha önce ki yazıya
bak.

Java da mysql kullanabilmek  için mysql-driver sistemde bulunması gerekiyor. Netbeans için bu ayarları 
yapmak için Database de Driver Ekle ile Driver yeri gösterilir. 
Sonra gerekli bilgiler girilir. Bu bilgiler:
{{{
  Driver           :: com.mysql.jdbc.Driver
  Database URL     :: jdbc:mysql://127.0.0.1:3306/Deneme
  User Name        :: guya
  Password         :: guya
}}}

Böylelikle bağlantı sağlanır.
The namenode is the master server in Hadoop and manages the file system namespace and access to the files stored in the cluster.
The NameNode is a piece of software that is typically run on a distinct machine in an HDFS instance. It is responsible for managing the file system namespace and controlling access by external clients. The NameNode determines the mapping of files to replicated blocks on DataNodes. The NameNode stores all information about the file system namespace in a file called FsImage

namenode, Hadoopta master sunucudur. Dosya sistemindeki isim uzayını yönetir ve clusterdaki kayıtlı dosyalara erişimleri sağlar. 

! Kaynaklar
[1] http://www.ibm.com/developerworks/linux/library/l-hadoop/
{{{
# apt-get install install nautilus-open-terminal
}}}
!!Kurumlum
{{{
# apt-get install libfuse2 ntfs-3g
}}}
!! Sürücüleri Bulmak
{{{
# fdisk -l | grep NTFS
}}}
!! Sürücüyü Bağlamak
{{{
# mount –t ntfs-3g /dev/sdb1 /media/yeni-surucu
}}}
!! ntfs zorla bağlamak
{{{
mount -t ntfs-3g /dev/sda1 /media/sda1 -o force
}}}

! Nedir ?
* objdump - display information from object files.

! Örnek
{{{
$ g++ den.cpp -o den
$ objdump -d den
}}}

! Kaynaklar
[1] Linux Manpages
!OSI
Open Systems Interface
! Katmanlar
7. Application
6. Presentation
5. Session
4. Transport
3. Network
2. Data Link
1. Physical
! Nedir
/etc/passwd altında kayıtlıdır.
! Dosyadan bir kayıt
{{{
root:x:0:0:root:/root:/bin/bash
}}}
! Açıklama
 1. Username: It is used when user logs in. It should be between 1 and 32 characters in length.
   2. Password: An x character indicates that encrypted password is stored in /etc/shadow file.
   3. User ID (UID): Each user must be assigned a user ID (UID). UID 0 (zero) is reserved for root and UIDs 1-99 are reserved for other predefined accounts. Further UID 100-999 are reserved by system for administrative and system accounts/groups.
   4. Group ID (GID): The primary group ID (stored in /etc/group file)
   5. User ID Info: The comment field. It allow you to add extra information about the users such as user's full name, phone number etc. This field use by finger command.
   6. Home directory: The absolute path to the directory the user will be in when they log in. If this directory does not exists then users directory becomes /
   7. Command/shell: The absolute path of a command or shell (/bin/bash). Typically, this is a shell. Please note that it does not have to be a shell.
! Kaynaklar
[1] http://www.cyberciti.biz/faq/understanding-etcpasswd-file-format/
Cluster makinelerde hepsinde aynı komutu çalıştırmada kullanılmaktadır. Birinde yazarken hepsinde aynı komut icra edilmektedir.
! Kaynaklar
[1] http://www.byzantinereality.com/?p=333
! & operatörü
Adres geri döndürür.
{{{
n = &sayi;
}}}
''sayi'' adlı değişkenin adresi ''m'' ' ye atanıyor.
>&, operatorunun anlamı ''adresi'' anlamındadır.
! * operatörü
adreste tutulan değeri geri döndürür.
{{{
q = *n;
}}}
Örneğin, yukarıda n pointerında tutulan değer ''q'' değişkenine atanmaktadır. 
! pointer tanımlamak
{{{
char *ch;
}}}
char tipinde değişkenler için, pointer tanımlanmaktadır. ch char tipindekiler için işaret ettirebilir. Yani, ch değişkeni bir karakter değil ama karakteri işaret edebilen bir işaretçidir. 
Mevcut bir veri tabanına ulaşmak için :
{{{ psql -d movies }}} 
database ulaşırız.



java kullanarak oluşturduğumuz databaselere open-office  base yardımı ile de ulaşabiliriz. Bunun için ilk önce {{{open-office base }}} programımızı çalıştırıyoruz.
Çıkan ekranda (Database wizard) "Connect to existing database" kısmından {{{ JDBC }}} yi şeçip next diyoruz.
İkinci kısımda "Datasource URL" kısmına {{{ jdbc:postgresql:<databasesin_adı> }}} yazıyoruz.
Örnek:
{{{ jdbc:postgresql:kitaplar}}} 

"JDBC Driver class" kısmınada {{{ org.postgresql.Driver }}} yazıp next ile ilerliyoruz.

Üçüncü kısımdan "Kullanıcı adını"  yazıyoruz ve eğer şifre gerekli ise "Password required" a tik koyup 
Finish diyip ayarları bitiriyoruz.
Eğer bir elemanın geçerli bir paket dışından yalnızca sınıfınızın doğrudan alt sınıf olan sınıflara görünmesini istiyorsak, bu eleman protected olarak tanımlanmalıdır. 
Type the text for 'New Tiddler'
isim server ip adresini tutan dosyadır.
Type the text for 'New Tiddler'
Bilgisayarlarda genelde bir donanım saati(clock) bulunur. Bu saat periyodik olarak işlemciye kesmeler gönderir.
Zamanlama algoritmaları, saat kesmelerini nasıl kullandıklarına göre ikiye ayrılır
##Kesintisiz (non-preemptive)
##Kesintili (preemptive)
!Kesintisiz
Bir süreç çalışması için seçilir. Kendi kodunda bulunan bir I/O isteği ile bloklanıncaya kadar ya da kendi isteği ile işlemciden çıkıncaya kadar çalışır.
!Kesintili
Bir süreç seçilir ve sabit, belirli bir maksimum süreye kadar çalıştırılır. Bu süre bittiğinde, süreç hala işlemcide çalışıyorsa askıya alınır ve zamanlayıcı(scheduler) başka bir süreci çalışması için
seçer.
the scp command will do most of what you need to get a file from one computer to another, while making that communication safe by encrypting both the password stage and data transfer stage of the process
secondary namenode, which isn't a redundant daemon for the namenode but instead provides period checkpointing and housekeeping tasks
> Bir olayın bir süreci için yazılımsal uyarıdır. 
Bir süreç eğer signal handler ı çalıştırdığında signal yakalar. 
Signal isimleri 
{{{
signal.h
}}}
dosyasında tanımlanmıştır. Tüm signaller SIG ile başlayan sembolik isimleri vardır. Tüm Signal isimleri bir 0 dan büyük bir tamsayıyı temsil etmektedir. 
Signalleri kabukta {{{kill}}} komutu ile oluşturulabilir.
> Mevcut signalleri listelemek için: {{{$ kill -l }}}
Gömülü işletim sistemleri için simulatordur. MPIS, ARM gibi destekledikleri arasındadır.
Soketler; network bağlantılarını tanımlama ve ayarlama için kullanılırlar. Posix standartları tarafından tanımlanmıştır. 
Soketler socket kütüphane fonksiyonu ile  oluşturulurlar. Sistem çağrıları yardımıyla, kernel yoluyla soketi oluşturur. 
{{{
#
# deb cdrom:[Debian GNU/Linux 4.0 r0 _Etch_ - Official i386 CD Binary-1 20070407-11:55]/ etch contrib main

# deb http://http.us.debian.org/debian/ etch main contrib non-free


deb cdrom:[Debian GNU/Linux 4.0 r0 _Etch_ - Official i386 CD Binary-14 20070407-11:55]/ etch contrib main
deb cdrom:[Debian GNU/Linux 4.0 r0 _Etch_ - Official i386 CD Binary-13 20070407-11:55]/ etch contrib main
deb cdrom:[Debian GNU/Linux 4.0 r0 _Etch_ - Official i386 CD Binary-12 20070407-11:55]/ etch contrib main
deb cdrom:[Debian GNU/Linux 4.0 r0 _Etch_ - Official i386 CD Binary-11 20070407-11:55]/ etch contrib main
deb cdrom:[Debian GNU/Linux 4.0 r0 _Etch_ - Official i386 CD Binary-10 20070407-11:55]/ etch contrib main
deb cdrom:[Debian GNU/Linux 4.0 r0 _Etch_ - Official i386 CD Binary-9 20070407-11:55]/ etch contrib main
deb cdrom:[Debian GNU/Linux 4.0 r0 _Etch_ - Official i386 CD Binary-1 20070407-11:55]/ etch contrib main

# Line commented out by installer because it failed to verify:
# deb http://security.debian.org/ etch/updates main contrib
# Line commented out by installer because it failed to verify:
# deb-src http://security.debian.org/ etch/updates main contrib
deb cdrom:[Debian GNU/Linux 4.0 r0 _Etch_ - Official i386 CD Binary-2 20070407-11:55]/ etch main
deb cdrom:[Debian GNU/Linux 4.0 r0 _Etch_ - Official i386 CD Binary-3 20070407-11:55]/ etch main
deb cdrom:[Debian GNU/Linux 4.0 r0 _Etch_ - Official i386 CD Binary-4 20070407-11:55]/ etch contrib main
deb cdrom:[Debian GNU/Linux 4.0 r0 _Etch_ - Official i386 CD Binary-5 20070407-11:55]/ etch contrib main
deb cdrom:[Debian GNU/Linux 4.0 r0 _Etch_ - Official i386 CD Binary-6 20070407-11:55]/ etch contrib main
deb cdrom:[Debian GNU/Linux 4.0 r0 _Etch_ - Official i386 CD Binary-7 20070407-11:55]/ etch contrib main
deb cdrom:[Debian GNU/Linux 4.0 r0 _Etch_ - Official i386 CD Binary-8 20070407-11:55]/ etch contrib main


deb cdrom:[Debian GNU/Linux 4.0 r0 _Etch_ - Official i386 CD Binary-15 20070407-11:55]/ etch contrib main
}}}
Bilgisayardan uzaktaki bir başka bilgisayara güvenli bir şekilde bağlantı sağlamak için {{{ssh }}} kullanılır.
Bunun için:
{{{
$ ssh <ip_no yada hostname> -l <kullanıcı_adı>
}}}
* Uzaktaki bir makinaya bağlanmak için 
{{{
$ ssh guya@<ip_no>
}}}
Kendi makinemize uzaktan ssh bağlantı yapmalarını sağlamak için ssh sunucusuna ihtiyaç vardır bunu için sunucu ssh sunucusu kurulur: 
{{{
# apt-get install openssh-server
}}}
! Şifresiz ssh bağlantı
{{{
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
}}}
! Kaynaklar
[1] Linux Man Sayfaları
!!! ssh uzak bağlanı yapmak
{{{
$ ssh "ip_no"
}}}
Yukarıdaki gibi sadece ip no tanımlanırsa kullanılan makinadaki kullanıcı adı ile uzak makinaya bağlantı yapmaya çalışır. Eğer o makinada mevcut kullanıcı adı ile bir hesap yok ise  hata verecektir. Bunun için belli bir ad ile bağlanmak için
{{{
$ ssh guya@"ip_no"
veya
$ ssh -l guya "ip_no"
}}}
!!! istenilen bir port ile bağlanmak
{{{
$ ssh -p "port_no" guya@"ip_no"
}}}
!!! Uzaktaki makinadan bir port kullanılarak internete bağlanmak
{{{
$ ssh -L  12345:google.com:80 -N myserver
}}}
Burada myserver adındaki bir makinaya 12345 portundan bağlanılıp o makinadan google.com ulaşılıyor. Mevcut makinada internet bağlantısı olmasa bile 
!IP AdresSınıfları
!!A sınıfı

!!B Sınıfı
!!C Sınıfı
!!D Sınıfı
a tasktracker per datanode that performs the actual work
tcl programlarını çalıştırmak için:

      {{{ $ wish <program_adi>}}}
yada programızı çalıştırılabilir bir dosya haline getiriliyoruz.
* ilk önce .tcl dosyasına aşağıdaki satırı ekliyoruz:
{{{ #!/usr/bin/wish }}}
* Daha sonra çalıştırma izni veriyoruz:
{{{ $chmod +x <tcl_dosyasının_adı> }}}

Artık programımız 
{{{ ./<tcl_dosyasının_adı>}}}   şeklinde çalışıyor.
history ye ulaşmaya çalışırken yön tuşları yerine çıkan karakterleri engellemek için  ilk önce 
{{{
apt-get install tclrealine 
}}}
ile paket kurulur. Daha sonra tclreadline sitesinde  http://tclreadline.sourceforge.net/sample.tclshrc sample.tclsh indirip onu $HOME altına [[.wishrc]] ve [[.tclsh]] dosyası adında iki farklı dosya olarak kaydediyoruz. Bunlardan  bir tanesi wish için diğeri tclsh içindir.
Bu kadar.
! Başlık Oluşturma
Yapısı:
{{{
! Başlık 1
!! Başlık 2
!!! Başlık 3
}}}
Çıktısı:
! Başlık 1
!! Başlık 2
!!! Başlık 3

! Liste Oluşturmak
Yapısı:
{{{
* Liste 1
** Liste 2
*** Liste 3 
}}}
Çıktısı:
* Liste 1
** Liste 2
*** Liste 3 

! Seçili yazı oluşturmak 
Yapısı
{{{
@@ highlight @@
@@color(red): kırmızı yazı @@
}}}
Çıktısı:
@@ highlight @@
@@color(red): kırmızı yazı @@

! Wiki kelimesi yapmak yada vurgulamak
Yapısı:
{{{
Wiki word Vurgu: [[Wikiword]]
alan seçme: {{{ deneme}}}
}}}
Çıktısı:
Wiki word Vurgu: [[Wikiword]]
alan seçme:
 {{{
 deneme
}}}

! Metin biçimlendirme olayları
Yapısı:
{{{
Kalın : "Kalın"
Üstü çizgili : --üstü çizgili--
altı çizgili : __altı çizgili__
yatık :  // yatık //
yatay çizgi : ----
alt yazı yazmak: Yazı ~~alt indis~~
üst yazı yazmak: Yazı ^^üst indis^^
}}}
Yapısı: 

Kalın : ''Kalın''
Üstü çizgili : --üstü çizgili--
altı çizgili : __altı çizgili__
yatık :  // yatık //
yatay çizgi : ----
alt yazı yazmak: Yazı ~~alt indis~~
üst yazı yazmak: Yazı ^^üst indis^^

! Alıntı yapmak
Yapısı:
{{{
> Level 1
>> Level 2
>>> Level 3
}}}
Çıktısı:
> Level 1
>> Level 2
>>> Level 3
! Numaralı Liste Yapmak
Yapısı:
{{{
# eleman 1
## eleman 2
### eleman 3
}}}
Çıktısı:
# eleman 1
## eleman 2
### eleman 3
! Resim Eklemek
{{{
[img[javalogo.gif]]
}}}
[img[javalogo.gif]]  
! Resmi Sağa ve Sola Eklemek
[>img[javalogo.gif]]
[<img[javalogo.gif]]
{{{
[>img[javalogo.gif]]
[<img[javalogo.gif]]
}}}



! Link Vermek
{{{
[[Bloğum|http://gurcanyavuz.wordpress.com]]
}}}
[[Bloğum|http://gurcanyavuz.wordpress.com]]

! Tarih Göstermek
{{{
# Bugün <<today>>
# Formatlı Bugün <<today 0DD-0MM-YYYY>>
}}}
# Bugün <<today>>
# Formatlı Bugün <<today 0DD-0MM-YYYY>>
! Definition Lists 
{{{
; terim
: açıklama
}}}
; terim
: açıklama
! Kaynaklar
[1] http://tiddlywiki.org/wiki/TiddlyWiki_Markup
@@ top @@
Bir proses ne kadar CPU kullandığını öğrenmek için, memory leak var mı diye, Sistemin geçici bir süre yavaş çalışmaya başladığında bunları kontrol etmek için kullanılabilir. top komutu sistemde neler olup bittiğini öğrenmek için güzel bir araçtır. Bunları sıralamak için çeşitli işlemlere tabi tutmak için bize imkan tanır.
{{{ # top }}}
top komutu bize CPU kullanımını gösterir. 5 sn de bir liste güncellenir. Bunu daha çabuk yapmak için {{{ space}}} basmak yeterlidir.
@@ süreç sıralamak @@
{{{
* N basıldığında süreçler süreç ID ye göre numara sırasına göre sıralanır.
* A basıldığında sireçler yaşlarına göre sıralannır. En yeni olan süreç ilk gösterilir.
* P CPU kullanımına göre süreçler sıralanır. (fazladan aza doğru)
* M Süreçler memory kullanımına göre sıralanır. (fazladan aza doğru)
* T süreçlerin toplam elde ettiği CPU zamanlarıa göre
}}}

@@ çeşitli işlemler @@
* ' r  ' ye basılıp süreç ID si girildiğinde  sürecin önceliğini değiştirebiliriz. 
* ' k ' basıldığında öldürmek istediğimiz sürecin ID sini gireriz.
 
{{{" tr " }}} komutu karakterleri (on the fly) halde değiştirmeyi sağlıyor. 
*Örnek olarak aşağıdaki komut dosya içeriklerini satırlar halinde değilde -satırlar boşluk ile değiştiriliyor- bir satırda yazdırılıyor.
{{{ $ ls | tr '\n' ' '}}}
* Örnek olarak bir dosyanın içerisindeki ' f ' karakterini ' F ' ile değiştiriyoruz. 'tr' komutu karakterler ile çalışıyor. sed gibi string bazlı değil.
{{{ $ tr f F < myfile.txt}}}
* Karakterleri silmek için de kullanılır.
{{{ $ tr -d f  < myfile.txt }}}  // f karakterleri siliniyor.
Konu: Debian etch 'de open office kurarken meydana gelen ttf-opensymbol
error vermesini çözümü

!!!Çözüm:

	@@color(green):(Bir siteden alındı daha denenmedi...)@@

	{{{rm /usr/bin/fc-cache}}}
	{{{echo '#!/bin/sh' > /usr/bin/fc-cache}}}
        {{{chmod 755 /usr/bin/fc-cache}}}

	{{{apt-get remove --purge fontconfig-config fontconfig}}}
        {{{apt-get update && apt-get upgrade}}}
        {{{apt-get install ttf-opensymbol }}}

!!! NOT  Denedim:
Bütün sistemdeki paketleri -gnome & X11 dahil- siliyor. Sadece bir kaç paket geri kalıyor. Bir de temel sistem kalıyor. Sistemi tekrar kurmak gerekliyor. Biraz zor ama gerekli çözümü üretiyor.
!Ne iş yapar?
Dinamik aygıt yöneticisi oluşturmada kullanılan daemondır. Kullanıcı alanında, aygıt düğümlerini yönetmede kullanılır. 

Ne  zaman  kernel bir aygıt  fark etse, kernel nesnesi oluşturulur. kernel nesnesi kullanıcı alanıa çıkarılır. Ek olarak, kernel hotplug mesajı gönderir kullanıcı alanına. Açılış anında, yada çalışırken bir aygıt bulunduğunda major ve minor sayısı içeren hotplug mesajı oluşturulur kernel tarafından. udevd daemonin amacı, butür mesajları dinlemektir. Bir aygıt kaydedildiğinde /dev dizini oluşturulur. 
!!! Dosyaların izinlerini belirme
Amacı [[chmod]] gibi dosyaların izinlerini belirler ama bir farkı vardır tersten çalışır. Bunda dosyada için istemediğimiz izinleri ona veririz.
{{{
$ umask 000
}}}
!Tanımlamaya Örnek
{{{
union sayi {
    int x;
    double y;
};
}}}
>struct ile tanımlaması aynıdır.
! Değer Atama
{{{
 deger.x = 100;
}}}
Sadece aynı anda bir değere erişilir. Çünkü değişkenler en büyük yer kaplayan tip kadar bir yerde tutulur. Sadece aynı anda bir değer tutulur.  
unix tabanli sistemlerin saatlerinin baslama noktasi olarak referans aldigi tarihtir. GMT 1 ocak 1970 00:00:00'a karsilik gelir. program dillerinde tarih ile hesap yaparken epoch u başalngıç alarak yaparlar.
Açmak için konsolda rarlı dosyanın dizinin gidilir. Daha sonra

                            {{{unrar e -p <dosya_adı>}}}

yazılır ve dosya açılır.
* /etc/apache2/mods-enabled/php5.conf,  dosyası altında şu satırlar # işareti koyularak php userdir için aktif hale getirilir.
{{{
<IfModule mod_userdir.c>
  <Directory /home/*/public_html>
      php_admin_value engine Off
   </Directory>
</IfModule>
}}}

! Kaynak
[1] http://devplant.net/2010/05/04/linux-php-not-working-in-userdir-public_html/
! ^M karakterini silme
{{{
:%s/^M//g
}}}
Vim kullananlar, kolayca vim içinden python kodlarını çalıştırabilirler. Zamanında bloguma yazmıştım.

{{{:!python %}}}

Bu kod ile python ile çalıştırabilirsiniz. Bunu ben .vimrc'ye ekledim, ve bir tuş atadım

{{{map <F8> :!python % <enter>}}}

Artık F8'e basarak kolayca vim içinden python kodlarını çalıştırabiliyorum. Çok işime yarıyor. Bunun dışında vim-python adında vim içinden gelen(python desteği ile derlenmiş ise) bir paket var.

{{{:help python}}}
* /etc/apt altındaki [[sources.list]] dosyasına en altına  alttaki satırı ekliyoruz: 
! lenny için
{{{
deb http://download.virtualbox.org/virtualbox/debian lenny non-free
}}}

! squeeze için
{{{
deb http://download.virtualbox.org/virtualbox/debian squeeze contrib
}}}

* paket listesini güncelliyoruz:
{{{
# apt-get update
}}}

* 3.2 için  kurulum:
{{{
# apt-get install virtualbox-3.2
}}}
* 4.0 için kurulum
{{{
# apt-get install virtualbox-4.0
}}}

* virtualbox aktif olması için bilgisayarı yeniden başlatıyoruz.
{{{
# reboot
}}}
! Kaynaklar
[1] http://www.virtualbox.org/wiki/Linux_Downloads
           void * shmat();

Bir fonksiyonumuz var bunun geri dönüşteri "void *" tipindedir. Normalde geri döndürülen bir pointer tipi aynı tipde  yada bir dönüştürücü ile dönüştürülüp atanması gerekmektedir. Ama "void *" tipi bir istisna meydana getirir. Bu her tip pointera   atanabilir.
inetd veya standalone olarak çalıştırmak için aşağıdaki satır öntanımlı olarak gelmektedir.
> listen=YES

Anonymous hesabından giriş yapılabilmesi için;
>anonymous_enable=YES

Local kullanıcıların ftp server'a ulaşabilmesi için;
>local_enable=YES

Kullanıcıların kendi klasörlerine yazma hakkı olabilmesi için aşağıdaki gibi olmalıdır.
>write_enable=YES

Kullanıcı verilen haklardır.  Verilen değer 777'den çıkartıldığında kullanıcının klasör üzerindeki haklarını görebiliriz. Bu da 755 dir. Yani kullanıcı bu klasör üzerinde her hakka sahip olurken diğer kullanıcıların sadece okuma hakları bulunmaktadır.
>local_umask=022

Malum klasörlere gidildiğinde uak kullanıcılara verilecek olan aktif mesajlar
>dirmessage_enable=YES

Eğer bu satır aktif ise vsftpd sistem zamanınınızı default sayarak klasörleri buna göre dinler ve  size yansıtır. Gösterilen default zaman dilimi GMT'dir. İsteğe bağlı olarak bu seçenek ftp command üzerinden MDTM olarak değiştirilebilir.
>use_localtime=YES

Yapılan bağlantıların upload  ve download loglarını tutmak için seçeneği “YES” yapınız.
>xferlog_enable=YES

Eğer ftp server'a 20 nolu portdan bağlanılmasını istemiyorsak bu “NO” olarak değiştirmeliyiz.
>connect_from_port_20=YES

Kullanıcıyı karşılama mesajınız
>ftpd_banner=Debian ftp server'a hoşgeldiniz.

Aşağıdaki satırı “YES” olarak aktif hale getirmezsek eğer bağlanan kullanıcılar kendi klasörlerinden çıkıp farklı klasörlere ulaşabilirler. Bu da sistemimizde güvenlik açığına neden olur.
>chroot_local_user=YES

Şifre ile ftp server'a bağlanan kullanıcıların bağlantı hızlarına limit koymak istersek eğer;
>local_max_rate= bağlantı hızı byte cinsinden

Anonymous hesabından bağlananlar için ise ;
>anon_max_rate= yine byte cinsinden
!!! watch
 bir komutu belli peryotlarla çalıştırır.
{{{
$ watch -n 10 'ls -l'
}}}
10 sn de bir bu komutu ekrana basar. Bunu bitirmek için "Ctrl -C" basmak yeterlidir.

Herhangi bir saniye belirtmezsek default değeri 2 saniyedir.
Linux üzerinde çalışan ve konsol kullanıcılarının en çok tercih ettiği wget programının kullanımı hakkında topladığım birkaç ipuçu;

Belirli dosya türlerini indirmek mümkün;
{{{
wget -r -R zip, tar.gz, iso http://us5.samba.org/samba/ftp/samba4/
}}}

İndirmeniz gereken dosyalar için liste oluşturmanız ve kullanmanız mümkün;
{{{
wget -c --input-file=/dosya http://us5.samba.org/samba/ftp/samba4/
}}}

Büyük dosyaları indirirken internet kesilirse veya indirmeye daha sonra devam etmek isteseniz -c parametresini kullanabilirsiniz.
{{{
wget -c http://us5.samba.org/samba/ftp/samba....0.0tp2.tar.gz
}}}
Bir klasörü olduğu gibi indirmek isterseniz;
{{{
wget -r http://us5.samba.org/samba/ftp/samba4/
}}}
Internet hattınızı fazla meşgul etmemesi için band genişliği limiti koymanız mümkün, bu durumda sadece 10k hızında indirecektir;
{{{
wget -c --limit-rate=10k http://us5.samba.org/samba/ftp/samba4/
}}}

Bazı durumlarda güncellenmiş veya değiştirilmiş dosyaları indirmeniz gerekebilir, indirme emrini verdiğiniz tarihte oluşturulmuş yeni dosya varsa sadece onları indirecektir. ;
{{{
wget -r -nH -N http://us5.samba.org/samba/ftp/samba4/
}}}

Yan indirdiğimiz dosyaların nereye indirilsin istersiniz ek parametre bu;
-P /usr/download/
apache kurmak için [[burdan|apache kurmak]] faydalanabilirsiniz. Mysql için:
{{{
# apt-get install  php5-mysql mysql-server
}}}
* mysql kurulumu gerçekleştiriliyor.
* wordpress kullanıcını public_html dizini altına kurmak istiyoruz bunun için wordpress kullanıcısı oluşturuyoruz.
{{{
# adduser wordpress
}}}
* Bu kullanıcı ile sisteme girip public_html dizini oluşturuyoruz home dizini altında.
{{{
wordpress@yavuz:~$ mkdir public_html
}}}
* Bu dizin altına wordpressi indirip açıyoruz.
{{{
wordpress@yavuz:~/public_html$ unzip wordpress_son-surum.zip
}}}
* dizin içerisine wordpress diye bir dizin oluşturdu bunun içindeki dosyaları public_html altına taşıyoruz.
{{{
wordpress@yavuz:~/public_html$ mv wordpress/* ./
}}}
> MySQL veritabanında wordpress adlı bir veritabanı oluşturuyoruz.

{{{
$ mysqladmin -u root password <password>
}}}

{{{
$ mysql -u root -p
}}}

{{{
create database wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO "gurcan"@"localhost" IDENTIFIED BY "gurcan"
FLUSH PRIVILEGES;
	exit
}}}
wordpress adlı bir veritabanı oluşturup, gurcan kullanıcısı için izinlerini tanımladık. Bu bilgileri wordpress kurulumunda belirtmemiz gerekiyor.

Bu işlemleri yaptıktan sonra tarayıcı penceresini açıp http://localhost/~wordpress adresine gidiyoruz. Burada istenilenleri uyguluyoruz.
Lyx'de yazıların içerisinde resimleri gömmek için gerekli olan wrapfig paketidir. Kurulum için,
! Kurulum
{{{
# apt-get install texlive-latex-extra
}}}

Kullanmak için "Ekle > Yüzen > Katlanabilir Yüzen Figür " menüden eklemek gerekir.
sunucu türü:  POP
sunucu : plus.pop.mail.yahoo.com
stmp: plus.smtp.mail.yahoo.com
[[DNS]] Alan isimi sunucusudur. Bu isim >> ip dönüşümünü sağlar. Bunu yapmak içindeki veritabanına başvurur. Bu dosylara zone dosyası denir. Örnek: {{{ dpu.edu.tr.zone }}} gibi
Arama bar kısmında wikipedia da arama yapınca ingilizce sitede arama yapıyor. Bunu Türkçe kısmında arama yapmak için :
 İlk önce {{{google.xml}}} dosyasını buluyoruz. Dosya benim makinamda {{{/usr/share/iceweasel/searchplugins}}} altında. Dosyayı vim ile açıp içinde {{{google.com}}}
olan yerleri {{{google.com.tr}}} yapıyoruz.
Arama bar kısmında wikipedia da arama yapınca ingilizce sitede arama yapıyor. Bunu Türkçe kısmında arama yapmak için :
 İlk önce {{{wikipedia-en.xml}}} dosyasını buluyoruz. Dosya benim makinamda {{{/usr/share/iceweasel/searchplugins}}} altında. Daha sonra bunun {{{wikipedia-tr.xml}}} adlı bir kopyasını oluşturuyoruz. Orada en olan wiki adresini tr'ye çeviriyoruz.Artık iki tane arama kısmımız var bunlardan bir tanesi tr de arama yapıyor.
Bir dizin içindeki bir çok gif dosyasını aynı anda png yada jpeg yapmak:
! Gerekli Programı kuruyoruz.
{{{
# apt-get install imagemagick
}}}
! Aynı anda Yapıyoruz
{{{
$  mogrify -format png *.gif
}}}
!  Bir dizin içindeki resimleri 256x356 yapmak
{{{
$ mogrify -resize 256x256 *.jpg
}}}
! Resmin boyunu yüzde azaltmak
{{{
$ mogrify -resize 50% rose.jpg
}}}
{{{
# mount -o loop -t iso9660 ubuntu-8.04-dvd-i386.iso /mnt/iso
}}}
iso dosyasını iso dizinine bağlıyoruz. 
Konsoldan işlemcinin frekansını, adını, üretici bilgileri gibi bilgilere ulaşmak için:
{{{
$  cat /proc/cpuinfo 
}}}
İşlemcinin Sıcaklınğını konsolda öğrenmek için::
{{{
$ cat /proc/acpi/thermal_zone/THRM/temperature 
}}}
!Süreç Yönetimi İle İlgili
# Kullanıcı ve Sistemi süreçlerinin oluşturulması ve yok edilmesi
# Süreçleri askıya almak ve devam ettirmek
# Süreç senkronizasyonu için mekanizma sağlamak
# Süreç iletişimi için mekanizma sağlamak
# DeadLock  için mekanizma sağlamak
! Hafıza Yönetimi ile İlgili
# Hafızanın hangi bölümü kimin tarafından kullanılır bunların takibini yapar.
# Hangi süreçler ve veriler hafızaya girecek ve çıkacak onun kararını verir. 
# Gerektiğinde Hafıza tahsisi ve hafızanın geri alma işlemini gerçekleştirir.
!Dosya Yönetimi ile İlgili
# Dosya oluşturma ve silme
# Dizin oluşturma ve silme 
# Dosya ve Dizin yönetme için ilkeller tanımlar.
# dosyaları sabit taşıyıcıya yedekler.