My First Post      My Facebook Profile      My MeOnShow Profile      W3LC Facebook Page      Learners Consortium Group      Job Portal      Shopping @Yeyhi.com

Pages










Showing posts with label Adobe. Show all posts
Showing posts with label Adobe. Show all posts

Thursday, December 21, 2023

🚀 Coding and Management with Generative AI 🤖✨

Thrilled to dive into the transformative world of Generative AI in coding! 💻✨ As a Software Engineer, I've witnessed the game-changing impact of these intelligent systems on the way we write code. 🌐 Generative AI, powered by advanced algorithms, goes beyond conventional coding practices. It not only streamlines the development process but also enhances creativity by suggesting novel solutions to complex problems. 🚀✨

The ability of Generative AI to understand patterns and generate code snippets significantly accelerates development cycles, allowing us to focus on higher-level tasks and innovation. 💡💻 It's like having a coding companion that learns and adapts, making collaboration between humans and machines more dynamic than ever. As we embrace this paradigm shift, the benefits extend beyond efficiency. Generative AI fosters a culture of continuous learning, enabling developers to explore new languages, frameworks, and methodologies effortlessly. 🌐🔍

As a Technical Program Manager, leading a team that leverages AI in day-to-day operations is both exhilarating and strategically pivotal. The integration of AI into our workflow has not only propelled efficiency but also transformed the way we approach problem-solving and decision-making. Being at the forefront of this technological wave, I ensure seamless collaboration between our technical experts and AI systems, optimizing their symbiotic relationship. My role involves crafting strategies that align AI applications with our project objectives, fostering innovation, and maintaining a balance between human ingenuity and machine capabilities.

In this dynamic environment, I am the bridge between the technical intricacies of AI and the overarching goals of our projects. Facilitating cross-functional communication, I empower the team to harness the full potential of AI tools, creating a synergy that enhances productivity and drives continuous improvement. Moreover, I actively seek opportunities for professional development, ensuring that both myself and the team stay abreast of the latest AI advancements. This proactive approach positions me as a leader who not only embraces innovation but also guides the team in navigating the evolving landscape of AI, ultimately contributing to the success and future readiness of our projects.

Several AI-powered tools have emerged to assist developers in coding and design, streamlining processes, enhancing productivity, and promoting innovation. Here are some notable examples:

  1. TabNine:

    • Type: Code Completion
    • TabNine uses a machine learning model to provide highly accurate code suggestions as developers type. It understands context, making it a powerful and efficient coding companion.

  2. GitHub Copilot:

    • Type: Code Generation
    • Developed by GitHub in collaboration with OpenAI, Copilot suggests entire lines or blocks of code as developers write. Trained on diverse codebases, it's a groundbreaking tool for accelerating development.

  3. DeepCode:

    • Type: Code Review
    • DeepCode employs AI to analyze code and provide intelligent suggestions for improvements, catching potential bugs, security vulnerabilities, and style issues during the code review process.

  4. Sketch2React:

    • Type: Design to Code
    • For designers working with Sketch, Sketch2React utilizes AI to convert design elements into functional code components, fostering a smoother handoff between design and development teams.

  5. Runway ML:

    • Type: General-Purpose AI Toolkit
    • Runway ML is a versatile toolkit allowing developers to integrate various machine learning models into their projects, from image generation to natural language processing, without requiring in-depth ML expertise.

  6. Figma Auto Layout:

    • Type: Design Layout
    • While not strictly AI, Figma Auto Layout utilizes smart algorithms to automatically adjust design layouts based on content changes, reducing the manual effort in maintaining consistent designs across different screen sizes.

  7. Canva Pro:

    • Type: Design Assistance
    • Canva Pro incorporates AI-driven design tools, providing suggestions for layouts, color palettes, and fonts, assisting designers in creating visually appealing graphics and presentations.

  8. Adobe Sensei (within Adobe Creative Cloud):

    • Type: AI-Powered Creativity
    • Adobe Sensei, integrated into Adobe's suite of creative tools, leverages AI for tasks like image recognition, automated tagging, and content-aware fill, enhancing the overall design and creative process.


In our engineering journey, embracing Generative AI tools for programming has been transformative. These tools showcase the diverse applications of AI in coding and design, addressing various aspects of the development lifecycle and empowering teams to work more efficiently and creatively. My advice to the teams is twofold: First, treat AI as a collaborative ally, not a replacement. Leverage its prowess for code suggestions, but maintain your creative oversight. Second, understand the tool's strengths and limitations to optimize its usage. While it accelerates coding, critical thinking remains irreplaceable.

