Selasa, 08 Februari 2011

Do rapid DITA authoring in FrameMaker 10!

Hello Framers,

Hope you are well. First of all, I wanted to share with you my twitter handle. For those of you on twitter, you can follow me on Twitter at @KapilVermaAdobe to keep up-to-date on what’s going on in the FrameMaker world. I will also be tweeting about upcoming events and my travel plans so that we can meet in person. Please follow me on twitter if you would like to get this information.


In my blog post today, I am going to be describing several productivity enhancements related to DITA authoring in FrameMaker10. Through these enhancements, you can author DITA content faster and more efficiently in FrameMaker10. As always, remember to turn your computer speakers on while watching the videos.


1. Drag and Drop Across Maps


Rather than cut and paste topicref elements between maps, they can be reorganized by using drag and drop.




View video in a new browser window.


2. Insert Multiple Topicref Elements in a DITA Map


More than one <topicref> element can be added to a DITA map at the same time.




View video in a new browser window.


3. Support for <topicgroup> and <topicset> elements


Topic groups allow you to gather topics together, optionally giving the group a title. Topic sets allow you to single source groups of topics between maps




View video in a new browser window.


4. Switch to Resource Manager (RM) or Document View in a DITA map

Change between two primary views of a map in only one click. Both the Resource Manager View and the Document View provide value when working with a DITA map. Switching between them is as simple as clicking a toolbar icon.




View video in a new browser window.


Hope you will find these enhancements useful and find that they make your more productive in your daily work.


Until the next blog post….


Have a nice weekend,


Kapil Verma


Product Manager – FrameMaker and FrameMaker Server


Follow me on Twitter: @KapilVermaAdobe

Introducing Photoshop Express 1.5 for iOS Devices


Our team is excited to announce the latest update to our Photoshop Express app for iOS devices. The app is Adobe’s free photo capture and editing tool. The Photoshop Express 1.5 update is now available for download here on Apple’s App Store.


The latest release helps simplify the photo capturing experience by adding a new camera workflow for rapid photo-taking and full Retina display support for smooth, sharp photos.


The Express team is bubbling with anticipation for future improvements, so please let us know what you think and what functionality you’d like to see within the app moving forward in the comments below.


Thanks for being a Fan!

Deploying LiveCycle Mosaic 9.5 on WebLogic


If you get the following exceptions while deploying a Mosaic application to Oracle WebLogic 10.3, you might need to perform additional configuration:


com.adobe.livecycle.mosaic.repository.api.RepositoryException: An error occured during operation callWebDAV on repository WebDAV with Method: PROPFIND, Path: /repository/LiveCycleMosaic/Catalogs/SalesDashboardCatalog/descriptor.xml


Caused by: java.net.ConnectException: Connection refused: connect


These configuration changes require that you change an XML file inside the mosaic.war file. So you need a fairly funtional zip tool such as WinZip, WinRAR or 7Zip.


1. Change Repository from LiveCycle DB to the Local Filesystem


The file system repository is better performant than the LiveCycle database repository. As the readme notes, you have to edit the file mosaic-context.xml in the mosaic.war file (in /META-INF/spring/) so that the following is uncommented:

<alias name=”mosaicFileSystemRepository” alias=”mosaicStorageRepository”/>

and the following is commented out:

<alias name=”mosaicWebdavRepository” alias=”mosaicStorageRepository”/>


Also uncomment the File-System Repository Configuration Bean and specify the location of the folder that would serve as the filesystem repository – make sure this is on high performance local storage:


<bean id=”mosaicFileSystemRepository” class=”com.adobe.livecycle.mosaic.repository.filesystem.FileSystemRepository”>

<property name=”fileSystemRootPath” value=”D:\WL_DOMAINS\lc_domain\lc_mosaic_repository” />

<property name=”pathComponentSeparator” value=”\” />

</bean>


2. Change User from Default ‘Administrator’ to Custom


The LiveCycle Mosaic Administrator Guide provides instructions on how to do this..


a) Create a new user (‘mosaicwebdav’ in this example) in LiveCycle using the LiveCycle AdminUI. Create a new role for this user with following system privileges:


- Repository Read

- Repository Traverse

- Repository Write

- Service Invoke


b) Edit mosaic-context.xml and comment out ‘WebDAV Repository Configuration 1 (default) ‘ and uncomment ‘WebDAV Repository Configuration 2‘ to make it active.


<bean id=”mosaicWebDAVAuthenticationParams” class=”com.adobe.livecycle.mosaic.webdav.config.BasicAuthenticationParams”>

<property name=”username” value=”mosaicwebdav” />

<property name=”password” value=”password” />

</bean>


3. Specify WebLogic Host Name and Port


Edit mosaic-context.xml.


<bean id=”mosaicWebDAVConfigParams” class=”com.adobe.livecycle.mosaic.webdav.config.ConfigParams”>

<property name=”protocol” value=”http” />

<property name=”hostname” value=”server.company.com” />

<property name=”port” value=”8001” />

<property name=”authenticationParams”><ref bean=”mosaicWebDAVAuthenticationParams”/></property>

</bean>

Programmatically merge multiple LCA files using Apache Ant


