Add to Google Reader or Homepage |
~ pjvenda / blog
$home . blog . photography

24 August 2009

Home network / Cisco testing lab

[1]: "Dog's bollox' syndrome", autistic geekiness, paranoid overkill network admin, will to learn. Call it what you like, I don't care.

This is about my home network. I've been getting my hands on some Cisco kit because it has always been a technology I wanted to learn about. After gathering a few newer or older devices, I was able to re-do my home network, with separated user, management, service and DMZ networks - done with the good help of ACLs, NATting and inter-VLAN routing. Internal services are explicitly accessible or transparently proxied, external service are NATted into the DMZ network. I am even setting up a direct Internet access network as fall back. Most of this stuff is provided over Wired Ethernet and 802.11g Wireless. Why? See [1] (top of post).

It all looks like this at the moment:



At the moment, the following devices compose and actively participate in this horrible wire mesh that I call "home network":


  • Cisco Catalyst 3548XL: 48 10/100Mbps Ethernet port core switch;
  • Cisco 2621XM: Core/Internal router and firewall;
  • Cisco Aironet 1231G: Wireless access point;
  • Cisco 877W: External router and firewall with DSL modem and wireless interface;
  • Linux server: (not seen in the picture) Provides storage and other network services such as SMB, authoritative and cache DNS, HTTP proxy, etc; There is a web page about this box on my website: Home server;

Because I am still a Cisco "newb", I needed to learn about the features that I needed as I went along. Stuff like configuring native and tagged VLANs with trunks on the switch, multiple networks on the access points (each going to a different LAN segment), setting up static routing, ACLs and NATting, enabling and using an ADSL cisco interface, managing Cisco IOS images and configurations, etc. It starts making a lot of sense as all the pieces of the jigsaw find their place in my mind, but it seemed a bit strange when I started.

I know for a fact (because I have seen them) that certain company setups are light-years away of mine both in size and in complexity. What is funny is that certain cases are light-years more complex but others are light-years simpler (d'ough!).

I quickly learnt that a network like this requires absolutely the permanent presence of an up-to-date network diagram and detailed notes with IP addresses and ranges, interface names, VLAN to IP mappings on the various devices, VLAN and trunk mappings on the switch.



[A random network diagram I ripped off the Internet for illustration purposes only. Mine is hand-written.]

I also learnt that Cisco is a huge corporation in such a good market position that allows charging of hefty sums for hardware and licensing together with software limitations on their devices (dependent on licensing levels). This is not easy for me to swallow. But I must say that their documentation is terrific in every aspect! In particular the following guides are absolutely top-notch in content and references:

There are many more great Cisco guides that should be on the list above, but it would just group exponentially. And I am not even thinking about Cisco Press paper books.

Apart from being an over-zealous sysadmin, I am also a bit paranoid with security. So I will not be giving away details about configurations :]. At least not at the moment.

Following the logical steps, I should be taking a CCNA exam in the near future...

Cheers, PJ.

21 July 2009

Website is back with a few changes

After about a month offline, I managed to bring my website back. It's now hosted in Canada attached to a nice big 100Mbit/s network pipe.

It's also been slightly updated with a nice little flickr photo of my collection shown in every page.

Other changes include a new domain registrar, DNS system and domain name to which my stuff will slowly be ported to. I will maintain the old domain indefinitely but things should redirect to the new one. So have a look:

http://www.pjvenda.net



This blog is now accessed at http://blog.pjvenda.net. The old address transparently redirects here, so no worries. I plan on integrating it with the website but that may take a while.

See you later!
Cheers, PJ.

30 June 2009

Website is down

My website is down. Sorry for that. I'm moving and at the moment about everything that I own is packed in a non-useable dining room. Including the server with my website.

I need to sort out some DSL service, pull a phone extension and plug things back to get the website back up. Should take a few days, though...

So bear with me, I'll be back.

Cheers, PJ.