Security-wise, AI is a robust ally. Integrate it for anomaly detection, recognizing patterns indicative of potential threats. In stress testing, AI simulations mimic real-world scenarios, identifying system vulnerabilities and ensuring robust performance under pressure. My counsel is to embrace these AI applications judiciously, enhancing efficiency and fortifying our engineering endeavors. As we tread this innovative path, let's remain vigilant, striking a balance between AI-driven assistance and human ingenuity, ensuring a symbiotic relationship that propels us toward unprecedented engineering excellence.

I've also been excited to share to my fellow TPMs about integrating AI into our daily workflows can elevate our roles and boost project success. Embracing AI technologies offers a spectrum of benefits, from optimizing routine tasks to unlocking new dimensions of efficiency and innovation. I encourage all to explore AI's potential in your specific program management tasks. Start small, experiment, and gradually integrate AI solutions into your workflow. By doing so, we can collectively lead our teams into a future where the fusion of human expertise and AI capabilities propels us toward unparalleled project success.

Firstly, consider automating repetitive tasks. AI can handle mundane processes, freeing up valuable time for strategic thinking and complex problem-solving. This shift allows us to focus on the aspects of our projects that truly require human ingenuity. Next, leverage AI for data analysis. The power of AI in processing vast datasets enables us to derive actionable insights swiftly. By incorporating AI-driven analytics, we enhance our decision-making processes and gain a competitive edge in project management. Furthermore, AI-driven project management tools can enhance collaboration, streamline communication, and offer predictive analytics for better risk assessment. This not only optimizes project timelines but also ensures that we are well-prepared to mitigate potential challenges.

Four benefits of using AI in Project Management:

  • Enhanced Efficiency: AI streamlines project management by automating repetitive tasks, allowing teams to focus on high-impact activities. Time-consuming processes, such as data analysis and task prioritization, are expedited, leading to quicker project delivery.
  • Improved Decision-Making: AI-driven analytics provide real-time insights, enabling informed decision-making. Predictive analytics identify potential risks, allowing proactive measures. Managers gain a comprehensive view of project progress, resource allocation, and potential bottlenecks, facilitating more strategic and data-driven decisions.
  • Optimized Resource Allocation: AI tools analyze historical project data to optimize resource allocation. This ensures that the right resources are assigned to the right tasks, preventing overloading of team members and enhancing overall project efficiency.
  • Predictive Planning: AI enables predictive planning by analyzing historical project data and identifying patterns. This foresight helps in setting realistic project timelines, anticipating challenges, and adjusting strategies accordingly, contributing to a more agile and adaptive project management approach.

AI tools revolutionize program management, boosting efficiency and decision-making. Asana leverages machine learning to optimize task prioritization and workflow. Jira integrates AI for predictive analytics, identifying potential project bottlenecks. Trello employs AI for smarter task automation and resource allocation. Monday.com utilizes AI-driven insights to enhance collaboration and streamline project timelines. Smartsheet employs AI algorithms for data analysis, aiding in project planning and risk assessment. Clarizen harnesses AI for real-time project tracking, ensuring alignment with goals. By integrating these AI tools, program managers can elevate their capabilities, making informed decisions, and optimizing project outcomes.

Free AI utilities empower managers with quick solutions. ChatGPT streamlines communication through natural language processing, aiding in efficient team collaboration. Otter.ai employs AI transcription for meeting notes, enhancing documentation processes. Canva integrates AI for automatic design suggestions, facilitating visual content creation. Grammarly enhances written communication with AI-driven grammar and style suggestions. Google's AutoML simplifies the creation of custom machine learning models for specific business needs. Leveraging these free AI tools, managers can save time, improve communication, and streamline tasks, fostering a more efficient and productive work environment.

Excited about the future possibilities, I'm incorporating Generative AI into my coding and management toolkit at Expedia Group and beyond. Let's connect and discuss how this technology is reshaping the coding landscape. 🌐🔗

Tuesday, May 9, 2017

Unicode characters in Eclipse console : Resolving Eclipse IDE issue when console runner not shows Unicode and Multibyte characters.

First of all little gyaan:

What is Unicode character string:
Earlier we used ASCII etc to encode characters. But the limit of the number of characters were less. Obviously, you cannot capture world in 256 numbers!
Then we developed some more encoding to cater to all languages but many of them had issues like below:
1. A particular code value corresponds to different letters in the various language standards.
2. The encodings for languages with large character sets have variable length. Some common characters are encoded as single bytes, other require two or more byte.