A couple of colleagues needed a solution where they could take multiple unrelated LiveCycle ES applications already exported as LCA (LiveCycle Archive) files and programmatically merge them into a single LCA file. What’s the use case? Let’s say that you have a source repository of small LiveCycle ES applications that are re-usable. Then, based on a set of requirements, you need to build a new LiveCycle ES application that would include those re-usable smaller apps. Of course, you could just import each application individually into your LiveCycle ES development environment. But that’s not real exciting is it? And what is more exciting than building an Apache Ant build script to do some magic?


I created a build.xml file that will grab all LCA files stored in a src folder(see the build.properties file for configuration) and extract them into a work folder. This is pretty trivial since LCA files are just ZIP files that contain the application assets as well as a file called app.info. This app.info file is the key. It’s an XML file that describes the LiveCycle ES application and what operations should be executed when imported into a LiveCycle ES server. Here comes the tricky part…


To create a “merged” LCA file, I needed to parse each app.info file of the source LCA files, build a new master and inject the individual application descriptors from the source LCA files. Can you imagine my surprise when I realized that there was no existing Ant task that does this?!?! Yeah, right! OK, so I have to create a custom Ant task – great! Turns out, yet another trivial job. It was very easy to create my own custom Ant task and expose it in the build.xml. As a reference, I used this short tutorial. All I had to do at that point is write the Java code to load each app.info file into an XML DOM, extract the necessary nodes, build a new master app.info and import the previously extracted nodes. Piece of cake ;o).


Once I included my new custom Ant task into my build.xml, I just passed in the fileset reference that contained all of the app.info files and voila… I got my first merged app.info file. We just then drop that bad boy into the build folder, copy the asset folders that came with each LCA file in there too; and with one final zip ant task package up the combined LCA file.


Note: I also used the ant-contrib package because I needed a for loop in my build.xml in order to loop through each LCA file.


You must have Apache Ant installed and configured on your machine.


Attached Files:


Binary Distribution – Includes build.properties, build.xml, lib folder.


Source – Includes the Java source files for the custom Ant task.

Premiera Acrobat X w 23 językach


Z przyjemnością informuję, że programy Adobe Acrobat i Reader X są teraz dostępne w językach francuskim, niemieckim, japońskim, włoskim, szwedzkim, hiszpańskim, holenderskim, portugalskim (brazylijskim)), norweskim, fińskim, chińskim uproszczonym, chińskim tradycyjnym, koreańskim, czeskim, węgierskim, tureckim, rosyjskim, polskim, chorwackim, rumuńskim, słowackim, słoweńskim i ukraińskim. Program Adobe Reader X jest dodatkowo dostępny w językach katalońskim i baskijskim.


Prócz wprowadzenia na rynek wspomnianych wersji językowych zawarliśmy również funkcje właściwe dla konkretnych regionów. Na przykład:


Funkcja wyszukiwania i redakcji zawiera wzory właściwe dla 6 krajów: USA, Wielkiej Brytanii, Kanady, Francji, Niemiec i Japonii. Zatem użytkownik z USA może wyszukiwać celem usunięcia amerykańskiego numeru ubezpieczenia społecznego lub amerykańskiego numeru telefonu, zaś kto inny we Francji może szukać „numéro d’identification nationale” lub numeru telefonu w formacie francuskim. Interfejs użytkownika umożliwia wybór wzoru, z którego użytkownik będzie chciał skorzystać. Oto zrzut ekranu:


search and redactOd listopada 2010 r. zwiększamy ilość krajów, na terenie których można zakupić usługi Acrobat.com, od zaledwie 3 (Ameryka Północna) po 38 (cały świat). Dlatego właśnie usługi, takie jak Acrobat.com, SendNow i CreatePDF są teraz dostępne do kupienia na całym świecie dla użytkowników, którzy chcą z nich korzystać wraz z aplikacją Reader/Acrobat LUB indywidualnie w przeglądarce. Spójrzcie sami:


acrobat dot com


Dla programu Adobe Reader, poza wsparciem dla języków, o czym wspomniano wyżej, opublikowaliśmy aplikację Adobe Reader X dla systemu Android w 13 językach: angielskim, francuskim, niemieckim, włoskim, holenderskim, duńskim, brazylijskim-portugalskim, szwedzkim, rosyjskim, polskim, czeskim i tureckim. Więcej na temat programu Reader X można przeczytać we wcześniejszym ogłoszeniu Steve’a.


Mam nadzieję, że wypróbujecie nasz produkt. Z chęcią poznam Wasze opinie. Komentarze możecie zamieszczać na Forach Adobe, które są również dostępne w językach francuskim, niemieckim, japońskim i hiszpańskim.


Rob Jaworski


International Program Manager


Adobe Systems, Inc.

Convert files to PDF using Adobe Reader


Adobe Reader X features nifty integration with Acrobat.com that lets you quickly convert many types of files to PDF. At last count, many popular formats, including the following, are supported for conversion:



  • Adobe PostScript (PS) and Encapsulated PostScript (EPS)

  • Adobe Photoshop (PSD), Adobe Illustrator (AI), and Adobe InDesign (INDD)

  • Microsoft Excel (XLS, XLSX), Microsoft PowerPoint (PPT, PPTX), and Microsoft Excel (XLS, XLSX)

  • Text (TXT) and Rich Text Format (RTF)

  • Image files (bitmap, JPEG, GIF, TIFF, PNG)

  • Corel WordPerfect (WPD)

  • OpenOffice and StarOffice presentation, spreadsheet, graphic, and document files (ODT, ODP, ODS, ODG, ODF, SXW, SXI, SXC, SXD, STW)


