My name is Edward Tanguay. I am a web developer in Berlin, Germany. I learn everything I can and record it on this site. Other things you might be looking for: My Ubuntu Tutorial My Datapod Project My Blog Feed:  | My Blog
 - Blog Feed
 blog
|
Nov 1 - MXML != XAML - Lately I've been trying to orientate myself in the upcoming Flex and Silverlight worlds and today I an interesting discussion followed today after I said to my colleague, "so, MXML is basically the same as XAML, right". He explained that although they have the same basic concept, they differ in that, e.g. you can draw a rectangle with XAML, you can even define events (triggers) in XAML, but you can't do this with MXML. This is important for the whole concept of allowing designers and programmers to work in a more integrated fashion. In Flex, the design will make a movie clip but cannot define events for it. Or the ActionScript coder can create a blue circle with drag and drop events with 100% code but cannot "pass that on to the designer and have him make it nicer". So theoretically at least there is a larger rift between designers and programmers in the Flex environment than in the Silverlight environment. I suspect, however, that the amount of common area that designers and programmers can work on in Silverlight in real projects will remain just as thin as in any project, just as the syndrome of ASP.NET where you have lots of slick demos with datagrids and master pages, etc. but then in every REAL project you are in, everyone constructs their own datagrid class and there is only one file: default.aspx and the rift between designers and programmers remains as wide as it ever was.
| post comment or questionpost comment or question |
|
|
 blog
|
Oct 27 - The Apple Leopard Video is Impressive -  Especially if you have never experienced working on a Mac, take a look at the new Leopard operating system from Apple (click on "Large (379MB)" and download it for 15 minutes or so). This video had lots of WOWs for me (Time machine, Spaces, Data Detectors, more) all in mac-typical, wonderful interfaces, no technical stuff, all user-oriented. The presenter is definitely an "apple guy", black shirt, wealthy intellectual with greying hair, $700 glasses, so, new look of desktop has like a shelf at the bottom with icons sitting on it like jars on a shelf, STACKS: clicks on downloads and all downloads fan out in an upward explosion like action, nice, when download finishes it "bounces on the stack" at the bottom, if too many icons in a stack then it is a grid, you can sort your stack of course. FINDER: views are icon, list, column, and COVER VIEW which are 3D-looking, high-resolution previews of all your documents, you can even play videos on it and flip through presentation, pretty easy looking, REDESIGNED SIDEBAR: you click on Shared, you only see the publics or click on "use as" and log in and can use cover flow over the network and drag and drop over the network (ok, this is a WOW), also has a "back to my mac" tab which allows you to access your home pc from work for instance, search will find things on all connected computers (nice), predefined searchs, you can create your own (pretty nice), QUICK LOOK: click and see an immediate preview of any document, TIME MACHINE: backs up your mac to an external drive (usb or firewire), then checks very hour and backs up, then you can go back in time and restore them, scenario: "my files are gone for the presentation", wow, ok the folder goes back into infinity and you can go back into the folder in time seeing how things were every hour, to restore click "restore" (ok this is another WOW), another example, he searches for a file, can't find file, so time machine zips back (like hyperspace in star trek) finds the last copy of that file (nice), another time machine example: opens up the new iPhone and shows how time machine also works for that (I bet most people in a store decide to buy a mac right after they see time machine, seeing how easy it is to get lost files back will be a "big decision tipper", SPACES: "if you're like me whe you're on your mac..." you want to show just those windows that are related to a specific activity, shows example: ok these are like multiple desktop on Linux KDE but mac-like zooming, ctrl-left-arrow takes you from space to space, or ctrl-1 or ctrl-3 to go to a specific space. Oh, and then you can look at all spaces and they are all live (e.g. Tiger woods is swinging a golf club in the reduced-size window, nice, and you can drag windows from space to space, nice. Ok, spaces is a new metaphor in working on your computer, nice. MAIL: if you have gmail (and some others), you just click you name, email address and password and EVERYTHING is set up for you immediately (that is very nice, not filling in POP3 and SMTP fields...), NOTE-TAKING AN TODOS: part of mail, drag in pictures, nice, your note is in your e-mail box (nice), you can highlight a line and make it a TODO which keeps a central todo list for you (could be very useful), mail also has "stunning templates", (ok, this is another WOW: the interface of dragging pictures into a template and resizing and repositioning), DATA DETECTORS: you hover over a telephone number in your email you click it and it puts the person who sent the email in your contact with that telephone number, even hoving over "this tuesday" will allow you to put it in your calendar for tuesday, this is cool and could be very useful. ICHAT: selects nicole and clicks "video conference", then clicks on a photo folder and nicole can see them on her computer as he talks about them, then they do it with presenations, and quicktime movies, ok, this is another WOW. Ok, then you hav a lot of weird effectst hat you will probably just play with once (makes you look like a bee), BUT then you can also have a VIDEO playing as your background with you in the foreground (you just have to have a stationary background), then you can also do mac sharing so that he could use nicole's comuter (like remote pc but looks like it actually works, I wonder what kind of bandwidth you need). Then he talks about upgrading, easy of course. Leopard works only on the newest computers. Then he does a demo of an upgrade: pop in DVD, click "restart", type in user name and password, click "English", agree, select hard drive, wait two hours, go for a walk and when you come back your mac will be running Leopard and you will find all your new stuff. Ok, that was an impressive video.
Pedro Costa: Me too have found this video yesterday and got a WOW feeling too. I never worked really with a mac, just helped a friend one time about a year ago installing some programs, like openoffice. Didn't like it much, specially because of the user interface (no context menu, one button mouse...), so somethings that I felt natural in OSX were missing, thats why I felt weak, but this can be just a learning problem. I would love to try all this features, but without buying a mac...lol
It's too expensive... replyreply post comment or questionpost comment or question |
|
|
 blog
