This is me, wherever I am, if the camera is on. live.yahoo.com
February 27th, 2008
This is just a silly experiment.
update: I probably won’t have this on very often. it really eats up my computer’s CPU.
del.icio.us change on this blog
August 11th, 2007
About a month ago, I set up my del.icio.us account to send a daily post to this blog, containing the bookmarks that I had added that day. Now that some time has gone by, I realize that this has mainly just cluttered up my blog. The point of doing this was to share my bookmarks, and let you open a window to what I’ve been doing (bookmarking) lately.
So, I have added a del.icio.us linkroll to the sidebar which is now the window to my bookmark world, and I am deleting all of the del.icio.us posts that were made automatically to this blog.
I think this will be a cleaner setup.
My del.icio.us page is http://del.icio.us/nadavoid. My username is nadavoid. An RSS feed of my links is available at http://del.icio.us/rss/nadavoid.
As far as approaching an estimate… Well, you need to break the project down into some sort of manageable pieces. Most projects for me have mostly the same big pieces, but there are always something different about each one too.
Here’s the way I usually break down an estimate for a new site project
- planning & research
- graphic design (photoshop/gimp)
- frontend coding
- backend coding (cms integration)
- any special features or add-ons
- client consultation, support and training.
If you are planning on entering a lot of the content yourself, add a section for that - “content entry”.
Now, I may not list ALL of those when presenting the estimate to the client. If I think they’ll balk at the idea of having to pay me to do planning, I’ll just pad the other items with time from my Planning section.
See the comments on this post:
http://david.thelaniers.net/2006/12/how-do-i-invoice-for-good-planning.html
Interesting is the ADDIE method
Analysis/Discovery/Design/Implementation/Evaluation
You could use those as the primary categories for your estimates.
I know that’s way too much detail for probably most projects, but it’s good to have it rattling in the back of your mind somewhere. - that there’s more to the work, than just Design and Implementation.
So, as far as pricing based on the number of pages, I would just keep that info (the number of pages) as something that clues you in to how much work will be involved in the other categories… how many variations of the design, how flexible should the backend of the CMS be, how many special features, etc etc.
I would definitely recommend using a CMS. It’s not as crucial to use a CMS when all of your design is controlled by a CSS file. But the benefit of using a CMS comes when you want more flexibility - including allowing users to update their own content, and changing the HTML structure (site-wide, or just for a section).
You’re talking to a moderate CMS junkie here, so I would probably use some sort of a CMS for even 5-page site.
CMSs to consider
I have very limited knowledge regarding all of these except typo3, with which I’m very familiar.
CMS Made Simple - if you’ve never dug into a CMS before, and you need something that mimics how you’d normally think of a site, this is the one for you. Pages, Content, HTML Templates, CSS files. To me, it all makes sense, just by looking around. And it’s extremely well-suited to making clean frontend code.
If you have a little more time to learn and explore, there are some others you might consider.
Textpattern - probably the most highly revered CMS among coders and people who like clean code. To me, it’s a lot like CMSMadeSimple, but TXP is a bit more data-centered instead of page-centered. It might be more flexible in that way, since you can output that data however you want.
ExpressionEngine - I probably know the least about this one. But it seems to be very well supported, and well-liked. It’s definitely in the top CMSs list. It’s a commercial product, but there’s a free version for Personal and non-profit use.
modX - it’s pretty new. looks very powerful.
TYPO3 - the granddaddy. probably the most complex, and the most powerful. Allow a month to learn it. And find a tutor and ask questions.
typo3.com - overview info
typo3.org - for site developers
final note: This post began as an email to a colleague. Then I realized that others might benefit from these thoughts as well, so here you go!
Pathfinder Gem: Man to PDF
June 23rd, 2007
Here’s a nifty gem in Pathfinder. I’ll admit, it’s pretty geeky, but if you’re a mac coder doing stuff on the command-line at all, you’ll dig this.
If you have Pathfinder installed, just go to File -> Reports -> Man to PDF. Type in the command or program you want the man page for. Select it from the list, and boom, you’ve the manual for it as a PDF. I think this is cool because I can easily have it open in a separate window from my terminal window, plus, it seems like I can explore the man page more quickly.
Here’s an example, for the ‘ls’ command.
cheers!
rtehtmlarea and firefox 2.0.0.3
March 26th, 2007
When using the typo3 extension “rtehtmlarea” there is a compatability issue with Firefox 2.0.0.3. The issue is explored on the typo3 bugtracker here and here. Toward the bottom of the list of comments you’ll find the solution. I’ve tried it, and it works. Here’s the boiled down solution.
in this file:
sysext/rtehtmlarea/htmlarea/htmlarea.js in line 85
change this:
HTMLArea.is_wamcom = (HTMLArea.agt.indexOf("wamcom") != -1) || (HTMLArea.is_gecko && (HTMLArea.agt.indexOf("1.3") != -1));
to this:
HTMLArea.is_wamcom = (HTMLArea.agt.indexOf("wamcom") != -1) || (HTMLArea.is_gecko && HTMLArea.agt.indexOf("1.3") != -1 && HTMLArea.agt.indexOf(".1.3") == -1);
Then disable the compressed scripts option for rtehtmlarea in the extension manager.
And, remove from typo3temp all files that start with rtehtmlarea. Clear the cache and Firefox, and you’re good to go!
So, you’ve started using typo3, and you’ve even built a couple of web using typo3. Then, of course, you’ve heard of typoscript, and seen things like this:
lib.something = TEXT
lib.something.value = hello there.
Well, have you ever wanted to just append a value, or slightly change an existing value?
Welcome, :=
Here’s an example:
lib.something.value = hello there.
lib.something.value := prependString(Umm, )
# results in “Umm, hello there”
Here are all the functions that are available, copied right out of doc_core_ts.
prependString: Adds a string to the beginning of the existing value.
appendString: Adds a string to the end of the existing value.
removeString: Removes a string from the existing value.
replaceString: Replaces old with new value. Separate these using “|”.
addToList: Adds a comma-separated list of values to the end of a string value. There is no check for duplicate values, and the list is not sorted in any way.
removeFromList: Removes a comma-separated list of values from a comma-separated list.
For all of you intermediate TYPO3 configurators out there, I know your gears are turning already, thinking about all the times you wished you could use something like this!
imagemagick and typo3 on mac osx
February 24th, 2007
I will cut right to the chase on this. After researching and trying several different methods of enabling imagemagick in typo3 on my mac, there was only one package that worked completely. The package imagemagick-6.1.7.pkg.tar.gz provided by Marc Liyanage. Just download the pacakage, extract it, run it, and it will install everything in /usr/local/bin/ just like it should! At the time that I was hunting, the pages of his site were not responding, but I found the important page in a google cache.
Here are some other things that I tried. These did not work for me, in case you are considering some of these same methods.
- Using DarwinPorts to install GraphicsMagick
- Using DarwinPorts to install ImageMagick
- Using the Image Magick downloadable binary from the ImageMagick web site
- Compiling ImageMagick from source. (I was missing some of pretty important libraries, like JPG, TIFF, etc.)
So, don’t mess around. Just be smart and use the Mac installer from Marc Liyanage.
How to set Connect to your Mac remotely, using VNC and AFP
February 22nd, 2007
I just finished getting this all set up at my house. What I did was the result of pulling some things from a few different sites. They are credited at the bottom of this post. What follows is the process pretty much the way I did it, and it worked!
I’m using the idea of having a constant HOME server, and a floating, connecting from anywhere, SATELLITE computer.
[1] Get set up with dyndns.org or another dynamic DNS server. (or be sure you know your destination IP address). You will need some sort of client to keep the IP updated on the server. My router natively supported dyndns.org, so that’s the service I went with. If your router doesn’t natively support the service that you go with, you’ll need to use a client that runs on your Home computer, to keep your IP address updated in DNS
[2] On the router that handles the internet connection of the Home computer, forward port 22 to the IP address of the Home computer. This is the only port that needs to be open on the router.
On Satellite Mac
[3] create key pair on the Satellite Mac (optional, but for best security)
command-line: (use Terminal)
ssh-keygen -t rsa (answer question for creating a password, then assign a filename)
On the Home Mac:
[4] Allow secure SSH connections
Get your public key from gmail, or however you emailed it to yourself.
In your home directory, at the command-line, create a new directory if it’s not already there: .ssh. move your public key into this new .ssh directory. Rename your public key to “authorized_keys”. So it should be here: /Users/MYHOMEUSERNAME/.ssh/authorized_keys
and lastly, at the command-line:
cd ~
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
edit /etc/sshd_config
Essential - make sure the following is not commented out:
AlowTcpForwarding yesOptional - preventing SSH logins via password, requiring login only via the key pair - Make sure the following two lines are uncommented:
PasswordAuthentication no
UsePAM no
Start (or stop and start) SSH. On the Sharing preferences pane, it is “Remote Login”.
[5] Set up OSX VNC (or Vine Server)
The important thing here is, under the Sharing tab of Vine Server, select “Only allow local connections (require SSH)”
Also, for convenience, you may, under the Connection tab, remove the password. I set the Display Number to Auto.
Now everything is set up. The rest of this is the everyday process of using the setup.
On the Remote Mac:
[1] create a VNC tunnel to the Home Mac. (for Screen sharing)
at the command-line:
ssh -i /Users/MYREMOTEUSERNAME/.ssh/privatekey -L 5900:localhost:5900 MYHOMEUSERNAME@MYHOMEMAC.dyndns.org
(answer with the password for your private key)
[2] Connect to Home Mac by using a VNC client to connect to localhost, port 5900.
[3] Create an AFP tunnel to the Home Mac. (for File sharing)
ssh -i /Users/MYREMOTEUSERNAME/.ssh/privatekey -L 5480:localhost:548 MYHOMEUSERNAME@MYHOMEMAC.dyndns.org
[4] Mount a volume from your Home computer by using the finder menu and using Go -> Connect to Server. Enter afp://localhost:5480 into the field.
Final Notes
I believe there are quite a few ways to streamline this process. There are multiple VNC client apps. Maybe even more than one VNC server apps. The diveintomark.org video tutorial, mentioned below, shows a way to not have to enter your private key password every time you connect.
Credits: (thanks for the help, guys!)
http://macosx.miraworld.tv/ssh/
http://howto.diveintomark.org/remote-mac/
My Mac Software
February 19th, 2007
I’ve been using a Mac desktop for several months now, and I’m really happy with it. I’m about to set up a MacBook in a configuration similar to the desktop, so I thought I’d list the apps that I’m using the most. I know there’s a “transfer files and settings” utility, but I don’t have the required firewire cable, and I want to pick and choose which files and apps to bring over, so I’m just going to move things one at a time.
I’d be interested to find out what apps you use too. So feel free to leave a comment listing the apps you can’t live without.
- In the Dock
- Path Finder
- Quicksilver
- Activity Monitor
- Stickies
- Skype
- iChat
- Thunderbird
- iTunes
- Safari
- Camino
- Firefox
- Adblock Plus
- Adblock Filterset.G Updater
- ColorZilla
- del.icio.us Bookmarks
- replaces Foxmarks
- DOM Inspector
- Duplicate Tab
- Greasemonkey
- del.icio.us >> ma.gnolia
- quickcamp
- Live HTTP Headers
- View Source Chart
- Web Developer
- Xray (Flash debugger)
- Flash
- Fireworks
- Dreamweaver
- TextMate
- Eclipse (PHPIDE)
- FDT
- Subclipse
- Eclipse (Laszlo IDE)
- NeoOffice
- Terminal
- Cyberduck
- Freemind
- Timeslice
- Parallels
- winxp
- IE 7
- MM Studio 8
- Adobe Flex
- Enterprise Architect
- Quickbooks
- MS Office
- FLV Player
- Firefox
- BrickServer Admin Program
- Riva FLV Encoder
- PDF Creator
- AVG Antivirus
- winxp tester
- IE 6
- Firefox
- plain install
- ubuntu
- plain install
- Also
- Final Cut
- Final Cut
- Motion
- Sountrack
- LiveType
- Compressor
- DVD Studio
- DVD Player
- MAMP
- Gimp
- Inkscape
- Google Sketchup
- Utilities
- Application Enhancer
- Menufela
- Default Apps
- MZoom
- NuFile
- OnyX
- VirtueDesktops
- Not Frequently used
- Audacity
- Celtx
- Chicken of the VNC
- Chmox
- Flare
- gDisk
- Gimp
- Google Notifier
- MPEG Streamclip
- MySQL Tools
- NovaMind
- Nvu
- OpenLaszlo Server
- Opera
- Sunrise Browser
- svnX
- VLC
Enter this in SETUP:
plugin.tx_cssstyledcontent._CSS_DEFAULT_STYLE >
Doing this will clear all that extra CSS you get, but will also have some negative effects.
quote from http://bugs.typo3.org/view.php?id=1636:
The css styles from the integrated cron_cssstyledcontent are vital for positioning of the elements, so this cannot be a “reference” implementation: without it, no image positioning would work, many users would be frustrated. A second reason to have this in TypoScript is that it makes use of some constants that can be set through the constant editor (border color, margins, etc), so that the generated css includes this information dynamically. These constants also are well known and provide a “smoother” transition from table-based styles to the css-styled-approach, without having to adapt any css-styles on your site.