Looking for a part-time volunteering position in the Boston area where I can contribute my technology expertise, I did some research on Idealist. These are the three most promising I could find:
Help build the Citizens Market PHP web app - Citizens Market is a nonprofit developing a user-generated database to gather reliable information on the social and environmental performance of companies. The database will be free, transparent and accessible online.
All-purpose technical volunteer at Haley House - Haley House is a food and housing provider in the South End. They’re looking for an Apple-oriented, all-purpose technical person with web development experience.
Webmaster for the Jewish-Muslim Relations Center - A few hours a month, make updates and changes to their website. Organization works nationally to move relations between Muslims and Jews beyond political conflict.
Essa semana participei do II ESOL que aconteceu no CEFET-PE. Foi a minha primeira paticipa????o em um evento de software livre. Tentei passar um pouco do mundo Ruby e Rails com o intuito de consquistar alguns adeptos e fortalecer a nossa comunidade local. A palestra foi nos moldes do DHH. Fiz uma breve introdu????o ao Ruby e um hands on com Rails para mostrar as facilidades de utilizar o framework.
O evento estava muito bom e s?? tenho a agradecer ao pessoal da organiza????o pelo apoio e aten????o que me deram durante todo tempo que estive por l??.
O c??digo da aplica????o para quem quizer brincar.
Essa semana participei do II ESOL que aconteceu no CEFET-PE. Foi a minha primeira paticipação em um evento de software livre. Tentei passar um pouco do mundo Ruby e Rails com o intuito de consquistar alguns adeptos e fortalecer a nossa comunidade local. A palestra foi nos moldes do DHH. Fiz uma breve introdução ao Ruby e um hands on com Rails para mostrar as facilidades de utilizar o framework.
O evento estava muito bom e só tenho a agradecer ao pessoal da organização pelo apoio e atenção que me deram durante todo tempo que estive por lá.
El título ha quedado un poco largo, pero eso es exactamente lo que acabo de hacer hace un rato, y como me parece algo interesante, voy a explicar brevemente cómo conseguirlo.
La base del proceso es PXE, que para definirlo en pocas palabras viene a ser un "modo de arrancar un ordenador" utilizando para ello únicamente el interfáz de red. Como podéis ver en el enlace a la wikipedia, PXE es básicamente una mezcla de DHCP y TFTP.
Paso 1: el ordenador ha de ser capaz de arrancar desde la red
Para poder instalar nuestro sistema utilizando esta tática, es necesario que éste sea capaz de hacer el boot desde un dispositivo de red. La mayoría de los PCs soportan esta característica, por lo que no debería de ser un requisito difícil de satisfacer. Una vez que nos aseguremos de que el PC "sabe arrancar desde la red", ya solo nos falta instalar un servidor que le responda adecuadamente a sus peticiones.
Paso 2: instalar el servidor
En este caso, el ordenador que va a servir los ficheros de arranque es un humilde PC con windows ya instalado, por lo que la herramienta que utilizaremos es TFTPD32. Esta herramienta es una de esas pequeñas joyas que a cambio de muy pocos KB son capaces de hacer un montón de cosas, como podéis observar en la página del autor.
Una vez descargado el programa, ponerlo a funcionar es tan simple como crear una carpeta, digamos que c:\tftp y copiar en ella el fichero tftpd32.exe. Lo ejecutamos y ya tenemos el servidor andando. Así de fácil.
Paso 3: descargarse la imagen de ubuntu peparada para estas labores
El siguiente paso será descargarse la imagen de ubuntu lista para ser servida utilizando PXE. Para conseguir este objetivo tendremos que descargarnos la carpeta ubuntu-installer que podremos encontrar en el respositorio de ubuntu. En mi caso particular, esta carpeta podía descargarse de:
Una vez descargada esta carpeta, deberemos de copiarla en c:\tftp. Además, debemos de asegurarnos de:
copiar a c:\tftp la carpeta pxelinux.cfg desde ubuntu-installer/i386/
copiar a c:\tftp el fichero pxelinux.0 desde ubuntu-installer/i386/
Ahora ya podemos configurar el tftpd32. En la pestaña DHCP, deberemos poner 'pxelinux.0' en el campo boot file y deberemos rellenar el resto de valores ajustándose a la realidad de nuestra red. Es importante que el valor del campo 'IP pool starting address' sea una IP válida en nuestra red y que se refiera a un rango de IPs no utilizado en la misma. Una vez cubiertos todos los campos, pulsamos save y ya tenemos nuestro servidor configurado. Así de fácil,
Paso 5: arrancar el pc que queremos instalar
Con nuestro servidor perfectamente configurado, ya podemos arrancar el pc en el que queremos instalar ubuntu. Si todo va bien y los cables están bien enchufados, podremos ver que comienzan a aparecer entradas en la pestaña 'Log viewer' de tftpd32. Se establece la comunicación entre el PC que arranca utilizando PXE y nuestro servidor. Al cabo de unos instantes, el PC que está tratando de arrancar acaba recibiendo por TFTP la imagen de instalación basada en red de ubuntu. A partir de ahi sólo nos queda continuar con una instalación basada en red de lo más normal, (lenta), y aburrida.
Auch bei den iPhone-Tarifen können Tarifoption geschaltet werden, die durchaus Sinn machen.
Ich benutze nach dem erneuten Defekt des mit Abstand besten mir bekannten DECT-Funktelefons (gleicher Fehler bei neuem Telefon – Serienfehler?) kein Festnetz-Telefon zu Hause mehr. Daher nutzen mir die Inklusiv-Minuten bei den iPhone-Verträgen nur bedingt etwas, da ich doch mal das eine oder andere [...]
Letzten Herbst wollte ich mir ein iPhone zulegen, hatte aber ein Problem, welches Manuel auch gerade nervt: ein alter noch laufender Vertrag und eine Mobilnummer, die meiner Meinung nach mit Gold nicht aufzuwiegen ist: eine identische Festnetz und Mobilnummer mit einfach wunderbarer Telefon-Nummer. Also, was nun?
Das Wesentliche: Du kannst Deine alte Nummer später übernehmen. Voraussetzung: [...]
========== 控制Apache的内存消耗 ==========
在Apache的配置文件中添加入下两行,可以有效的控制Apache的内存消耗:
RailsMaxPoolSize 3 # Never spawn more than three processes
RailsPoolIdleTime 180 # Despawn a process when it has been idle for 180 seconds
本文的讨论也很精彩,浏览讨论>>
The BEA Weblogic Server Java application server "becomes Oracle's strategic J2EE container," Kurian said. It has been integrated with Oracle technologies like Oracle TopLink for Java persistence and Oracle Coherence grid capabilities.
Pessoal,
Estamos abrindo uma linha de descontos especiais para empresas e equipes de mais de duas pessoas que estão afim de fazer o curso de Flex + Vídeo da e-Genial.
Se você tem interesse em conhecer e criar aplicações web multimídias não deixe de entrar em contato conosco, monte sua equipe e solicite mais informações sobre grandes [...]
At the beginning of the year, the pay rate per pageview on Gawker was $7.50, according to Portfolio's Felix Salmon; it went to $6.50 for the next quarter and it is now $5.
Zed Shaw and Matt Pelletier sat down with InfoQ's Obie Fernandez at RailsConf to explore some of the reasoning behind setting up the mongrel project, getting adoption in enterprise and dealing with developers who just aren't ready. Watch the interview.
In 1971, Mark Zuckerberg was negative 13 years old. The phrase "social network" would have returned awkward silences and weird stares, even amongst the savviest tech entrepreneurs. If you had said the word "Blog" people would have thought you were coughing something up. Yet, in their own weird little ways, thousands of people were social networking and blogging.
In my post Wednesday, I said:
We tend to live in our own little bubbles and think that somehow, our problems are brand new, and that they've never been solved before. Well, guess what: almost all of them have been solved before, have been solved better, and are included in almost all Unix systems out there.
I've found that this maxim is almost universally applicable to movements in technology. I've there's some big new thing, it has probably been done before, and it has probably been done better, and it was probably included in Unix.
finger is to Friendster as Friendster is to Facebook
The finger Unix program was developed in 1971 by Les Earnest. It provided a way for you to figure out what other people were up to. You'd execute the command "finger user@domain" and you'd get all sorts of useful information back: The user's phone number, how long they've been idle, how long it's been since they've checked their mail, and the contents of their .project and .plan files. Here's what it looks like if you execute "finger erik@subwindow.com":
[subwindow.com]
Login: erik Name:
Directory: /home/erik Shell: /bin/bash
On since Sat Jul 5 14:11 (UTC) on pts/0 from c-98-242-74-4.hsd1.ga.comcast.net
3 minutes 9 seconds idle
No mail.
Project:
Current Projects:
-Super Secret project. Relates to http://subwindow.com/articles/14
-Rails plugin for managing approvals. Was called acts_as_approved, but I think I'm renaming it.
Projects in Stasis:
-Aloe: A long-term work in progress. Aloe (or "A-l=o.e": Assets - Liabilities = Owner's Equity) will
be an easy-to-use online accounting system. It is designed for the small business owner that does
not specifically have any skills in accounting. It is currently in pre-alpha. http://aloe-acct.com/
-Skribit: Formed as part of Startup Weekend Atlanta, I'm an ongoing contributor to this social suggestion
engine for bloggers. Contributions are erratic, based on the activity of those in the "Current Projects"
section. Others are more active than me, so the entire project is not in stasis, mind you.
Projects in Maintenance:
-Forecaster.ws A simple and uncluttered weather information service, tailored specifically for mobile
devices. Currently in late public beta.
-PropertyBuilder A proposed alternative to Object#andand and the ilk. Available through the
'gem install propertybuilder' command.
-Zsff A parser/validator for the ZSFF feed format. Version 1.0 released as a gem and is available on
Rubyforge or through the 'gem install zsff' command
-Rhobbler A Last.fm / AudioScrobbler track submission tool for Rhapsody. Currently in public beta.
Plan:
Today, I'm going to have a 4th of July party/Kelly's Birtday party. But it's on the 5th. Because even parties
can be fashionably late.
This week: Super-secret project continues. On Tuesday I hope to release my approval Rails plugin.
Hmm. That looks awfully similar to some other services I use heavily. It's pretty much the amalgamation of my Facebook page, my blog, and my tweets. And this was available in 1971!
The Trouble With finger
You may be wondering "If finger was so great, how come I've never heard of it, and how come we aren't using it now?" Well, finger had a lot of problems, unfortunately. Here's my understanding of what caused the downfall of finger (Also note that I was negative 12 years old when finger was invented, and about 10 when most people stopped using it):
It depended on a doomed computing style. The only way finger really made sense was if everyone at an organization regularly logged into the same physical Unix machine. This made a ton of sense in the mainframe era, but finger's popularity was directly proportional to the popularity of the mainframe.
There were no privacy protections. finger was notorious for being used as a tool for crackers and other nefarious characters to gain information. If you fingered the root of a domain (ie: 'finger @gatech.edu'), you'd get a listing of every user in the system- their phone numbers, and what they were up to. This information is kind of sensitive to just be putting out into the ether. Subsequently, fingering was seen has kind of a rude thing to do to someone unless you knew them and had a justification for seeing what they were up to. This didn't sit well with lots of people and contributed greatly to its demise. finger had no privacy features like Facebook now has. If it did (ie: Here's who my friends/coworkers are, let them see this information. Only display this subset to other users), I think it might still be in heavy use today.
finger was a protocol, and not a platform. There was no party responsible for carrying it forward or for providing necessary upgrades. When Facebook users complained about too much information being available to the public, they instituted incredibly granular privacy controls. When finger users complained about the exact same thing, there was either nobody to complain to, or they said "Well, turn it off." So they did.
Lessons are for Hares
Of course, there's some valuable lessons to be learned here. The main one is that you should always make more of an effort to see what's been done before you. The makers of Facebook shouldn't have just learned about Friendster, but they should have made more of an effort to learn about the earlier ancestors of social networking. If they had looked for and learned about the reasons for finger's demise, they might have avoided about half of the major confrontations that they've had with their users. With a full understanding of history, you can better realize that you are not a unique butterfly, and that your idea is not really that new. You can better gain perspective and learn the lessons of your forebears. This is something that's not unique to technology. You should apply this maxim everywhere in life- especially politics.
The addition of named_scope in Rails 2.1 has revealed several elegant approaches for modeling complex problem domains in ActiveRecord. One I came across recently while working on an app with a somewhat complex permissions system was a permission-based filtering mechanism. In this case I was dealing with permission for a given user to manage an [...]
About Rails 2.1
I can only say that it is still the same, but much better. You can realize it reading the free book that Carlos Brando has published, which resumes al the changes made to this version.
If you grew up in the '80s then this may well ruin your childhood. Sorry about that. Notice the difference in velocity.
Exhibit one: the Ultimate Warriors' Wrestlemania VIII entrance (at about 1:30) :
YouTube link
Verses exhibit two: his entrance a few weeks ago:
YouTube link
He looked like he needed a walking frame to get to the ring. [...]
By the way, my time is PST these days and I live in Vancouver’s downtown until September ??? so if anybody wants to meet ??? drop me a comment or email.
By the way, my time is PST these days and I am live in Vancouver’s downtown until September — so if anybody wants to meet — drop me a comment or email.
Yesterday, it was the first time I went out in Utrecht since smoking is prohibited in clubs, restaurants and bars. Things were different; some places have separate smoking areas, others are completely empty, because everybody stays outside to smoke. Next to that, going out smells differently. Normally, the smell of going out was a combination [...]
My week on the Isle of Oleron: great weather, blue skies, sea breezes keeping the temperatures to loveably warm. The aromatic smells of mediterranean vegetation competing with brine and sea weed from the coast. Long trips around the island on rented bikes, swimming in the sea, eating fresh foods in the garden.
It’s still [...]
I’ve been experimenting with information radiation and build monitors recently, and have extracted some of that into this tiny new project.
There is not a lot to it yet, just a quick hack that displays the current build status in giant NES-like fonts and a little spinning cube (see photo), but it works well as [...]
I once saw a nice solution which would prompt you with the results of new/missing, but i could not find it again…
So for a quick solution i added 2 new aliases:
1: add all new files
2: remove all missing files
#~/.bashrc
alias svn_add_new="svn st | egrep '^\?[ ]+' | sed -e 's|^?[ ]*||' | xargs -i svn add [...]
I think I forgot to write this up. Oops. A few weeks ago I made a tool for making geo microformats. You plonk in a location, some text, drag the pin around and it generates you the appropriate HTML. That’s it really. It’s called the Magical Microformat Maker, and you might like it if you [...]
Last month I had to write some stuff that affected our whole application and therefore I had to run the full test suite several times a day and wait for it to finish every time to find out what the errors are that it displays.
The output in the shape of ‘…E..F..FE..’ is usefull to get an overview of the amount of errors but unless you wait til the end you can’t get a clue as to where the error occurred.
That bugged me quite a while and finally i wrote a plugin that shapes the output much better (at least to my mind).
At that point – without knowing the actual error – you can stop the suite and run the particular test to see what is broken.
When you work with small test suites that may not be a big win, but when you have a lot of code and have it well covered by tests, it can be a huge time saver.
Especially when you test for valid html your test suite can take like hours.
Yesterday was the second of the days this summer I took off to spend with one of our kids. Liam and I, after some deliberation, decided on a visit to San Antonio. (The other contender was to take Amtrak up to Austin and spend the day visiting Barton Springs, Peter Pan Mini Golf, and an [...]
Quando criança, ficava digitando umas listagens de BASIC no MSX que vinha no seu manual. Não sabia o que cada comando fazia, apenas digitava para ver se acontecia alguma coisa. E nunca acontecia. Demorei uns dois anos para descobrir que depois de digitar eu tinha que dar o comando "Run" que era acionado pela tecla F4. A minha maior graça era quando a listagem digitada desenhava alguma coisa na tela, mas eram muitas horas de frustração para um quadradinho monocromático na tela.
Aos 13 por ironia, a primeira linguagem de programação que eu quase aprendi foi Python. Não foi por escolha, sem querer achei um tutorial na internet e a instalação foi fácil. Digo por ironia porque isso foi em 96 e o Visual Basic e o Delphi reinavam eu fui logo me envolver como uma linguagem dinâmica. Claro que eu não sabia o que era uma linguagem dinâmica.
Fui fazer o segundo grau técnico em informática e nessa época os tutoriais de Python já tinham acabado e eu acabei aprendendo VB. O que de certa forma foi legal porque finalmente eu entendi aqueles comandinhos do BASIC.
No primeiro ano, a disciplina que eu mais gostava era a de programação e a linguagem utilizada era LOGO. A primeira coisa que pensei quando eu vi aqueles comandos para mexer a tartaruga foi que isso era coisa para criança (e era mesmo). Tupetudo como sempre, perguntei para o professora porque é a linguagem que agente ia usar era LOGO? Estava doido para aprender C e eu ia ficar um ano fazendo uma tartaruga andar? Pacientemente a professora me explicou que apesar da tartaruga, LOGO tinha todos os conceitos que ela gostaria de ensinar nessa disciplina cujo objetivo era apresentar uma linguagem procedural.
Aceitei a tartaruga e me divertir muito com ela. Hoje recebi um e-mail avisando que o StarLogo atingiu a maioridade. Saiu a versão 1.0. O StarLogo é uma evolução dos conceitos do LOGO para um ambiente tridimensional. Você vai ligando os blocos que se comunicam via mensagens (isso te lembra alguma coisa?) para fazer o tartaruga e um monte de outros personagem ganharem vida em um universo 3D. Essa nova versão traz um monte de novidade. Se na época do BASIC eu tivesse o LOGO talvez teria sido uma criança mais feliz! Volte a ser criança. Baixe o StarLogo e divirta-se.
Another really interesting video from Adobe TV demonstrating some of features related to designer/developer workflow that will be coming in Flex 4 and Thermo. There we can see how easy will be creating custom components and generally design of our apps. Like I said some time ago there is no need to use Degrafa (Declarative [...]
I admit, I’m a Rails fan. Not because it’s the best thing since sliced bread, but because it offers me a way to develop my applications in a fast, consistent and reliable way. But Rails is not perfect… Thanks to its plugin structure it’s already a lot better than most large monolithic solutions but it [...]
Recently I was tasked with upgrading a working Rails 1.2.6 application to version 2.0.2. Here are the majority of issues I found and their fixes/workarounds:
Old reverse_proxy_plugin = broken functional tests:
The units tests were fine, but all the functional tests were broken. Something like this:
post :list, { :site_id => site.id }, { :user_id => user.id }
w...
When you begin to learn DRb, you quickly land on the famous Chad Fowler page, entitled “Intro to DRb”.
The “Concurrency” chapter is particularly interesting when you want to make a local resource available in the wild, allowing one request at a time on your resource.
So, with DRb, a dash of method_missing and a pinch of [...]
Disclaimer: This is a publicly accessible database. The views and opinions of originators and contributors expressed on this site do not necessarily state or reflect those of DSC Limited. No representation or warranty is given as regards to any applicability of any suggestion, its accuracy or completeness.