use My::Web;
require Crypt::Rot13;
Wrequire 'project::Lib';
+Wrequire 'product::Lib';
sub Contact($)
"Born" =>"1979",
"Sex" =>"male",
"Licenses"=>"motorcycle, car",
- "eMail" =>(map({ a_href("mailto:$_",$_); } 'job@jankratochvil.net'))[0],
+ "eMail" =>a_href('mailto:web@jankratochvil.net'),
"Projects"=>a_href('http://www.jankratochvil.net/project/'),
"Resume" =>a_href('http://www.jankratochvil.net/resume/')."<br />"
- ."[ ".a_href('/resume/ResumeJanKratochvil.pdf','PDF')
- ."| ".a_href('/resume/ResumeJanKratochvil.txt','text')
- ."]",
+ ."[ ".join(" | ",
+ a_href('/resume/ResumeJanKratochvil.pdf','PDF'),
+ a_href('/resume/ResumeJanKratochvil.txt','text'),
+ )." ]",
"OpenPGP" =>a_href('/pgp-JanKratochvil.txt','')
.'pub 1024D/26A802B2 2004-01-17'."<br />"
.'sub 2048g/A74DF86D 2004-01-17 [expires: 2007-01-16]'
My::Web->heading();
-my %item=project::Lib->name_to_hashref();
+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);
+ ($item{$b}{"priority"} <=> $item{$a}{"priority"})
+ or (lc($item{$a}->{"name"}) cmp lc($item{$b}->{"name"}));
+ } keys(%item);
my $projectref=sub
{
-my($name)=@_;
+my($name,%args)=@_;
- return a_href "/project/$name/",$item{$name}{"name"},"attr"=>'class="project"';
+ 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);
+ my $r=&{$projectref}($name,%args);
if (!$args{"bare"}) {
my $summary=$item{$name}{"summary"};
$summary=~s#(?:<a\s[^>]*>|</a>)##gi; # if $args{"unhref"};
my $r="";
$r.=join ", ",map({ my $platform=$_;
- map({ ($item{$_}{"sponsorship"} || $item{$_}{"trivia"}
+ map({ (0
+ # || $item{$_}{"sponsorship"}
+ || $item{$_}{"trivia"}
|| $item{$_}{"platform"} ne $platform ? () : (&{$projectref}($_))); } @itemnames);
} @platforms);
return $r;
my $rot13=Crypt::Rot13->new();
$rot13->charge($mail);
$mail=($rot13->rot13())[0];
- $r.=' <'.a_href("mailto:$mail",$mail).'>';
+ $r.=' <'.a_href("mailto:$mail").'>';
}
$r.='</td>';
return $r;
print <<"HERE";
</table>
-@{[ vskip "3ex" ]}
+@{[ vskip "2ex" ]}
+
+<p>Contractor - software engineer. Technical achievements highlights:</p>
+<ul>
+ <li>@{[ a_href '#captive','Captive NTFS' ]}:
+ Delivery of the first free NTFS read/write filesystem for GNU/Linux.
+ Technically advanced project incl. the required reverse engineering.
+ </li>
+ <li>@{[ a_href '#mms2','MMS2' ]}:
+ Independent startup business attempt. Coverage by news articles:
+ @{[ a_href 'http://www.mobilmania.cz/Zpravy/AR.asp?ARI=111260','1' ]},
+ @{[ a_href 'http://mobil.idnes.cz/mob_operatori.asp?r=mob_operatori&c=A051106_214538_mob_operatori_dno','2' ]}
+ </li>
+</ul>
+
+@{[ vskip "2ex" ]}
<table border="1" frame="border" rules="rows" class="jobs">
<caption>Fulltime Jobs</caption>
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 development</td></tr>
+ 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 />
@{[ vskip "1ex" ]}
<table border="1" frame="border" rules="rows" class="jobs">
-<caption>Contractor Jobs</caption>
-<tr><th>Date</th><th>Client</th>
+<caption>Freelance Commercial Projects</caption>
+<tr><th>Date</th>
<th>Description</th></tr>
-<tr><td>2002-2003</td><td class="com">- (freelance project)</td>
+<tr id="mms2"><td>2005 </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
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>
@{[ &{$reference}('ohgna(ng)trbvairfg.pm','Lubor Otta') ]}</tr>
<tr><td class="com">@{[ a_href('http://www.tencom.cz/','TENcom Trade') ]}</td>
@{[ &{$reference}('grfne(ng)grapbz.pm','Petr Tesar') ]}</tr>
-<tr><td class="com">@{[ a_href('http://www.japhila.cz/index_en.htm','Japhila') ]}</td>
- @{[ &{$reference}('wnavx(ng)wncuvyn.pbz','Bretislav Janik') ]}</tr>
HERE
if (lc($W->{"args"}{"referees"}) ne "referees") {
<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, SVGALib, NIS, Qt,...</td></tr>
+ 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, NFS v2/v3, PPP/LCP/IPCP,...</td></tr>