my($self)=@_;
return (
- "Name" =>"Jan Kratochvil",
- "English" =>"technical: fluent, general: communicable",
- "Born" =>"1979",
- "Sex" =>"male",
- "eMail" =>a_href('mailto:web@jankratochvil.net'),
- "Projects"=>a_href('http://www.jankratochvil.net/project/'),
- "Resume" =>a_href('http://www.jankratochvil.net/resume/')."<br />"
+ "name" =>"Jan Kratochvil",
+ "English" =>"fluent",
+ "born" =>"1979",
+ "e-mail" =>a_href('mailto:web@jankratochvil.net'),
+ "projects before 2005"
+ =>a_href('http://www.jankratochvil.net/project/'),
+ "resume" =>a_href('http://www.jankratochvil.net/resume/')."<br />"
."[ ".join(" | ",
a_href('/resume/ResumeJanKratochvil.pdf','PDF'),
- a_href('/resume/ResumeJanKratochvil.txt','text'),
)." ]",
"OpenPGP" =>a_href('/pgp-JanKratochvil.txt','1E3AD15E'),
);
My::Web->heading();
-my %item=(
- project::Lib->name_to_hashref(),
- product::Lib->name_to_hashref(undef(),"override"=>{"platform"=>"product"}),
- );
-my @itemnames=sort {
- ($item{$b}{"priority"} <=> $item{$a}{"priority"})
- or (lc($item{$a}->{"name"}) cmp lc($item{$b}->{"name"}));
- } keys(%item);
-
-my $projectref=sub
-{
-my($name,%args)=@_;
-
- my $project_product=($args{"product"} ? "product" : "project");
- return a_href "/$project_product/$name/",$item{$name}{"name"},"attr"=>'class="'.$project_product.'"';
-};
-
-# $args{"parenthesis"}=1;
-# $args{"product"}=1;
-my $project=sub
-{
-my($name,%args)=@_;
-
- my $r=&{$projectref}($name,%args);
- if (!$args{"bare"}) {
- my $summary=$item{$name}{"summary"};
- $summary=~s#(?:<a\s[^>]*>|</a>)##gi; # if $args{"unhref"};
- if (!$args{"parenthesis"}) {
- $r.=": $summary";
- }
- else {
- $r.=" ($summary)";
- }
- }
- return $r;
-};
-
-my $free_projects=sub (@)
-{
-my(@platforms)=@_;
-
- my $r="";
- $r.=join ", ",map({ my $platform=$_;
- map({ (0
- # || $item{$_}{"sponsorship"}
- || $item{$_}{"trivia"}
- || $item{$_}{"platform"} ne $platform ? () : (&{$projectref}($_))); } @itemnames);
- } @platforms);
- return $r;
-};
-
-
-my $reference=sub ($$)
-{
-my($mail,$fullname)=@_;
-
- my $r="";
- $r.='<td>';
- $r.=$fullname;
- if (lc($W->{"args"}{"referees"}) eq "referees") {
- # &Crypt::Rot13::rot13
- $mail=~tr/a-zA-Z/n-za-mN-ZA-M/;
- $r.=' <'.a_href("mailto:$mail").'>';
- }
- $r.='</td>';
- return $r;
-};
-
-sub techs ($)
-{
-my($arg)=@_;
-
- return '<span class="techs">('.$arg.')</span>';
-}
-
-
-my $uClinux=a_href 'http://www.uclinux.com/','uClinux';
-my $now=(localtime())[5]+1900;
-
print <<"HERE";
<table border="0" class="margin-center">
HERE
@{[ vskip "2ex" ]}
-@{[ # <p>Not looking for a new job.</p>
-]}
-
-@{[ vskip "2ex" ]}
-
-<table border="1" frame="border" rules="rows" class="jobs">
-<caption>Fulltime Jobs</caption>
-<tr><th>Date</th><th>Company</th>
- <th>Description</th></tr>
-<tr><td>2006/07-...</td><td class="com">@{[ a_href 'http://www.redhat.com/','Red Hat' ]}</td>
- <td>
- @{[ a_href 'https://en.wikipedia.org/wiki/LLDB_(debugger)','LLDB' ]} development, @{[ a_href 'https://en.wikipedia.org/wiki/Executable_and_Linkable_Format','ELF' ]}, @{[ a_href 'https://en.wikipedia.org/wiki/DWARF','DWARF' ]}, @{[ a_href 'https://en.wikipedia.org/wiki/ptrace','ptrace' ]}, @{[ a_href 'https://en.wikipedia.org/wiki/Call_stack#Unwinding','unwinding' ]}, @{[ a_href 'https://en.wikipedia.org/wiki/Application_binary_interface','ABI' ]}, formerly @{[ a_href 'https://en.wikipedia.org/wiki/GNU_Debugger','GDB' ]} development
- </td></tr>
-<tr><td>2005/04-11</td><td class="com">@{[
- a_href_cc {""=>'http://www.valinux.co.jp/en/',
- "JP"=>'http://www.valinux.co.jp/'},'VA Linux Systems Japan' ]}</td>
- <td>@{[ a_href 'http://www.kernel.org/','Linux kernel' ]}
- based software development</td></tr>
-<tr><td>2004/01-11</td><td class="com">@{[ a_href 'http://www.sun.com/','Sun Microsystems' ]}</td>
- <td>@{[ a_href 'http://www.sun.com/software/javaenterprisesystem/','Java Enterprise System' ]}
- Quality Assurance (JES QA), technical lead<br />
- JES components compatibility analysis, automation of QA tasks,
- JES testing, QA frameworks pilot deployments,
- architecture and lead of the team projects, team programming guidelines
- </td></tr>
-</table>
-
-@{[ vskip "1ex" ]}
-
-<table border="1" frame="border" rules="rows" class="jobs">
-<caption>Freelance Commercial Projects</caption>
-<tr><th>Date</th>
- <th>Description</th></tr>
-<tr id="mms2"><td>2005-2006</td>
- <td>@{[ &$project('mms2',"product"=>1) ]} (@{[ a_href_cc {""=>'http://www.mms2.org/',
- "CZ"=>'http://www.mms2.cz/',
- "SK"=>'http://www.mms2.cz/'},'service web' ]})<br />
- Web interface was outsourced.
- Commercial service management held together with company JK-Invent.
- <ul>
- <li>Designed to coexist with existing GSM networks service servers</li>
- <li>MMSE/WAP-Push/web/mail convergency featuring smart transformations</li>
- <li>Credits charging by ISDN IVR + automatic bank transaction acceptance interface</li>
- <li>Completed alpha and beta product cycle for mobile phones firmware bugs workarounds</li>
- <li>Free gatewaying program for customers to avoid targetted GSM operators firewalling</li>
- </ul>
- </td></tr>
-<tr><td>2004 </td>
- <td>@{[ &$project('hotelgate',"product"=>1) ]}<br />
- Plug&Play TCP/IP for clients, selectively ticketed and/or free access,
- simplified interface for reception desks, easy and unified management.<br />
- European facility installations provided by @{[ a_href 'http://www.jklabs.cz/','JK Labs' ]}.
- </td></tr>
-<tr id="captive"><td>2002-2003</td>
- <td>@{[ &$project('captive') ]}<br />
- Featured @{[ a_href 'http://slashdot.org/article.pl?sid=03/12/02/1536227','on slashdot' ]}.<br />
- Analysis of portions of 80MB+ i386 disassembly dumps of MS-Windows XP kernel and ntfs.sys
- for the first binary compatible reimplementation of the undocumented XP kernel subsystems.<br />
- Written @{[ &$project('TraceFS') ]}: MS-Windows Kernel API Tracer
- as native W32 kernel hooking driver for run-time analysis of the NT Cache Manager
- XP kernel subsystem.<br />
- UNIX userland of Captive provides GnomeVFS interface to the MS-Windows kernel
- based MS-Windows filesystem isolated by the CORBA/ORBit interface.
- </td></tr>
-</table>
-
-@{[ vskip "1ex" ]}
-
-<table border="1" frame="border" rules="rows" class="jobs">
-<caption>Contractor Jobs</caption>
-<tr><th>Date</th><th>Client</th>
- <th>Description</th></tr>
-<tr><td>2001-2002</td><td class="com">@{[ a_href('http://www.atspraha.cz/','Advanced Telecom Services') ]}</td>
- <td>Mobile technologies
- <ul>
- <li>MMS framework client via EuroTel GSM operator
- by technologies GSM MMS, Perl, XML, SOAP<br />
- Project included
- @{[ a_href "/etmms/",'pilot MMS Center debugging',"attr"=>'class="project"' ]} with
- Ethereal (@{[ a_href 'http://www.ethereal.com','external link' ]}), fixes of Ethereal
- (@{[ a_href '/project/etherealmmse/','1' ]}, @{[ a_href '/project/etherealwsp/','2' ]}).
- </li>
- <li>Multimedia EMS support implemented by @{[ &$project('gsmperl',"bare"=>1) ]}</li>
- <li>Implementation of protocol BIP (based on Nokia CIMD2 protocol) for GSM SMS Center direct communication
- by extending gnokii (@{[ a_href 'http://www.gnokii.org/','external link' ]})
- for EuroTel GSM operator</li>
- </ul>
- </td></tr>
-<tr><td>1999-2000</td><td class="com">@{[ a_href('http://www.suse.com/','SuSE') ]}</td>
- <td>@{[ &$project('surprise') ]}<br />
- Project was completed as a team work. The code is based on Gnome technologies.
- As one of the subtasks to keep system bootability I implemented @{[ &$project('int13sniff',"bare"=>1) ]}
- to ease Microsoft boot loaders disassembly across partition modifications.
- </td></tr>
-<tr><td>2001-2002</td><td class="com">@{[ a_href('http://www.readynote.com/','ReadyNote') ]}</td>
- <td>Mobile technologies for embedded devices
- <ul>
- <li>Completed debugging of gnokii (@{[ a_href 'http://www.gnokii.org/','external link' ]}) GSM software modem
- for Nokia 5190</li>
- <li>Port of gnokii and my @{[ &$project('mdsms',"parenthesis"=>1) ]} to embedded
- uClinux (@{[ a_href 'http://www.uclinux.org/','external link' ]})</li>
- </ul>
- </td></tr>
-<tr><td>1999-2003</td><td class="com">@{[ a_href('http://www.jklabs.cz/','JKLabs') ]}</td>
- <td>System administration of GNU/Linux and FreeBSD, techsupport: GuestNET,
- @{[ a_href 'http://www.2m.dk/web/html_version/eclipse/eclipse.html','Eclipse' ]},
- @{[ a_href 'http://www.globaloop.com/','GlobaLoop' ]},
- @{[ a_href 'http://www.antlimited.com/products/fresco.htm','Fresco' ]}<br />
- Ad hoc technical support challenges such as i386 IRQ redirector,
- @{[ &$project('middleman',"parenthesis"=>1,"unhref"=>1) ]} or @{[ &$project('ssht',"parenthesis"=>1,"unhref"=>1) ]}.
- </td></tr>
-<tr><td>2001 </td><td class="com">@{[ a_href('http://www.gtsgroup.cz/','GTS') ]}</td>
- <td>@{[ &$project('tac_plus') ]}</td></tr>
-<tr><td>1999 </td><td class="com">@{[ a_href('http://www.unicom-prague.cz/','Unicom') ]}</td>
- <td>Technical translations from English</td></tr>
-<tr><td>1998-1999</td><td class="com">@{[ a_href('http://www.geoinvest.cz/','Geoinvest') ]}</td>
- <td>Mobile technologies, embedded devices
- <ul>
- <li>@{[ &$project('332') ]}</li>
- <li>Siemens M1 GSM modem daemon for GPS, client/server setup, remote GSM terminals</li>
- </ul>
- </td></tr>
-<tr><td>1999 </td><td class="com">@{[ a_href('http://www.tencom.cz/','TENcom Trade') ]}</td>
- <td>Mobile technologies
- <ul>
- <li>@{[ a_href "/project/mdsms/","MobilDock SMS Tool","attr"=>'class="project"' ]}:
- SMS communication software for Digital UNIX</li>
- </ul>
- </td></tr>
-<tr><td>1998 </td><td class="com">@{[ a_href('http://www.elsa-online.org/',"European Law Students' Association") ]}</td>
- <td>@{[ &$project('step') ]} incl. fixes of
- @{[ a_href "/project/phphash/","PHP","attr"=>'class="project"' ]} and
- @{[ a_href "/project/pgsqlsubstr/","PostgreSQL","attr"=>'class="project"' ]}</td></tr>
-<tr><td>1993-1996</td><td class="com">Profes J&K</td>
- <td>PC assembly and customer service</td></tr>
-<tr><td>1993 </td><td class="com">@{[ a_href('http://www.japhila.cz/index_en.htm','Japhila') ]}</td>
- <td>StampMan: Database application @{[ techs 'MS-DOS: Pascal, plainTeX' ]}</td></tr>
-</table>
-
-@{[ vskip "2ex" ]}
-
-<table>
-<caption>Awards</caption>
-<tr><td>1997</td><td>Bronze medal in the International Olympiad in Informatics, South Africa - Cape Town</td></tr>
-<tr><td>1997</td><td>2nd in an MO-P national contest - mathematics Olympiad, the programming category</td></tr>
-<tr><td>1997</td><td>1st in the International Competition in Programming</td></tr>
-<tr><td>1996</td><td>4th in the International Competition in Programming</td></tr>
-<tr><td>1995</td><td>7th in the Central European Olympiad in Informatics</td></tr>
-</table>
-
-@{[ vskip "2ex" ]}
-
-<table>
-<caption>Experience Summary</caption>
-<tr><td class="tab-head">Major Areas </td><td>mobile technologies, filesystems, embedded devices</td></tr>
-<tr><td class="tab-head">Platforms </td><td>GNU/Linux/i386/UNIX/FreeBSD, W32 kernel, Amiga/680x0, MS-DOS,
- ZX Spectrum, handheld PC-E500S</td></tr>
-<tr><td class="tab-head">Languages </td><td>C (Gnome/GCC), Perl, bash/awk/sed...,
- Java, C++, Pascal, Basic, REXX, S-Lang, Foxplus, Prolog</td></tr>
-<tr><td class="tab-head">Tools/Metalanguages</td>
- <td>autoconf, automake, libtool, m4, CVS, gettext, bison, flex, ld script,
- gdb script, Maple V</td></tr>
-<tr><td class="tab-head">Assemblers </td><td>i386/x86_64, Motorola 680x0, Zilog Z80, Intel 8051, MIPS R2/3000,
- (Hitachi SH-8)</td></tr>
-<tr><td class="tab-head">WWW-Related </td><td>HTML/XHTML, CSS, PHP, SQL (PostgreSQL, MySQL), JavaScript, CGI</td></tr>
-<tr><td class="tab-head">Documentation</td><td>plainTeX, LaTeX, DocBook, DocBook Lite, XML/NS/Schema,
- gtk-doc, nroff, pod</td></tr>
-<tr><td class="tab-head">Libraries </td><td>Gnome/GTK+/GLib, POSIX/BSD/SysV/threads/sockets, X11, OpenGL, NCurses,
- S-Lang, GnomeVFS, libxml, libneon, SVGALib, NIS, Qt,...</td></tr>
-<tr><td class="tab-head">RPC </td><td>CORBA/ORBit, SOAP, WSDL, Sun RPC</td></tr>
-<tr><td class="tab-head">Protocols </td><td>GSM SMS/PDU/Nokia Smart Messaging/EMS/WAP/WTP/WSP/MMSE/SMIL/WML/AMR/ETSI stds/3GPP stds,
- IPv4, HTTP, SMTP/RFC822/MIME, FTP, SSH, DHCP, POP3, IMAP4, NFS v2/v3, PPP/LCP/IPCP,...</td></tr>
-<tr><td class="tab-head">Filesystems </td><td>ext2, FAT, AmigaFFS, ISO-9660</td></tr>
-<tr><td class="tab-head">Certificates </td><td>@{[ a_href('https://www.redhat.com/rhtapps/certification/verify/?certId=110-518-099','RHCE 110-518-099') ]}</td></tr>
-</table>
+<p style="text-align: center;">@{[ a_href('/resume/ResumeJanKratochvil.pdf','My PDF resume.') ]}</p>
-@{[ vskip "2ex" ]}
-
-<table border="1" frame="border" rules="groups">
-<caption>My Own Free Projects</caption>
-<thead>
- <tr><td colspan="2" style="font-size: larger;" align="center">
- Detailed listing available at: @{[ a_href 'http://www.jankratochvil.net/projects/' ]}
- </td></tr>
-</thead>
-<tbody>
- <tr><th>Platform</th><th>Available Free Projects</th></tr>
-HERE
- my @platforms=@project::Lib::platforms;
- while (@platforms) {
- my $platform_sym =shift @platforms;
- my $platform_name=shift @platforms;
- print "<tr>";
- print '<td>'.a_href('/project/#'.$platform_sym,$platform_name).'</td>';
- print '<td>'.&{$free_projects}($platform_sym).'</td>';
- print "</tr>\n";
- }
-print <<"HERE";
-</tbody>
-</table>
HERE