|
Oct 4 - Learn Environment 1.0 - I uploaded a new format of my web developer site this morning. The new format will allow me to quickly set up new "learning areas" e.g. I will be learning a lot of Flex this month trying so I created a category called Flex Projects and can add questions, flashcards, etc. to them in Datapod Item format (one field per line in a text file) and then dump them all at once so that I can now analyze a code base of a friend's project writing down questions, notes, etc. and all of them are on the page for that catetogy. When I get the questions answered, I can convert them to Notes or Flashcards, etc. These items are as easy to edit as a paragraph on a Wiki, for example, but the advantage of this Datapod format is that Flashcards and Notes and Questions are separate classes and hence separate functions, e.g. you have some time and can "test yourself on all flashcards" or you meet someone who is an expert in Flash and you can "print out all questions that have to do with Flash". I also made an item type called "Starts" which appear in the section "Get Started With ..." on every category page, these are links to downloads or a beginner tutorials, so that without much effort on my part, people can come to the e.g. 'WPF page" and see a "Get Started" section on how to get started with WPF if it is new to you. In any case, this "learning area" concept is started and I will be added lots to it in the coming months to make it an effective tool to quickly get into new technologies and record what's useful in one place at the same time making this place an area that people can share ideas and migrate information etc.
post comment or questionpost comment or question |
|
 blog
|
Sep 18 - Dynamic Data and CSS, or Why I Still Use Table Formatting - Dynamic Data and CSS, or Why I Still Use Table Formatting
Almost all of the websites I have ever made have had dynamic content, i.e. information coming from a database. Hence, I never know how long a title is going to be or if there is going to be some super-long non-hyphenated German word in a text that is going to be longer than the width of a column, etc. Using tables for structure has worked nicely here since you can put a "width bar" (invisible 1 pixel high graphic) in your columns which keep them a maximum width and if a super-long word is in your text then it increases the width of your column. Using CSS (divs, float lefts, etc.) you can get the same effect except that a long word will just spill over (or under) the other column, sometimes disappearing, sometimes writing right over the text in the right column so that you can't read either text, and sometimes the float:left and float:right get so confused that a column will hop under another one. If anyone knows of a why to use CSS for structural formatting that is compatible in ALL browsers please tell me since the examples I've tried from my Googling have not matched the ease and predictability of tables yet, which are compatible even with the nasty browsers like IE 5.2 and safari and on mac and linux, etc. My CSS strategy is like this: when I need to use tables for structural layout, I make a class (e.g. SmartLayout) which is free of table-specific language, then in the future when I find some CSS code that actually works with dynamic data, I can make simply allow the class to render in two ways: tables or CSS.
post comment or questionpost comment or question |
|
 blog