18 May 2009

Test ride of a Sportster 883R

Funny how I think of starting every post with an "I'm not dead" (like the old lady in the Quest for the Holy Grail...). But it's true, I'm not dead - I'm just not a good blogger, that's all.

Sure there are other news about me but the recent and cool one was that I test rode a Harley-Davidson Sportster 883R.

I took the oportunity of HD's marketing campaign "Judgement days" and signed up for a test ride of a Sportster 883 Iron. What I really wanted was to see how well I could handle its weight (the XL883 weights 251Kg whereas my XV535 weights 182Kg), how good was the riding position (me being 1.6m tall or 5"3'), and how strong was the Evolution 883cc engine.


So I got there, the guy literally asked: "so, which one do you want to try?" (which, I think, is something you don't get asked often...) and I signed the form that essentially said: "if you screw up, you're on your own. if you die, it's not our fault".

Then I was given the quick walkthrough over the controls etc and finally I was given the key: "get back within 45min. good luck and enjoy!". What a mixed feeling of "Ohhh boy!!" with "God, what am I doing?". I geared up, whilst mentally planning my route and pushed the starter. That was loud!


The throttle was soft and smooth and very progressive, but with a much greater gap than mine, so it felt a tiny bit strange. The handlebars were WIDE and my standing position wasn't as good as on the XV535. Clutch and front brake levers are small but very smooth, so good stuff. The gear lever is well placed and very precise.

I set off and did two laps of the route below, which accounts for about 14 miles (~23Km) total. The route starts at the HD dealer from which I headed SE towards Abingdon, then left through Abingdon's "ring road", left again towards Oxford and left once more towards Wootton / Boars Hill through Fox lane and back to the HD dealer.

Main impressions were:

  • My 535 engine must be incredibly ashmatic, bearing in mind the sportster's 883cc engine is notorious for its lack of power. What?? It felt like a brute!
  • The brakes were really nice and returned a good progressive feeling of stopping power;
  • The suspension is hard. There is no way around it. And that seat it must be great for vintage stuff, but not for me;
  • I couldn't flat-foot as I do so easily on my 535. The 883R is notably taller. On the other hand, while riding, I felt my knees even more bent than on mine, so the seat is higher, but the pegs are even higher;
  • The handle bars were WIIIDE, which felt good - mine are too bent inwards. But they I had to bend a little to be confortable with them, so I reckon they should be pulled back a bit for a guy of my height;
After the test ride, I was a bit deaf but very happy with the bike and the ride itself. It had been very good fun and I am enjoying the Sportster even more. I would gladly ride it for a whole day or weekend (which I eventually will). Now the real question is:
\begin{Jeremy Clarkson impersonation}

- Would I buy it?
...
- Nnno.

It is too loud, the handlebars are too far, the tank is too small and that seat is rubbish.

\end{Jeremy Clarkson impersonation}

I would happily buy a Sportster, though. And if the 883R was the only model, then yea, I would buy it. But it's not. First there's the Evolution 1200cc engine which is better at everything with the same weight (for some extra petrol, of course).


This 1200 Low, I reckon, would solve my problems with ride height and handle bar location. Also, it has the bigger tank (four thumbs up!). On the low side, I'm not such a fan of all that chrome... I would very much prefer the look of the Nightster. I guess I'll have to settle for the cheaper then :)

Before you flame me out of the Internet, I know that, in general, the biker community has some strong feelings about Harleys. Harley riders love them to bits even though they can't always explain why with technical facts (which tend to be the kind that you don't argue with). Non Harley riders tend to generate a bit of a hatred towards "the others" and happily (and quickly) bash harley technology. The fact is that such exercises (whichever brand or style you take sides on) are futile. In the end, everyone rides what suits their style best, what they think looks better, what they can afford, etc.

I am not saying that your bike doesn't tell about your personality, of course it does. But what it doesn't tell is about your respect and attitude towards others.

