deekayen's blog
I was a Drupal App Store hater
I think I've only seen the idea of a Drupal App Store floated on Twitter. However as the movement continues for the meta-issue on making core maintainable, I can totally see what the Drupal App Store people were talking about. It's just too bad they associated with with a highly profitable monster corporation.
One thing Drupal does leverage better than any other is a single, central authority for downloading contributed modules and Drupal doesn't use that to its advantage as I think it could. Let's not call that central location a Drupal App Store. Let's just call it the Drupal Module Installer. I bet someone at Lullabot can come up with a better name, but it can't have "App" or "Store" in it.
I think the overall Drupal maintainability issues is a symptom to the need for an improvement to the module search and installation process. If you could browse popular modules in contrib from your Drupal site, which don't come included in the .tar.gz, and then could install them without having to do extra chmodding, ftp, or sftp config, then that's the vision I see for the how to get this kind of functionality as part of an install profile.
The installer should have some magic sauce to handle the installation. It's possible that it could borrow from the Drush engine, but Drupal should never expect the average Drupal site administrator to need to resort to using a terminal to install a module. Solve the issue of difficult interaction with contrib, and issues like arguing about OpenID, blog, and poll in core I think will go away because then putting OpenID in core will be a transparent matter of `drush dl openid` in the background magic sauce.
Submitted by deekayen on Sun, 08/28/2011 - 7:45pm
24 commentsMy Drupal 8 vision statement
When I was new to the Internet, I volunteered for a corporation that hosted websites. I wanted to help create a community where people share their graphics and text with passers by. That little company was named Geocities. It was popular and grew fast.
They had a program they fostered of members, called Community Leaders. They even hired a full-time team of staff to help coordinate the Community Leaders and provide infrastructure. We had a forum where we talked about TOS violations, design awards, greeting new members, etc. I wrote a weekly column I posted to the forum called, "My weekly suggestion." I had an opinion about everything. Soon Geocities went public, then was bought by Yahoo!. It got so big that they didn't need us volunteers anymore. We were cast aside, our forum disabled and deleted, and our contacts at Geocities were told not to talk to us anymore.
Fortunately, even though Drupal is growing, and its best parts are getting 0wned by venture capitalists, there's no entity (yet) to cut-off my unsolicited opinions about Drupal.
The Drupal Association has grown up and out-grown the need for a General Assembly now. It has regular, steady income from DrupalCons. The mere existence of the event seems to attract a minimum quota of people and their money.
The DrupalCon revenue for the Association is good, and it's good for Drupal. It funds the infrastructure and the people who host that infrastructure. Highly specialized and skilled technologists are in demand, straining their little bits of volunteer time, especially those with a bend towards Drupal. That's good, too, for the individuals.
Venture capitalists are interested in Drupal. I think I read a tweet from Dries or someone that Drupal runs 1% or 10% of all websites? Either is a crazy big figure. I've been trying to hire a great Drupal developer at Classic Graphics for months. People have found a niche within Drupal development, specializing in a specific clientele. They won't talk to me for the wrong portfolio. I don't talk to other shops since I turn up my nose at their portfolio as well. We're in such high demand, we can be the snobs that we are.
However in the face of all this growth, I left the Drupal Association GA just before the GA dissolved because it grew up to something out of my interest.
Now I face the upgrade task on my personal websites and at work to move from Drupal 6 to Drupal 7, just to keep up with the latest module updates. At Classic Graphics, the upgrade will take us months. It'll be nice to use the new coder update tools to get us started, but I can't imagine that doing the multitude of API updates alongside new feature development will come any faster than a timeline measured in months.
My blog is simple. I have few modules I actually need. It can probably all be wrapped into pathauto, blog, image, book, comments, and mollom. I consider myself a rather skilled developer, been at it for years, and in the path of Drupal news much more than the far majority of Drupal users. In a weekend, giving it a real effort, I failed to even get my site to stop white-screening in Drupal 7. I'm not at mad at any developer, maintainer, or myself, just disappointed.
When I tell people what I do, I still throw Drupal into the description somewhere. I describe Drupal as a "website management software package," but I see the Drupal core team, as nebulous as that is, struggling with the identity and target audience for Drupal. Is Drupal an enterprise platform for a Lullabot to run the Grammys, for major universities to serve websites to 50,000 students, for the US government to host the executive's homepage? Is Drupal for my non-technical, 60-year-old Aunt to download, find a host, and start her own blog, or is it for me to host this site, or will it be a good resource for me to throw up an alternative to a meetup group for a local mom's club where they can manage membership, send email announcements, and schedule meetings? Maybe it's good for a forum.
For anyone who's been looking at Drupal, any version, they should laugh a kind of pitiful laugh at the last, forum suggestion.
Almost 2 years, 2 days ago, I posted a test for the core development group. I titled it Remove OpenID from core. Today I saw a post from sun about The Drupal Crisis, attempting to sum up how "Drupal core is not maintainable anymore." He should know, he's a badass. Seriously, I mean that in the best light. However, the same commentary for an unmaintainable core is coupled with a comment on my openid issue about *expanding* the core implementation of OpenID and adding two more different implementations. I can't help but point out that chx closed my openid issue, though he tweeted about the article from @tha_sun in apparent endorsement of its contents, even before it was officially tweeted. Perhaps I'm mis-interpreting the entire connection I'm drawing?
If the reason that something needs to be in core is because it won't succeed in contrib, that's a bad reason. Core devs have a multi-specialized focus of talent on *system design*, or should anyway. I'd rather see the effort put into creating an interface, call it an API if you must, for contrib modules to plug into core authentication. If there is a team of developers interested in maintaining a specialized feature, those same people can be just as interested maintaining it in contrib as in core.
What makes it possible for me to use Drupal successfully at Classic Graphics is the hook system. I can plug anything in anywhere and keep it secure with database-scrubbing APIs. It manages users, their roles, and permissions for me. When I want to put data in Drupal, I can CCK-it in, and Views it out.
One thing that scares me about how Dries and Angie handled Drupal 7 was their tendency to follow shiny objects. It happens everywhere in the Drupal leadership. It scares me a bit in the Drupal Association. I went nuts the first time I was to vote on a Drupal Association budget and it projected spending far in excess of any previous DrupalCon revenues. Man oh man, do Drupal entrepreneurs shoot high! Most of the time, my grumbling was for nothing - it's all worked out. I'm a grouch. Ask my wife, she'll agree. However, I'm certain Drupal core has lost focus. It did not improve in Drupal 7 on the things that made it great. *The* reason for me to upgrade will be only to keep in step with the latest module releases.
This whole discussion isn't new. The theory of smallcore has been around for at least 2 years. Adrian Rossouw wrote about it in 2009. The smallcore.org domain keeps getting redirected to a new article about it by Eaton.
What's the plan to course-correct the development of core, and more importantly who will do it, as chx asked almost 2 years ago? I'd sure feel better if I heard Dries say Drupal is off course.
I barely keep up with my contrib modules. I decided 6 years ago that I didn't have the stomach for core development's atmosphere for bantering reviews on issues, so I tend to only snipe off patches which require a few lines. Dealing with simpletests is an outright deterrent to my participation.
All I have to offer right now is my long-term background with Drupal to arm-chair blog about it. My proposal, regardless of my specific distaste for OpenID and it's likeness to Microsoft's login, is simple and generic. A mission statement for Drupal 8.
Foster a Drupal core where features will succeed in contrib.
That's it. Broad isn't it?
Return Drupal to a website content management platform. Drupal's inputs and outputs should be more abstract than blocks. It should be more abstract than panels. Each needs a system to manage their outputs.
When did phptemplate become the only template engine? I don't mean when did xtemplate and smarty get removed, I mean when did it take over in the minds of developers as the only way to do template development? Why couldn't we drop a python-based template engine in and have it work just fine with the rest of core?
Maybe to handle contrib-friendly-ness, Drupal has to make the core (and security) infrastructure necessary to import modules for my aunt as database-stored, eval()-executed, magically-handled in the background, super sauce, while still supporting filesystem-hosted versions for the enterprise. I don't know, I just made that idea up tonight.
As an example of something I think is on the right track, take DBTNG. Why is the Drupal collective trying so hard to keep pgsql and sqlite in core? Damien and Karoly have done a perfectly fine job of creating alternate engines and they can work without being in core. The database.inc design is just right for dropping in new engines and keeping the API the same to other non-database contrib.
I don't think I'll do any good by pointing out specific modules I would target for contrib-formation. There are unfortunate matters of logistics to getting back on track. I think when Drupal realizes it's purpose in life, it will feel awfully silly about putting on so many module pounds and it will shed them to contrib.
I'd like to think there would be half as many modules in Drupal 9 core as there are in Drupal 7, but that's probably an inappropriate measure since what I hope for is a transformation of modules which have highly specialized use cases to ones which manage the inputs and outputs of data generically. By managing the inputs and outputs, that will require having some user access control, some file management, and some software management.
P.S. I mentioned a lot of specific names in this article. If one of them is you, it is because I see you as a figurehead in Drupal. You have done great things. By comparison, I have done very little, and for that, I should be thrown in the pool with all the dead, rotting kittens from bad patches. My intention was to be cautiously inspirational, but now it's 2am, I'm not going to review my rambling, and I'm just hoping somewhere in the previous paragraphs that I said something that accomplished that.
Submitted by deekayen on Wed, 08/24/2011 - 1:26am
7 commentsReally verbose instructions on Bitcoin mining with Ubuntu 11.04 Natty Narwhal
This is simply a log of what I did to my machine while I was getting mining working. It will probably cause your computer to catch fire. If you think fire is fun to look at, then proceed with reading or even following these instructions.
I like to have more use for my computers than just mining, like sitting down at it to use a web browser, so this is not a headless configuration.
I installed the ubuntu-11.04-dvd-amd64.iso.torrent version of Ubuntu onto an AMD-core tower with /boot, encrypted swap, and encrypted / in three primary partitions using the text installer. The packages I picked were the Ubuntu Desktop group (default) and OpenSSH server.
When it booted, I removed 2 Gnome workspaces for a total of 2 and then installed all the updates recommended by the Update Manager GUI. While waiting for the updates to download and install, I installed the following firefox addons:
https://addons.mozilla.org/en-US/firefox/addon/duck-duck-go-ssl-search-p...
https://www.eff.org/https-everywhere/
https://addons.mozilla.org/en-US/firefox/addon/adblock-plus/
https://addons.mozilla.org/en-US/firefox/addon/betterprivacy/
https://www.torproject.org/torbutton/
https://addons.mozilla.org/en-US/firefox/addon/force-tls/
https://addons.mozilla.org/en-US/firefox/addon/beef-taco-targeted-advert...
https://addons.mozilla.org/en-US/firefox/addon/lazarus-form-recovery/
https://addons.mozilla.org/en-us/firefox/addon/invisiblehand/
https://addons.mozilla.org/en-US/firefox/addon/retailmenot/
https://addons.mozilla.org/en-US/firefox/addon/downthemall/
I did not install the restricted video drivers recommended by Ubuntu for my Radeon 6790.
Reboot. Wasn't requested, but just making sure updates are happy.
In System - Preferences - Appearance, I switched to Radiance.
In Synaptic Package manager, I added the Canonical Partners repo and allowed statistical information.
In Firefox, I un-checked to block web attacks and forgeries and told sites I don't want to be tracked.
sudo apt-get install libqtgui4
sudo apt-get install python-setuptools python-numpy subversion g++ libboost-all-dev
sudo apt-get install dkms libc6-i386 lib32gcc1
cd ~/Download
wget http://www2.ati.com/drivers/linux/ati-driver-installer-11-5-x86.x86_64.run
sudo sh ati-driver-installer-11-5-x86.x86_64.run --buildpkg Ubuntu/natty
sudo dpkg -i *.deb
sudo apt-get -f install
sudo aticonfig -f --initial --adapter=all
sudo rebootcd ~
mkdir bitcoin
cd bitcoin
wget http://downloads.sourceforge.net/project/bitcoin/Bitcoin/bitcoin-0.3.23/...
tar xzvf bitcoin-0.3.23-linux.tar.gz
mkdir -p ~/.bitcoin
echo "rpcuser=user" >> ~/.bitcoin/bitcoin.conf
echo "rpcpassword=password" >> ~/.bitcoin/bitcoin.confApparently the python-jsonrpc build makes links inside the SVN checkout directory, so put it where you actually want it.
cd ~
svn checkout http://svn.json-rpc.org/trunk/python-jsonrpc
cd python-jsonrpc/
sudo python setup.py installcd ~
wget http://download2-developer.amd.com/amd/APPSDK/AMD-APP-SDK-v2.4-lnx64.tgz
tar xzvf AMD-APP-SDK-v2.4-lnx64.tgz
echo export AMDAPPSDKROOT=${HOME}/AMD-APP-SDK-v2.4-lnx64/ >> ~/.bashrc
echo export AMDAPPSDKSAMPLESROOT=${HOME}/AMD-APP-SDK-v2.4-lnx64/ >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=${AMDAPPSDKROOT}lib/x86_64:${LD_LIBRARY_PATH}' >> ~/.bashrc
source ~/.bashrc
cd /
sudo tar xfz $AMDAPPSDKROOT/icd-registration.tgzcd ~
wget http://pypi.python.org/packages/source/p/pyopencl/pyopencl-0.92.tar.gz
tar xzvf pyopencl-0.92.tar.gz
cd pyopencl-0.92
./configure.py --cl-inc-dir=${AMDAPPSDKROOT}include --cl-lib-dir=${AMDAPPSDKROOT}lib/x86_64
make
sudo make installwget http://svn3.xp-dev.com/svn/phoenix-miner/files/phoenix-1.50.tar.bz2
tar xvf phoenix*.bz2sudo touch /usr/local/bin/startminer.sh
sudo chmod 755 /usr/local/bin/startminer.sh
sudo gedit /usr/local/bin/startminer.shHOMEDIR=/home/david
MINERSERV=api.bitcoin.cz:8332
MINERUSER=username.machine${1}
MINERPASS=password${1}
export AMDAPPSDKROOT=${HOMEDIR}/AMD-APP-SDK-v2.4-lnx64/
export AMDAPPSDKSAMPLESROOT=${HOMEDIR}/AMD-APP-SDK-v2.4-lnx64/
export LD_LIBRARY_PATH=${AMDAPPSDKROOT}lib/x86_64:${LD_LIBRARY_PATH}
DISPLAY=:0 aticonfig --od-enable --adapter=all
DISPLAY=:0 aticonfig --od-setclocks=850,1050 --adapter=${1}
cd ${HOMEDIR}/phoenix-1.50
echo "Starting Miner: ${1}"
${HOMEDIR}/phoenix-1.50/phoenix.py -u http://${MINERUSER}:${MINERPASS}@${MINERSERV} -k phatk VECTORS FASTLOOP BFI_INT AGGRESSION=6 DEVICE=${1}I did confirm that phatk is faster on my Radeon HD 6790 than poclbm. Aggression 7 is usable, but you can notice a difference in the responsiveness of the desktop. Setting the clock at 930 didn't crash the system, but made windows draw incorrectly, which didn't resolve until I took it back down to 850 (840 is the default). Memory changes made no big difference.
My understanding to do solo mining is that if I run bitcoind from the official bitcoin package, I'd be able to use the credentials I setup in the .bitcoin directory to do localhost mining on a second GPU. Then I could have one GPU in a pool, and a second doing the lone search for a full prize 50 block.
Reference material:
http://forum.bitcoin.org/index.php?topic=9239.0
http://forum.bitcoin.org/index.php?topic=7514.0;topicseen
http://sectio-aurea.blogspot.com/2011/05/bitcoin-mining-on-ubuntu-1104-n...
Submitted by deekayen on Wed, 06/15/2011 - 10:30am
Add new commentDruplicon MOTD
At DrupalCon Chicago 2011, Dmitri Gaskin had a presentation titled, "From Zero to Distribution using Features, Profiler, and Drush Make." If you don't already know how to make your own Drupal distribution, he summed up the entire process expertly, however there was one detail in his presentation I've never seen before; it was an ASCII Druplicon when he opened his terminal.
Linux users call that the message of the day, or MOTD. On MacOS, that file is located at /etc/motd, but isn't created in a default installation. If you'd like a Druplicon MOTD, I reproduced what Dmitri had in the video on archive.org. There are versions for white (like Dmitri) and black (like mine) terminal backgrounds.
![]()
I know I could hide the last login by touching ~/.hushlogin, but that would also hide the motd output, so if someone would like to leave a comment on how to print the motd, but not the last login, that's the last piece to rounding out this copycat job. Otherwise, the solution is to add extra newlines at the bottom of the motd to cause the last login information to scroll off the screen.
Submitted by deekayen on Fri, 05/06/2011 - 7:48pm
5 comments | 2 attachmentsRecovering a deleted Git branch
The branch deekayen/squeeze is what I deleted both local and remotely. I happened to have deekayen/squeeze on a different repository, and deleted the branch from the wrong one. This is how I recovered it because nobody had run git gc yet. The reference files were still there, but without pointers.
deekayen-macbook:pifr_setup davidnorman$ git reflog
9da75eb HEAD@{0}: checkout: moving from deekayen/squeeze to master
f157a56 HEAD@{1}: commit: git-core and patch live in the drupaltestbot control file for deeekayen/sq
fe562c2 HEAD@{2}: checkout: moving from master to deekayen/squeeze
9da75eb HEAD@{3}: checkout: moving from squeeze to master
fe562c2 HEAD@{4}: checkout: moving from master to squeeze
9da75eb HEAD@{5}: checkout: moving from deekayen/squeeze to master
f6465ad HEAD@{6}: commit: patch and git-core are in the deekayen/squeeze branch of drupaltestbot now
fe562c2 HEAD@{7}: checkout: moving from master to deekayen/squeeze
9da75eb HEAD@{8}: checkout: moving from squeeze to master
fe562c2 HEAD@{9}: commit: removing backports from deb installs
9da75eb HEAD@{10}: checkout: moving from master to squeeze
9da75eb HEAD@{11}: commit: adding my ssh keys to the setup process
1118e62 HEAD@{12}: clone: from deekayen@git.drupal.org:sandbox/rfay/1089432.git
deekayen-macbook:pifr_setup davidnorman$ git checkout -b deekayen/squeeze fe562c2
M sources.list
Switched to a new branch 'deekayen/squeeze'
deekayen-macbook:pifr_setup davidnorman$ git log
commit fe562c27dfd0c5f61088f9953b0ff05b91273c2a
Author: David Norman
Date: Fri Mar 11 12:48:27 2011 -0600
removing backports from deb installs
commit 9da75eb68f86c16e829b3e627b1ad3d0ac536056
Author: David Norman
Date: Fri Mar 11 12:28:46 2011 -0600
adding my ssh keys to the setup process
commit 1118e6274f3f403872f38c43c598a1efc1554fcc
Author: rfay <randy@randyfay.com>
Date: Mon Mar 7 14:59:26 2011 -0600
New database dump that disallows visitors creating a new user
commit 5676641390aa1ae8212f60a13df867305e208b72
Author: rfay <randy@randyfay.com>
Date: Fri Mar 4 22:04:45 2011 -0700
Update the database to have correct variable settings for simpletest project URL
commit ea04b4d245c33bee34126b4fb5f970125414c5c9
Author: rfay <randy@randyfay.com>
Date: Fri Mar 4 21:24:38 2011 -0700
Force patch to lenny-backports - pick up 2.6 which will apply git format-patch type patches
deekayen-macbook:pifr_setup davidnorman$ git push origin deekayen/squeeze
Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 328 bytes, done.
Total 3 (delta 2), reused 0 (delta 0)
To deekayen@git.drupal.org:sandbox/rfay/1089432.git
* [new branch] deekayen/squeeze -> deekayen/squeeze
deekayen-macbook:pifr_setup davidnorman$Submitted by deekayen on Fri, 03/11/2011 - 4:24pm
1 comment