<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>depage.net</title><link href="https://depage.net/"/><link rel="self" href="https://depage.net/en/atom.xml"/><id>https://depage.net/?utm_campaign=atom-feed</id><updated>2025-09-05T16:46:04Z</updated><author><name>Frank Hellenkamp</name></author><rights>(c) 2025 Frank Hellenkamp</rights><icon>https://depage.net/lib/global/favicon.png</icon><logo>https://depage.net/lib/global/logo.png</logo>
<entry><link href="https://depage.net/en/blog/2020/05/physics.html?utm_campaign=atom-feed#entry-6098"/><id>https://depage.net/en/blog/2020/05/physics.html#entry-6098</id><updated>2020-05-01T00:00:00Z</updated><title>Slowly diving into Physics and Mathematics</title><summary>I was always interested in science and especially in physics for almost as long as I can remember. And I always used to read articles and a lot of books about it.</summary><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><time datetime="2020-05-01">01/05/2020</time><img src="https://depage.net/lib/252/6a8eddf09e0b08f80456c8369092976e4740a7ca4c83a308073083f6c150e5f1" width="4032" height="3024"/><h1>Slowly diving into Physics and Mathematics<br/></h1><p>I was always interested in science and especially in physics for almost as long as I can remember. And I always used to read articles and a lot of books about it.<br/></p><p><br/></p><p>But  I always strayed away from going into the mathematics of it. But that has changed since last autumn.<br/></p><p><br/></p><p>I started reading a lot of physics books, that not just describe things in terms of text descriptions but also in mathematical formulas.<br/></p><p>And I am slowly getting a <i>teeny-tiny</i> glimpse of the depth, the mathematical reasoning and the connection(s) between mathematics and our physical reality.<br/></p><p>It is only a very first small step – but I get a deep satisfaction from learning and thinking about it.<br/></p><p><br/></p><p>The interesting thing for me is, that the <b>impulse</b> for me to do it, is the same one, that motivates me to <a href="https://depage.net/en/services/design.html?utm_campaign=atom-feed" hreflang="en">design</a> or to <a href="https://depage.net/en/services/development.html?utm_campaign=atom-feed" hreflang="en">write code</a>:<br/></p><p><i>Aesthetics — The deep feeling of a  connection to beauty and (by all complexity) to simplicity.</i><br/></p><h1>Leonard Susskind and "The theoretical minimum" series<br/></h1><p>For starters, I am reading the "Theoretical Minimum" books series by Leonard Susskind.<br/></p><p>I don't remember wearing out books like this. It's not that I read everything once and be done with it — I read everything over and over again, working through it, getting a little bit of better understanding every time.<br/></p><p><br/></p><p>There are three books of the series (as of now):<br/></p><ul><li><a href="https://www.amazon.de/dp/0141976225" hreflang="en">Classical Mechanics</a><br/></li><li><a href="https://www.amazon.de/dp/0141977817" hreflang="en">Quantum Mechanics</a><br/></li><li><a href="https://www.amazon.de/dp/0141985011" hreflang="en">Special Relativity and Classical Field Theory</a><br/></li></ul><p><br/></p><p>These books are based on courses that Leonard Susskind gave in Stanford for "normal" people. You can find all these courses on Youtube for your own viewing pleasure. And there are a lot more and deeper courses than the books.<br/></p><p><br/></p><p>These are not easy by any means, but Leonard Susskind makes them very engaging, interesting, often funny and very human. In his own words: <i>He's trying to make it as simple as possible but not simpler.</i><br/></p><p><br/></p><p>And I appreciate the pragmatic way he tries to teach physics to us non-physicists.<br/></p><h1>Roger Penrose<br/></h1><p>The other books I am working through are by Roger Penrose. One especially:<br/></p><ul><li><a href="https://www.amazon.de/-/en/Road-Reality-Complete-Universe-Vintage/dp/0679776311/" hreflang="en">The Road to Reality</a><br/></li></ul><p><br/></p><p>He's a very deep thinker, a much <i>dryer</i> character than Susskind and has a much more mathematically formal way of presenting things. (He is also much more <i>english</i>.)<br/></p><p><br/></p><p>A lot he writes about is very much further down the road from what I am able to understand at the moment. But it's a very worthwhile challenge, trying to wrap your head around.<br/></p><p><br/></p><p>And what I also find interesting: He has a very geometrical thinking mind and illustrates a lot of mathematical ideas through illustrations.<br/></p><p><br/></p><p>I think his deep connection between visual thinking and mathematics is just beautiful!<br/></p><h1>Frank Wilczek, Physics and Beauty<br/></h1><p>A third book that fits into the category aesthetics and physics is <a href="https://www.amazon.de/gp/product/0143109367/" hreflang="en">A Beautiful Question: Finding Nature's Deep Design</a> by the Nobel laureate Frank Wilczek. I actually read it already in 2018 and this is not mathematical.<br/></p><p><br/></p><p>But it is about the connection between physics and beauty and maybe it will get you hooked too, to take a deeper look into what lies at the base of our universe.<br/></p><p><br/></p><p>Physics is amazing! ;-)<br/></p><h1>Additional reading recommendations<br/></h1><p>If you don't have the time to read books or watch Youtube lectures, but you are nonetheless interested in science:<br/></p><p><br/></p><p>I warmly recommend to read the <a href="https://www.quantamagazine.org" hreflang="en">quantamagazine</a>.<br/></p></div></content></entry>
<entry><link href="https://depage.net/en/blog/2020/02/psi-mobile-prototype-and-styleguide.html?utm_campaign=atom-feed#entry-13516"/><id>https://depage.net/en/blog/2020/02/psi-mobile-prototype-and-styleguide.html#entry-13516</id><updated>2020-02-10T00:00:00Z</updated><title>PSI Mobile Prototype and Styleguide</title><summary>For some years we consult PSI together with Hesse Design regarding their styles for graphical user interfaces. The classical PSI applications are based on Java, that have a PSI specific styling.</summary><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><h1>Angular Prototype<br/></h1><p>For some years we consult <a href="https://www.psi.de" hreflang="en">PSI</a> together with <a href="http://www.hesse-design.com" hreflang="en">Hesse Design</a> regarding their styles for graphical user interfaces. The classical PSI applications are based on Java, that have a PSI specific styling.<br/></p><p>But in the future many more of the application will move to mobile user clients and to webbrowsers, so we had to update the styleguide for the touch and mobile use cases.<br/></p><p>To help with the design we developed a <a href="https://dev.depage.net/psi/psi-mobile-prototype/" hreflang="en">new mobile prototype</a> (based on <a href="https://angular.io/" hreflang="en">Angular</a>), that works for mobile applications and is also accessible on desktop and tablet user clients, that is optimized for touch:<br/></p><img src="https://depage.net/lib/278/1bc5d46f6ba8a2ea481838232d9c17ef9c36ede73c8f23d3263c462858f26c88" width="2048" height="2048"/><h1>The PSI Angular Prototype<br/></h1><h1>Light and Dark Themes<br/></h1><p>Like the desktop applications, there is a light and a dark theme that are optimized for their specific use cases.<br/></p><p>With the optimization for touch, we also modernized the styles of the components and their usability and added new components for specific use cases.<br/></p><p><br/></p><p>To simplify development and style changes all the style sources for JavaFX, for HTML and for the Angular Prototype got synchronized into one SASS source tree.<br/></p><img src="https://depage.net/lib/373/fc2bf8c40672aa32dd925eb37e0a24914cafc8e0293625424544ae6490336dba" width="800" height="1388"/><p>An example for form components in the light theme</p><img src="https://depage.net/lib/310/41c0c5804c959669a5dd29b6a250f718e4892458169e3a7e2a1a19958f99853c" width="800" height="1388"/><p>An example for form components in the dark theme</p><time datetime="2020-02-10">10/02/2020</time><h1>Tables and tabular data<br/></h1><p>A second important optimization of this project is how to display tables and tabular data for a very varied number of use cases.<br/></p><p><br/></p><p>There are many different combinations possible:<br/></p><ul><li>The <i>Selection Column</i> helps you to select specific data records to apply actions to them (see screenshot).<br/></li><li>The <i>Drag&amp;Drop Column</i> allows you to sort data records by drag and drop.<br/></li><li>The <i>Details Column</i> helps you to see details of a data record without leaving the table.<br/></li><li>The <i>Action Column</i> lets you apply a specific action to a data record.<br/></li><li>The <i>Detail Summary</i> helps you to show data records which would not fit inside a horizontal table on small devices (see screenshot). Tables switch automatically between detail summary and table view based on screen size.<br/></li></ul><p><br/></p><img src="https://depage.net/lib/379/7d2778f15e54c34b1b310d25015773c659ee6d627165db15ff0609249dd6b5b7" width="800" height="1388"/><img src="https://depage.net/lib/316/95611db54b0911bdbaf807640338efe393a2a61529cec5e695d361ad5e4765e9" width="800" height="1388"/><h1>Scrollable List Component<br/></h1><p>The <a href="https://dev.depage.net/psi/psi-mobile-prototype/component-test/scrollable-list" hreflang="en">Scrollable List</a> is a custom component that lets you easily scan an big number of data records  by touch and to show their details, without the need to open them manually.<br/></p><p>The styling for this component is a list of cards, that move over one another and can be used with a flip of a finger.<br/></p><img src="https://depage.net/lib/412/9922458335d877f5dcbfc2b9219ffee2a1abb89c674477804438693033b6ad3a" width="800" height="1388"/><img src="https://depage.net/lib/349/6584fc5c1db73678a046e92f93f9bb3c94237efebc851b3c2c9145f182cde4b9" width="800" height="1388"/><img src="https://depage.net/lib/283/910bbdcabba2b93710d6c99e89e2756cb19ba7e609fbf539fe017cebb21aac7b" width="840" height="840"/><h1>PSI Mobile Prototype and Styleguide<br/></h1></div></content></entry>
<entry><link href="https://depage.net/en/blog/2019/04/alony-relaunch.html?utm_campaign=atom-feed#entry-13710"/><id>https://depage.net/en/blog/2019/04/alony-relaunch.html#entry-13710</id><updated>2019-04-20T00:00:00Z</updated><title>Alony Relaunch</title><summary>It was a long time coming and we relaunched the Website of singer Efrat Alony:</summary><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><h1>Finally!<br/></h1><p>It was a long time coming and we relaunched the Website of singer Efrat Alony:<br/></p><time datetime="2019-04-20">20/04/2019</time><img src="https://depage.net/lib/760/6bce55b92a54633bb51e7bb32824e8265a257b589ceaa6ce108d8c5a935a4f65" width="2048" height="2048"/><h1>The Main Website with a Blog<br/></h1><p>Part of the concept was to have specific mini pages per project.<br/></p><p>Especially since Efrat Alony's musical projects  sound very different from one another, which seems to lead to cognitive dissonances for some listeners.<br/></p><p><br/></p><p>She always reinvents herself!<br/></p><p>And so will her websites... ;-)<br/></p><img src="https://depage.net/lib/771/e499856a58f50efe32d7843b92b7a41364e274236830613f36398e5d3144d3f8" width="840" height="840"/><h1>Händel Fast Forward / Project page for Efrat Alony that brings Händel into the 21st century<br/></h1><img src="https://depage.net/lib/769/c8bdae9205aff76e9eb99494ea0e7e545946d88169f2923b1047e6a9a9911012" width="840" height="840"/><h1>Project page for the duo of Efrat Alony with Suanne Paul on the cello</h1><img src="https://depage.net/lib/764/85978707a5a3aa3bc42e85291b266be8ed1170c4ba4eae1dfe597f5011e941e8" width="840" height="840"/><h1>The Electro trio of Efrat Alony, Oliver Leicht and Frank Wingold<br/></h1><img src="https://depage.net/lib/766/79af62dd13b262f17894d92e975c90ac045cdc5298efa4a958c0750e3f3cfb30" width="840" height="840"/><h1>Efrat Alony's "pop" album: Dismantling Dreams<br/></h1><img src="https://depage.net/lib/759/9a81404304f479936b346df8f2fd8405fa6d71d34c14be92bc0d49f6fa987958" width="840" height="840"/><h1>Alony Relaunch<br/></h1></div></content></entry>
<entry><link href="https://depage.net/en/blog/2018/11/depage-2.0-launched.html?utm_campaign=atom-feed#entry-13023"/><id>https://depage.net/en/blog/2018/11/depage-2.0-launched.html#entry-13023</id><updated>2018-11-03T00:00:00Z</updated><title>depage-cms v2.0 released</title><summary>We are proud to present the next version of depage-cms.</summary><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><h1>The new version is here!<br/></h1><p>We are proud to present the next version of <a href="https://depage.net/en/services/cms.html?utm_campaign=atom-feed" hreflang="en">depage-cms</a>.<br/></p><time datetime="2018-11-03">03/11/2018</time><img src="https://depage.net/lib/633/bb63d63c6e63f97fd454c06c9409d7b8c74f1d54b57feab3d28f2e721b2dfaa3" width="2400" height="1600"/><p/><p/><h1>Some of the new Features<br/></h1><ul><li>Enhanced <a href="https://docs.depage.net/depage-cms-manual/en/get-started.html#dashboard" hreflang="en">Dashboard</a><br/></li><li>Complete revamp of the <a href="https://docs.depage.net/depage-cms-manual/en/editing-pages.html" hreflang="en">Edit Interface</a><br/></li><li>Completely overhauled <a href="https://docs.depage.net/depage-cms-manual/en/editing-pages.html#text-editor" hreflang="en">text editor</a><br/></li><li>New <a href="https://docs.depage.net/depage-cms-manual/en/editing-pages.html#project-shortcuts" hreflang="en">Project shortcuts</a> to quickly add new news- or blog posts<br/></li><li>Revamped <a href="https://docs.depage.net/depage-cms-manual/en/file-library.html" hreflang="en">file library</a><br/></li><li>New editor for <a href="https://docs.depage.net/depage-cms-manual/en/colors.html" hreflang="en">color schemes</a><br/></li><li>Enhanced <a href="https://docs.depage.net/depage-cms-manual/en/editing-pages.html#page-preview" hreflang="en">preview</a> to automatically show currently edited language<br/></li><li>Enhanced preview to <a href="https://docs.depage.net/depage-cms-manual/en/editing-pages.html#page-preview" hreflang="en">highlight</a> the currently selected document property<br/></li></ul><p><br/></p><p>And last but not least:<br/></p><p>There is a new online <a href="https://docs.depage.net/depage-cms-manual/de/" hreflang="en">user manual.</a><br/></p><p><br/></p><img src="https://depage.net/lib/642/fe60193fcf6c21a02cc90023516f64210a57668672b2e825b3446554356cb2d1" width="840" height="840"/><h1>depage-cms v2.0 released<br/></h1></div></content></entry>
<entry><link href="https://depage.net/en/blog/2018/06/scriptdock-sets-sail.html?utm_campaign=atom-feed#entry-6190"/><id>https://depage.net/en/blog/2018/06/scriptdock-sets-sail.html#entry-6190</id><updated>2018-06-01T00:00:00Z</updated><title>ScriptDock sets Sail</title><summary>The dig­i­tal age is tak­ing nar­ra­tive cul­ture to the next level. 
Script­Dock of­fers screen­writ­ers an chance to col­lec­tive tackle
com­mon ob­sta­cles. </summary><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><time datetime="2018-06-01">01/06/2018</time><img src="https://depage.net/lib/244/fa15de8cbdd8c08b0765870691e2064b112262c5282a3ab90f2a45c9b90f9b6f" width="840" height="840"/><h1>ScriptDock sets Sail<br/></h1><h1>ScriptDock is a social network for screenwriters.<br/></h1><p>The dig­i­tal age is tak­ing nar­ra­tive cul­ture to the next level. 
Script­Dock of­fers screen­writ­ers an chance to col­lec­tive tackle
com­mon ob­sta­cles. <br/></p><p><br/></p><p>In or­der to tap into the di­ver­sity of ideas and well de­vel­oped
scripts, script­Dock is ded­i­cated to con­nect­ing writ­ers and
in­dus­try mem­bers. <br/></p><p><br/></p><p>ScriptDock offers a haven for screenwriters to present themselves, collaborate, network, and to market their work.<br/></p><img src="https://depage.net/lib/246/38de090f2ff8787df69a1de5301b62df2a94162f82d5e4015e5b01ba1a253345" width="2048" height="2048"/><h1>The social network for screenwriters<br/></h1><p>Paula and me founded ScriptDock from two different perspectives with with a common goal.<br/></p><p>Paula as a screenwriter and myself as a designer, developer and film lover.<br/></p><p><br/></p><p>The Question:<br/></p><p>How can we use the in­ter­net for writ­ers to con­nect with each 
other, as well as to pre­sent scripts in good shape to in­dus­try
pro­fes­sion­als? <br/></p><p><br/></p><p>We would like to of­fer ScriptDock as a plat­tform ded­i­cated to this pur­pose. <br/></p><img src="https://depage.net/lib/240/b19e394ef75142b57a485609b5ad51dd73727fbc65c75204770d9d1edea978bb" width="1438" height="576"/><p>Paula Redlefsen and Frank Hellenkamp</p><p/><p>We are happy to welcome you aboard!<br/></p></div></content></entry>
<entry><link href="https://depage.net/en/blog/2017/05/best-architects-award-relaunch.html?utm_campaign=atom-feed#entry-2345"/><id>https://depage.net/en/blog/2017/05/best-architects-award-relaunch.html#entry-2345</id><updated>2017-05-15T00:00:00Z</updated><title>best architects award relaunch</title><summary>So it needs a website with a design that is easy, open and does not get in the way of the works that get presented.</summary><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><h1>The best architects award is one of the most prestigious distinctions for architecture<br/></h1><p>So it needs a website with a design that is easy, open and does not get in the way of the works that get presented.<br/></p><p><br/></p><p>Architecture front and center!<br/></p><time datetime="2017-05-15">15/05/2017</time><img src="https://depage.net/lib/670/96dea04969928ba7186ea0baf42d0122ba681d5c862294e6a423a1c23d8dcc60" width="2400" height="2400"/><h1>the best architects award is one of the most prestigious distinctions for architecture<br/></h1><h1>Submission process<br/></h1><p>Part of the implementation is also a new submission process, where the architects can submit their works completely online including images and charts that will be screened by the jury.<br/></p><p><br/></p><p>And the best of the best will be presented online and in these beautiful books that get designed and produced by <a href="https://zinnobergruen.de" hreflang="en">zinnobergruen</a>.<br/></p><img src="https://depage.net/lib/671/33839df7d2bf75c3c29c8928f7fee9d8c19e0ab318f225e5d07a15478ae53491" width="840" height="840"/><h1>best architects award relaunch<br/></h1></div></content></entry>
<entry><link href="https://depage.net/en/blog/2016/12/dsv-europa.html?utm_campaign=atom-feed#entry-13564"/><id>https://depage.net/en/blog/2016/12/dsv-europa.html#entry-13564</id><updated>2016-12-12T00:00:00Z</updated><title>Launching dsv-europa.de</title><summary>The umbrella asso­ci­a­tions of the Ger­man Social Insur­ance (DSV) 
have come together because of their com­mon Euro­pean pol­icy inter­ests
 to form the “Ger­man Social Insur­ance – Work­ing Group Europe e.V.”</summary><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>The umbrella asso­ci­a­tions of the Ger­man Social Insur­ance (DSV) 