To walk you through the process, let me convert a PowerPoint presentation to PDF. (Simply click any of the screenshots below to view them full-size.)



  1. In Adobe Reader X, select File > CreatePDF Online.

  2. In the Create PDF Files area in the right pane, click Add File and then select the file that you want to convert to PDF. I selected Sample_presentation.pdf.


  3. Click Convert and, when prompted, sign in using your Adobe.com credentials (Adobe ID). Adobe Reader uploads the file to CreatePDF Online and then converts it to PDF. The converted file is saved online by default.


  4. To save the converted file locally to your computer, click Retrieve PDF File. Adobe Reader displays the CreatePDF repository in a browser window, so that you can work with it.

    • Select the newly-created PDF file (in my case, Sample_presentation.pdf) and click Download. Save the file to a local directory.




  5. Note that you can also use the online CreatePDF view to combine multiple PDF files. Now, isn’t that cool?



    I’m sure you’ll love these new Adobe Reader features! For more information, refer to this Help article.

Designing templates in FrameMaker (Part 4)


In this detailed blog post series, Asit Pant, a veteran technical communicator and FrameMaker community member, guides you through the main steps in the process of creating a FrameMaker template. The information in this series is targeted mainly toward creating unstructured templates, but many parts of it also apply to structured templates.


In this post, we will discuss numbered lists. Numbered lists are typically used for steps. Something like:




  1. Open the “other program”

  2. Try to work with numbered lists.

  3. Control your anger.

  4. Switch to FrameMaker.

  5. Live happily ever after.



You see, numbered lists in FrameMaker really work. You just need to set them up correctly, once, and as step 5 says, live happily ever after.


So let us set up a numbered list. For this, we will use a little bit of mathematics—just a little bit, I assure you, and there will be no pain.



In FrameMaker, a numbered list comprises two paragraph tags – the first one to set up step 1 and the second tag to set up the subsequent steps (2, 3, and so on). Why? Well, this is because we define the first step using the building block n=1 (n as in number, so it means that the first step starts with the number 1). The subsequent steps are defined using the building block <n+>, which instructs FrameMaker to increment the number in previous step. So, the first step always has the number 1, and the subsequent steps are numbered 2, 3, and so on. Watertight logic, this, and there is no scope for confusion or things going wrong.


Here is how you specify the building blocks for the two numbered lists.


The paragraph tag to be used for the first step has the numbering properties as follows:



And, the paragraph tag to be used for the subsequent steps has the numbering properties as follows:



I know what you are going to ask now: “What is that N: thingy there? You said this was going to be easy!”


It is easy, actually. The N: thingy is something like an identification badge. For example, you can have a numbered list with numeric characters (1, 2, 3…) and another one with Roman numerals (I, II, III). Different series for these two help FrameMaker to determine which is which. The series label is an alphabet, following by a colon, for example, A: or H:. You specify the same series label for both the paragraph tags. You can use any alphabet character to identify a series. A: is as good as Z:.



Do as the Romans do


Wait, you say. How about using alphabets instead of numbers—steps that start with A, B, C instead of 1, 2, 3…? Or how about using Roman numerals: I, II, III, and so on? No problems about that. Instead of specifying “n”, you specify “A” or “a” to use alphabets (upper- or lower-case respectively) and “R” or “r” for Roman numerals (again, upper- or lower case).


Here is how you set up two paragraph tags (remember, we need two paragraph tags—one for the first step and the other for the subsequent steps):




Numbers within numbers (or nested numbered lists)


One day, your boss will come up to you and say, “This numbered list is OK, but the senior management wants numbers within numbers. Please send them to me before the end of the day.” What the boss means is this:



See the steps a, b, and c in step 4? They are the numbers within numbers. For this, you create two additional paragraph tags to use for sub-steps a, b, and c in step 4. Here are the building blocks for all the four paragraph tags:





First step: A:<n=1>


Next step: A:<n+>


First sub-step: S:<a=1>


Next sub-step: S:<a+>


See, how easy FrameMaker makes it for you leave for the day.


Numbered headings


Now, suppose you want to create a formal-looking report that has headings numbered like these:



I could go on and add more headings, but you get the point. (If you notice the absence of humor from the headings, it is because this is a formal-looking official report. No humor allowed, sorry).


Here are the building blocks:


Heading: H:<n+>


Sub-heading: <n>.<n+>


Sub-sub-heading: <n>.<n>.<n+>


That’s it. And I promise you it works or your get your money back. Try it and you will like it.


In the next blog post in this series, we will talk about headings that have some specific text added to them automatically. Stay tuned!


Earlier in this blog post series…


(rt) Illustrations: 1.21 Jiggawatts, The Four Icon Challenge, & more


About Cognitive Accessibility & Related Articles


Cognitive accessibility is closely tied to WCAG 2.0 Principle 3: Understandable which states that 'Information and the operation of user interface must be understandable'. (WebAIM does a great job in explaining what Cognitive Disabilities actually are.) The guidelines under this principle are:

  • Guideline 3.1 Readable: Make text content readable and understandable.
  • Guideline 3.2 Predictable: Make Web pages appear and operate in predictable ways.
  • Guideline 3.3 Input Assistance: Help users avoid and correct mistakes.