Here enters our beloved Unicode. Our hero, a new language standard was developed and in this character holds 2 byte. Hence, java or C++ or any language, uses 2 byte for characters representation.

lowest value:\u0000
highest value:\uFFFF


My problem statement in this post is that sometimes the unicode characters are not visible in the output console of Eclipse IDE. This blog post aims to solve that.



Suppose our program is:
public class Simple{
public static void main(String... args){
System.out.println("Hi World!");

String arabicText = "اسمي أنور";
String banglaText = "আমার নাম আনোয়ার";
String urduText = "میرا نام انور ہے";
String hindiText = "मेरा नाम अनवर है";
String frenchText = "Je m'appelle Anwar";

System.out.println(arabicText);
System.out.println(banglaText);
System.out.println(urduText);
System.out.println(hindiText);
System.out.println(frenchText);
}
}

On running the output is:
Hi World!
???? ????
???? ??? ???????
???? ??? ???? ??
???? ??? ???? ??
Je m'appelle Anwar

See screenshot:






To resolve this you need to Modify your Run Configuration:
To Open Your Run Configuration. This can be achiebved by:
In Package Explorer, right click on your project
Run As-> Run Configurations


Here In the common Tab, check the Encoding used:

Change it to UTF8.
Click apply and Run





Now Run the program and you should find correct result. New output is:

Hi World!
اسمي أنور
আমার নাম আনোয়ার
میرا نام انور ہے
मेरा नाम अनवर है
Je m'appelle Anwar

See screenshot:

You can download the repository having the sample code from Gitup. See: https://github.com/Anwar-Faiz/Simple-Java-Unicode

Friday, March 24, 2017

Fatal: bad Object error in Git cherry-pick - Why Exception is thrown during cherry picking in Git ? *

In one of my earlier blog post, I explained how to cherry-pick in Git. To understand more about what does cherry picking a commit in git mean and how to do it, refer:
W3LC: Git Cherry Pick Command Tutorial

This post is to deal a situation when you get a fatal error in your attempt to cherry pick. The error is as follows:
"fatal: bad object"

So here I would like to explain why this occurs. The cause is that there is no information about remote branch on your local system.

Technically, if the branch is not locally present - you don't have the right data. You will errors like " fatal: bad object "

Solution:
To solve this you first need to fetch information on your local system. To do this use fetch command of Git.

1. fetch just the one remote
git fetch
2. or fetch from all remotes
git fetch --all

Here we should take a short break and understand what is Git Fetch command:

W3LC Definition: In the simplest terms, git pull does a git fetch followed by a git merge.
This means that the fetch operation never changes any of your own local branches under refs/heads, and is safe to do without changing your working copy. A git pull is what you would do to bring a local branch up-to-date with its remote version, while also updating your other remote-tracking branches. This updating your other remote-tracking branches is called as fetch.


So, let us assume that you fetched the information about all branches.

Now, make sure you're back on the branch you want to cherry-pick to. And use the git cherry-pick command again. Example:
git cherry-pick 9505ac61c924de0bba404f40f8abdc53af1909d8

Great. Now it should work!


Do also read if you want to change the name of your git branch. The process to do so is explained fully on my earlier blog post:
W3LC: Git Rename a Branch Name

Monday, July 4, 2011

Mohd Anwar Jamal Faiz listed in Adobe X Credits - adobexcredits -on official Adobe.com website in Licencing and installer technologies

Hi,
This title seems to be pretty straightforward in explaining what i want to convey.
again is self explanatory:
"Mohd Anwar Jamal Faiz listed in Adobe X Credits on official Adobe.com website in Licencing and installer technologies"

Obviously, Mohd Anwar Jamal Faiz is me ;)

You can see the AdobeXCredits Page here. View AdobeXcredits Page
You may also refer for information on Acrobat X Team Overview

My work in Adobe was truely a great learning experience with best minds of the industry. I could in short summarize my stay in Adobe as follows:

I worked in Adobe Systems from April 2009 - Jan 2011.

You can see the Credits in Adobe Acrobat v 10.1.2 from Help menu. The same is visible in Free downloadable Acrobat X Reader also. I am pasting snapsjot from version 10.1.2



I was Working in Creative Suite Team and helping development and API testing of CS Installer. The development was in Visual Studio 8.0, VC++, and XCode on Mac OSX. The Whitebox Unit test framework was an in-house one:Potluck. I was responsible for developing testcases, writing Unit test cases in VC++, adding to the framework and executing them. The test cases were maintained on TestStudio and for bug/defect tracking we used Watson. I worked in development and enhancement of a White Box Testing Framework and automation of entire process.