have come together because of their com­mon Euro­pean pol­icy inter­ests
 to form the “Ger­man Social Insur­ance – Work­ing Group Europe e.V.”<br/></p><p><br/></p><p>We had the honor to implement their website and to service and administer it with our content management system.<br/></p><img src="https://depage.net/lib/559/d0d811d3ac1ae60fc696604c9c4641a3dd809def0eb4c9a9b636c8f761154655" width="2048" height="2048"/><h1>Website for umbrella asso­ci­a­tions of the Ger­man Social Insur­ance (DSV) 
that have come together because of their com­mon Euro­pean pol­icy inter­ests<br/></h1><h1>Some of special features<br/></h1><ul><li>Custom Newsletter generator based on articles posted<br/></li><li>Integration of the magazine "Themenletter ed*"<br/></li><li>Custom Twitter integration <br/></li><li>New full text search<br/></li><li>Privacy conscious data handling<br/></li></ul><p><br/></p><time datetime="2016-12-12">12/12/2016</time><img src="https://depage.net/lib/557/d75e1aacbe408808847c41b801ccdbe343e5d4ee7e27b7d548a5976e88b2e288" width="840" height="840"/><h1>Launching dsv-europa.de<br/></h1></div></content></entry>
<entry><link href="https://depage.net/en/blog/2016/11/using-and-enhancing-the-same-development-environment-for-years.html?utm_campaign=atom-feed#entry-2156"/><id>https://depage.net/en/blog/2016/11/using-and-enhancing-the-same-development-environment-for-years.html#entry-2156</id><updated>2016-11-05T00:00:00Z</updated><title>Using and enhancing (almost) the same development environment for years</title><summary>I was surprised when I started my old PowerBook G4 (still on the Mac OS X Tiger) and realised for how long I use (not the same) but a very similar setup for my development environment:</summary><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><time datetime="2016-11-05">05/11/2016</time><img src="https://depage.net/lib/609/2cf3bfb2c92db194276ac5669bcfd7c46bd3a21296574e2a36716b8542618df9" width="840" height="840"/><h1>Using and enhancing (almost) the same development environment for years<br/></h1><h1>VIM for winners<br/></h1><p>I was surprised when I started my old PowerBook G4 (still on the Mac OS X Tiger) and realised for how long I use (not the same) but a very similar setup for my development environment:<br/></p><p><br/></p><ul><li>Mac OS X (now MacOS) plus Linux for Hosting and Services<br/></li><li>QuickSilver (now OpenSource)<br/></li><li>tmux (and before screen) and of course<br/></li><li>vim<br/></li></ul><p>I basically still use  OS X with a similar file structure (I always transferred all data to new machines).<br/></p><p>I have a Virtual Machine on Gentoo Linux, which is an very old install from around 2004, which first run on bare metal and which I upgraded perpetually throughout the years. Now it is running in VMware Fusion under A MacOS host and an Mac Mini.<br/></p><p>And I am also running a Debian Virtual Machine, to simulate my usual hosting environment, which runs exactly the same software.<br/></p><p><br/></p><p>And when I startup the old Mac OS X on the PowerBook G4, most of my custom Keyboard shortcuts work the same way, I use them daily:<br/></p><ul><li>Ctrl-Alt-C -&gt; open Terminal App<br/></li><li>Ctrl-Alt-V -&gt; open MacVim<br/></li><li>Ctrl-Alt-F -&gt; open the development Web Browser<br/></li><li>Ctrl-Alt-S -&gt; open the normal Web Browser<br/></li><li>Ctrl-Alt-M -&gt; open the Mail Program (Apple Mail or better Thunderbird)<br/></li><li>Ctrl-Alt-N -&gt; Write a new Email<br/></li><li>Ctrl-Alt-I -&gt; open Calendar<br/></li><li>Ctrl-Alt-Y -&gt; open iTunes<br/></li><li>Ctrl-Alt-X -&gt; open Finder with the Home directory<br/></li></ul><p><br/></p><ul><li>Command-Alt-1 - Command-Alt-9 -&gt; Switch between workspaces<br/></li></ul><p><br/></p><p>I always used to hide the dock, and now (since it is possible on Mac OS X 10.11) I also hide the menu bar, because I rarely use it.<br/></p><p><br/></p><p>This is a setup which makes me very productive, the workflow very predictible (because I can depend on muscle memory) and very very fast.<br/></p><p><br/></p><p>I also use LiveReload for years.<br/></p><p><br/></p><p>There are also always new things (various small enhancements of my vim workflow) or some big changes like using docker for testing and hosting all online services.<br/></p><h1>We'll see what the next 15 years bring<br/></h1><p>Will I still be using vim (which is older than I am) - probably yes.<br/></p><p>And will still be using Linux and Docker containers? Linux - I am sure, Docker - who knows, but I am sure one or the other container solution will stay with us for a long time.<br/></p></div></content></entry>
<entry><link href="https://depage.net/en/blog/2013/10/depage-forms-html5-form-validation-part-2.html?utm_campaign=atom-feed#entry-36950"/><id>https://depage.net/en/blog/2013/10/depage-forms-html5-form-validation-part-2.html#entry-36950</id><updated>2013-10-08T00:00:00Z</updated><title>depage-forms: validation of html5 forms (Part II)</title><summary>Thanks to the new HTML Standard and the WHATWG Group it is easier than before to have Browsers show standard errors when a user does not provide valid data inside an input element. Unfortunately this only works in newer Browsers, and not in older ones (e.g. Internet Explorer 8).</summary><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><time datetime="2013-10-08">08/10/2013</time><img src="https://depage.net/lib/601/20db019e423734a7eb8f21b3f005ece77c91e76459ef5e0af2030185beba54b9" width="96" height="96"/><h1>depage-forms: validation of html5 forms (Part II)<br/></h1><h1>Validation of HTML form data</h1><p>Thanks to the new HTML Standard and the <a href="http://whatwg.org/" hreflang="en">WHATWG Group</a> it is easier than before to have Browsers show standard errors when a user does not provide valid data inside an input element. Unfortunately this only works in newer Browsers, and not in older ones (e.g. Internet Explorer 8).</p><p/><p>To make it easier for developers, depage-forms provides an way easy way to add validation to forms that works in all three different places at the same time:</p><p>on the server</p><p>in the browser, based on the new html standard</p><p>in the browser, based on javascript</p><h1>This is a part of the ongoing series about depage-forms</h1><p><a href="https://depage.net/en/blog/2011/07/depage-forms-html5-form-in-php-made-easy-part-1.html?utm_campaign=atom-feed" hreflang="en">depage-forms: html5 forms made easy (Part I)</a></p><p><a href="https://depage.net/en/blog/2013/10/depage-forms-html5-form-validation-part-2.html?utm_campaign=atom-feed" hreflang="en">depage-forms: validation of html5 forms (Part II)</a></p><p>depage-forms: subdividing forms into steps and step-navigation (Part III) / Coming soon</p><p>depage-forms: subclassing htmlform (Part IV) / Coming soon</p><h1>Standard Input Elements</h1><img src="https://depage.net/lib/602/5ee0fa96b5bed2b98e9d347035720528a85a63e2e3e8e668f5e17b8b720d40fd" width="96" height="96"/><p><a href="http://docs.depage.net/depage-forms/" hreflang="en">Documentation</a><br/></p><img src="https://depage.net/lib/885/ace2d5400a454796d7dc892bc3f9630d019a3c1f180e7ee7215b4b4bc1a56b12" width="96" height="96"/><p><a href="https://github.com/depage/depage-forms" hreflang="en">Fork us/Source-Code</a><br/></p><p>There are various standard input elements that are part of the HTML standard and will be validated by the browser. E.g.  <i>input[type=email] </i>and <i>input[type=url]</i>. Other input elements are presented with a different user interface or as native controls like <i>input[type=number]</i>, <i>input[type=range]</i> or <i>input[type=date]</i>.</p><p/><p>depage-forms uses these inputs but extends and enhances the behaviour in various places.</p><h1>Required Fields</h1><p>The most simple case for validation happens when an input is <i>required</i>:</p><pre><code>/*
 * The most simple validation: 
 * Setting 'required' so that a user has to input *something*
 */