|
Sep 14 - Flex is Impressive - Still trying to grok how to approach the structure of a Flex application, I spent tonight watching about 10 video2brain videos on MXML, actually for the first couple I actually followed along in my Flex3 and created this example of a login box. It's amazing how much you are taken care fo by default, "it just works" came to mind a number of times tonight. The other thing that impressives me about Flex / ActionScript 3 / MXML is that it is like a very clean ASP.NET which since it has to do no converting to the messy HTML/CSS/AJAX/Javascript/DOM/DHTML world, is simply a clean XML that allows you to put tabs and menus in forms and applications, all in tags, and then you create a component with code and refer to it with tags and pass the parameters you need, but ALL this is done in an MXML context. So after while I just watched the videos instead of follow along just to get a sense of the possibilities of using the Flex IDE to rapidly create applications. Well, tonight, also signed up for an account at bloglines.com and saw that Joel Spolsky includes pictures in his blog which then reads like a newspaper in bloglines, very nice change to the dry text-blogs you read there, so I'm trying it with this blog as well -- if your blog browser supports it, you should see a picture in this blog entry.
post comment or questionpost comment or question |
|
 blog
|
Sep 11 - Learn Sessions - Just added the item type "Learn Sessions" to my site. LearnSessions are to Tutorials as Questions are to Flashcards. First you have a question and then when you get the answer it becomes a Flashcard (or FAQ). When I want to try something out they are a bread crumb trail in case something goes wrong I can very easily just point somebody to the page of notes and screenshots and they can much more easily help me since they can follow what I've done and how the screen looked at each point. With Snagit and a quick little parsing to include pictures they are really easy to make. Good for newsgroups as well. Also when in the future I want to do the same some similar thing, the screenshots and quick notes can be helpful. Each LearnSession has a status (e.g. "unresolved", "resolved", etc.) and those that are successul LearnSessions will be able to be turned into HowTos or Tutorials with only a few modifications. Here is my first LearnSession.
post comment or questionpost comment or question |
|
 blog
|
Sep 4 - Profile centered interface - Installed Access 2007 today at work and was greeted with a wonderful interface: you can click on the "empty database" icon or click one of number of icons which allow you to select how you are going to use Access (e.g. Student, Company, Projects, etc. ). This then allowed you to choose specific templates. then the template gets downloaded. This is how I want Datapod to work: you download datapod and it asks you want to want to use it for e.g. record flashcards, post family pictures, track bugs for a programming project, then download the appropriate items (hence updated with latest features) and the whole layout changes, etc. to fit your needs, then you can customize your site from there.
Patrick: MS has offered this in various tools for a number of years, for example MS Office has templates for getting started quickly. Has you actually used this regularly? I found that a) the default templates were not close enough to what I wanted and b) I didn't want the effort of creating my own template library. Maybe I just don't create enough new databases to have this make sense. OTOH, I like the general idea of getting up and running quickly.  | Edward: The only time I've used MS templates was in Frontpage 98 to create quick sites which was impressive WYSIWYG back then, and also many years later in Publisher for doing a wedding newsletter. Also in Powerpoint I like the fact that the outlines for e.g. an persuasive presentation are given since that is usually effective. I've never used templates for Access though. I like the idea of templates, though, especially the idea of having an interface that allows you to easily create custom templates from existing work, I would consider that an "interface pattern" worth striving for in most applications. In Datapod I have a simple class called "TextFile" which allows you to copy in any file and then replace certain parts with variables so that you can make similar files on the fly from that template. | post comment or questionpost comment or question |
|
|
 blog