The biggest achievement was Develop a System to fully automate the CodeCoverage estimation using BullsEye. I developed the system and in its final forms, it was able to get triggered automatically, all code synched, build, instrumented binaries collected, functional testing done, results analyzed, reports prepared, and finally send via email and on a centralized host server where the reports can be viewed in Flash Swf animation.

I a sort of lead the Whitebox and Security Testing team of 2 people. Apart from using Excel Macros, VBA, various databases, XML, and dozens of utilities, my work primarily circumscribed Whitebox, security, performance, memory leaks testing. Some handy tools were Veracode, AppVerifier, Fortify, DevPartner, WinDbg, IBM Rational Purify, and Glowcode.

Definitely Perforce, MSOutlook, Office, McAfee AV, Google, Yahoomail, and Facebook were in routine ;)

Wednesday, April 20, 2011

How to tackle the problem of opening PDF docs in Web Browser when Adobe PDF Reader not installed.

It is often said that you must not forget your enemies however small it may seem.One such scenario came when one of my close acquaintance Mr Sandeep wanted to show PDF docs on his website. Now you may say what makes it a big deal to devote a blog post for this?
However the problem was that my friend wanted to show his PDF links even if Adobe Reader was not installed on his client machine. True that this situation is rare , but what is to be done if as a consultant you are posed such questions. Let's all see how the problem has to be tackled.

There are two important points regarding the problem:

1) The AdobeReader not installed on the machine is very rare situation. It is a free tool easily downloadable and installable from Adobe website. It has penetration of 99.9% worlds computer . That is 99.9% computers using Internet have this already installed. All computer manufacturers give this preloaded and free. So even if your client is having problem of not having this you can ask him to install it without any business, reputational, or efficacy loss.

2) Now a dayz many browsers also have inbuilt AdobeReader. Since adobe does not charge other companies from using this. So new browsers have this automatic pluging. Eg in Google Chrome, Internet Explorer 10, Mozilla Firefox. Browsers which dont have this, for them plugins come. So in any case if your client is not able to view PDF, it is not even slightest of your problem to worry. You can also give a link to download Adobe reader, free of cost, Since Adobe has free distribution as well as redistribution policy. Or in best case show them downloadable link from Adobe website itself.


In all other cases if you are too vigorous for perfection (which i wud really say too! coz even if u miss that , its not a big deal). Then in that case I give you the easiest, trickiest, and free to use idea.
This idea uses Google docs.

Suppose you have a PDF doc -->abc.pdf
It is stored at any location on your server-->www.meonshow.com/abc.pdf
Then use the following Link to open that
http://docs.google.com/viewer?url=http://www.meonshow.com/abc.pdf

Rest can be tested urself. You can modify the parts of pages that has to be shown. A simple HTML editing and rendering the page in Frame or I-Frame.

For Example: Click Here to view Mohd Anwar Jamal Faiz Latest Resume.

Other ideas can be to search the enormous web and to use some quality free tools for the purpose. Or pdf to SWF converters or make some customized Flex/Flash Application that can do that job properly. Search madxperts or codebox website. They have this I guess.

Hey readers, I forgot to mention one important issue in any case. Behold. Its not related to IT. I am married now. Wow!! Please give your blessings to our family. Will give accounts in some other post.
Bye till then.

Mohd Anwar Jamal Faiz
TCS/Adobe/Symantec

Thursday, February 17, 2011

Logical Partition of Hard Disk/Drive without any additional Softwares

It often comes that you wish to use one partition to install the operating system and critical apps and another for your data files, which will simplify backup tasks. Or, you may just want to have your personal files stored in a separate looking disk. For this you have to do a partioning. There are basically three modes to do that. Third is simple, you have to use some Third party Application to do that. A simple Google search will reveal hundreds of such tools easily downloadable. (Understand the risks involved). In addition, there are two simple ways to get your job done.

Partitioning while Installation of Windows:

At time of Windows Installation process, you may Format and create the partitions. This is the most used, relevant and usual way to go about.

Partitioning when OS already Installed (particularly Windows):

To set up a new or existing drive in Windows Operating System, you have to use a trick. Go to Start, Settings, Control Panel, and click Administrative Tools, Computer Management, Storage, Disk Management. Your drive will appear. You will see new drives as unformatted space. Partition this space by right-clicking in the unformatted area and selecting New Partition. Then right-click in the partition and choose New Logical Drive.

Friday, October 22, 2010