$form-&gt;addText('username', array(
    'label' =&gt; 'User name', 
    'required' =&gt; true,
));
$form-&gt;addBoolean('accept', array(
    'label' =&gt; 'Accept terms and conditions.', 
    'required' =&gt; true,
));
</code></pre><h1>Validation based on type</h1><p>depage-forms also validates based in the input-type. And you can provide an optional error-message that will be displayed, in case the user does not provide valid data.</p><pre><code>/*
 * Validation based on type:
 * The user has to provide a valid email/url for these
 * fields. If the reuqired flag is not set, the user
 * can leave the field empty, but when he fills in 
 * something, it has to be a valid email/url.
 */
$form-&gt;addEmail('email', array(
    'label' =&gt; 'Email address',
    'required' =&gt; true,
    'errorMessage' =&gt; "Please enter a valid Email",
));
$form-&gt;addUrl('website', array(
    'label' =&gt; 'Website',
    'required' =&gt; true,
    'errorMessage' =&gt; "Please enter a valid Website address",
));
</code></pre><h1>Validating number with min/max values</h1><p>For numbers there is the special case of minimum and maximum numbers:</p><pre><code>/*
 * Number input element:
 * By default, min, max, step values aren't set 
 * (Depend on browser, step is usually 1). 
 * Returns float value.
 */