There's been an increase in articles about cognitive accessibility which is great because it's the most difficult and typically least discussed. Here's a great list of them below. Feel free to comment with any that were missed.

Minggu, 06 Februari 2011

Houston's Southwest Drupal Summit is Coming

There are a lot of good conferences taking place this Spring and Summer, but what do you do for the Winter months? If you're smart, you start looking for a conference in warmer climate. If you're a Drupal enthusiast (we'll assume you're already smart) then you have to consider attending the two-day Southwest Drupal Summit in Houston, Texas. This January 27-28, 2011 conference brings Drupal experts, novices, and business leaders together to share successes, explore opportunities, and learn more about why and how Drupal is making headlines across the world as a superior enterprise-level web application platform.

Southwest Drupal Summit - January 27-28, 2011 - Houston, TXThis regional event will provide participants with insights and techniques for building solid websites and application. Attendees will hear from Drupal experts in the areas of Development, Design and Business Strategy in order to acquire new skills and hone best practices. Business leaders will share their success stories and implementation strategies, offering opportunities to learn from real-world examples. Featured speakers include Angela Byron (Lullabot, Drupal 7 core maintainer), Kyle Rankin (Linux Magazine), James Walker (StatusNet), Kieran Lal (Acquia), and many more.


If you decide to go to the conference, you can purchase your tickets at the Southwest Drupal Summit website. CMS Report is a media sponsor for this event. You do know what that means, don't you? Whisper the secret code, CMSREPORT, and the event organizers will knock $50 off the asking price, making the registration fee only $65 for this conference.

Report: Tesla Model X crossover coming to Frankfurt?


Filed under: , ,

Tesla Model S


Tesla Model S - Click above for high-res image gallery



Up to this point, the only actual vehicle Tesla Motors has offered for sale is the all-electric Roadster. But the Silicon Valley-based automaker has drummed up a ton of interest and money by showing off its next planned product, the Model S sedan. It looks as if that trend will continue, as a report from the fine folks at Car and Driver suggests that the automaker's new crossover, the Model X, will be shown off for the first time at the Frankfurt Motor Show this fall. This makes some sense, since Tesla CEO Elon Musk has said that we'll get to see the Model X before the end of the year. The Los Angeles show later in the fall would be another possibility.



Assuming this report is accurate, it's worth noting that the CUV's appearance in Frankfurt will mark the first time Tesla has used a major auto show to introduce a new model - both the original Roadster and the Model S sedan were both unveiled in smaller, private events.



The CUV will be based on the same underpinnings as the Model S sedan, which was designed from the start to allow for future model expansion. C&D speculates the crossover will sport all-wheel drive, though it's not known exactly how such an arrangement will work. It's possible that Tesla will craft a second powertrain unit that will power the front wheels independently of the rears. We'd expect a similar lithium ion battery pack to be used in the CUV as is planned for the sedan.



Following the unveil of the crossover, development of both a coupe and a larger, likely three-row sport utility vehicle will move forward in full force. There's also been talk of a carbiolet and possibly a minivan or MPV. Of course, all of this assumes that the startup automaker, which has partnered up with both Daimler and Toyota, doesn't run out of money before any of these future vehicles come to market. Here's hoping.







[Source: Car and Driver]

Report: Tesla Model X crossover coming to Frankfurt? originally appeared on Autoblog Green on Thu, 03 Feb 2011 17:46:00 EST. Please see our terms for use of feeds.

Chevy Volt Super Bowl ad puts emphasis on innovation, electricity [w/video]

Chevy Volt Super Bowl Ad


Chevy Volt Super Bowl Commercial - Click above to watch video after the jump



Mixed in with the full complement of Super Bowl commercials from General Motors is the latest promotional tool for the Chevy Volt. The gist of the ad is that innovation can come in a lot of places, from the end of a kite string (you're all familiar with Ben Franklin, no?) to the stage at Woodstock (here, the ad uses a really fake-feeling Jimi Hendrix shot) to, well, the end of an electric cord when it's plugged into a car.



You can see the ad for yourself after the jump, but one thing immedately jumps out: there is no 'More Car Than Electric' tagline. This is emblematic of the way the new ad is quite different than the first Volt TV commercials, which tried (a little too hard) to attack other electric cars by promoting the extended range benefits of the Volt. Instead of that message, the new spot pushes the dramatic change that plugging in your car can bring to the world. This is a good message. In fact, it's just super.



[Source: Chevy]

Continue reading Chevy Volt Super Bowl ad puts emphasis on innovation, electricity [w/video]

Chevy Volt Super Bowl ad puts emphasis on innovation, electricity [w/video] originally appeared on Autoblog Green on Sat, 05 Feb 2011 18:21:00 EST. Please see our terms for use of feeds.

The Monster 5 for Friday--Careers Edition--February 4


People are talking about the weather--and its effect on the current employment situation. In recent weeks, winter storms have hit large portions of the country, stalling many workers and job seekers. Predictably, hiring in construction and transportation is especially bleak right now. This is part of the reason that, although the unemployment rate has dropped to an encouraging 9.0 percent, many experts and analysts are calling today's BLS jobs report 'disappointing.'


Nonetheless, warmer weather and brighter days are ahead, say most employment-market watchers. So if you're snowed in this weekend (or even if you're not), take a moment to review some of our favorite career-advice articles from this week:


5. It's, unfortunately, an increasingly common problem--a resume with noticeable gaps in employment. Career expert Liz Ryan has some tips on dealing with gaps, in '5 Workarounds for a Spotty Work History.'


4. You're likely familiar with this catch-22: You need experience to get a job, but you need the job to gain experience. What to do? Get tips, in 'Gaining Needed Work Experience.'


3. Hate networking? Read this: 'How to Never Have to Network Again.'


2. Whether you're crafting your resume or working on an interoffice memo, writing skills can truly make or break a career. Get tips, in 'Improve Your Writing Skills.'


1. Eight experts offer advice on what actions to take when you're pink-slipped, in 'Laid Off or Fired? You're Not Alone.'


Have ideas for articles you'd like to see? Have a question about your job search? Let us know in the Comments section--and don't forget to nominate Monster.com as your favorite job site in the About.com Readers' Choice Awards.

Lab Coat Please…


Shaan Joining Autodesk Labs

As of February 1st I have moved to the Autodesk Labs group within Autodesk as a Technology Evangelist. It is a full circle for me as I developed the first Autodesk Labs site and posted several projects back in 2006, now I finally get to work in the group. I will be working with the teams supporting and evangelizing the Labs hosted technologies to current and future customers.

This blog will remain as it has for seven years, an active all things Autodesk blog with varied topic posts from A to Z, or AutoCAD to Zombies. I have always covered design, science, technology, and visualization on this blog in addition to covering Labs technologies since its founding, so there are no big changes expected to this blog’s secret sauce. I will still be covering AutoCAD topics as it has been an important part of my experience both as a customer and as an Autodesk employee. AutoCAD is an important part of Autodesk technology and a product that is used in combination with many of the Labs technologies.

Autodesk Labs Technology Previews

Autodesk Labs has excelled at providing emerging technology to people for feedback. Technology Previews are not really a beta for a product, but an early Technology Preview. The goal is that you and your feedback shape the direction, and if it might become a product or a new feature in a product.

Autodesk Labs longtime employee and blogger Scott Sheppard “It’s Alive in the Labhttp://labs.blogs.com/ and I will be covering Labs content from different angles, so now Labs has two voices and blogs instead of one, like stereo but better.

Autodesk Labs Scott & Shaan

While I have your attention give some new technology a look and perhaps take it for a test drive at the Autodesk Labs. There are many exciting projects posted as well as more coming.

Some examples of the most popular:

And much much more.

In addition to the larger Technology Previews, there is the Plugin of the Month from the Autodesk Developer Network where our developer consultants aka programming ninjas and our ADN partners post plugins for Autodesk products.

Cheers,
Shaan
@mrcadman on Twitter

Thinking about the importance of communications “revolutions.”





















The Daily Show With Jon StewartMon – Thurs 11p / 10c
The Rule of the Nile
www.thedailyshow.com








Daily Show Full EpisodesPolitical Humor & Satire Blog</a>The Daily Show on Facebook


There has been a lot of talk about the importance of social media in recent world events. See for instance, here, here, and here. Some of the more astute commentators have referred to earlier technological revolutions and their impact on television: usenet, fax machines, television, cameras, telegraph, and even the printing press. One technology, however, always seem to get left out, maybe because it seems too “obvious,” and that is literacy.


This is too bad because there is a great literature on the subject. A user named “dinalopez” has put together a wonderful bibliography on WorldCat – a list which contains many of my favorite articles on the subject, as well as many I haven’t read. I wanted to draw upon this critical literacy studies literature to make three points about technology and social change.


The first point comes from a paper F. Niyi Akinnaso (my Ph.D. advisor) wrote for the journal Comparative Studies in Society and History. “Schooling, Language, and Knowledge in Literate and Nonliterate Societies” draws on Akinnaso’s knowledge of Yoruba divination practices to challenge the “over-simplified view of education in nonliterate societies.” This is important because he shows that the social organization of schooling associated with literate societies is not dependent on literacy, and that similar practices can be found in some nonliterate societies. He does not deny that these institutional patterns are more typical of literate societies, but it would be a mistake to attribute too much explanatory force to literacy. The Yoruba case shows that literacy is not a necessary factor in the creation of such social institutions.


The second point comes from Brian Street’s important book Literacy in theory and Practice. In this book Street argues that there is not one universal form of literacy, but multiple “literacies.” In Iran in the 1970s (where he did fieldwork) many people learn to “read” the Koran by wrote memorization. They are literate in the sense that they can look at a page of the Koran and recite the appropriate passages, but not in the sense of being able to use their literacy to read other texts besides the Koran.


Finally, the third point I wanted to make about literacy comes from an article by Terence Turner about how the Kayapo in Brazil have appropriated the use of video cameras. I put this in the context of literacy precisely because one of the important aspects of video use by the Kayapo is to record the promises of politicians. Before video cameras they similarly made audio recordings – both useful methods for a society which (at the time) lacked literacy. It is also worth mentioning a second aspect of their use of video technology, which is their appearance, in native-dress, at political protests carrying video cameras. Here their use of video cameras became the story, one with broad international appeal, allowing them to reach a much larger audience.