|
Sep 1 - More than a link - Problem: I stumbled upon this university professor's site and found the powerpoint presentations for his computer science classes particularly organized and interesting (click on his classes), e.g. pictures of the Enigma, slides about how code-breaking is represented in movies, and slides about encryption were you could take one look and learn something (e.g. that part of breaking a code is to look for known words, e.g. "Wehrmacht"). Ok, so now I have the problem that millions experience everyday: I find this site useful and I want to SAVE and ORGANIZE it somewhere in my STUFF. Most people would simply bookmark the site. However, this leads to 1000 unorganized links at the end of the year. This is good enough for most people, but it is not good enough for me. Part of the purpose of my new web developer site is to make it possible for me to more accurately organize my the content, so instead of having a MySQL table called "links" and dumbing everything in there, I decide that something is a TIP or a QUESTION or a TOOL or a FLASHCARD or a TUTORIAL or a TODO, etc. The reason I do this is that at some point, if I meet some expert on Flash and have some time with them, I can go to my site and list the 12 burning questions I have about Flash and ask him them, maximizing our time. Or if I get into Perl again and want to get back up to speed, I copy all my Perl Flashcards to my cell phone and flip through them while I wait in line at ALDI. Or if someone is getting started in Ruby and wants to know what he needs, he goes to my page that contains the best Ruby tutorials, tools and flashcards that I have recorded. If I had recorded everything just as LINKS, then I wouldn't be able to do this. SO, back to my problem: my organizational conscience prohibits me from simply calling this professor's site a "link". But what kind of item IS it? Being an American Pragmatist, my answer is "It depends what I am going to USE it for." It does not have enough urgency and pertinence to be a TODO as is, say, reviewing the PDF IDE that I recorded earlier. So I would say it is a READING, i.e. when I am about to go to work or on a trip and I want to print out 20 useful things to read, I can get a list of the best stuff I found in the last couple weeks and print it out. But how am I am going to make a READING item on my website complete with singular and plural class and the ability to add, edit, and delete my readings online in the browser AND include readings in the search-entire-site field in the upper-right AND automatically create an RSS feed for readings? I use my Datapod framework which creates the base code for this in 8 seconds and I spend 10 minutes cutting and trimming so my new READING item fits into my site looks like my other items. Nice. Everything properly labeled. Aristotle would be proud. So would Grandma: a place for everything and everything in its place.
post comment or questionpost comment or question |
|
 blog
|
Sep 1 - Web developer site is 800px compatible - I'm developing my web developer site checking changes in Firefox on a Flatscreen at 1280 pixel width and occasionally on the same computer in IE7. On my second computer I intermittently check my changes on an 8-year-old, bulky 15-inch monitor at 800 pixel width in IE6 (reminds you of how your site looks at a public library), I have deliberately kept this behemoth monitor as a weakest link to check my sites. Remaking my web devloper site, I took the 800 pixels pretty seriously and am satisfied with the results. Even when a wide graphic shoves the right border off the screen, it doesn't break the site's structure, the header stays the same, centered with margins, and the body just goes off to the right, ok, but I am not going to resize graphics for 800 pixels, so I think this is a nice solution.
post comment or questionpost comment or question |
|
 blog
|
Aug 31 - RSS feed now available for all items - I redid the RSS-feed methods for item types so that item types can very easily be added to a feed called "mostRecent.xml" which means as I create new items, I just need to customize the title and description for them (in a method in the singular item class) and then add the item type name to the list of item types which should be included in the feed. You can subscribe to my most recent item feed here or by clicking the RSS button on the main page of my web developer site.
post comment or questionpost comment or question |
|
 blog