$form-&gt;addNumber('Number', array(
    'min'   =&gt; 0,
    'max'   =&gt; 10,
    'step'  =&gt; 2,
));

/*
 * Range input element:
 * Same as number input element but with a slider interface.
 */
$form-&gt;addRange('Range', array(
    'min'   =&gt; 0,
    'max'   =&gt; 10,
));
</code></pre><h1>Validation based on regular expressions</h1><p>The next way to validate values are regular expressions. These inputs will be validated on the server and also in newer browsers that understand the <i>pattern</i>-attribute.</p><pre><code>/*
 * The validator pattern has to match the complete string (HTML5 spec). Here
 * are some examples:
 */
$form-&gt;addText('singleLetter', array(
    'label' =&gt; 'Single letter', 
    'required' =&gt; true, 
    'validator' =&gt; '/[a-zA-Z]/',
));
$form-&gt;addText('lettersAndNumbers', array(
    'label' =&gt;'One ore more letters or numbers', 
    'required' =&gt; true,
    'validator' =&gt; '/[a-zA-Z0-9]+/',
));
</code></pre><h1>Validation with closures</h1><p>Instead of validation with a regular expression, you may also provide a closure function to validate the input value. The closure function will only be validated on the server, not on the client.</p><pre><code>/*
 * adds a closure validator:
 * attach a function to the input.
 * In this case you must enter "2" oder a string
 * containing "yes" to pass validation.
 */