So what do these three points teach us about “Twitter Revolutions”? First, the technology itself is not as important as the social conditions in which it is used. In many cases social media is more a means of communicating what is happening on the ground with the outside world, as diasporic populations keep in touch with their friends and family at home via Facebook and Twitter, than it is a means of organizing activity on the ground. If these social networks exist, families will communicate with them however they can, whether by usenet, fax machine, telegraph, or letter. The second point is that the mere existence of these technologies does not imply that people will necessarily make use of them in a particular way. Certainly there is a huge difference in how Twitter is used at the annual anthropology conferences and at an event like SXSW. And the third point is that it isn’t necessarily a bad thing for people to be fascinated by how this technology is being used in Egypt. Certainly it has allows us to voyeuristically participate in world events from afar. Whether this helps or not is hard to say, but I’ll leave you with this quote by Aaron Bady:


I am under no illusions that it will do the people of Egypt any particular good for me to retweet links to articles and images and expressions of the righteous human spirit so gloriously on display in Egypt right now — much as I would like it to — but that’s not really why I’ve been doing it. It’s selfish. It is for me, because it’s what I need to do as a person whose spiritual body has gotten very hungry. I want to be a part of something hopeful because I find that too much hopelessness has crept too deeply into the person I have no choice but to be.

Around the Webs of Significance

Around the Web is back and, with a nod to one of the most writerly of anthropological writers, this week’s column is dedicated to putting pen to paper. To the links!


The writing process




Teaching writing




Words of affirmation



  • A little coaching from the Chronicle’s Brainstorm blog lifted my spirits. It’s a quickly little ditty on what you really need to write. All the time I tell myself I need childcare to write or at least peace and quiet, but look I’m writing this while my third child lies next to me on the couch smashing her foot into my face, demanding “Can I ha’ more?”

  • Got writer’s block? You’re closer to creativty than you think! Read: How to have ideas.



Publishing




Writing for a broad audience




In memoriam



Got some tips on why a raven is like a writing desk? Send ‘em to me at mdthomps AT odu.edu.

Scrum Startup Founders Cash Out in One Year

Founders of TableNinja went to Scrum Inc. ScrumMaster Course in Los Angeles (see next course in LA) and one year later cashed out and retired. You can play 75 simultaneous online poker hands with this software.


Table Ninja Review

Table Ninja is a standalone program for Windows XP, Vista, and Windows 7 that allows a user to implement a set of fully customizable hotkeys and tools to make playing on PokerStars a much more efficient process. Features such as automated betting amounts, highlighting tables requiring action, and hotkeys make multi-tabling easier.
We recommend TableNinja for all players who play multiple tables at a time and would like more gameplay options.

Documenting functions and named parameters

Sometime ago someone asked me how I’d pass custom paramaters to event listeners. I don’t remember the exact use case neither who asked me but basically he was asking for something like:

mc.addEventListener(MouseEvent.CLICK, myListener, "myCustomParam", 2);

functoin myListener(event: MouseEvent, custom :String, custom2 : int) : void;


While the exact syntax above would not be possible, closures are in any case the way to go. I explained him how I’d do it and I forgot about the topic until today.


Today while waiting for a long compilation process to complete I’ve came up with an idea on how to improve code readability on cases similar to this. Here’s the cleaneast syntax I’ve came up with (ideas are more than welcome to improve it):



mc.addEventListener( MouseEvent.CLICK, createListenerAdapterBasedOn(myListener, withParameters("myCustomParam", 2)));


Does it look too verbose? I guess it will highly depend on the exact use case where this is used. But under some circumstances I think the readability can be substantially improved.


createListenerAdapterBasedOn is a package level method. I could have used a utility static method like FunctionUtils.createListenerAdapter. But instead I’ve used a package function because I can reduce the length of the Class + method name (or use the same number of characters to add verbosity and clarity). On the other hand it’s unlikely that this utility class would have more methods.


Documenting functions


This is a concept I’ve never read about or used before, but I think I’ll start using in different places. withParameters method is a completely dummy method that simply returns the parameters it gets but giving them a semantic and contextual meaning. The solely purpose of this method is to improve the readability by converting the method invocation in a Fluent API that can be read as natural language. The method is simply documenting the usage of the call. Putting this together with the Builder pattern and named parameters I discussed a while ago it gives us an incredible weapon to create self-documented code that doesn’t need most-of-the-times useless, needless and confusing ASDoc or inline comments.


If necessary when you have a method accepting several parameters of the same type and that can be confusing to read you could used Documenting functions to create kind of named-parameters:



myMethod(name("John"), surname("Green"), age(33), weight(70))


Here are the details of the implementation in case you are interested in seeing the internal details and some of the tests.


createListenerAdapterBasedOn.as



package com.rialvalue.utils

{

public function createListenerAdapterBasedOn(callback:Function, args):Function

{

return function( rest):*

{

if (args.length == 1)

return callback.apply(null, rest.concat(args[0]));

else

return callback.apply(null, rest.concat(args));

}

}

}


withParameters.as



package com.rialvalue.utils

{

public function withParameters( args):Array

{

return args;

}

}


createListenerAdapterBasedOnTest.as



package com.rialvalue.utils