All for now.
Cheers, PJ.

11 March 2009

I am a biker now!

Very quick post - only the news of the year!


Me and my Virago 535, originally uploaded by pjvenda.


More stuff soon - have to go for a ride now!

Cheers,
Pedro.

28 December 2008

More next year

I'm still lousy at this. But I'm taking a break from my stressful (?) blogging routine until sometime next month, in 2009.

Here's a short wish list of mine for next year:

* I would like to improve my photography technique. I would like to have a Canon EOS 5D mkII on my budget as well as a new tripod, at least two decent lenses and bibble 5 (which is proving to be a difficult birth). I will upload stuff to flickr.

* Some really exciting stuff is happening at the beginning of next year, which will be a worthy blog post when done. Until then, it's a surprise (even for me, to a certain level).

* I am also looking forward to book my leisure flight on a Cessna or a Piper somewhere in the UK - courtesy of my lovely wife. That will be amazing and bring me closer to aviation in a techie kind of way. A baloon ride would be excellent as well :)

* I will do a bit more of travelling around but that isn't well determined, yet. I know I'm going to Prague, but that's it so far.

* I *need* to do some go-Karting again as well as, perhaps, another track day experience.

* I should blog more often. I know that some of my friends read this sorry excuse of a blog so, it is in my best interest that they be informed of what's going on on this side of the channel that deserves being blogged about. But that's not always an easy task. Also my techie reviews and rants are sure to be useful for someone...

* I will update my website more often and, more importantly, with new interesting material. This includes interfacing with blogger and flickr.

So long. Back next year.
Until then: Cheers, PJ.

16 November 2008

A visit to the Harley-Davidson dealer

Hello everyone,

Yes, I succumbed to the insistent calling of this (un)holy place just 5 miles away from where I live.


Decisions, decisions, decisions, originally uploaded by pjvenda.


And I felt like a little kid, shopping for christmas, with an unlimited budget! Not that I had a budget or even the intention of buying anything, but the mere thought of possibly doing so in a couple years time, really messed with myself in a most unexpected way. I never thought that visiting a store could create such a warm and fuzzy felling.

It felt strangely familiar and strangely similar to the Hard Rock cafe franchise - the music and decoration, the staff's black "uniforms", etc.

There were so many bikes for sale - some seemed pretty rare by the looks of it and from the warning signs that said "please don't touch or sit". All those Sportsters, Softtails, Dynas, VSRCs... All those obscenely expensive extras: the chromed screamin'eagle exhausts, the black matte screamin'eagle exhausts, the classic open face helmets, the leather jackets, everything else-leather...

Of course I took the opportunity to snap a few shots. Not that the light was great. I mean, it was when I left home, but as the 10 minutes went by between my street and Wootton, the clouds came in...

But of all things, this was it:



When I walk in there again to order my own Sporster, that will be something to remember - I'm sure of it!!

Cheers, PJ.

28 July 2008

ACPI standards used for specificity

Even though the title might seem silly at first, the simple fact that it is there as it is means that there is some explanation behind. So true.


The open standard ACPI was released in December 1996 by a joint collaboration of the main industry vendors. Its purpose was to provide a common interface for describing hardware bits and pieces that might vary from computer to computer. Just like a hardware description language (HDL).

All motherboards today have a bit of ACPI code in their BIOSes that provide the list of sub devices that they have available for use. These sub devices range from internal timers to fan controls or temperature sensors. This happens because all motherboards are different, in a way or another. Even the most common and basic functional components may need to be configured in a slightly different way between different manufacturers. So this ACPI code is rather raw and important for the lowest levels of the operating system. [we could fork this conversation into the subject of "operating systems: hardware or software?" but we shan't. this post has a different purpose, so let's get on with it].