$form-&gt;addText('closure', array(
    'label' =&gt; 'closure validated', 
    'required' =&gt; true,
    'validator' =&gt; function($value) {
        if ($value == 2) {
            return true;
        } else {
            return strpos($value, "yes") !== false;
        }
    },
));
</code></pre><h1>Difference to the HTML standard</h1><p>There is one important case where depage-forms behaves differently from simple html-inputs: Checkboxes.</p><p/><p>In HTML5 if a checkbox is required, <b>every</b> required checkbox in a set has to be checked to validate. In depage-form the boolean field works the same way. If it is required, you have to check it.</p><p/><p>But if you use the <i>input-multiple</i> with the checkbox skin, the user only has to check one <b>checkbox</b> of a set to pass validation (analogous to the radio-buttons/<i>input-single</i>).</p><h1>Javascript Validation</h1><p>For Browsers that don't support the direct validation of input fields or to display the error-messages directly, we can activate the validation with javascript. We have to include jQuery, the jquery-tools and the effects.js into the html-code.</p><p/><p>Here a full example:</p><pre><code>&lt;?php
/*
 * Load the library...
 */
require_once('../../htmlform.php');

/*
 * Create the example form 'jsExample'
 */
$form = new depage\htmlform\htmlform('jsExample');

/*
 * Add the various input elements to the form by calling the '"add" + element
 * type' method.
 */
$form-&gt;addText('username', array('label' =&gt; 'User name', 'required' =&gt; true));
$form-&gt;addEmail('email', array('label' =&gt; 'Email address'));
$form-&gt;addBoolean('accept', array('label' =&gt; 'Accept terms and conditions.', 'required' =&gt; true));

/*
 * The validator pattern has to match the complete string (HTML5 spec). Here
 * are some examples:
 */
$form-&gt;addText('singleLetter', array('label' =&gt; 'Single letter', 'required' =&gt; true, 'validator' =&gt; '/[a-zA-Z]/'));
$form-&gt;addText('letters', array('label' =&gt;'One ore more letters', 'required' =&gt; true, 'validator' =&gt; '/[a-zA-Z]+/'));