{

import flash.display.MovieClip;

import flash.events.Event;

import flash.events.IEventDispatcher;

import flash.events.MouseEvent;



import flashx.textLayout.debug.assert;



import org.flexunit.assertThat;

import org.hamcrest.object.equalTo;

public class ListenerUtilsTest

{


private static const ORIGINAL_PARAMETER:String = "originalParameter";


private static const FIRST_PARAM:String = "firstParam";


private static const SECOND_PARAM:String = "secondParam";



[Test]

public function createCallbackAdapterWithNoParameters():void

{

var callbackAdapter:Function = createListenerAdapterBasedOn(function(data:String):void

{

assertThat(ORIGINAL_PARAMETER, equalTo(data));

});


callbackAdapter(ORIGINAL_PARAMETER);

}


[Test]

public function createCallbackAdapterWithIndividualParameter():void

{

var callbackAdapter:Function = createListenerAdapterBasedOn(function(data:String, p1:String):void

{

assertThat(ORIGINAL_PARAMETER, equalTo(data));

assertThat(FIRST_PARAM, equalTo(p1));

}, withParameters(FIRST_PARAM));


callbackAdapter(ORIGINAL_PARAMETER);

}


[Test]

public function createCallbackAdapterWithIndividualParameterNoFluent():void

{

var callbackAdapter:Function = createListenerAdapterBasedOn(function(data:String, p1:String):void

{

assertThat(ORIGINAL_PARAMETER, equalTo(data));

assertThat(FIRST_PARAM, equalTo(p1));

}, FIRST_PARAM);


callbackAdapter(ORIGINAL_PARAMETER);

}


[Test]

public function createCallbackAdapterWithIndividualParameters():void

{

var callbackAdapter:Function = createListenerAdapterBasedOn(function(data:String, p1:String, p2:String):void

{

assertThat(ORIGINAL_PARAMETER, equalTo(data));

assertThat(FIRST_PARAM, equalTo(p1));

assertThat(SECOND_PARAM, equalTo(p2));

}, withParameters(FIRST_PARAM, SECOND_PARAM));


callbackAdapter(ORIGINAL_PARAMETER);

}


[Test]

public function createCallbackAdapterWithIndividualParametersNoFluent():void

{

var callbackAdapter:Function = createListenerAdapterBasedOn(function(data:String, p1:String, p2:String):void

{

assertThat(ORIGINAL_PARAMETER, equalTo(data));

assertThat(FIRST_PARAM, equalTo(p1));

assertThat(SECOND_PARAM, equalTo(p2));

}, FIRST_PARAM, SECOND_PARAM);


callbackAdapter(ORIGINAL_PARAMETER);

}

}

}

如果你的心裏裝得下另外一個女人,那我的床上就可以睡得下另外一個男人









 


1.有人把你放心上,有人把你放床上。
2.
如果你的心裏裝得下另外一個女人,那我的床上就可以睡得下另外一個男人。
3.
我愛你時,你說什麽就是什麽,我不愛你時,你說,你算什麽?
4.
他跟我演戲,我回報以演技。
5.
我要讓全世界都知道我很低調。
6.
你來我信你不會走,你走我當你沒來過。
7.
我是你轉身就忘的路人甲,憑什麽陪你蹉跎年華到天涯?
8.
對男人好,不如勾引男人來對自己好。
9.
好男人就是反覆睡一個女人,一睡就是一輩子。
10.
等待你的關心,等到我關上了心。
11.
馬不停蹄的錯過,輕而易舉的辜負,不知不覺的陌路。
12.
總有一天你的名字會出現在我家戶口簿上。
13.
不是故事的結局不夠好,而是我們對故事要求太多。
14.
我必須學會新的賣弄,這樣你們才會繼續的喜歡我。
15.
脫了衣服是禽獸,穿上衣服是衣冠禽獸。
16.
其實你我都一樣,人人都在裝,關鍵是裝像了,裝圓了,有一個門檻,裝成了就邁進去,成為傳說中的性情中人。沒裝好,就卡在那裏,那就是卡門。
17.
欺騙一個人的最好辦法,就是利用自己的真感情,也許不是我遺忘了,只是我不願意想起而已。
18.
敏感的人,都是很自尊與很自傲的,同時也有著自卑的情結。
19.
又到了這個學長勾引學妹,學妹勾搭學長,學姐垂涎學弟,學弟攀附學姐,學姐嫉妒學妹,學妹憎恨學姐,學長拋棄學姐,學姐報復學長,學長欺瞞學弟,學弟巴結學長,學弟追求學妹,學妹拒絕學弟的季節。
20.
悶騷就是自己對自己放蕩。
21.
愛,從我們開始那天,已經偷偷倒數計時,安安靜靜地走向結束。
22.
選擇最淡的心事,詮釋坎坷的人生。
23.
一個人要令另一個人討厭不是難事,能讓所有的人都討厭也是一種本事。
24.
請不要把我對你的容忍,當成你不要臉的資本。
25.
時間對了,地點對了,感情對了,卻發現人不對了。


26.我允許你走進我的世界,但不許你在我的世界裏走來走去。
27.
人哪有好的?只是壞的程度不一樣而已。
28.
一個錢幣最美麗的狀態,不是靜止,而是當它像陀螺一樣轉動的時候,沒人知道,即將轉出來的那一面,是快樂或痛苦,是愛還是恨。
29.
全部都很好,只是我不喜歡。
30.
過去的一頁,能不翻就不要翻,翻落了灰塵會迷了雙眼。
31.
有的人對你好,是因為你對他好,有的人對你好,是因為懂得你的好。
32.
談錢傷感情,談感情傷錢。
33.
那是你唯一一次放我鴿子,一放就是一輩子。
34.
一見鐘情,再而衰,三而竭。
35.
理想很豐滿,現實很骨感。
36.
一生至少該有一次,為了某個人而忘了自己,不求有結果,不求同行,不求曾經擁有,甚至不求你愛我。只求在我最美的年華裏,遇到你。




