ã¿ãªããã¯ããã°ã©ãã³ã°ã¯åŸæã§ããããããããã®ãããªèšäºãèŠãŠãããšããããšã¯ãããããããåŸæãªãããããããŸãããããã ãäœå¹Žãããã°ã©ãã³ã°ãä»äºãç ç©¶ã§çµéšãããŠããªããšãåŸæã§ãªãããããããªãããšããå Žåãã»ãšãã©ã§ã¯ãªãã§ããããã
æ¬é£èŒã§ã¯ãã®ãããªããã°ã©ãã³ã°ãåŸæãšããŠããªã人ã察象ã«ãPythonãšåŒã°ããããã°ã©ãã³ã°èšèªã䜿ã£ãŠããã°ã©ãã³ã°ã®æŠå¿µãææ³ã«ã€ããŠåŠãã§ããããããšèããŠããŸããããã§ãPythonã®ææ³ã«ã€ããŠæç§æžã®ããã«è©³çްã«èšèŒãããšãããããããããã°ã©ãã³ã°ã®æ®éçãªæŠå¿µãçè§£ããããã§ãPythonã®ã³ãŒããå®éã«æžãããšããå®è·µçãªã¹ã¿ã€ã«ã§è§£èª¬ããŠãããŸããæçµçã«ã¯ãPython以å€ã®ãCãJavaãšãã£ãèšèªãåŠã³ããæ¹ã§ãæçšãªã³ã³ãã³ããšãªããããå¿ãããŠãããŸãã
ãªããæ¬é£èŒã¯ã·ã¹ã³ã·ã¹ãã 㺠Japanã®ç€Ÿå ã§è¡ããã4æ¥éã®Python Programmingã«ããšã¥ããŠäœæãããŠããŸãããèå³ãããããã¯ãªãªãžãã«ã®è³æããåç §ãã ããã
ããã°ã©ãã³ã°ã£ãŠäœ?
æ©æ¢°ã¯äººéã®èšèããã®ãŸãŸçè§£ããããšã¯ã§ããŸããã0ã1ã®ãã€ããªã§æžãããåœä»€ãã¡ã¢ãªã«èªã¿èŸŒã¿ãCPUããããå®è¡ããããšã§æ©æ¢°ã¯äººéã®åœä»€ãå®çŸããŸãã
ããšãã°ãPCã®ãã£ã¹ãã¬ã€ã«"Hello"ãšè¡šç€ºãããããšããŸããããããæ©æ¢°ãçè§£ã§ããããã«0ã1ã§åœä»€ããŠãå®è¡ãããããšããããŠããéæ¹ã«ãããŠããŸããŸãããã0ã1ã®åœä»€ã«ãèŠåæ§ãããã®ã§ããããããã®åœä»€ã§ããã°æžããªãããšããªãã§ããã"001100011000111âŠâŠ" ãªã©ãšããããã«ã0ã1ãçŸ åããåœä»€ãæžããšããããŠããã€ããŒãŒã«ãªã£ãŠããŸãããã§ãã
ããã°ã©ãã³ã°ã¯ãã®ã0ã1ã§åœä»€ãäžããããšããé£ããäœæ¥ã人éãããç°¡åã«è¡ãããã®æ¹æ³ã§ãããã£ãããã£ãŠããŸããšã人éãšæ©æ¢°ã®äž¡æ¹ã«ãšã£ãŠããããããèšèã§ãæ©æ¢°ãè§£éã§ããåœä»€ãæžãäœæ¥ããããã°ã©ãã³ã°ãšãããŸãã
以äžã«ãã®æŠå¿µã瀺ãå³ãèšèŒããŸãã
å³ã®çãäžã«äœçœ®ãããCãJavaãPythonãšãã£ãããã°ã©ãã³ã°èšèªãã¯äººéãšæ©æ¢°ã®äžéã«äœçœ®ããèšèã§ããã人éããããè§£éããããšãã§ããŸãããæ©æ¢°ãããã0ã1ãšããŠèªèå¯èœã§ãããã®ããã人éãããã°ã©ãã³ã°èšèªã§æ©æ¢°ã«ãããããåœä»€ãæžãããšã§ããããæ©æ¢°ãå®è¡ããããšããã¹ã¿ã€ã«ã§æ©æ¢°ã«äœæ¥ããããããšãã§ããŸãã
"Hello"ã衚瀺ããããã«ã0ã1ãå»¶ã ãšçŸ åãããã®ãšãprint("Hello")ããšæžãã®ãæ¯ã¹ãããã©ãèããŠãåŸè ã®ã»ãããã£ãšç°¡åã§å¹ççã§ããããã ãããã¿ããªããã°ã©ãã³ã°èšèªã䜿ããŸãã
â»åºçŸ©ã§ã¯0ã1ã§åœä»€ãçŸ åããããšãããã°ã©ãã³ã°ãšãããŸãããã ãä»ã§ã¯ããŸãäžè¬çã§ã¯ãªããšèããŠããŸãã
Pythonãšä»ã®ããã°ã©ãã³ã°èšèªã®æ¯èŒ
ããã°ã©ãã³ã°ãå®çŸããææ³ãèšèªã¯ããŸããŸã§ããããã°ã©ãã³ã°èšèªã«ã¯ããããåŸæãªåéããããæžãããäœæ¥ã«ãã£ãŠã䜿ãããèšèªãéžã³ãŸããä»ååŠã¶Pythonã¯ããã®ãããªããã°ã©ãã³ã°èšèªã®ã²ãšã€ã§ãããä»ã®èšèªãããæ¯èŒçæ±çšç(ãªãã«ã§ã䜿ãã)ã§ããç°¡åã§ãããã®ãããä»åã®ããã°ã©ãã³ã°å ¥éã®é£èŒã«ã¯Pythonã顿ãšããŠäœ¿ãããšã«ããŸããã
Python以å€ã«ãããããã°ã©ãã³ã°èšèªã¯ãããããããŸããããªãããã°ã©ãã³ã°ãåŠã¶ã®ã«Pythonãããã®ã§ããããã
ããã«ã¯ããã€ãã®çç±ããããŸããããŸãã¯è«ãã蚌æ ãèŠããã»ããã¯ãããšæããŸãã®ã§ãããã£ã¬ã¯ããª(ãã©ã«ã)ã®éå±€ãæžãåºãããã°ã©ã ãäœãããšããããšãè€æ°ã®èšèªã§è¡ãããããæ¯èŒããŠã¿ãŸãã
ãŸãã¯ããã£ã¬ã¯ããª(ãã©ã«ã)ã®éå±€ãæžãåºããæ¹æ³ã«ã€ããŠèããŸããå®çŸæ¹æ³ã¯ãããããããŸãããä»åã¯ä»¥äžã®ã«ãŒã«ã«åŸã£ãŠåããããšã§å®çŸãããŸãã
|
|---|
ããšãã°ã以äžã®ãããªãã£ã¬ã¯ããªæ§é ã®å Žåã
/python --+-- a(dir) --+-- aa
| |
| +-- ab(dir) ----- aba
|
+-- b
|
+-- c
|
+-- d(dir) --+-- da
|
+-- db
ããã°ã©ã ã§ããã衚瀺ããããšæ¬¡ã®ããã«ãªããŸãã
[/python]
[/python/a]
- aa
[/python/a/ab]
- aba
- b
- c
[/python/d]
- da
- db
äžèšã®ã«ãŒã«ã«ãããã£ãŠããã®æ§é ã®ãã£ã¬ã¯ããªã衚瀺ãããéã®ããã°ã©ã ã®åããå ·äœçã«æžããã ããšã以äžã®ããã«ãªããŸãã
|
|---|
ã«ãŒã«ã«åŸã£ãŠèŠåçã«åããŠããããšãããããŸããããã®èªåã§æžãããããã°ã©ã ã®æåã®ã«ãŒã«ããã¢ã«ãŽãªãºã ãšåŒã³ãŸãã
ã§ã¯ãå®éã«ãããå®çŸããããã°ã©ã ã®äŸããããã€ãã®èšèªã§èšèŒããŸããåèšèªã«ã€ããŠç¥ããªãæ¹ãå€ããšæãã®ã§ãããã°ã©ã ãå®éã«äœãããŠããããšããããšãããããŒãŒã£ãšçºããããšã§ãåããã°ã©ãã³ã°èšèªã®éãã«ã€ããŠãããããšæãã銳ããŠããã ããããããšæããŸãã
ãªããæ¯èŒãç°¡åã«ããããã«ãå¿ ãããæç§æžçãªæžãæ¹ãããŠããªãã®ã§æ³šæããŠäžããã
Python
ãŸãæåã«Pythonã®ããã°ã©ã ã以äžã«èšèŒããŸãã å šéšã§çŽ15è¡ã»ã©ãšãªã£ãŠããŸãã
import os
def listFile(path, indentLevel):
print(' ' * indentLevel + '[' + path + ']'); # ãã£ã¬ã¯ããªåã衚瀺
for fileName in os.listdir(path): # ãã£ã¬ã¯ããªå
ã®ãã¡ã€ã«ãšãã£ã¬ã¯ããªãå
šãŠã«ãŒãã§ç¢ºèª
if(fileName.startswith(".")): continue
absFilePath = path + '/' + fileName
if(os.path.isdir(absFilePath)):
listFile(absFilePath, indentLevel + 1) # ãã£ã¬ã¯ããªã ã£ãã®ã§ããã®ãã£ã¬ã¯ããªããã§ãã¯ãã
else:
print(' ' * indentLevel + "- " + fileName) # ãã¡ã€ã«ã ã£ãã®ã§ããã¡ã€ã«åã衚瀺
listFile('/python', 0)
ã³ãŒãäžã«ããã#ã以éãããã°ã©ã ã®ã³ã¡ã³ãã§ãããã©ã®ãããªåŠçãããŠãããã¡ã¢ããŠããŸããéèŠãªã®ã¯ã¡ã¢ã«æžãããŠãããããããããšããå°ãªãè¡æ°ã§å®çŸã§ããŠããããšã§ãããŸãããã°ã©ã ãå®è¡ããããšããã³ãã³ããå©ããã ãã§ããã«å®çŸã§ããã®ã§ç°¡åã§ãã詳ããããšã¯æ¬¡å以éã«æ±ããŸãã
ãªããã³ã¡ã³ãã¯å€åœäººã§ãèªããããã«è±èªã§æžãã®ãæãŸããã§ããäžçŽä»¥äžã®ã¬ãã«ã«ãªããšæ¥æ¬èªã®ããã¥ã¡ã³ãããªãå Žåãã§ãŠããã®ã§ãè±èªã¯ã§ããã«è¶ããããšã¯ãªãã§ãã
Java
Javaã§åãããšãããããã°ã©ã ãæžããšã以äžã®ããã«ãªããŸããPythonã ãš15è¡çšåºŠã ã£ãããã°ã©ã ããã ããã30è¡çšã«ãªã£ãŠããŸãã
import java.io.File;
public class ListFile { // ã¯ã©ã¹å®çŸ©
public static void main(String[] args){ // ãšã³ããªãŒãã€ã³ã(ããã°ã©ã ã®èµ·ç¹)
ListFile lf = new ListFile();
lf.listFile("/python", 0);
}
public void printIndent(int indentLevel){ // ã€ã³ãã³ãã®ããã®ãŠãŒãã£ãªãã£é¢æ°
for(int i=0; i<indentLevel; i++){
System.out.print(" ");
}
}
public void listFile(String dirPath, int indentLevel){
printIndent(indentLevel);
System.out.printf("[%s]\n", dirPath); // ãã£ã¬ã¯ããªåã衚瀺
File dir = new File(dirPath);
File files[] = dir.listFiles();
for(int i=0; i<files.length; i++){ // ãã£ã¬ã¯ããªå
ã®ãã¡ã€ã«ãšãã£ã¬ã¯ããªãå
šãŠç¢ºèª
if(files[i].getName().startsWith(".")) continue;
if(files[i].isDirectory()){
listFile(files[i].getAbsolutePath(), indentLevel + 1); // ãã£ã¬ã¯ããªã ã£ãã®ã§ããã®ãã£ã¬ã¯ããªããã§ãã¯ãã
}else{
printIndent(indentLevel);
System.out.printf("- %s\n", files[i].getName()); // ãã¡ã€ã«ã ã£ãã®ã§ããã¡ã€ã«åã衚瀺
}
}
}
}
"public void listFile(String dirPath, int indentLevel){"ãšããã®ãçãäžã«ãããŸãããããããã£ã¬ã¯ããªãèµ°æ»ããã¢ã«ãŽãªãºã ã§ããPythonãšè¥å¹²ç°ãªããŸããããã£ãŠããããšã¯ã»ãšãã©åãã§ãã
ããã°ã©ã ã«è©³ãã人ãèŠããšãå¢ããã®ã¯Javaã«ããèšèªã®å¶çŽ(Classã®å®£èšãå¿ èŠãªããšãªã©)ããæåååŠçãããã«ããããšãããããŸããã¡ã€ã³ã®åŠçã§ãã"public void listFile" ã®äžã«ããåŠçã¯ãPythonãšãã»ã©å€ãã£ãŠããŸãããå®è¡æ¹æ³ã«é¢ããŠããPythonãããé£ãããªãããŸããã³ã³ãã€ã«ããšåŒã°ããäœæ¥ã§äžèšã®ããã¹ãã§æžãããããã°ã©ã ã0ã1ã®ãã€ããªã«ããŠãããŠããããã³ãã³ãã§æå®ããŠå®è¡ãããšããæ¹åŒã«ãªããŸãã
C
æåŸã«Cã®ããã°ã©ã ã§ããããã¯çŽ50è¡ãšãªã£ãŠããŸããã©ãã§ããããèªã(çºãã)ã®ãé¢åããããªã£ãŠããã®ã§ã¯ãªãã§ãããæžãã®ã¯ãã£ãšé¢åã§ãã(ç¬)ã
é¢åãªã ãã§ã¯ãªããCã¯PythonãJavaãšéããããã°ã©ã ããå®è¡ããOSãã«åŒ·ãäŸåãããšããåé¡ããããŸããäžèšã®ã³ãŒãã¯Macã§æžãããã®ãªã®ã§ãWindowsã§ã¯åããªãã®ã§ã¯ãªãã§ããããã
#include <stdio.h>
#include <unistd.h>
#include <dirent.h>
#include <sys/stat.h>
#include <string.h>
void printIndent(int indentLevel);
void listFile(char path[], int indentLevel);
int main(int argc, const char * argv[]) { // ãšã³ããªãŒãã€ã³ã(ããã°ã©ã ã®èµ·ç¹)
listFile("/python", 0);
return 0;
}
void printIndent(int indentLevel){ // ã€ã³ãã³ãã®ããã®ãŠãŒãã£ãªãã£é¢æ°
int i;
for(i=0; i<indentLevel; i++){
printf(" ");
}
}
void listFile(char dirPath[], int indentLevel){
DIR *dir;
struct dirent *dp;
int i=0;
struct stat stat_buf;
printIndent(indentLevel);
printf("[%s]\n", dirPath); // ãã£ã¬ã¯ããªåã衚瀺
dir = opendir(dirPath);
for(i = 0; NULL != (dp=readdir(dir)); i++){ // ãã£ã¬ã¯ããªå
ã®ãã¡ã€ã«ãšãã£ã¬ã¯ããªãå
šãŠç¢ºèª
const char* fileName = dp->d_name;
if('.' == fileName[0]) continue;
char cp[512];
strcpy(cp, dirPath);
strcat(cp, "/");
strcat(cp, fileName);
stat(cp, &stat_buf);
if(S_ISDIR(stat_buf.st_mode)){
listFile(cp, indentLevel + 1); // ãã£ã¬ã¯ããªã ã£ãã®ã§ããã®ãã£ã¬ã¯ããªããã§ãã¯ãã
}else{
printIndent(indentLevel);
printf("- %s\n", fileName); // ãã¡ã€ã«ã ã£ãã®ã§ããã¡ã€ã«åã衚瀺
}
}
closedir(dir);
}
"void listFile(char dirPath[], int indentLevel){" ã®äžã«ããããã°ã©ã ããã£ã¬ã¯ããªãèµ°æ»ããããã°ã©ã ã§ããå ã«æç€ºããPythonãJavaãšåãã¢ã«ãŽãªãºã ã§ãããããã¶ããšé·ããªã£ãŠããŸããã
AãšããåŠçããPythonã ãš2è¡ã§å®çŸã§ããã®ã«ãCã ãš5è¡å¿ èŠãšãããããªå ·åã§ãåŠçãæžãã°æžãã»ã©ããã°ã©ã ã®æéãã©ãã©ãå¢ããŠããã®ã§ãCã®ã³ãŒãã¯Pythonã®3å以äžã®ã³ãŒãè¡æ°ãå¿ èŠãšãªã£ãŠããŸã£ãŠããŸãã
ãŸããCãããã人ãèŠãã°ããã«èŠæãããŠããŸããŸãããäžèšã¯éåžžã«åé¡ã®å€ãã³ãŒãã§ããããšãã°ãã£ã¬ã¯ããªãæ·±ããªã£ããããã¡ã€ã«åãé·ãã£ãããããšäžæ°ã«ç Žç¶»ããŠããŸããŸããæ¬æ¥ã§ããã°ããã®ããããèæ ®ããã³ãŒããæžããªããã°ãããªãã¯ãã§ãã
ãã£ã¬ã¯ããªæ§é ãæžãåºããšããåŠçããããã®ã§ããã°ãããŸãCã¯äœ¿ããããªããšããææ³ãæã£ãŠããã ããã®ã§ã¯ãªãã§ããããã
æåŸã«ãPythonãJavaãCã®ç¹åŸŽãæ¯èŒããå³ãèšèŒããŸãã
Pythonã§ããã°ã©ãã³ã°ãåŠã¶çç±
å ã»ã©ã®äŸã§ããã£ãŠããã ããããã«ãPythonã¯CãJavaã«æ¯ã¹ããšãåãåŠçãçãããã°ã©ã ã§å®çŸããããšãã§ããŸããçããšããããšãããããããšãPythonã¯CãJavaãããç°¡åããªèšèªã§ãããšããããŸãã
ç§ã®å人çãªæèŠãªã®ã§ãããåå¿è ããŸãåŠã¶ã¹ãããšã¯ãããã°ã©ãã³ã°èšèªã®ä»æ§è©³çްãããããã®ããã°ã©ãã³ã°äœæ¥ãè¡ãéã®èãæ¹ãææ³ã ãšæããŸããè€éãªåŠçãå®çŸããããšãã«ãåŠçãå°ããåäœã«åè§£ããŠãã©ã®ãããªã¹ãããã§å®çŸãããé åºç«ãŠãŠèãããããšãå¿ ãå¿ èŠãšãªããŸãããããåŠã¶ã®ã§ããã°ãCã®ããã«äœèšãªäœæ³ã«æ¯ãåãããŠæ¬è³ªã«æ³šåã§ããªãããããPythonã®ãããªç°¡åãªèšèªã§ãããã°ã©ãã³ã°ã®æ¬è³ªãã«çç®ããã»ããããã§ãããã
ã ããç§ã¯ãããã°ã©ãã³ã°åå¿è ã«ã¯Pythonããã¯ãããããšãæšå¥šããŠããŸã(次ç¹ã¯Javaã§ãããããªããžã§ã¯ãæåãæ¬æ Œçã«åŠã¶ã®ã§ããã°ãJavaã®ã»ãããããããããŸãã)ã
äœè«ã§ãããPythonã¯ç°¡åãªã ãã§ã¯ãªããOpenStackãã¯ãããšããå€ãã®å€§èŠæš¡ãªãœãããŠã§ã¢ãããžã§ã¯ãã§æ¡çšãããŠããããGoogleãCiscoãšãã£ãã¡ãžã£ãŒãªITäŒæ¥ã§ãç©æ¥µçã«å©çšãããŠããŸããããšãã¹ããŒããã¡ãããããéžã¶ã®ã ããééããªãããšãã€ã宣äŒããŠããŸã(ç¬)ã
é£èŒã®ãŽãŒã«å°ç¹
æåŸã«ãæ¬é£èŒã®ãŽãŒã«å°ç¹ã«ã€ããŠã話ããããšæããŸããæ¬é£èŒã¯ããã°ã©ãã³ã°ã®ã¹ãã«ã«ã€ããŠã1ã10ã«ããããšããããããã0ã1ã«ãããããšãç®çãšããŠããŸãã
ããã°ã©ãã³ã°ã¯å»ºç¯ã«ããšããããšãã§ããŸããããšãã°ç¬å°å±ãäœãããšæã£ããšããæšã®æ±ãæ¿ã調éããŠé©åœã«ãã¶ã€ã³ããŠçµã¿ç«ãŠãããšãã§ããŸããããæ§é ååŠã®èšç®ãããã©ãããã建ç¯ã«ã€ããŠãçŽ äººã§ãã£ãŠãäœããŸãããã ããç¬å°å±ãšã¯ãããããã®ã ããšããããšãç¥ã£ãŠããŠããã³ã®ãªãšãã³ããŒã®äœ¿ãæ¹ãç¥ã£ãŠããå¿ èŠããããŸãã
ããã°ã©ãã³ã°ããããšåãã§ãæ¯èŒçãå°ãããããã°ã©ã ã¯ãã³ã®ãªããã³ããŒã«çžåœããæäœéã®ææ³ãšãäœããããã®ã®ä»çµã¿ãã©ãå®çŸãããããšããããšããç¥ã£ãŠããã°ãããããåããã®ãäœãããšãã§ããŸãã
ãããã人ãäœãå®¶ãäœããšãªããšãç¬å°å±ãšã¯è©±ãå€ãã£ãŠããŸããé äžã§ããäœã¿ãããå®¶ãäœãã«ã¯ããŸããå®¶ãšãããã®ã®ä»çµã¿ãããç¬å°å±ãããæ·±ãã¬ãã«ã§ç¥ã£ãŠããå¿ èŠãããããªããã€å®¶ã®å·¥äœã«å¿ èŠãšãªãã¹ãã«ã¯ç¬å°å±ããé«åºŠãªãã®ãšãªããŸãããã«ã®å»ºèšãªã©ã«ãªã£ãŠãããšãããã«é«åºŠãªç¥èãå¿ èŠã«ãªã£ãŠããŸãã
ããã°ã©ãã³ã°ããåã«ææ³ããèšèªãèšèšã®ææ³ãã ãã§ãªãåšèŸºç¥èã®ãããªãã®ã身ã«ã€ããŠããªããšãæ°åãæ°äžè¡ã¬ãã«ã®ã³ãŒãã1äººã§æžãããããããžã§ã¯ããåããšãã£ãããšã¯é£ãããšæããŸãããã倧ããè€éãªãã®ãäœãå Žåã»ã©ãããæ·±ãã¬ãã«ã®ç¥èãå¿ èŠã«ãªã£ãŠããŸãã
ãŸãã¯ç¬å°å±ãäœãããã«ããã³ããŒããã³ã®ãªã®äœ¿ãæ¹ãèŠããããããæ¬é£èŒã®ç®çã§ãããã³ããŒããã³ã®ãªã®äœ¿ãæ¹ã座åŠã ãã§åŠãã§ããç§ã¯ãã³ããŒãšãã³ã®ãªã䜿ããŸãããšãã£ããã倧工ããã«ç¬ãããŠããŸããŸããããäœ¿ãæ¹ã¯æç§æžã§ãåŠã¹ãŸããã䜿ãããªãããšæããšãå®éã«æšãåã£ãŠãéãæããªããšããã®ã¹ãã«ã¯èº«ã«ã€ããŸããã䜿ã£ãŠã¿ãŠã¯ãããŠãããããšãå€ãã¯ãã§ããæ¬é£èŒã§ã¯æŒç¿ãèŒããããã«ããŠãããŸãã®ã§ããã²èªåã§é ã䜿ããæãåãããªããããã°ã©ãã³ã°ãäœæããŠã¿ãŠãã ããã
次å㯠PythonãWindowsãšMacã«ã€ã³ã¹ããŒã«ãããã®å©ç𿹿³ã玹ä»ããŸããæ¬¡å以éããããããé¡ãããŸãã
å·çè
玹ä»äŒè€è£äž(ITO Yuichi)ã·ã¹ã³ã·ã¹ãã ãºã§ã®æ¥åãšå€§åŠã§ã®ç 究掻åã§ã³ã³ãã¥ãŒã¿ãããã¯ãŒã¯ã«6幎é¢ãããå°éã¯L2/L3 Switching ãšããŒã¿ã»ã³ã¿ãŒé¢é£æè¡ããã³SDNãTACãšããŠã·ã¹ã³é¡§å®¢ã®ãã¯ãã«ã«ãµããŒãæ¥åã«åŸäºã瀟å åãã®ãœãããŠã§ã¢é¢é£ã®ãã¬ãŒãã³ã°ããã³ããŒã¿ã»ã³ã¿ãšSDNé¢ä¿ã®å€éšè¬æŒãªã©ãè¡ãã ããšããšä»®æ³ãããã¯ãŒã¯é¢é£æè¡ã®ç ç©¶éçºã«åŸäºããŠããããšãããããããã¯ãŒã¯ã ãã§ãªãããã°ã©ãã³ã°ãLinuxé¢é£æè¡ã«ã粟éãCisco瀟å å€åãã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°ããŒã«ã®éçºããè¶£å³ã§é³å£°åæåŠçã®ã¢ããªã±ãŒã·ã§ã³ããµãŒãã¹ãéçºã Cisco CCIE R&S, Red Hat Certified Engineer, Oracle Java Gold,2009幎床 IPA æªèžãããžã§ã¯ãæ¡æ 詳现(è±èª)ã¯ãã¡ã |
|---|