/*
 * The process method is essential to the functionality of the form. It serves
 * various purposes:
 *  - it validates submitted data if there is any
 *  - it redirects to the success page if all the data is valid
 *  - it stores the data in the session and redirects to the form to circumvent
 *    the form resubmission problem
 */
$form-&gt;process();

/*
 * Finally, if the form is valid, dump the data (for demonstration). If it's
 * not valid (or if it hasn't been submitted yet) display the form.
 */
if ($form-&gt;validate()) {
    /*
     * Success, do something useful with the data and clear the session.
     * The getValues method returns an array of the form element values.
     */
    echo('&lt;a href=""&gt;back&lt;/a&gt;');
    echo('&lt;pre&gt;');
    var_dump($form-&gt;getValues());
    echo('&lt;/pre&gt;');

    $form-&gt;clearSession();
} else {
    /*
     * Load the necessary scripts. jQuery, jQuery Tools and the depage-forms
     * customization.
     */
?&gt;
&lt;!DOCTYPE html&gt;
&lt;head&gt;
    &lt;link rel="stylesheet" type="text/css" href="../../lib/css/depage-forms.css"&gt;
    &lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"&gt;&lt;/script&gt;
    &lt;script src="../../lib/js/jquery.tools.min.js"&gt;&lt;/script&gt;
    &lt;script src="../../lib/js/effect.min.js"&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;?php
    /*
     * Display the form.
     */
    echo ($form);
?&gt;
&lt;/body&gt;
&lt;?php
}
</code></pre><p>The validation is executed on blur by default, which means everytime you leave a specific input element. The user may only submit the form after entering valid data for all fields.</p><p/><p>Here's the live-example: </p><pre><code>&lt;iframe class="example" src="https://docs.depage.net/depage-forms/Docs/examples/js-validation.php" seamless="seamless" style="height: 45em;"&gt;&lt;/iframe&gt;
</code></pre><p><a href="http://docs.depage.net/depage-forms/documentation/html/js-validation_8php-example.html" hreflang="en">http://docs.depage.net/depage-forms/documentation/html/js-validation_8php-example.html</a></p><h1>More complex validation with dependencies</h1><p>More complex validations with dependencies between different input fiels are possible, but should be done with subclassing the htmlform. These will be a topic for another post.</p><h1>Next Steps</h1><p>In the next posts about depage-forms we will introduce some extended features like: </p><p>subdividing forms into steps and step-navigation</p><p>subclassing htmlform</p></div></content></entry>
<entry><link href="https://depage.net/en/blog/2013/09/getting-things-done-without-getting-the-word-out.html?utm_campaign=atom-feed#entry-36409"/><id>https://depage.net/en/blog/2013/09/getting-things-done-without-getting-the-word-out.html#entry-36409</id><updated>2013-09-12T00:00:00Z</updated><title>Getting things done without getting the word out</title><summary>It has been a very long time since I managed to publish an article here. And it's not because there wouldn't be anything to talk about. But we are working a lot, so there is no time left to show and tell. Why? Well, because there is always a next project waiting to be finished. </summary><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><time datetime="2013-09-12">12/09/2013</time><img src="https://depage.net/lib/888/e17e1a4e210186adb53735220e8779d6e896bfcb9ad51922d73ce81f14a93baa" width="96" height="96"/><h1>Getting things done without getting the word out<br/></h1><h1>Work</h1><p>It has been a very long time since I managed to publish an article here. And it's not because there wouldn't be anything to talk about. But we are working a lot, so there is no time left to show and tell. Why? Well, because there is always a next project waiting to be finished. </p><p/><p>And I am sure, we are not the only ones having this problem: A lot of freelance designers and small agencies I know don't have the time or resources, to publish what they are doing regulary. Some people just shout on Twitter or on Facebook instead, but I have to admit: I like <b>not to</b> brag. But I think that some of the things we do are worth seeing nontheless.</p><p/><p>I already wanted to write about this... more than year ago.</p><p>But this has to change – Starting right now!</p><h1>So, what were we working on?</h1><p>So first, there is Screen-Pitch:</p><img src="https://depage.net/lib/118/b4b6a59e8947c08f070459221bbec03b01385e3976b6db9c21dfce611a27212e" width="800" height="100"/><p>Screen-Pitch is an online platform which enables screen-writers to present their film ideas to producers in the form of video pitches. Originally founded by <a href="http://screen-pitch.com/de/profiles/Linus%20Foerster/view/" hreflang="en">Linus Foerster</a>, Ben and I implemented <a href="http://screen-pitch.com" hreflang="en">screen-pitch.com</a> based on depage-cms.</p><p/><p>Here you can watch <a href="https://screen-pitch.com/en/screenpitch/?autoplay=true#content" hreflang="en">the Pitch for Screen Pitch (german)</a>.</p><h1>What else?</h1><p>A lot of websites.</p><p/><p>E.g. the third installment of <a href="http://www.pop-up-my-bathroom.de" hreflang="en">pop-up-my-bathroom</a>. This time in purple with a new responsive layout:</p><img src="https://depage.net/lib/86/cef84dfe91c89185f2b940eb07d2321ac4393fdd4bff01df48ced4fb2a7bddd0" width="800" height="100"/><p/><p>Or a website for the <a href="http://geschichte.spd-bw.de" hreflang="en">SPD Baden-Württemberg for their 150th birthday</a> together with <a href="http://www.ifk-berlin.org/" hreflang="en">IFK Berlin</a>. For this we designed a tablet optimized timeline, where you can navigate from one year to the next by swiping through time.</p><img src="https://depage.net/lib/121/595a85c42f9f407c8411cd51962a3fd94a8b1c18f7b92da5c10d14da38c40b6a" width="800" height="100"/><h1>New Booklet</h1><p>I also designed a Booklet for the new CD »A Kit for Mending Thoughts« for <a href="http://www.alony.de" hreflang="en">Efrat Alony</a>. This was a lot of fun, building small puppets out of paper and telling little stories with it. Later I will write more about the details.</p><img src="https://depage.net/lib/757/ba4629f23b41fba43a9a8f95d8d07880cb28be1ac46b672aaab0a7a3aede4f7e" width="1197" height="805"/><p>Your can Listen to some of the songs at the <a href="http://www.alony.de/de/media/albums/efrat-alony.html" hreflang="en">alony website</a>. But better: <a href="https://itunes.apple.com/de/album/a-kit-for-mending-thoughts/id574968467?ign-mpt=uo%3D4" hreflang="en">Buy the album...</a> ;-)</p><h1>Opensource</h1><p>While working on other things, we managed to implement some general stuff, that is already opensource or will be once it's documented, including a lot of jQuery plugins:</p><p>depage-magaziner, a plugin for a touch-based website navigation</p><p>depage-player, a video html5/flash video player that powers screen-pitch.com</p><p>depage-shy-dialogue, a unobtrusive dialog to include in websites</p><p>depage-growl, a notification library to use native notifications where available with a nice html-fallback</p><h1>And last but not least:</h1><p>I also was teaching at the <a href="http://www.klassehesse.com/de/doing/workshops/frank-hellenkamp.html" hreflang="en">hfg Offenbach</a> in February and May (a workshop about tablet magazines and another one about responsive design).</p><p>And tomorrow I will go to the <a href="http://2013.cssconf.eu/" hreflang="en">CSSConf.eu</a>, hopefully meeting a lot of good people.</p><p/><p><b>Stay tuned!</b></p></div></content></entry>
<entry><link href="https://depage.net/en/blog/2011/09/ideenkonserve.html?utm_campaign=atom-feed#entry-35943"/><id>https://depage.net/en/blog/2011/09/ideenkonserve.html#entry-35943</id><updated>2011-08-31T00:00:00Z</updated><title>The Ideas Preserver</title><summary>Zinnobergruen designed the excellent notebook "Ideas Preserver" for Chromolux. You can order it now on ideenkonserve.de and its free of charge!</summary><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><time datetime="2011-08-31">31/08/2011</time><img src="https://depage.net/lib/508/7f7c88f306aac0b784e7fe8ca0670f323612afe5ad85872d97a8cd6d7df439a3" width="96" height="96"/><h1>The Ideas Preserver<br/></h1><h1>How to save your ideas from getting lost.</h1><p><a href="http://www.zinnobergruen.de" hreflang="en">Zinnobergruen</a> designed the excellent notebook "Ideas Preserver" for <a href="http://www.chromolux.de/" hreflang="en">Chromolux</a>. You can order it now on <a href="http://ideenkonserve.de/" hreflang="en">ideenkonserve.de</a> and its free of charge!</p><p>We implemented the website and its powered by the upcoming version of <a href="http://www.depagecms.net" hreflang="en">depage-cms</a> and the new <a href="https://depage.net/en/blog/2011/07/depage-forms-html5-form-in-php-made-easy-part-1.html?utm_campaign=atom-feed" hreflang="en">depage-forms</a>.</p><p/><p>There are six wunderful categories for your ideas:</p><p>Revolutionary Ideas</p><p>Profitable Ideas</p><p>Epic Ideas</p><p>Green Ideas</p><p>Enlightening Ideas</p><p>Little Ideas</p><img src="https://depage.net/lib/493/ac0fab4bc402de20aa886822298ed2702b685fbd8a1f5dfa6612d35a994e09eb" width="610" height="450"/><p>The Idea Preserver</p><img src="https://depage.net/lib/494/a72268645eec3fea760e5f00fb3d5a6f51679174322df0a9c6fcd6f2bc3c23a7" width="610" height="450"/><p>Revolutionary Ideas</p><img src="https://depage.net/lib/495/74aa3cd64a3abb8c7d0d5bcc3988a4399f91c7af3566629311efd7f919f2e517" width="610" height="450"/><p>Profitable Ideas</p><img src="https://depage.net/lib/496/6e559ef9b56d03311079c854ce9b50e18aad3d625cb717d11f92a17c6cd807cf" width="610" height="450"/><p>Epic Ideas</p><img src="https://depage.net/lib/497/f6317d6f0eb1004a508a45deb73735bc685779b6cfb604e75ecb66c4ec09fa95" width="610" height="450"/><p>Green Ideas</p><img src="https://depage.net/lib/498/908516465f394a7d40cc8bee08cc507503e0062c251ac43ab2a1e474d0064ec6" width="610" height="450"/><p>Enlightening Ideas</p><img src="https://depage.net/lib/499/6f91a12be50e755e704282748629dfc4a327d64aad053631c0bf671018154375" width="610" height="450"/><p>Little Ideas</p><p>Soon there will be also an iPhone-App of the Ideas Preserver, which we develop. </p><p>You want to know when the app will be available?</p><p><a href="http://ideenkonserve.de/iphone-app/" hreflang="en"><b>Register here!</b></a></p></div></content></entry>
<entry><link href="https://depage.net/en/blog/2011/07/depage-forms-html5-form-in-php-made-easy-part-1.html?utm_campaign=atom-feed#entry-34673"/><id>https://depage.net/en/blog/2011/07/depage-forms-html5-form-in-php-made-easy-part-1.html#entry-34673</id><updated>2011-07-11T00:00:00Z</updated><title>depage-forms: html5 forms made easy (Part I)</title><summary>HTML-Forms are simple to write – but to do it in a good way and to make them comfortable to use is not an easy task.</summary><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><time datetime="2011-07-11">11/07/2011</time><img src="https://depage.net/lib/601/20db019e423734a7eb8f21b3f005ece77c91e76459ef5e0af2030185beba54b9" width="96" height="96"/><h1>depage-forms: html5 forms made easy (Part I)</h1><h1>HTML forms: Easy and difficult at the same time</h1><p>HTML-Forms are simple to write – but to do it in a good way and to make them comfortable to use is not an easy task.</p><p>There are a few things you will have to do again and again:</p><p>Write the HTML for the form itself</p><p>Style the form in the right way</p><p>Validate the data in the browser (optional)</p><p>Validate the data on the server (<b>never</b> optional - don't forget!)</p><p>Additionally make sure the user don't have to fight with the browser e.g. strange messages about "resending" data on reloading the page and using back- and forward-buttons.</p><h1>This is a part of the ongoing series about depage-forms</h1><p><a href="https://depage.net/en/blog/2011/07/depage-forms-html5-form-in-php-made-easy-part-1.html?utm_campaign=atom-feed" hreflang="en">depage-forms: html5 forms made easy (Part I)</a></p><p><a href="https://depage.net/en/blog/2013/10/depage-forms-html5-form-validation-part-2.html?utm_campaign=atom-feed" hreflang="en">depage-forms: validation of html5 forms (Part II)</a></p><p>depage-forms: subdividing forms into steps and step-navigation (Part III) / Coming soon</p><p>depage-forms: subclassing htmlform (Part IV) / Coming soon</p><h1>Forget about fighting!</h1><p>Because we did not want to fight anymore, we are introducing today: </p><p><a href="http://docs.depage.net/depage-forms/" hreflang="en"><b>depage-forms – html5-forms made easy!</b></a></p><p/><img src="https://depage.net/lib/602/5ee0fa96b5bed2b98e9d347035720528a85a63e2e3e8e668f5e17b8b720d40fd" width="96" height="96"/><p><a href="http://docs.depage.net/depage-forms/" hreflang="en">Documentation</a><br/></p><img src="https://depage.net/lib/885/ace2d5400a454796d7dc892bc3f9630d019a3c1f180e7ee7215b4b4bc1a56b12" width="96" height="96"/><p><a href="https://github.com/depage/depage-forms" hreflang="en">Fork us/Source-Code</a><br/></p><p>depage-forms is PHP library for HTML form generation with focus on usability for developers and users. </p><p/><p>It is part of the upcoming version of depage-cms, but it also works as a standalone library. By abstracting HTML, browser flaws (duplicate form submissions) and form validation, it provides a comfortable way to obtain reliable and validated data from users.</p><p/><p>We are (by far) not the first trying to solve these problems. For PHP there are <a href="http://framework.zend.com/manual/en/zend.form.html" hreflang="en">Zend-Forms</a> and <a href="http://www.artfulcode.net/phorms/" hreflang="en">Phorms</a> for example. But I think we found a rather unique approach to solve these problem.</p><h1>So, how does it work?</h1><p>First we load the Library and initialize an instance of the htmlforms-class. Almost every action goes through the htmlforms-class. Besides fieldsets and steps (later more about this) we only talk to instances of the htmlform directly.</p><pre><code>&lt;?php
require_once('path/to/htmlform.php');

