User:Henon
From eqqon
m (→Henon's Blog) |
m (→Hommage à _why) |
||
(42 intermediate revisions not shown) | |||
Line 1: | Line 1: | ||
+ | <css> | ||
+ | body { | ||
+ | background: #000 url(/skins/eqqon3/images/new_design_bg7.jpg) 0 0 no-repeat; | ||
+ | } | ||
+ | #eqqon3-header { | ||
+ | background: transparent url('/skins/eqqon3/images/header.png') left bottom no-repeat ; | ||
+ | position: relative; | ||
+ | min-height: 145px; | ||
+ | height: 145px; | ||
+ | margin: 0 auto; | ||
+ | padding: 0; | ||
+ | } | ||
+ | .firstHeading { display: none; } | ||
+ | #eqqon3-p-navigation-wrapper { width: 100%; } | ||
+ | </css> | ||
__NOTOC__ | __NOTOC__ | ||
- | = | + | = = |
- | <div style=" | + | <div style="margin-left:20px; float:right;"> |
+ | <div style="border: 1px dotted; padding: 15px;" > | ||
;Other articles by Henon | ;Other articles by Henon | ||
+ | *[[Git and CSharp|Using Git on Windows]] <small>(June 2009)</small> | ||
+ | *[[Closing the Gap Between IEnumerator and IEnumerable]] <small>(20 April 2008)</small> | ||
*[[Asynchronous Events]] <small>(19 December 2007)</small> | *[[Asynchronous Events]] <small>(19 December 2007)</small> | ||
*[[Design For Reuse]] <small>(7 December 2007)</small> | *[[Design For Reuse]] <small>(7 December 2007)</small> | ||
Line 11: | Line 29: | ||
*[[Streaming between Threads or Processes]] <small>(30 October 2007)</small> | *[[Streaming between Threads or Processes]] <small>(30 October 2007)</small> | ||
*[[The Future of Ruby]] <small>(6 August 2007)</small> | *[[The Future of Ruby]] <small>(6 August 2007)</small> | ||
+ | ;Publications | ||
+ | * [http://www.cg.tuwien.ac.at/~pm/FacadeRepair/ Symmetry-Based Facade Repair] <small>(October 2009)</small> | ||
+ | * [http://www.eqqon.com/images/b/b3/Realtime_ray_tracing.pdf Realtime Ray Tracing (pdf)]<small>(June 2007)</small> | ||
+ | * [http://stud4.tuwien.ac.at/~e0026003/netvis/ TU Netvis - Visual Network Traffic Administration] <small>(March 2006)</small> | ||
+ | * [http://stud4.tuwien.ac.at/~e0026003/art/presentation.html Meinrad Recheis Abstraktionen] My Art Work between 2001 and 2003 <small>(2003)</small> | ||
;Links | ;Links | ||
*[[:Category:CSharp|C# Knowhow]] | *[[:Category:CSharp|C# Knowhow]] | ||
*[[Piccolo Snippets]] | *[[Piccolo Snippets]] | ||
- | |||
</div> | </div> | ||
- | <div style="margin-left:80px; margin-right:80px;"> | + | </div> |
- | + | ||
+ | <big><big><big><span style="color:#fff;padding-left:80px; font-weight:900; background-color:#000;"> Henon's Blog</span> </big></big></big> | ||
+ | |||
+ | <div style="margin-left:80px; margin-right:80px; margin-top:80px"> | ||
+ | |||
+ | = <span style= "margin-left:-30px;">I love WPF</span> = | ||
+ | <br> | ||
+ | <br> | ||
+ | I love WPF because ... | ||
+ | * ... WPF doesn't restrict my creativity as much as other toolkits do. | ||
+ | * ... WPF makes me feel powerful. | ||
+ | * ... I am a WPF guru and others are respecting me ;) | ||
+ | |||
+ | I hate WinForms because ... | ||
+ | * ... Form's class design is nuts, | ||
+ | * ... every programmer could easily hack together standard GUIs, nobody needs a GUI-guru like me ;) | ||
+ | * ... it is frustratingly complex to achieve visually rich displays. | ||
+ | |||
+ | = <span style= "margin-left:-30px;">Hommage à _why</span> = | ||
+ | <br> | ||
+ | <br> | ||
+ | A man only known by his nick name [http://en.wikipedia.org/wiki/Why_the_lucky_stiff Why_the_lucky_stiff] or just ''_why'' was one of the most productive and creative members of the Ruby community and I admired him. He wrote several libraries and a delicately illustrated book on the Ruby Language [http://en.wikipedia.org/wiki/Why%27s_%28poignant%29_Guide_to_Ruby]. Then suddenly, _why dissappeared, all his accounts had been deleted. | ||
+ | |||
+ | Many theories have been issued as to what happened. My theory is, that the person behind ''Why_the_lucky_stiff'' couldn't bear to maintain the online presence he'd created any more. I think, he found himself another goal in life that stands in concurrence with his online activities. Without doubt being a person who puts all his energy into his goals, he had to choose between the one and the other. He made a clean cut, made his decision final by destroying his alter ego. I wouldn't be surprised if it was for love after all. | ||
+ | |||
+ | To express my appreciation for Why_the_lucky_stiff, I made one last episode of his legendary foxes<br><br> | ||
+ | [[Image:Hommage a why the lucky stiff.png|700px]] | ||
+ | <br><br> | ||
+ | <div style="width:280px;margin:50px;padding:10px;border:1px solid;background:white;margin-top:100px;float:right"> | ||
+ | |||
+ | [[Image:You want some tsingtao stout small.jpg]] | ||
+ | |||
+ | "Want some TSINGTAO Stout?". Me chewing on something good, with chop sticks, drinking the best Chinese beer there is. | ||
+ | </div> | ||
+ | |||
+ | = <span style= "margin-left:-30px;">Thoughts on Circular Dependencies in Software Design</span> = | ||
+ | <br> | ||
+ | <br> | ||
+ | ;Definition | ||
+ | A Circular Dependency in a software design is a mutual dependency between two modules which either directly or indirectly depend on each other to function properly. In many cases circular dependencies are perfectly sensible such as a dependency between an Employee class and a Company class where the employing company has a list of employees and each employee has a back-reference to its employer. This circular dependency models a mutual dependency of the domain. Circular dependencies between unrelated modules are considered a bad software design praxis, though. An example for a bad circular dependency would be to have a general Person class instead of an Employee class which inherits from Person and the Company class has references to Persons (which is ok) and the Person has a back-reference to its employing Company (not ok!). | ||
+ | |||
+ | ;Significance | ||
+ | Circular dependencies should be avoided if possible in software design because of their negative effects. Some of these effects are: | ||
+ | * a circular dependency can be a "breach of encapsulation" (see Encapsulation) | ||
+ | * a circular dependency tightly couples two or more modules making each of them unable to be reused in other places without dragging in dependencies on the others. | ||
+ | * circular dependencies can be the cause of a so called "domino effect" which describes what happens when a small change in software that is supposed to be a local change spreads into other modules and has unwanted global effects (i.e. program errors, compile errors). | ||
+ | * a circular dependency might result in infinite recursions or in failures in software programs | ||
+ | * a circular dependency is a "refactoring smell" which may indicate a bad software design | ||
+ | |||
+ | = <span style= "margin-left:-30px;">Browse Ad Free with Google Chrome</span> = | ||
+ | <br> | ||
+ | <br> | ||
+ | Everyone agrees that Google's new browser called Chrome is really innovative, fast and cool. But as soon as you try it out, you will hate it for happily displaying all the banners, ads, overlays etc. Not blocking ads is, of course, the full intent of Google and possibly one of the main reasons for introducing a new browser instead of further supporting Firefox because they may have noticed that their ads don't reach firefox users who almost all are using the popular Mozilla extension AdBlock (Plus). | ||
+ | |||
+ | Loving the new concepts of Chrome and also being stunned by its well designed user interface, I have looked around for adblocking support. Here is what I found out: | ||
+ | * Google does '''not''' deliver an adblocking plugin for Chrome. | ||
+ | * forget AdMuncher it's not free. | ||
+ | * forget Privoxy it's way too complicated | ||
+ | * forget HostsMan it doesn't work anyway | ||
+ | |||
+ | I strongly suggest you to use ----> [http://bfilter.sourceforge.net BFilter] <------ . It's totally painless to install, no setup required and it works instantly (after adjusting the browser's proxy settings). Knows a lot of adservers and works like a charm even for german ads. Adding rules is straight forward, as we are used to with AdblockPlus. | ||
+ | |||
+ | OK, here is what to do: | ||
+ | * install BFilter | ||
+ | * set Chrome's proxy settings to 127.0.0.1 port 8080 (via Options -> Under the Hood -> Change Proxy Settings -> LAN Settings -> Check "Use a proxy server for your LAN") | ||
+ | * '''enjoy Chrome adfree!''' | ||
+ | --[[User:Henon|Henon]] 11:48, 11 September 2008 (CEST) | ||
+ | |||
</div> | </div> |
Latest revision as of 07:23, 28 March 2011
- Other articles by Henon
- Using Git on Windows (June 2009)
- Closing the Gap Between IEnumerator and IEnumerable (20 April 2008)
- Asynchronous Events (19 December 2007)
- Design For Reuse (7 December 2007)
- Preventing Recursive Events in C# (21 November 2007)
- Visitor Pattern (21 November 2007)
- Navigating in Exception Stack Traces in Visual C# (9 November 2007)
- Ruby-like instance variable syntax in C# (30 October 2007)
- Streaming between Threads or Processes (30 October 2007)
- The Future of Ruby (6 August 2007)
- Publications
- Symmetry-Based Facade Repair (October 2009)
- Realtime Ray Tracing (pdf)(June 2007)
- TU Netvis - Visual Network Traffic Administration (March 2006)
- Meinrad Recheis Abstraktionen My Art Work between 2001 and 2003 (2003)
- Links
Henon's Blog
I love WPF
I love WPF because ...
- ... WPF doesn't restrict my creativity as much as other toolkits do.
- ... WPF makes me feel powerful.
- ... I am a WPF guru and others are respecting me ;)
I hate WinForms because ...
- ... Form's class design is nuts,
- ... every programmer could easily hack together standard GUIs, nobody needs a GUI-guru like me ;)
- ... it is frustratingly complex to achieve visually rich displays.
Hommage à _why
A man only known by his nick name Why_the_lucky_stiff or just _why was one of the most productive and creative members of the Ruby community and I admired him. He wrote several libraries and a delicately illustrated book on the Ruby Language [1]. Then suddenly, _why dissappeared, all his accounts had been deleted.
Many theories have been issued as to what happened. My theory is, that the person behind Why_the_lucky_stiff couldn't bear to maintain the online presence he'd created any more. I think, he found himself another goal in life that stands in concurrence with his online activities. Without doubt being a person who puts all his energy into his goals, he had to choose between the one and the other. He made a clean cut, made his decision final by destroying his alter ego. I wouldn't be surprised if it was for love after all.
To express my appreciation for Why_the_lucky_stiff, I made one last episode of his legendary foxes
"Want some TSINGTAO Stout?". Me chewing on something good, with chop sticks, drinking the best Chinese beer there is.
Thoughts on Circular Dependencies in Software Design
- Definition
A Circular Dependency in a software design is a mutual dependency between two modules which either directly or indirectly depend on each other to function properly. In many cases circular dependencies are perfectly sensible such as a dependency between an Employee class and a Company class where the employing company has a list of employees and each employee has a back-reference to its employer. This circular dependency models a mutual dependency of the domain. Circular dependencies between unrelated modules are considered a bad software design praxis, though. An example for a bad circular dependency would be to have a general Person class instead of an Employee class which inherits from Person and the Company class has references to Persons (which is ok) and the Person has a back-reference to its employing Company (not ok!).
- Significance
Circular dependencies should be avoided if possible in software design because of their negative effects. Some of these effects are:
- a circular dependency can be a "breach of encapsulation" (see Encapsulation)
- a circular dependency tightly couples two or more modules making each of them unable to be reused in other places without dragging in dependencies on the others.
- circular dependencies can be the cause of a so called "domino effect" which describes what happens when a small change in software that is supposed to be a local change spreads into other modules and has unwanted global effects (i.e. program errors, compile errors).
- a circular dependency might result in infinite recursions or in failures in software programs
- a circular dependency is a "refactoring smell" which may indicate a bad software design
Browse Ad Free with Google Chrome
Everyone agrees that Google's new browser called Chrome is really innovative, fast and cool. But as soon as you try it out, you will hate it for happily displaying all the banners, ads, overlays etc. Not blocking ads is, of course, the full intent of Google and possibly one of the main reasons for introducing a new browser instead of further supporting Firefox because they may have noticed that their ads don't reach firefox users who almost all are using the popular Mozilla extension AdBlock (Plus).
Loving the new concepts of Chrome and also being stunned by its well designed user interface, I have looked around for adblocking support. Here is what I found out:
- Google does not deliver an adblocking plugin for Chrome.
- forget AdMuncher it's not free.
- forget Privoxy it's way too complicated
- forget HostsMan it doesn't work anyway
I strongly suggest you to use ----> BFilter <------ . It's totally painless to install, no setup required and it works instantly (after adjusting the browser's proxy settings). Knows a lot of adservers and works like a charm even for german ads. Adding rules is straight forward, as we are used to with AdblockPlus.
OK, here is what to do:
- install BFilter
- set Chrome's proxy settings to 127.0.0.1 port 8080 (via Options -> Under the Hood -> Change Proxy Settings -> LAN Settings -> Check "Use a proxy server for your LAN")
- enjoy Chrome adfree!
--Henon 11:48, 11 September 2008 (CEST)