punkouter punkouter

Niner since 2007

Hi, my name is Andrew and I'm a programmer. I have been programming for 15 years. For the last one or two years I have been working on my .Net skills and I have to admit that .Net is my platform of choice right now. I'm a very open and friendly person, so drop me a message and I'll get back to you ASAP.



  • Keynote #1

    I think your (new) MP4 and High-Quality MP4 link is reversed above. It give me a 633 MB vid for High Quality and 2.8GB for MP4. Hmm.. where's the 7 GB vid go?

  • Major Bing Maps ​Announcemen​ts and SDK Release

    great features from bing map team.


    i like the idea of having a map inside another map. a question , how do you visualize buildings with multiple floors?


    another idea, personally, i dont like the colors that bing map uses. to me google maps colors are more clearer. eventhough, bing maps gives more details, sometimes it just distracts me from finding what i want. if there is a way for setting up colors and granularity of details in the map that would be very awesome.


    anyhow, i think bing map on silverlight 4 is awesome. thanks.

  • Ping 32: MyPhone, Pressure sensitive Keyboards, Microsoft TAG, Anti- Virus

    i've said it before, and i'll say it again.


    i don't understand the reasoning behind Microsoft TAG. why can't they just use QR codes? in japan, everything already have QR codes. from my wii games, to books. all japanese phones have a QR code reader and the scenarios in the clip are already common here.


    another thing, according to this wikipedia http://en.wikipedia.org/wiki/Microsoft_Tag#Microsoft_Tag here, you need to send the HCCB to Microsoft and then Ms will send back the URL. Why? Why can't you just get the URL without going to Ms? QR codes can do that. in fact that's how it is usually used here.


    i think Ms TAG is a redundant technology that doesn't really offer anything more than QR codes (probably even less, considering you have to be in reach of Ms servers).

  • Ping 15: Project Natal, Win 7 launch, SEO toolkit, Dev Kit for WinMo, Netbooks

    my conspiration theory:
    is it just me, or is it ping really becoming the replacement of 'this week on channel 9'? <suspicious>..<suspicious>.. Smiley

    PS: sorry dan

  • Ping 12: Mac vs Microsoft, Ipod vs Zune: The Ad Campaign War

    Btw,... whats wrong with QR Code ? It's being used everywhere here in Japan.

  • Ping 12: Mac vs Microsoft, Ipod vs Zune: The Ad Campaign War

    Bring Zune to Japan (and the rest of the world)...please.... Embarassed

  • Anders Hejlsberg and Gilad Bracha: Perspectives on Programming Language Design

    i would not say void* (or void**) in c/c++ as dynamic. there are some similarities in behaviors but not just what i imagined what dynamic is in dynamic language. besides, even though you got a void* (or void**) on COM interfaces, chances are you are going to cast it to a static type and work with that (actually you will have to most of the time). thus reducing the point of failure to where you create the instance and when you cast it to a static type.

    one of the problem with dynamic languages (that im seeing) is that the point of failures can be virtually everywhere. and that causes me pain. Smiley

  • Anders Hejlsberg and Gilad Bracha: Perspectives on Programming Language Design

    Having always programming in static language I also not confinced with dynamic languages. I don't mean that it is bad, but for large complex systems I can't imagine how hard it will be to implement them in dynamic languages. Everytime I imagined that all I can see is pain. But then again although I did some research to an extent, I have never programmed in dynamic languages.

    The discussion here between Anders and Gilad is to me a great introductory to the design principles, but it is probably the same talks and papers that I've heard and read for the last year or two. It's just another dynamic vs static typing debate. Charles, I would really hope that in the future we can have discussions based more on real concrete examples and usages of the dynamic languages. Where can it be used as a powerfull tool. Especially on complex systems and development that involves a lot of developers (I imagine development with lots of developers will be a big problem with dynamic languages, but I might be wrong).

    All those said, thanks for the video. It sparks my interest even more into dynamic languages.
  • Erik Meijer: Functional Programming

    evildictaitor wrote:
    punkouter wrote:

    Erik, thanks for the great video. However I have a question, you said that we can integrate FP with imperative programming by ignoring the monads (IO()) from the type. I think this is feasible, but you can't do the other way around right?

    You mean integrate imperative programming into functional programming by inserting a monad into the type signature? That's certainly feasible.

    For a good example of a functional programming living alongside imperative programming, I'd really recommend having a bash at F# - it's all the power of C# with all the conciseness of Haskell.

    Although I'll never forgive Microsoft for having more people working on Haskell than Sun has working on Java

    not exactly, i mean, if right now i have a solution which i built using C#, and then suppose I want to make a 'parallel' library using Hashkell/CLR (if there is such a thing), or a FP, Erik said that it can be done by compiling the code to assembly and when I load it up to my C# solution ignoring the monads (IO(), etc ) will make it usable (or maybe, compiling it to CLI will strip the monads altogether). But, how about the other way around? Suppose that my FP library needs to use a business object (not necessarily a complex one, maybe a transfer object) from my C# assembly, can it be done?
  • Erik Meijer: Functional Programming

    Erik, thanks for the great video. However I have a question, you said that we can integrate FP with imperative programming by ignoring the monads (IO()) from the type. I think this is feasible, but you can't do the other way around right?

  • JAOO 2007: Bob Martin and Chad Fowler - Debating Static versus Dynamic Typing

    I'm pretty much a beginner on this dynamic language thing. My background mainly is from assembly, C/C++, Java and C#, all the static typing languages. While, I do have a bit experience with Hashkell in my university years, I haven't put much effort on learning it (it's just for a class project, mainly using lists and functional programming). So my questions are maybe a bit newbie-ish, bear with me.

    Ruby has been a buzz for quite a while for now and it's come to my attention to learn it. However, I still couldn't grasp the 'feeling' on using Ruby.

    1. Is it like using the C++ Template mechanism? Like when you could just place a template T and call like T.something() but the type inferring is done in runtime as oppose to C++ compile time?

    2. Isn't that going to be pretty hard to track down the source of problems when it happens? I had a terribly awful experience with hunting these kind of bugs when one of my programmer puts everything as objects in a Map class and he accidentally put an object of a different type in the map. How do you hunt those kind of bugs in Ruby? Do we have to keep checking the object type lwith 'is-a' mechanism? That would be awful and it wouldn't show me where the bug does actually occur. So, maybe the question is, how to debug or how debuggable is Ruby (and other Dynamic Languages also). My experiences with javascripts which I think is a kind of DL has taught me that DL is hard to debug. It also taught me to always strongly typed things to shield me from these kind of mistakes which i often call 'stupid mistakes'. Am I wrong?

    3. From the architect perspectives, in particular Design Patterns, is it applicable in DL? Will it streamlines patterns? For instance if Im using the Strategy patterns, then I do not need to declare an abstract base class. In the video, you discussed this. But isn't that bad? I mean, I can throw anything to my 'engine' any object that have a 'process()' function althought that might mean very different. The Strategy pattern will most likely lose its meaning.

    4. Can I draw/architect appropriate/sane softwares out of it? It seems like Class diagrams is also losing its meanings. And without a map, I cant picture how my software will turn out to be. How can you assess bugs?

    5. How can I restrict/restrain my inexperienced and clumsy programmers from doing some stupid mistakes? In statically typed world, I can restrict them by strongly typing everything and mking sure they play by my rules. How do you implement that kind of leash on them?

    I still have doubts about DL. And I have to confess that right now I cant picture building a large software using DL. If I cant get off my head from the 'stupid mistakes' how can I possibly focus on 'clever mistakes'? In other words, if I cant asses that the lower layers, the basic things will run fine, how can I build something reliable on top of it? My picture of DL right now is like building a building on sand.

    This is still my preliminary opinion though, I dont really have professional experiences on any DL and I still need to learn about it.

    Anyway thanks for the video, and sorry for the long post