$form = new depage\htmlform\htmlform('simpleForm');
</code></pre><p>After that, we add our inputs and other formfields to our form.</p><p/><p>You can do this by calling the '"add" + element type' method. The first parameter is the name of the element. It has to be unique. The optional second parameter is an array of various element settings. Everything in the settings-array is optional and has a sensible default.</p><p/><p>E.g.: If you don't give a label-parameter htmlforms will use the name of the input as label. You can also add a required-parameter, so you won't be able to finish the form without filling a required-input.</p><pre><code>$form-&gt;addText('username', array(
	'label' =&gt; 'User name', 
	'required' =&gt; true,
));
$form-&gt;addEmail('email', array(
	'label' =&gt; 'Email address',
));
</code></pre><p>Next comes the processing — The process-method is essential and the backbone of the htmlforms-class:</p><p>It validates submitted data if there is any.</p><p>It redirects to the success page if all the data is valid and all required fields are filled in.</p><p>It stores the data in the session and redirects to the form to circumvent the form resubmission problem. That means, that every form is sent with a POST-Request and then redirected to display the form again through a GET-Request. For more info: <a href="http://en.wikipedia.org/wiki/Post/Redirect/Get#Duplicate_form_submissions" hreflang="en">PRG-Pattern on Wikipedia</a></p><p/><p><i>(Note: Make sure to call the process-method before any output, so the form is able to redirect itself.)</i></p><pre><code>$form-&gt;process();
</code></pre><p>Now after processing the form we know if the submitted data is valid:</p><p>If the data is valid, we can do whatever we want with it. In this example we just dump it to the output. The submitted data is saved in a session until the session is cleared (which we do here) or the session has timed out.</p><p>If the form is empty or the submitted data is not valid we output the form with "echo" which will output the html-source for the form.</p><pre><code>if ($form-&gt;validate()) {
    var_dump($form-&gt;getValues());

    $form-&gt;clearSession();
} else {
    echo ($form);
}
</code></pre><h1>Live-Example</h1><p>Here's the live-example:</p><pre><code>&lt;iframe class="example" src="https://docs.depage.net/depage-forms/Docs/examples/simple.php" seamless="seamless" style="height: 30em;"&gt;&lt;/iframe&gt;
</code></pre><p><a href="http://docs.depage.net/depage-forms/documentation/html/simple_8php-example.html" hreflang="en">http://docs.depage.net/depage-forms/documentation/html/simple_8php-example.html</a></p><h1>Next Steps</h1><p>In the next posts about depage-forms we will introduce some extended features like: </p><p><a href="https://depage.net/en/blog/2013/10/depage-forms-html5-form-validation-part-2.html?utm_campaign=atom-feed" hreflang="en">form validation, the automatic type-casting of data-values</a> and</p><p>subdividing forms into steps and step-navigation</p><p>subclassing htmlform</p></div></content></entry>
<entry><link href="https://depage.net/en/blog/2011/03/uebele.com-online.html?utm_campaign=atom-feed#entry-34889"/><id>https://depage.net/en/blog/2011/03/uebele.com-online.html#entry-34889</id><updated>2011-03-03T00:00:00Z</updated><title>black on white: uebele.com</title><summary>The web presence of Stuttgart based büro uebele has been implemented in depage::cms. The design of the website stayed almost the same. Concept and design by Andreas Uebele and Tristan Schmitz.</summary><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><time datetime="2011-03-03">03/03/2011</time><img src="https://depage.net/lib/178/9623c8d10baa7f0546e9820e1f13fa9bdf33fd108caa8588c92f08f336b0232a" width="96" height="96"/><h1>black on white: uebele.com</h1><h1>büro uebele gets its web presence with depage::cms</h1><p>The web presence of Stuttgart based <a href="http://www.uebele.com" hreflang="en">büro uebele</a> has been implemented in depage::cms. The design of the website stayed almost the same. Concept and design by Andreas Uebele and Tristan Schmitz.</p><img src="https://depage.net/lib/138/69c11cdc3be175d2f7a01d31702167abf5b193e3e1b4bde74a52ebd1c9d57d49" width="800" height="100"/><p>But we optimized the technical implementation:</p><p>The HTML-markup has been optimized semantically.</p><p>The website has a newsfeed now. You can subscribe to it at <a href="http://feeds.feedburner.com/uebele/en" hreflang="en">feeds.feedburner.com/uebele/en</a>.</p><p>The <a href="http://www.uebele.com/de/projekte/visuelle-identitaet/deutscher-bundestag.html" hreflang="en">image-navigation</a> on project-pages changed to be smoother and is animated with JavaScript. If JavaScript is inactive all the images are visible in an accessible way.</p><p>The Logo is available in two versions: As bitmap (png) and as vector graphic (svg) on supported platforms.</p><p>Additionally we optimized the website for search engines a bit — but this is work in progress.</p><p>In a short time uebele.com will also have a new videoplayer, which will be integrated into the image-navigation.</p><img src="https://depage.net/lib/140/96a73c7026693ca6ae0726f340447266bb4b4bcf99704148ee1a8ed812946fdc" width="800" height="100"/></div></content></entry></feed>