DOS and DDOS: An article on Hacking using Denial of Service Attacks

A very common term in the field of hacking and Security is DoS Attack. Hackers employ a number of techniques to attack and disrupt computer systems and networks. There is an important point here, to understand the two flavors of DOS attacks. Attacks can be of different types depending on the aim and speciality of the attacker. Some just want to disrupt computer systems but there are some hackers who intend to infiltrate the computers and steal sensitive information for drastic and really crazy purposes.

DOS or Denial of Service attack: This is a common way to attack a computer network. The main intention of a DOS attack is to disrupt the activities of the server through overloading it with unwanted requests. The attacker usually sends large number of requests to the server which leads to overloading. When the server gets overloaded, it is unable to answer to normal requests. DOS attacks are usually directed at websites. It is very easy to prevent and stop DOS attacks. In very plain words it should be noted that DOS attack if properly done can bring server on knees. Users and some scripts and functions would be starved of some services. These services may be among some of the crucial ones.

As said on the Symantec Website:
DoS is a Denial of Service to a victim trying to access a resource. In many cases it can be safey said that the attack requires a protocol flaw as well as some kind of network amplification.
Denial of Services is also an attack on a computer system or network that causes a loss of service to users, typically the loss of network connectivity and services through the the consumption of bandwidth of the victim network, or the overloading the computational resources of the victim system.
The motivation for DoS attacks is not to break into a system. Instead, it is to deny the legitimate use of the system or network to others who need its services. One can say that this will typically happen through one of the following means:
1. Crashing the system.
2. Deny communication between systems.
3. Bring the network or the system down or have it operate at a reduced speed which affects productivity.
4. Hang the system, which is more dangerous than crashing since there is no automatic reboot. Productivity can be disrupted indefinitely.



There is yet another but more advanced form of denial of service attack. Here, a large number of zombie computers are used to send requests to the server which is being attacked. This is popularly known as DDOS or Distributed Denial of Service Attack. This attack causes the server to get overburdened within a short span of time. The zombie computers are controlled by hackers by means of malware. Because of the large number of computers involved in the attack, the power of the attacker gets magnified thousands of times. The best way to protect against distributed denial of service attacks is to use a traffic filter. A traffic filter is a device that prevents traffic from the IPs from where the malicious requests are originating.
Again it is worth to mention what Symantec website says about this:
A Distributed DoS (DDoS) is the combined effort of several machines to bring down victim. In many cases there is a master machine that launches the attack to zombie machines that are part of a bot network, as shown below in Figure 1. Some bot networks contain many thousands of machines used to launch an attack.

-Mohd Anwar Jamal Faiz
Software Engineer (White Box API and Security) at Leading Software Product Company

Thursday, August 5, 2010

Mohd Anwar Jamal Faiz meets Ankit Fadia at Adobe QE Summit 2010

Many have asked me (rather requested) to share some hacking tips. For that matter, one thing is to always keep in mind that nothing is not-hackable and no trick is always a sure-hack. The tricks are merely a tweak until user/administrator or the product supplier do not correct them. And when they correct them, there is yet another trick germinating in some mind at some corner of planet. So this is an endless Cycle. This idea of mine which germinated years back got more nourishment on 16th July 2010 at Adobe QE Summit 2010.

I happened to meet Ankit Fadia.

The guy is just genious, no doubt. And his introductory speech that talked about how much prone we are to the hacking and stuff was so very humorous and informative. His sarcasm and his knowledge in his domain is excellent. I could not resist and had a autograph from him on which he inscribe “Happy Hacking Anwar”. It was a memorable experience actually more of becoz you are meeting with a guy who is as young as you and who has a long list of achievements enuff to surpass even a simple NASA chief ( Yes I would call him ‘a simple’)
You can know more about him at Ankit Fadia Official Website or can surely dig him at the Wikipedia

Many, I don’t know why, have started saying that I am inspired by him. I should not say, but I must say, that I do not say what I want to say. And what I want to say is that truly, I wanted to become one like him. But who cares! There are many more paths left where u can manifest your path-breaking stunts.
I attended two of his lectures one on basic computer security and other in detail on tools and analysis of network security. It was nice experience, though many of tricks and tools he talked about was known to me. In particular when you are working as an API and Security Tester in the WhiteBox Team of a Product Company as big as Adobe itself, the you yourself are into the same boots of hacker. Because ethical hacking (incidentally again the term coined by Ankit Fadia) becomes your bread and butter.

You can know more about me at ..Linked In..
You can befriend me at ..FaceBook..
Read jokes at ..Jokes Linitless..