Author Nina BermanPosted on November 21, 2016 November 21, 2016 Categories Exhibitions/Events, NOOR, TearsheetsLeave a comment on Courier International Nov 17-23, 2016	
A selection of my images from the Republican National Convention was published in the October 5, 2016 issue of Causette Magazine.
Author Nina BermanPosted on October 12, 2016 Categories Exhibitions/Events, TearsheetsTags trump; elections; tearsheets; noorLeave a comment on Causette Magazine – Oct 5, 2016	
My photographs produced in the days following the September 11, 2001 attacks were featured on the New York Times Lens Blog, September 7, 2016 along with an interview with Lens Blog editor James Estrin.
Author Nina BermanPosted on September 8, 2016 September 8, 2016 Categories Exhibitions/Events, TearsheetsLeave a comment on Afterglow – New York Times Lens Blog	
Author Nina BermanPosted on March 31, 2013 August 24, 2013 Format GalleryCategories Police, stop and frisk, TearsheetsLeave a comment on Stop and Frisk on Trial and in the New Yorker	
The dramatic showdown between thousands of demonstrators and NYC Mayor Bloomberg was averted at the 11th hour when faced with overwhelming force, the Mayor decided the inhabitants of Zuccotti Park had sufficiently tidied themselves up, at least for the time being, and Occupation Wall Street continues. Feeling their power and wanting to celebrate, hundreds of demonstrators took to the streets and sidewalks of lower Manhattan Friday morning. In the end, the creativity and sheer numbers of the demonstrators was too much for the NYPD. A few scenes from Friday morning.
There was at least one grotesque moment of police rage captured here See 1.41 seconds. And I noticed two occasions when plain clothes suit and tie higher ups, with no visible identification or badge number, bolted from the crowd and got physical.
Author Nina BermanPosted on October 14, 2011 October 17, 2011 Categories Archive, Occupy Wall Street, TearsheetsTags demonstrators, New York City, Occupation Wall StreetLeave a comment on Occupy Wall Street – October 14	
Work by Matt Black and Natalie Abbassi, two inspiring photographers working at opposite ends of the documentary spectrum were the subjects of my guest Arts Editor piece in this month’s Guernica Magazine. I hope you find their work as exciting as I do.
A 10-page portfolio, including a cover image, from my Hedge work, has been published in the Spring/Summer 2011 issue of Photoworks. Here are a few images.
Author Nina BermanPosted on June 20, 2011 Categories TearsheetsLeave a comment on Hedge Portfolio in Photoworks	
This is the story of my laptop’s upgrade from Ubuntu Intrepid Ibex to Ubuntu Jaunty Jackalope (currently beta) It started a few days ago, when I got hold of an alternate ISO for Jaunty beta, thanks to a fantastic downloader on our campus. (For those not familiar with the BITSian net, we are not supposed to download files > 20 MB and also the speeds are painfully slow.) The ISO was dutifully mounted to the system and the upgrade started:
It asks me whether I want to include the latest packages from the Ubuntu repositories. After a ‘Yes’, it downloads all the new package lists (which takes upto an hour). The package lists sources are modified, newer package lists are downloaded, the upgrader calculates the size of downloads, and confirms it. Now begins the tough game of waiting. Downloading almost 1200 MB of packages at speeds that can range from 398 B/s (anytime between 1900 to 0300) to 60 kB/s (0500). The result is that the connection breaks many times, and the entire upgrade process starts from step 1. After struggling with the net for about 4 days, I finally have all the packages downloaded to my disk, and the actual upgrade starts.
After this, the computer runs at full steam for the next 2 hours, replacing, installing, removing and configuring various packages. All this while, it prints a lot of gibberrish to the terminal screen, telling the world what it is doing. This is when one notices the amazing simplicity and power of the Debian packaging system. The magic of a few text files describing the entire tree of dependencies and a program understanding and processing all this into a meaningful suite of programs is just overwhelming. Once in a while, a small screen pops up, telling me that I have changed a configuration file, and whether the installer should keep it or replace it with a newer version. This is dispensed with quickly by doing a side by side comparison of the files. When it completes it’s job, the upgrader asks whether I want to keep the system running, or should it reboot the system. I was surprised, that the entire process got over with just one error with a package, which I was able to fix with a dpkg command when the upgrade got over. Now is the time for surprises.
The computer shuts down and starts up again. The GRUB menu comes up, and shows me Jaunty (saying that it’s a development version, making things loud and clear at the start). The system boots up normally, and I reach the login screen of GDM. The login screen of Ubuntu Studio is jaw dropper. I login, and this is where some of the troubles start. Konsole absolutely refused to respond, and Plasma, the desktop of KDE4 was behaving very wierdly. None of the widgets from my earlier install were visible. So, I logout and go to GNOME, my failsafe option. Konsole stayed the same, and Gnome Terminal too joined the fray. However, it did help a little by displaying an error “There was an error creating the child process for this terminal”.
The terminal, one of the most important parts of any *nix system, had become completely inaccessible. And I for one, rely a lot on the terminal, to do most of my System Administration work. The Update Manager of Ubuntu, which sits in the Gnome panel, and one that I rarely use, too gave me the same error when checked it for updates. Googling around pointed me to two places, one a Launchpad Bug about SSH errors, and another error on a forum. The solution was to add a line to /etc/fstab, so I tried doing the same process by issuing a command, using one of the terminals in the Ctrl+Alt+F1-F6 range. But, it did not work. So, I added the line to fstab, and rebooted. Issue fixed, the terminal started happily. Next up, I set about checking all the configuration files for the LAMP stack, my firewall, and started Desktop Effects again. Even with an ATI onboard, I had absolutely no problems, thanks to the open source radeon driver, which has been doing service on this machine for quite some time. With a working desktop, Ubuntu Jaunty was running on my system. It’s been almost 2 days now, and it’s running with no hiccups. Psi did trouble me a little, but recompiling it to Jaunty fixed it, and I am back to the stable system that I had a week ago.
Overall, Jaunty is brilliant. The boot speed has improved quite a bit, which was one of the targets of Jaunty Jackalope. It is surprisingly stable for a beta version of Ubuntu, and it is one of the most stable Non LTS versions I have seen in Ubuntu since I’ve started using it. There is only one thing that saddens me. Amarok 1.4 series is no longer available in the repositories of Ubuntu since Jaunty, and I’ll miss it. Amarok 2 still needs some work, and is slightly unstable with my playlist of 7000+ songs. Also, the UI of Amarok 2 is not upto the same mark as Amarok 1.4 series. Hope it improves soon. This entire story taught me how to report a bug on Launchpad, with help from a couple of great guys on the #ubuntu channel at Freenode, for which I am eternally greatful.
As of writing, there are 9 days to go for the final release of Jaunty! Leaving you with a screenshot of the Ubuntu Studio GDM screen. (Credits to whoever has made the image, I have just uploaded it and it is not my creation. This pic is a part of the ubntustudio-gdm-theme)
This is my proposal for the Google Summer of Code 2010 at phpMyAdmin, and it has been selected among the six project proposals to participate in GSoC 2010. The mentor for the project is Marc Delisle (lem9). During the project, the actual implementation of this project will most probably change, and things may not go exactly as per this plan. But, I will do my best to stick to this plan, and incorporate all the feedback that the community will provide. The time that I’ve spent till now in the community, while participating in the mailing lists, has been good, and I am looking forward to a good summer, filled with lots of learning and also some good coding.
The current interface of phpMyAdmin makes extensive use of frames, to reduce the bandwidth consumption and hence, improve speeds by just downloading the necessary content. However, the use of frames is not enough to improve speeds on really slow internet connections or slow host servers (I’ve faced that issue often, as the internet connection provided at my college is not very fast ). Today, major browsers support the AJAX functionality and many users have come to expect it from a good web application on account of it’s usability aspect and the performance enhancement it provides on slow connections.
Reduced traffic between the web server and the client and hence, faster responses by the application. (Finally, work will be done faster, and I’ll spend lesser time for the page to load and I can sleep earlier!)
Ease of use increases as features like Inline Editing of SQL queries and Data stored in the Database are added and existing features like Managing User Privileges, Managing Databases and other such actions are modified for AJAX. (For the point and click fellas )
Also, the use of jQueryUI components increases the user friendliness of the application as compared to the use of plain JavaScript alerts. (Again, some more bling)
Improved reliability on slow connections. (Lesser chances that I will now loose the last edit I made, due to a network failure. I can wait for the network to improve, and resubmit that change by clicking the ‘Save’ button again.)
For users who need to access the internet through browsers where JavaScript is unavailable, or is disabled due to security concerns, the old interface will still work without any changes in behaviour.
phpMyAdmin, written in PHP, has been around since 1998 and has a strong library of functions, which simplify a lot of the tasks and free up the programmer from the mundane tasks. Thus, there are a lot of functions that prepare and sanitize the user input and make it easy to handle large output sets from the database. During this project for adding AJAX functionality to the user interface, the behaviour of these functions will be modified. Thus, they will present only the necessary output during an AJAX request, but will still present the complete output when a normal page request is made. jQuery scripts will be created for the different pages, which will attach actions to different events and DOM elements, confirm some of the actions from the user, perform the AJAX requests, and replace the data being displayed on the page when output is provided by the web server.
In case Admin does not have the Grant Privilege (that should not happen to the Server Administrator ), the dialog will display an error and stop the process from continuing.
Provided that our Admin has the necessary rights, s/he now selects the database(s), the required set of privileges and enters a username and a password (or generates a random password).
Next, the Admin submits the details, and jQuery takes over the request again. It posts the data to the server, and waits for phpMyAdmin to process the request.
Once phpMyAdmin has completed it’s job on the server, it sends a response (success/failure) to the browser and jQuery reads it. It displays the result to the user and closes the dialog. Job Done!
In case Admin is on a really old browser, or has access to only a text based browser without JavaScript, the interface would be the current one, as jQuery would not have kicked in and attached all the actions to the different HTML elements on the page. And in the end, Client1 would have received his database privileges.
A few tests were carried out, and it shows that even if the initial page load time and bandwidth consumed increases due to the inclusion of JavaScript files, the consecutive page loads are faster and require lesser bandwidth. [Screen shot 1][2] of Firebug’s Net console shows phpMyAdmin being used to view the contents of a table, where the entire frame is reloaded on every page request. [Screen shot 2][3] shows a patched version of the same snapshot of phpMyAdmin, which makes AJAX requests and retrieves only the necessary sections of the page. In both the cases, the same table and the same set of rows was viewed. As can be seen, each request without AJAX consumes 8 kB while the requests with AJAX consumes 6 kB (25% savings). This difference will be more noticeable for requests where an entire page is loaded in response to a simple action like deleting an entry from the database, when just a ‘success/failure’ message is sufficient.
PHP functions that check for the presence of an AJAX request and accordingly, set some variables in the execution environment of the current script.
jQuery helper functions/plugins to manipulate major divisions on a phpMyAdmin page, as well as some properties like page title, content in the other (navigation) frame.
Prepare sample PHP and jQuery code using the code developed till now, which can be used to modify an existing action from it’s current form to that necessary for an AJAX request. Will be used as a model to modify other pages/actions by community members.
First week (May 24-30): Write deliverables 1 and 2. Start creating a list of tasks that can be done for deliverable 3, in consultation with the community.
Fourth week (June 14-20): Write deliverable 4. Convert the Privileges page (server_privileges.php) to AJAX as the sample.
Fifth & Sixth week (June 21- July 4) : Convert the SQL pages (db_sql.php and tbl_sql.php) to AJAX – the pages where user enters an SQL query and the output of the query is returned as a table. Fix the paginate_table patch submitted on the Sourceforge patch tracker to work on all pages, including db_sql and tbl_sql.
Eighth & Ninth week (July 12-25) : Inline Editing of data returned from a table. Will affect libraries/display_tbl_lib.php and other related files.
Tenth week (July 26-August 1): Basic actions like Creating a Database, Table, Changing Passwords and other actions on the Operations page (db_operations.php *and *tbl_operations.php).
Eleventh week (August 2-8) : Test across different browsers and platforms to ensure that the changes work as expected on most platforms.
Twelfth week (August 9-15): Suggested Pencils Down date is here! Check the entire code for crappy and incomplete documentation/comments, improve it.
For staying in touch with the mentors, I hope to rely primarily on the mailing list as most of the development work for phpMyAdmin happens over there, and not the IRC channels. As a result, timezone differences will not be a major obstacle and should not cause unnecessary delays in this schedule.
From beginning of Summer of Code (May 24) to 7th July : ~50 hours a week. (8 hours a day, 6 days a week)
From 8th July onwards : 35 hours a week. (Reason: I have a compulsory 6 month internship as part of my college degree, which starts in the first week of July and cannot be delayed. However, the first 2-3 weeks (rest of July) are mostly training activities. Also, I am structuring the project in such a way that I will not have too heavy a work load in August, till GSoC Pencils Down date)
I’m a 21 year old student at Birla Institute of Technology and Science, Pilani (popularly known as BITS, Pilani in India). My hobbies include Music (mostly listen to music, also play the Tabla and the Harmonium), [Photography][4] (love clicking photos of flowers and live dance/drama performances) and processing them and Astronomy, other than programming and tweaking code.
Internship with [HelpHub][5], a web start-up that provides a platform for Non-Government (non-profit) Organizations and Corporates to interact. Implemented OAuth services of Twitter and Google and also implemented services using the Google Calendar and Google Documents APIs. Also, used jQuery extensively and a little bit of jQueryUI.
Completed Data Processing (an introduction to Oracle SQL) as a structured course and Network Programming (in C) and Object Oriented Programming (through Java) courses as electives and currently studying an Advanced PHP (non-academic) course that focuses on object oriented PHP, the use of frameworks, web services and writing simple web applications with security in picture.
Was introduced to Open Source two and a half years ago by a friend who uses Ubuntu. Since then, I have completely switched over to Linux, used and maintained applications like WordPress and Gallery for college activities. Learnt PHP and Bash scripting on the way.