Recently in Articles and seminars Category
This month I will host a series of lectures and workshops for Hyper Island (www.hyperisland.se) The first one is about the need of communication between ADs and developers.
In total they will span over six days.
In total they will span over six days.
If you've created a new domain using xen-tools you might run into the situation that the console works, but if you SSH in you get:
"PTY allocation request failed on channel 0" and "stdin is not a tty"
You need to install udev. Connect via console (xm console <domain id>) (you can get <domain id> with xm list) and simply run:
apt-get install udev
And restart / stop+start. Problem solved!
PS: Don't forget to apt-get install build-essentials
"PTY allocation request failed on channel 0" and "stdin is not a tty"
You need to install udev. Connect via console (xm console <domain id>) (you can get <domain id> with xm list) and simply run:
apt-get install udev
And restart / stop+start. Problem solved!
PS: Don't forget to apt-get install build-essentials
Recently I've bought and installed a Super Micro server (The usual raid-1 and IPMI configuration) but was puzzled by a rather odd problem: The IPMI card worked and I could control it via web interface. But neither ipmitools nor Supermicros own configuration system works.
After a quick talk with the support the problem was quite obvious: Turns out that the older IPMI firmware has a known bug that makes it impossible to use anything but the web interface. Unfortunately for me, the CD I got with the package had the old firmware.
As always, open the following ports:
UDP Port 623 for IPMI protocol
TCP Port 80 for Web User Interface
TCP Port 443 for KVM Over Lan
On the Client side you need to open UDP Port 6666 for Text Console Redirection
However, I must say I'm impressed by Supermicros internationall support. Quick replies, polity and accurate.
After a quick talk with the support the problem was quite obvious: Turns out that the older IPMI firmware has a known bug that makes it impossible to use anything but the web interface. Unfortunately for me, the CD I got with the package had the old firmware.
As always, open the following ports:
UDP Port 623 for IPMI protocol
TCP Port 80 for Web User Interface
TCP Port 443 for KVM Over Lan
On the Client side you need to open UDP Port 6666 for Text Console Redirection
However, I must say I'm impressed by Supermicros internationall support. Quick replies, polity and accurate.
Recently my 3G mobile internet has begun to fail at an increasing rate. Basically, it doesn't fetch a IP and hangs at "Authenticating". I enabled verbose logging (OS X - System Preferences - Network - Huawei - Advanced - PPP - Settings: Configuration - Verbose logging)
And checked the logs (Application - Utilities - Console - /var/log/ppp.log) and found:
Mon Jun 29 19:06:22 2009 : sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 10.11.12.13> <ms-dns3 10.11.12.14>]
Mon Jun 29 19:06:25 2009 : sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 10.11.12.13> <ms-dns3 10.11.12.14>]
Mon Jun 29 19:06:28 2009 : sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 10.11.12.13> <ms-dns3 10.11.12.14>]
Mon Jun 29 19:06:31 2009 : sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 10.11.12.13> <ms-dns3 10.11.12.14>]
Mon Jun 29 19:06:34 2009 : sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 10.11.12.13> <ms-dns3 10.11.12.14>]
Mon Jun 29 19:06:37 2009 : sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 10.11.12.13> <ms-dns3 10.11.12.14>]
Mon Jun 29 19:06:40 2009 : sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 10.11.12.13> <ms-dns3 10.11.12.14>]
Mon Jun 29 19:06:43 2009 : sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 10.11.12.13> <ms-dns3 10.11.12.14>]
Mon Jun 29 19:06:46 2009 : sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 10.11.12.13> <ms-dns3 10.11.12.14>]
Mon Jun 29 19:06:49 2009 : sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 10.11.12.13> <ms-dns3 10.11.12.14>]
Mon Jun 29 19:06:52 2009 : IPCP: timeout sending Config-Requests
Mon Jun 29 19:06:52 2009 : sent [LCP TermReq id=0x2 "No network protocols running"]
Mon Jun 29 19:06:55 2009 : sent [LCP TermReq id=0x3 "No network protocols running"]
Basically, timed out. Talking to support they didn't see any problems. They thought it was a drivers related problem. But since I couldn't connect on Windows either (via parallels) I thought it might be a hardware problem.
Here's the tricky part: I have a spare Huawei E220, but locked on another provider. Thus I needed to unlock it to even try my hardware problem thesis. Turns out unlocking Huawei E220 was quite easy, a lot easier that up to date cellphones from Nokia or Sony Ericsson.
I won't go into the deails of unlocking here (not sure about the legality about describing the process) but it's pretty clear-cut and can be found on Google.
Turns out I was right, hardware indeed. And now I can connect again.
And checked the logs (Application - Utilities - Console - /var/log/ppp.log) and found:
Mon Jun 29 19:06:22 2009 : sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 10.11.12.13> <ms-dns3 10.11.12.14>]
Mon Jun 29 19:06:25 2009 : sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 10.11.12.13> <ms-dns3 10.11.12.14>]
Mon Jun 29 19:06:28 2009 : sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 10.11.12.13> <ms-dns3 10.11.12.14>]
Mon Jun 29 19:06:31 2009 : sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 10.11.12.13> <ms-dns3 10.11.12.14>]
Mon Jun 29 19:06:34 2009 : sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 10.11.12.13> <ms-dns3 10.11.12.14>]
Mon Jun 29 19:06:37 2009 : sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 10.11.12.13> <ms-dns3 10.11.12.14>]
Mon Jun 29 19:06:40 2009 : sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 10.11.12.13> <ms-dns3 10.11.12.14>]
Mon Jun 29 19:06:43 2009 : sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 10.11.12.13> <ms-dns3 10.11.12.14>]
Mon Jun 29 19:06:46 2009 : sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 10.11.12.13> <ms-dns3 10.11.12.14>]
Mon Jun 29 19:06:49 2009 : sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 10.11.12.13> <ms-dns3 10.11.12.14>]
Mon Jun 29 19:06:52 2009 : IPCP: timeout sending Config-Requests
Mon Jun 29 19:06:52 2009 : sent [LCP TermReq id=0x2 "No network protocols running"]
Mon Jun 29 19:06:55 2009 : sent [LCP TermReq id=0x3 "No network protocols running"]
Basically, timed out. Talking to support they didn't see any problems. They thought it was a drivers related problem. But since I couldn't connect on Windows either (via parallels) I thought it might be a hardware problem.
Here's the tricky part: I have a spare Huawei E220, but locked on another provider. Thus I needed to unlock it to even try my hardware problem thesis. Turns out unlocking Huawei E220 was quite easy, a lot easier that up to date cellphones from Nokia or Sony Ericsson.
I won't go into the deails of unlocking here (not sure about the legality about describing the process) but it's pretty clear-cut and can be found on Google.
Turns out I was right, hardware indeed. And now I can connect again.
For a multimedia project one of our clients at Happyplace wanted to burn a CD with:
- Audiotrack for stereos/car players
- PC Data with a flash projector which autostarts
- Mac data with a finder window that auto opens
- Collect all PC data, add the autostart.inf and all that.
- Collect all Mac data and store it in a .dmg (more on this later)
- Burn the audio CD, make sure you use "write session" and not "write disc"
- In Toast -> Preferences -> Show legacy formats and settings
- Burn a custom Hybrid with the PC data and the mac .dmg
- Using the disc utility, create a new disc with a size that fit your needs (I used 100MB)
- Add all the data you need
- Set the finder background and size as you want, originize the icon you wish to show (I only show the .app file)
- Close and re-open the finder window to save you settings
- (You need to have Xtools installed for this) run the terminal command "/Developer/Tools/SetFile -a V /Volumes/Mounted Disc/file" to hide the file "file" on "Mounted Disc". This will make the file invisible
- To make the finder window autoopen, use: udo bless -folder /Volumes/Mounted \Disc/ -openfolder /Volumes/Mounted \Disc/
- That's it. Cool!
Motion tracking is one of the cool effects in packages such as After Effects. But just recently I stumbled on a Proof of Concept of motion tracking in Flash (AS 3).
Basically you print out a tag and if you hold it in front of your webcam flash will track it.. cool!
Proof of concept video
Wish to try it? No problem:
1. Print the marker
2. Open this SWF and enable your webcam
Works like a charm!
Basically you print out a tag and if you hold it in front of your webcam flash will track it.. cool!
Proof of concept video
Wish to try it? No problem:
1. Print the marker
2. Open this SWF and enable your webcam
Works like a charm!
Yesterday I held my first seminar for Hyper Islands Interactive Art Directory students. It consists of four parts. First seminar, which I held yesterday, goes into the basics of HTML/CSS/Javascript and Flash. Also touches their upcoming portfolios and the web world as whole.
Second seminar, which I held today, was more in-depth on their upcoming assignments but also gave them a deeper understanding of Javascript and Ajax, "Web 2.0".
Third seminar which will be held on Monday focuses on the actual creation of HTML/CSS/Javascript. How do you make a website?
Fourth seminar will be held on the 8th of October and is when then will be showcasing their experiences. I will update with more information later on..
Second seminar, which I held today, was more in-depth on their upcoming assignments but also gave them a deeper understanding of Javascript and Ajax, "Web 2.0".
Third seminar which will be held on Monday focuses on the actual creation of HTML/CSS/Javascript. How do you make a website?
Fourth seminar will be held on the 8th of October and is when then will be showcasing their experiences. I will update with more information later on..
Some of us does not have a approved SMTP server on our development server, or are working outside the office. So how do you then send email when using Django as your python framework?
The answer is simple: Gmail
You will need:
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = '<user>@gmail.com'
EMAIL_HOST_PASSWORD = '<password>
EMAIL_PORT = 587
EMAIL_USE_TLS = True
That's it. Given, you can't use it in your production environment. But it works like a charm during development. And if you need help sending html mail with alternative content (html+txt), check out Ross Poultons article Easy Multi-Part E-Mails with Django
The answer is simple: Gmail
You will need:
- A gmail account
- Django (of course...)
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = '<user>@gmail.com'
EMAIL_HOST_PASSWORD = '<password>
EMAIL_PORT = 587
EMAIL_USE_TLS = True
That's it. Given, you can't use it in your production environment. But it works like a charm during development. And if you need help sending html mail with alternative content (html+txt), check out Ross Poultons article Easy Multi-Part E-Mails with Django
This article from Smashing Magazine discusses the top 10 usability highs of Mac OS X. It displays a few of the reasons of why I love OS X.
Continue to the article
Continue to the article
Tradedoubler is one of Swedens largest ad networks. However, all ads are served over a none secure connection (https). This is fine for regular users, but if you are building a member only site with secure login (https) you are out of luck:
Serving both secure (https, all your content) and none secure (the ads) brings up a IE message asking the user if they want to "show unsecure objects" on the site. Every time the users loads a page. (In swedish: "Denna sida innehåller både säkra och osäkra objekt. Vill du visa osäkra objekt?")
So how do we solve this problem?
Usual Tradedoubler Ad code is something like this:
<script type="text/javascript">
var uri = 'http://impse.tradedoubler.com/imp?type(js)g(<id>)a(<id>)' + new String (Math.random()).substring (2, 11);
document.write('<sc'+'ript type="text/javascript" src="'+uri+'" charset="ISO-8859-1"></sc'+'ript>');
</script>
As you can see, the url is http://impse. None secure. But a little known fact is that tradedoubler ads can also be served over https://tracker.tradedoubler.com. As far as I know there is no difference.
So we do what many organisations do (such as google analytics). We let javascript check if the maste page was served over http and https. Such as this:
<script type="text/javascript">
var tdHost = ( ("https:" == document.location.protocol) ? "https://tracker." : "http://imp." );
var uri = tdHost + 'tradedoubler.com/imp?type(js)pool(<id>)a(<id> + new String (Math.random()).substring (2, 11);
document.write('<sc'+'ript type="text/javascript" src="'+uri+'" charset="ISO-8859-1"></sc'+'ript>');
</script>
Simple as that. If it's https it will use https://tracker.tradedoubler.com, if it's http it will use the regular http://imp.tradedoubler.com
The script is hardly perfect, but it works for most purposes. Tradedoubler has been notified of the problem, and hopefully they will implement a solution.
Good luck with your ad serving...
Serving both secure (https, all your content) and none secure (the ads) brings up a IE message asking the user if they want to "show unsecure objects" on the site. Every time the users loads a page. (In swedish: "Denna sida innehåller både säkra och osäkra objekt. Vill du visa osäkra objekt?")
So how do we solve this problem?
Usual Tradedoubler Ad code is something like this:
<script type="text/javascript">
var uri = 'http://impse.tradedoubler.com/imp?type(js)g(<id>)a(<id>)' + new String (Math.random()).substring (2, 11);
document.write('<sc'+'ript type="text/javascript" src="'+uri+'" charset="ISO-8859-1"></sc'+'ript>');
</script>
As you can see, the url is http://impse. None secure. But a little known fact is that tradedoubler ads can also be served over https://tracker.tradedoubler.com. As far as I know there is no difference.
So we do what many organisations do (such as google analytics). We let javascript check if the maste page was served over http and https. Such as this:
<script type="text/javascript">
var tdHost = ( ("https:" == document.location.protocol) ? "https://tracker." : "http://imp." );
var uri = tdHost + 'tradedoubler.com/imp?type(js)pool(<id>)a(<id> + new String (Math.random()).substring (2, 11);
document.write('<sc'+'ript type="text/javascript" src="'+uri+'" charset="ISO-8859-1"></sc'+'ript>');
</script>
Simple as that. If it's https it will use https://tracker.tradedoubler.com, if it's http it will use the regular http://imp.tradedoubler.com
The script is hardly perfect, but it works for most purposes. Tradedoubler has been notified of the problem, and hopefully they will implement a solution.
Good luck with your ad serving...