|
Aug 31 - Music appreciation - Although I often listen to Jason Jollins when I program, earlier this year I began buying up super-cheap classical CDs (best-ofs for 2.99) and dumping them as .mp3s into one directory. When I sit down to develop, I CTRL-A all the mp3s, and choose "play in winamp" with it set on random select. Nice is that classical pieces are 10-30 minutes long so you can get into the flow (which is one reason I like Jason Jollins with his hour-long trance tracks). Anyway, so as I'm working I think "man, this is some dark music" and I guess that it is Mussorgsky but am surprised to see it is Williams. Over time I am learning how to distinguish Schumann from Shubert and Mozart from Mendelsohn.
post comment or questionpost comment or question |
|
 blog
|
Aug 30 - Code clarity - I am writing a method which checks to see if a graphic exists, either .jpg, .png. or .gif. So I named the array that contains the three types $possibleGraphicExtensions. The result is my code is readable and understandable. I'm surprised to see that most code I read uses very short variable names, e.g. $grafext or $ext or even $e) which simply makes the code harder to read for the original programmer and everyone else. I even find that many times in the act of thinking about the proper long name, I discover something about my variable, e.g. it's not an "item" per se but an "itemType". Most programmers can type quickly so short names really don't save you time in the typing process, especially since most of us have code completing editors and/or copy and paste. In many cases it even elimates the necessity to write comments since you can read the meaning of the code from the variable names. I think taking the time to clearly choose clear names for your variables is a top developer skill.
post comment or questionpost comment or question |
|
 blog
|
Aug 30 - Got RSS feeds working - I just built in RSS feeds into my new web developer site so you can subscribe to this blog AND to my code examples. Seems to work well in Firefox and IE7. But IE6 doesn't seem to have any automatic RSS reading capability. And Opera 9 seems to work but after 10 minutes of using the Opera RSS interface I STILL couldn't figure out how to simply UPDATE the feeds. Whatever. Anyway, I also tried these RSS feeds in blogbridge (free offline RSS reader) which worked great. In the next version of Datapod you will be able to create an RSS feed for any item automatically (cool).
post comment or questionpost comment or question |
|
 blog
|
Aug 28 - PlaceState and more in next Datapod version - I'm putting together my new web developer site and using it as the Datapod base so lots of functionality coming in the next version such as PlaceState (where you can set a link such as "codeExamples.php?order=mostRecent" and you know that all the other variables that have been changed stay the way they are, kind of like ViewState in ASP.NET. And an easy way to display in Grids (like in DataGrid) but what I like about Datapod is that e.g. the grid functions are in methods of Items, and everything is based on full Items. I don't see that elsewhere.
post comment or questionpost comment or question |
|
 blog
|
Aug 25 - Interesting singular/plural bugfix in Datapod - Fixed an interesting bug in Datapod today: when you use the TextFile class, you have to add plural variables before singular variables, otherwise you will get variables such as "BlogEntrys" since "TemplateItem" is contained in "TemplateItems". Something to watch out for generally.
post comment or questionpost comment or question |
|
| My Free Tutorials: How to Install Ruby on Rails with Instant Rails and Create a Website Using JEdit and the Ruby Plugin Install a PHP Development Environment with Eclipse PDT, Apache 2.2, PHP 5, MySQL 5, and phpMyAdmin Using XAMPP Lite How to Install the Android SDK on Windows XP and Create an Application that Runs in the Cell Phone Emulator Install Ubuntu 7.04 in VMWare on Windows XP and connect it to your network Setup a PHP Development Environment on Windows XP With Apache, PHP 5, MySQL 5, SQLite, Eclipse, Subversion, PHPMyAdmin, and Datapod Install Java on Windows XP and Learn the Basics of Java 6 using the NetBeans IDE Install OpenSuse 10.2 in VMWare on Windows XP and connect it to your network Install Fedora 6 in VMWare on Windows XP and connect it to your network Install Perl 5 on Windows XP and Get a Perl Hello World Running How to Create a Website with Datapod  |