This, of course, is described according to the ACPI open standard independently of which operating system will be executed. When looking at different operating systems, they have varying degrees of ACPI compliance and robustness. Some have good ACPI interpreter implementations and do things well. They may be able to resist ACPI coding errors and still keep working well. Others are dyslexic with regards to reading ACPI right and break. Break because they read wrong or because they can't handle errors.

So ACPI writers decided to start differentiating their code with conditional bits that refer to specific operating systems. Bits like

if (os==os_identifier_string) {
do this;
} else {
do something else;
}
OK, so we start to see some specificity on ACPI code regarding different operating systems. But that's fine as it is being done to avoid or to fix existing or potential problems. On the other hand, Microsoft's operating systems have much more attention on this matter due to two reaons:
  • Windows OSs are regarded as the world's (only) operating systems. Manufacturers and vendors tend to ignore all other operating systems on end users' hardware;
  • Windows has never been any good at handling ACPI code;
Here is where things start to go wrong regarding ACPI...

My first laptop, an Acer Travelmate 4001 WLMi, had a few quirks in its ACPI code that resulted in some issues [I can't remember what exactly]. Because hacking ACPI code is a nightmare, there was an easier way to handle the. You see, fixes for those quirks were already in place, in the ACPI code itself, but in one of those conditional zones for Windows 2000 and XP. Not for other OSs. Fortunately it is possible to tell the Linux Kernel to identify itself as "Microsoft Windows XP" when decoding/interpreting the ACPI table, so I was able to fetch those fixes and get on with things. Remember: no need to hack or change the code because the fixes were already there.
Hacking ACPI code is not a walk in the park. It's not easy to find, not easy to decode, not easy to read and not easy to write.

In effect, ACPI fixes are being coded specifically for Windows. Fixes that are likely to be relevant and safe for all other operating systems, but because of manufacturers' disregard for everything non-windows, "the others" are being left out.

The dirtiest minds might imagine that this is, in fact, a very subtle (and smart) way to undermine support for non-Windows operating systems. All that's necessary is to discreetly influence [i.e. pay] manufacturers to include differentiated code that breaks things on Linux, BSDs, Solaris, etc. Companies could use an open standard to break compatibilities and enforce monopolies. Coward stuff, eh?

Well... it appears to be happening. Exactly that. See the (adapted) quoted text below along with my comments in between. [The full story can be found here: http://ubuntu-virginia.ubuntuforums.org/showthread.php?t=869249]

Ryan:
I've heard a lot of people ask, "Who the hell is Foxconn", if you use a PC, there's a good chance you have one of their boards, even if it's branded as MSI or some other brand, if you use a Nintendo Wii, XBOX 360, or Playstation 3, Foxconn made that motherboard, this isn't some little dodgy hardware maker with no name that we can afford to be quiet about.
------------
I have disassembled my BIOS to have a look around, and while I won't post all the results here, I'll tell you what I did find.

They have several different tables, a group for Windws XP and Vista, a group for 2000, a group for NT, Me, 95, 98, etc. that just errors out, and one for LINUX.

The one for Linux points to a badly written table that does not correspond to the board's ACPI implementation, causing weird kernel errors, strange system freezing, no suspend or hibernate, and other problems, using my modifications below, I've gotten it down to just crashing on the next reboot after having suspended, the horrible thing about disassembling any program is that you have no commenting, so it's hard to tell which does what, but I'll be damned if I'm going to buy a copy of Vista just to get the crashing caused by Foxconn's BIOS to stop, I am not going to be terrorized.

(...)

Linux and FreeBSD do not work with this motherboard due to it's ACPI configuration, using a disassembler program, I have found that it detects Linux specifically and points it to bad DSDT tables, thereby corrupting it's hardware support, changing this and setting the system to override the BIOS ACPI DSDT tables with a customized version that passes the Windows versions to Linux gives Linux ACPI support stated on the box, I am complaining because I feel this violates an anti-trust provision in the Microsoft settlement, I further believe that Microsoft is giving Foxconn incentives to cripple their motherboards if you try to boot to a non-Windows OS.

The correspondence between Ryan (the techie that uncovered this stuff) and Foxconn support (manufacturer of the motherboard in question) follows. It's a bit edited for spacing reasons. This is fun!
Ryan:
ACPI issues, cannot reboot after having used suspend

Jul 22 08:37:53 ryan-pc kernel: ACPI: FACS 7FFBE000, 0040
Jul 22 08:37:53 ryan-pc kernel: ACPI: FACS 7FFBE000, 0040
Jul 22 08:37:53 ryan-pc kernel: ACPI: FACS 7FFBE000, 0040
Jul 22 08:37:53 ryan-pc kernel: ACPI: FACS 7FFBE000, 0040
Jul 22 08:37:53 ryan-pc kernel: ACPI Warning (tbutils-0217): Incorrect checksum in table [OEMB] - 70, should be 69 [20070126]

I get these messages in my system log at boot, I also fail to reboot after having used suspend in a session, it hangs and plays a continued beep on the PC speaker.

Foxconn support:
Do you get the same beep codes if you were to remove all RAM out and then turn the system ON again?

Ryan:
No, because then I wouldn't be able to boot into Linux, suspend to RAM, to get the ACPI failure, have syslogd pollute my /var/log/messages file with it, or read about it in my system log.

In particular, the number of quirks that the kernel has to use, and this invalid checksum are what has me nervous.

If you need me to attach the full contents of /var/log/messages, I can do so.

Foxconn support:
This board was never certified for Linux. It is only certified for Vista. See URL below. So please test under Vista. Does this issue also occured under Vista or Winxp?

http://www.foxconnchannel.com/product/Motherboards/certification.aspx

That was a nice start... So the board is only certified for Vista, but by the way, does it work well in XP?? Just by accident, you know... Because it should, I/they reckon.
Ryan:
The ACPI specs are there for a reason, and broken BIOS's like what is in this motherboard are the reason standard ACPI does not work, I've taken the liberty of filing the report in kernel.org, Red Hat, and Canonical's Ubuntu bug tracking systems, and posting the contents of my kernel error log on my blog, which is in the first several results if you Google search "Foxconn G33M" or "Foxconn G33M-s", "Foxconn Linux", etc, as well as prominently in other search formats, so hopefully this will save other people from a bad purchase, and hopefully kernel.org can work around your broken BIOS in 2.6.26, as I understand that kernel is more forgiving of poorly written BIOSes built for Windows.

I've already gotten several dozen hits on those pages, so you guys are only hurting yourselves in the long run, by using bad BIOS ROMs, as people like me are quite vocal when dealing with a bad product.

Spot on: The ACPI specs are there for a reason.
Foxconn support:
Making idle treats is not going to solve anything.

As already stated this model has not been certified under Linux nor supported.

As you are unhappy with the product- using a non-support operating system nor certified, please contact your reseller for a refund.

Ryan:
I've been debugging your AMI BIOS, and the ACPI support on it is far from within compliance with the standards, I've dumped out the debugging data into Canonical's Launchpad bug tracking system so that we may be able to support some sort of a workaround for the bad ACPI tables in your BIOS, I would hope that you will be part of the solution instead of the problem, alienating customers and telling them to go buy a copy of Windows Vista is not service, your product claims to be ACPI compliant and is not, therefore you are falsely advertising it with features it isn't capable of.

I would ask that you issue an update that doesn't make it dependent upon Windows Hardware Error Architecture, but that decision is up to you.

Please find all relevant data here:

Bug #251338 in Ubuntu: “Bad ACPI support on Foxconn G33M/G33M-S motherboards with AMI BIOS”
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/251338

I appreciate your consideration in this matter.

Foxconn support:
You are incorrect in that the motherboard is not ACPI complaint. If it were not, then it would not have received Microsoft Certification for WHQL.

Refer to: http://winqual.microsoft.com/HCL/ProductDetails.aspx?m=v&g=s&cid=105&sv=&f=&pn=G33M-S&oid=3179

As already stated, this model has not been certified under Linux nor supported.

It has been marketed as a Microsoft Certified Motherboard for their operating systems.

Of course threats don't solve anything. But saying that "this product is ACPI compliant because otherwise MS wouldn't have granted us the WHQL stamp" doesn't either. And they don't seem very willing to try anything else... So I guess the threat was still the only thing that caught Foxconn's support attention... even though it was promptly dismissed.
Ryan:
I've found separate DSDT tables that the BIOS hands to Linux specifically, changing it to point to the DSDT tables Vista gets fixes all Linux issues with this board.

So while I accept that you've gotten some kind of Microsoft Certification (doesn't surprise me), that does not make your board ACPI capable, just that Windows is better at coping with glitches custom tailored to it, for this purpose.


Foxconn support:
Stop sending us these!!!

Yes, go away!
Ryan:
Your BIOS is actually pretty shoddy, I've taken the liberty of posting everything that's wrong with the DSDT lookup tables and how to fix some of it so the community that has already purchased your filth can make do with it, also, it's now pretty much impossible to google Foxconn and Linux in the same sentence without getting hit by the truth, that your boards aren't good enough to handle it.

Foxconn support:
Surely this is the way to ask for us to attempt to fix something that is not supported in the first place.

Ryan:
Would it be so difficult? I mean really? I suppose you've never heard of building a happy customer base vs. just angering everyone that deals with your products to the point they make sure others don't make the mistake of buying them.

You know, I have several computers, and they all support any OS I want to put there, as well they should, if you can't fix the damaged BIOS you put there intentionally, can you at least put a big thing on the site that says no LInux support so people won't make the mistake of buying your stuff?

Your DSDT table looks like it was written by a first year computer science student, it is scary, I will not just shut up and go away until I feel like I've been done right, this can end up on Digg, Slashdot, filed with the FTC that you are passing bad ACPI data on to Linux specifically.

I saw you targeting Linux with an intentionally broken ACPI table, you also have one for NT and ME, a separate one for newer NT variants like 2000, XP, Vista, and 2003/2008 Server, I'm sure that if you actually wrote to Intel ACPI specs instead of whatever quirks you can get away with for 8 versions of Windows and then go to the trouble of giving a botched table to Linux (How much *is* Microsoft paying you?) it would end up working a lot better, but I have this idea you don't want it to.


While I don't agree with the way that Ryan addressed Foxconn support in all occations, he does have a rock-solid point. He has the right to be pissed and they were replying as (not very good) corporate robots, so deserve some angry kicks. If their policy was in fact "not supported - won't fix" than they would not react in such increasingly defensive way.

He was lucky to get enough attention to actually get them to act and try to fix things. No promises of official BIOS updates and no reports of working fixes, but they did do something. Of course they did/do/will deny any explicit attempt to break things on the Linux side. But I don't believe them. It's just too obvious to be accidental.

It takes someone with skills and will to figure these things out. A very small minority of all computer users. And that's exactly why this is actually a good subversive way to subtly improve Microsoft's monopoly. Indeed with the help of the ACPI open standard, corporations are breaking compatibility by introducing specificity in the code.

Sorry for the long rant, but this kind of stuff ticks me off! People that know me know it's true.

Thanks for reading,
PJ.

02 July 2008

Photographic kit upgrade process pt.II

Following the lens upgrade earlier this year, the second part of this upgrade process involved acquiring a new camera body.

Budget issues aside, I reckoned that upgrading from an EOS 350D to a 400 or even 450D would not yield a satisfying technological leap (even though the 450D is already two generations ahead of the 350D).
Hence I started saving money to upgrade to a moderately priced mid-range or top-range body. Knowing that the terms "moderately priced" and "top-range" together are a physical impossibility (or a black hole shall form on the 3rd ring of Saturn) and that the 5D is getting *really* old now, I was left with one choice - the EOS 40D.


The hand grip is light-years better than the 350D. Not only because it's a physically bigger camera, but also because its surface is that hard rugged rubber. The 40D is also 27% heavier than the 350D which can be an issue, in particular if used with a heavy lens (like mine). So this new kit's total weight went up 36% (from 540+385=925g [350D+Sigma DG 18-125mm f/3.5-5.6] to 740+715=1455g [40D + Sigma EX 24-70mm f/2.8]). But I got used to it and the added performance largely justifies the added weight.

Having a higher pixel count was a nice addon to the upgrade's value, but it wasn't a decisive factor (also because the lower range 450D has an even denser sensor). However, the 40D's sensor has other less obvious but very interesting advantages like singnificantly lower noise at higher ISO values. I refused to use ISO1600 on the 350D and only very rarely I used ISO800. On the 40D, most images are well usable by high standards at ISO800 (although noise can be visible in shadowed areas) and only careful analysis will tell ISO100 from ISO400. So sensor noise is much better (less) on the 40D which, along with auto ISO selection allows for extra flexibility with less fiddling.

Partial weather sealing is another nice feature that Canon has added/improved since the 30D. L-class Canon lenses and the Canon 580EX II flashgun consolidate this feature. A large 3" LCD screen has been fitted mostly for the joy of the marketing department, and a Live-View mode in which the screen is supposed to work as a simpler point&shoot model. I find it useful sometimes but not that often. The image size increase was also well welcomed. As was the vast array of extra features.

With everything accounted for, it's a great camera body, it made a brilliant upgrade and with the Sigma EX 24-70mm f/2.8 MACRO it builds good semi-pro body kit.

So what's next? Something's already on its way. After that, I haven't decided yet. Maybe an ultra-wide angle lens, or instead a nice telephoto? Only time (and money) will tell.

Cheers, PJ.

12 June 2008

Simple puzzles and engineers

Recently, I've stumbled upon a mind puzzle suggested on etd's blog. It seemed pretty simple, so I gave it a little thought...

Just for the sake of completeness, here is the puzzle:

One morning, exactly at sunrise, a Buddhist monk began to climb a tall mountain. A narrow path, no more than a foot or two wide, spiraled around the mountain to a glittering temple at the summit. The monk ascended at varying rates of speed, stopping many times along the way to rest and eat dried fruit he carried with him. He reached the temple shortly before sunset. After several days of fasting and meditation he began his journey back along the same path, starting at sunrise and again walking at variable speeds with many pauses along the way. His average speed descending was, of course, greater than his average climbing speed. Prove that there is a spot along the path that the monk will occupy on both trips at precisely the same time of day.
Here is my go at it:
  • Considering that the path is an ascending spiral [from bottom to top of the mountain], it is possible to graph its height vs length as an injective function. This means that any point of height is occupied by a spot in the path, representing a single determined distance point from one of the ends of the path;
  • The monk will have to go through every point of height (or distance) to reach the top. He won't jump. This also means that height or distance can also be graphed against time as an injective and continuous function. At a given point of time, the monk cannot occupy two different height or distance spots;
  • The following sketch is my representation of the monk's distance covered along the day (distance vs time). I've superposed the graphs for the climb and descent.
  • Knowing that both climb and descend started at the same time, no matter how crazy the curves are (representing rests and different instant speeds along different bits of the path) they *have* to meet somewhere because they are continuous. The meeting place of the lines represents a single spot where the monk was at exactly the same time on both journeys.

After having conceived this analytical solution to the problem, I've realised this other one:
  • Both journeys are made on different days. So an equivalent situation would be to have two monks at the same time starting their journeys in opposite directions - one climbing and the other descending. They will meet along the way.
And this was just a quick (but rare) peek inside the mind of an engineer.

Cheers, PJ.