(圖文/網路 夢筠蒐輯整理分享)

What is carbon?

This question and answer is part of the Guardian's ultimate climate change FAQ

See all questions and answers
Read about the project

Carbon is a chemical element, like hydrogen, oxygen, lead or any of the others in the periodic table.

Carbon is a very abundant element. It exists in pure or nearly pure forms – such as diamonds and graphite – but can also combine with other elements to form molecules. These carbon-based molecules are the basic building blocks of humans, animals, plants, trees and soils. Some greenhouse gases, such as CO2 and methane, also consist of carbon-based molecules, as do fossil fuels, which are largely made up of hydrocarbons (molecules consisting of hydrogen and carbon).

In the context of climate change, 'carbon' is commonly used as a shorthand for carbon dioxide, the most important greenhouse gas released by humans. Technically, however, this isn't accurate. Carbon only becomes carbon dioxide when each atom of carbon joins with two atoms of oxygen (hence the chemical formula of carbon dioxide, CO2).

This shorthand can sometimes cause confusion, because although 'a tonne of carbon' will often be used to mean 'a tonne of CO2', in a scientific context the same phrase could mean 'CO2 containing a tonne of carbon' (which is a much smaller amount, as oxygen accounts for most of the weight of each CO2 molecule).

The term carbon also crops up in the phrase carbon footprint, which describes the total amount of greenhouse gases released as the result of a given activity. In this context, 'a tonne of carbon' may mean something else still: 'a mix of greenhouse gases with a combined warming impact equivalent to that of a tonne of CO2'.

Carbon molecules move around the Earth system in the carbon cycle.

The ultimate climate change FAQ

• This answer last updated: 21.01.2010
Read about the project and suggest a question
Report an error in this answer

Related questions
Is the world really getting warmer?
Are humans definitely causing the warming?
What are climate change feedback loops?


guardian.co.uk © Guardian News & Media Limited 2011 | Use of this content is subject to our Terms & Conditions | More Feeds

EU urged to overhaul fishing policy

Unprecedented alliance of retailers and conservationists urges drastic reform to prevent fish stocks from passing point of no return

Europe's fishing practices must be drastically reformed in order to prevent dwindling fish stocks passing the point of no return, a coalition of British supermarkets and conservationists warned today.

The unprecedented alliance, which includes Sainsbury's, Marks & Spencer, members of the UK's Food and Drink Federation and WWF, is making the strongest statement from business to date on the failures of the European Union fishing policy.

It follows public anger at the practice of discarding fish that was highlighted in Channel 4's Fish Fight series, which has prompted hundreds of thousands of people to sign a petition calling for reform.

Fishermen should no longer be forced to discard large amounts of their catch, as they do under the current system of EU fishing quotas, the coalition said, and the quotas should be reviewed so that stocks can recover.

Discarding is a long-standing and wasteful practice, resulting in as much as two-thirds of the fish caught being thrown back in the water, usually dead. About 1m tonnes are estimated to be thrown back each year in the North Sea alone. Discarding is a consequence of the strict quotas on the amount of fish that boats may land – when fishermen exceed their quota, or catch species of fish for which they do not have a quota, they must discard the excess.

The coalition is putting forward their proposals for a reformed common fisheries policy in a meeting with Maria Damanaki, the EU commissioner for fisheries, in London today.

The commission is in the process of reviewing the CFP, with a view to introducing reforms in two years. The EU is the world's fourth biggest producer of fish, both wild and farmed.

The coalition criticised the practice of discarding as 'the result of poor management and fishing practices that are not attuned to market and consumer needs', and said the CFP was not working.

The group, led by the green campaigning organisation WWF, said that fishermen would be better served by a different system, as the wasteful practice of discarding was a cost to fishing fleets.

Alternatives to discarding include allowing fishermen to land all the fish they catch, but restricting the days on which they are allowed to fish. Better technology can also help to ensure that fishermen are able to target particular species more closely.

The group called on governments to introduce long-term fishery management plans that would include fishermen, giving fleets a bigger role in 'co-managing' stocks rather than simply being handed quotas, as under the current system.


guardian.co.uk © Guardian News & Media Limited 2011 | Use of this content is subject to our Terms & Conditions | More Feeds

Super Bowl Movie Trailers: 'Captain America,' 'Transformers,' 'Pirates' and More

Filed under: , , , , , ,




The Big Game is upon us, and with it will come what is perhaps the most anticipated slate of movie trailers we've seen in years. The 2011 Super Bowl featuring the Green Bay Packers taking on the Pittsburgh Steelers will play host to a number of brand new movie previews for some of the year's biggest films, like 'Captain America: The First Avenger,' 'Transformers: Dark of the Moon,' 'Pirates of the Caribbean: On Stranger Tides,' 'Cowboys and Aliens,' 'Super 8,' 'Thor,' 'Rango,' 'Kung Fu Panda: The Kaboom of Doom' and much more.



This post will serve as your home base for all the movie trailers that premiere before and during this year's Super Bowl. Please bookmark this page and keep coming back as we'll be continually updating it with trailers as soon as they arrive online.



Head after the jump to see what Super Bowl trailers are available right now ...

Continue Reading