Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Nusrat Jahan Momo

Pages: 1 [2] 3 4 ... 6
International Conference on Innovations in Science, Engineering and Technology 2018 (ICISET 2018) is a multidisciplinary international conference organized by the Faculty of Science and Engineering (FSE) of International Islamic University Chittagong (IIUC) in association with the Center for Research and Publication (CRP) of the university. This is the second time ICISET is going to take place where the first round of this immensely successful conference was held in 2016. The objective of ICISET 2018 is to create a unique opportunity for the scientists, engineers, professionals, researchers and students to present their latest research findings and experiences in the areas of Computer Engineering, Electrical Engineering, Electronics, Telecommunication Engineering, Pharmacy and other relevant areas of Science, Engineering and Technology.


Algorithms & Information Systems
Artificial Intelligence, Machine Learning & Expert System
Computer Vision, Robotics & Human-Computer Interaction
Computer Graphics & Multimedia Systems
Signal, Image, Audio & Video Processing
Distributed, Mobile & Cloud Computing
Database, Data Mining & Big Data
Engineering Ethics, E-Commerce and E-Governance
Internet of Things
System Security
Power Systems, Electrical Drives and Control Systems
Mobile & wireless communication
RF & Microwave Engineering
Antenna Propagation
Optical & under water communication
Concept of 5G & Advanced Communication Technology
Electronic Devices and Embedded System
VLSI Design, Fabrication & Computer Architecture
Materials Science
Renewable Engineering
Instrumentation and Sensors
Nanotechnology and NEMS
Photonic Devices
Herbal Medicine
Pharmaceutical Microbiology & Immunology
Bioinformatics, Biotechnology & Molecular Biology
Pharmaceutical Technology & Nanotechnology
Important Dates
Paper submission deadline:July 15, 2018
Notification of acceptance: August 27, 2018
Camera-ready due: September 10, 2018
Last date of registration: September 24, 2018
Conference Dates: October 26-27,2018
Venue: Faculty of Science and Engineering (FSE) of International Islamic University Chittagong

All accepted and presented papers are expected to be included in IEEE Xplore and will be indexed by EI.

1st IEEE International Conference on Innovation in Engineering and Technology 2018 hosted by University of Dhaka

Call for paper
Welcome to the 1st International Conference on Innovation in Engineering and Technology 2018, in historic city Dhaka, Bangladesh. The conference is organized by the Faculty of Engineering and Technology, University of Dhaka, Bangladesh. The theme of the conference is “Science, Engineering and Technologies for Next-Generation”. It provides ample opportunities for researchers, industry practitioners, & students of EEE, CSE, Applied Chemistry, Nuclear Engineering, Robotics and Mechatronics, Information Technology, Biomedical Physics to share their research results on related arenas. All accepted and presented papers will be sent to IEEE for uploading its Digital Library. IEEE Computer Society BD Chapter has confirmed as Technical Co-sponsor of the conference.

Computing and Processing
Machine Learning and Artificial Intelligence
Robotic Applications
Data Mining and Big Data Analysis
Communication, Networking and Broadcast Technologies
Components, Circuits, Devices and Systems
General Topics for Engineers
Nuclear Engineering
Power, Energy and Industry Applications
Robotics and Control Systems
Signal Processing and Analysis
Chemical Engineering
Biochemical Engineering
Nanotechnology and Materials Science
Analytical and Organic Chemistry

Important Dates:
Last Date of Paper Submission: 25 July 2018
Submission of Special Session Proposal:25June 2018
Submission of Student Posters only: 25 Aug. 2018
Notification to Authors:5 Sept. 2018
Camera Ready Paper Submission & Early-bird Registration:15 Sept. 2018
Conference Date: 25-27 Oct.


1st IEEE International Conference on Advancement in Electrical and Electronic Engineering hosted by Dhaka University of Engineering & Technology (DUET)

Call for Paper
The Department of Electrical and Electronic Engineering (EEE) of Dhaka University of Engineering & Technology (DUET), Gazipur is going to organize an international conference “International Conference on Advancement in Electrical and Electronic Engineering - (ICAEEE 2018)” on 22-24 November 2018. Department of EEE, DUET, Gazipur has been playing a pivotal role in education, research, innovation and contributing significantly to technological interests. The conference intends to bring together researchers, academics, scientists, industrial communities, technical experts and students from home and abroad to present, share and flourish their knowledge and to contribute to the field of electrical and electronic engineering. Prospective authors are cordially invited to submit their original research papers for presentation at the conference.


Control, Robotics and Automation
Automation and Control Systems
Robotics and Mechatronics
Detection Technology and Automatic Equipment
Sensors and Applications
Human-computer Interaction
Electrical Power and Energy
Renewable Energy Systems and Sources
Power Systems
High Voltage Engineering
Power Electronics
Power Devices and Driving Circuits
Smart Grid
Nuclear Energy
Biomedical Engineering
Biomedical Systems and Applications
Genetics and Bioinformatics
Cellular and Tissue Engineering
Bio Nano Devices
Medical Imaging
Electronic and Optical Devices
Nano Electronic and Optoelectronic Devices
Optical Fibers
2-D and Emerging Materials
Quantum Information Processing
VLSI Design and Fabrication
Signal Processing
Artificial Intelligence
Signal, Image and Video Processing
Pattern Recognition
Neural Networking
Data Communication and Networking
Fuzzy Logic Systems
Telecommunications and Information Technology
Wireless Communications
Optical Fiber Communications
RF and Microwave Communications
Cloud Computing
Network Security
Internet of Things (IOT)

Important Dates
Paper submission deadline : 1st July, 2018
Acceptance notification : 1st October 2018
Registration and Camera ready submission : 15th October, 2018
Conference date : 22-24 November, 2018


IEEE International Joint Conference on Computational Intelligence -2018 Daffodil International University & Jahangirnagar University.

Call for Paper
Welcome to the International Joint Conference on Computational Intelligence (IJCCI 2018) organized by Daffodil International University(DIU), Jahangirnagar University (JU), Bangladesh and South Asian University (SAU), India. This conference is technically co-sponsored by IEEE Computer Society Bangladesh Chapter and will be held on 19-20 October 2018 at Daffodil International University (DIU).

This conference (named as IWCI 2016) for the first time successfully held on 12-13 December 2016 at Jahangirnagar University (JU), Bangladesh in collaboration with South Asian University (SAU), India under the technical co-sponsorship of IEEE Bangladesh Section. For details please visit IWCI 2016.

IJCCI 2018 invites submissions of substantial, original, and previously unpublished research works on neural networks, evolutionary algorithms, fuzzy systems, machine learning and optimization. The Conference is focused to discuss the state-of-the-art developments, research challenges and unsolved open problems in the field of Computational Intelligence to beginners as well as to professionals. It will also provide a platform for students, scientists and faculty members to involve, interact, present and get reflections on their research. The official language of the Conference is English.

Neural Networks
Evolutionary Algorithms
Genetic Algorithms
Swarm Intelligence
Fuzzy Logic
Knowledge-Based Expert System
Intelligent Agents and Robotics
Intelligent Systems and Control
Bioinformatics and Biomedical Systems
Game Theory
Natural Language Processing
Optimization Algorithms
Web Intelligence
Machine Learning
Information and Network Security
Data Mining and Visualization
Computational Methods for Mathematical Problems
Industrial Automation
Pattern Recognition and Computer Vision
Speech, Image and Video Processing
Intelligent Software
Cloud Computing & IoT
Mobile Computing

Important Dates
Full Paper Submission – 25 August 2018
Notification of Acceptance – 10 September 2018
Camera-Ready Paper – 14 September 2018
Registration Deadline – 10 October 2018
Date of Conference – 19-20 October 2018


5th IEEE International Conference on Networking, Systems and Security 2018 hosted by Bangladesh University of Engineering and Technology

Call for paper
International Conference on Networking, Systems and Security (NSysS 2018) aims at providing a forum for researchers, practitioners, developers, and users from academia, industry, and government to interact, present and exchange new research ideas and results. Its scope includes recent advances in both theoretical and experimental research addressing the rich space of computer networks, networking systems, and security across academia and industry. NSysS 2018 will be held during December 18-20, 2018 in Dhaka, the capital of Bangladesh. This conference is technically co-sponsored by ACM Chapter (approval pending) and IEEE Bangladesh Section (approval pending). It is the 5th event of this conference series.

Addressing and location management
Cellular and broadband wireless nets
Cognitive radio networking
Congestion control
Cross layer design and optimization
Cyber physical systems and networking
Data centers
Data reduction, inference, and signal processing
Delay/disruption tolerant networks
Denial of service
Embedded software for sensor networks
Energy harvesting
Experience with real-world applications
Experimental results from operational networks or network applications
Fault-tolerance, reliability, and troubleshooting
Future Internet design
Innovative applications and deployment experiences
Mobile, participatory, and social sensing
Multicast, broadcast and anycast
Multimedia protocols
Near field communication
Network architectures
Network management and traffic engineering
Network security and privacy
Network simulation and emulation
Network, transport, and application-layer protocols
Novel components, devices and architectures for networked sensing
Operating systems and runtime environments
Optical networks
P2P, overlay, and content distribution networks
Power control and management
Quality of service
Resource allocation and management
RFID networks and protocols
Satellite networks
Scheduling and buffer management
Security, trust and privacy
Self-organizing networks
Sensor data storage, retrieval, processing and management
Social computing and networks
Switches and switching
Theoretical foundation and fundamental bounds
Topology characterization and inference
Underground and underwater networks
Vehicular networks
Wireless, mobile, ad-hoc, and sensor networks

Important Dates
Abstract submission deadline: August 1, 2018
Paper submission deadline: August 7, 2018
Notification of acceptance: October 1, 2018
Camera-ready content submission: October 15, 2018
Program: December 18-20, 2018


There is something very distinct about the air over India and the surrounding countries in South Asia.

It is the presence of formaldehyde - a colourless gas that is naturally released by vegetation but also from a number of polluting activities.

The elevated concentrations have been observed by Europe's new Sentinel-5P satellite, which was launched last October to track air quality worldwide.

It is information that will inform policies to clean up the atmosphere.

    Tracking ships' dirty fumes from orbit
    Sentinel tracks California smoke plume
    New Sentinel satellite tracks dirty air

Compared to the major constituents like nitrogen and oxygen, the formaldehyde signal is actually very small; in every billion air molecules just a few will be CH₂O. But it can be a signifier of more general pollution problems, says Isabelle De Smedt from the Royal Belgian Institute for Space Aeronomy (BIRA-IASB).

"The formaldehyde column is composed of different sorts of volatile organic compounds, and the source can be from vegetation - so, from natural origin - but also from fires and pollution," she told BBC News.

"It depends on the region but 50-80% of the signal is from some biogenic origin. But above that you have pollution and fire. And the fire can be from coal burning or wildfires, but in India, yes, you have a lot of agricultural fires."

India also uses considerable quantities of wood in the home for cooking and heating.

When volatile organic compounds are brought together with nitrogen dioxide (NO₂, from fossil fuel burning) and sunlight, reactions will produce ground-level ozone.

This is a severe respiratory irritant that can lead to significant health problems.
Image caption Power of Tropomi: It took years to get similar data from the previous instrument

Notice how the Himalaya Mountains essentially corral the air on the plains, preventing it from moving north.

The relative low in formaldehyde concentration in north-west India is centred over the desert lands of Rajasthan, where, obviously, there is much less vegetation and fewer people.

Sentinel-5P was procured and launched by the European Space Agency for the European Union's Copernicus Earth-monitoring programme.

The satellite's Tropomi instrument can detect the presence in the atmosphere of a suite of trace gases in addition to formaldehyde, including nitrogen dioxide, ozone, sulphur dioxide (SO₂), methane, carbon monoxide (CO) and aerosols (small droplets and particles).

All affect the air we breathe and therefore our health, and a number of them also play a role in climate change.
Image caption Formaldehyde concentrations across the globe, Nov-2017 to June-2018: The information will help develop policies to improve air quality

The Tropomi instrument itself represents a remarkable step-change on the capability of its predecessor spectrometer system known as Omi, which still flies today on an American space agency satellite.

"We already had really good data, but we needed many more days of observations, sometimes years of observations, to get this kind of quality," said Dr De Smedt.

"The new (India) map contains four months of data. Tropomi can do in one month what Omi did in six.

"We now see much faster the details, the small emissions, the cities - the kind of signals we didn't see so well before. We needed 10 years of data to see the emissions around Tehran, for example. In this map you can see them from only four months of Tropomi data."

After a test and commissioning phase, S5P will go fully operational at the end of the month for some of its data products, such as nitrogen dioxide and carbon monoxide.

Others, like formaldehyde, will have to wait until the Autumn.

Overall, the Tropomi investigations on S5P are led from the Netherlands Met Office (KNMI). The BIRA-IASB heads up the CH₂O and SO₂ analyses.

The bus, or chassis, of the satellite was assembled by Airbus in the UK, making S5P Britain's biggest single industrial contribution to the Sentinel series of satellites that have been procured for Copernicus.

The International Conference on Computer, Communication, Chemical, Material and Electronic Engineering (IC4ME2-2018) will be held from February 8~9, 2018 at University of Rajshahi in Bangladesh. This conference is a sequel of our first conference ICMEIE-2015. The conference will gather world-class researchers, engineers and educators engaged in the fields of Materials, Electronics, Chemical and Information Engineering to meet and present their latest activities. The main theme of this conference is Networking and Collaboration. You are cordially invited to attend this interesting event. The scope (not limited to) of the conference is:

    Functional Materials (Biomaterials, Electronic, Optical and Magnetic Materials, Nanomaterials etc.)
    Energy Engineering
    Signal & Image Processing
    Communications and Networking
    Computer & Control
    Information System
    Biomedical Engineering
    Chemical Engineering

For more details please visit:

Conference/Seminar / ICECE 2018
« on: May 08, 2018, 10:29:26 AM »
The 10th International Conference on Electrical and Computer Engineering (ICECE 2018) is the pioneering international conference in the areas of electrical and computer engineering. ICECE brings together individuals from academia, research organizations, government, and industry to discuss and share ideas and present their latest findings and experiences in the areas of electrical and computer engineering. Prospective authors are invited to submit original technical papers for presentation at the conference. The presented papers will be available in the digital library of IEEE Xplore.
For more details please visit:

he 21st International Conference on Computer and Information Technology 2018 (ICCIT 2018) at United International University (UIU) welcomes and encourages the submission of accurate and relevant papers of original, unpublished work in various fields of Computer Science/Engineering, Information and Communication Technology.

ICCIT 2018, co-sponsored by IEEE Bangladesh section, is the largest technical event on Computer Science and Engineering, Information and Communication Technology in Bangladesh. The focus of the conference is to establish an effective platform for institutions and industries to share ideas and to present the works of scientists, engineers, educators and students from all over the world. The proceedings of the conference will be published in the form of Book (including in IEEE Xplore) and CDROM.

Major tracks of interest include, but not limited to, are:

Artificial intelligence
Bangla Language Processing
Computer Vision
Computer Graphics and Multimedia
Computer Based Education
Computer Networks and Data Commu.
Cloud Computing
Database Systems
Digital Signal and Image Processing
Digital systems and Logic Design
Distributed and Parallel Processing

Embedded System and Software
E-commerce and E-governance
Fuzzy Systems
Grid and Scalable Computing
Human Computer Interaction
Intelligent Information Systems
Internet and Web Applications
IT Policy and Business Management
Knowledge and Data Engineering
Mobile and Ubiquitous Computing
Modeling and Simulation
Multimedia Systems and Services

Neural Networks
Optical Fiber Communication
Pattern Recognition
Parallel and Distributed Systems
Quantum Computing
Reliability Engineering
Software Engineering
Security and Information Assurance
Spatial Information Systems
System Security and control
Wireless Communication

Over the past year, Qualys (where I’m employed as the CISO) discovered serious weaknesses in the Schneider Electric ETG3000 FactoryCast HMI Gateway, an administrative interface used to manage industrial controls systems, and within the Linux glibc library.  In both cases, the vulnerabilities could allow a remote attacker to take control of the systems and cause significant harm.  Once such vulnerabilities are discovered, should one disclose them? If so, how does one do that?

There are two types of disclosures used by alumnus of Regis' information assurance graduate program and the security research field at large:  full disclosure and responsible disclosure.  Full disclosure is the practice of publishing the details of the vulnerability as early as possible and making the information available to everyone without restriction, which typically includes publicly releasing information through online forums or websites.  The primary argument for full disclosure is that ethically, the potential victim of attacks should be as knowledgeable as those who attack them.

Alternatively, responsible disclosure requires that the security researcher not disclose the vulnerability until a fix is available.  The argument for responsible disclosure is that blackhats – cyber criminals – can typically exploit the vulnerability when publicly disclosed much quicker than those who are attacked can fix the issue.  As such, it is important that a fix is ready and widely available once the vulnerability is made widely known. Responsible disclosure basically requires:

    That the security researcher who found the vulnerability confidentially reports it to the impacted company.
    That the security researcher and company work in good faith to establish an agreed upon period of time for the vulnerability to be patched.
    Once the agreed upon time period expires and the vulnerability is patched or the patch is available for installation by the users of the software, the security researcher can publicly disclose the vulnerability.

Several companies, such as Google, Microsoft, and Facebook, have also instituted bug bounty programs.  Bug bounty programs are similar to responsible disclosure, with the exception that the security researcher is compensated for reporting the vulnerability.

As a future security professional with your master's degree in information assurance, you may one day discover a vulnerability that could be leveraged by blackhats to wreak havoc across the Internet.  When you do, how will you disclose the vulnerability?

In a laboratory in Copenhagen, scientists believe they are on the verge of a breakthrough that could transform computing.

A team combining Microsoft researchers and Niels Bohr Institute academics is confident that it has found the key to creating a quantum computer.

If they are right, then Microsoft will leap to the front of a race that has a tremendous prize - the power to solve problems that are beyond conventional computers.

In the lab are a series of white cylinders, which are fridges, cooled almost to absolute zero as part of the process of creating a qubit, the building block of a quantum computer.
"This is colder than deep space, it may be the coldest place in the universe," Prof Charlie Marcus tells me.

The team he leads is working in collaboration with other labs in the Netherlands, Australia and the United States in Microsoft's quantum research programme.

Right now, they are behind in the race - the likes of Google, IBM and a Silicon Valley start-up called Rigetti have already shown they can build systems with as many as 50 qubits. Microsoft has yet to demonstrate - in public at least - that it can build one.

But these scientists are going down a different route from their rivals, trying to create qubits using a subatomic particle, whose existence was first suggested back in the 1930s by an Italian physicist Ettore Majorana.
Media captionWATCH: Quantum computing explained in 20 seconds

This week scientists from Microsoft's laboratory in Delft published a paper in the journal Nature outlining the progress they had made in isolating the Majorana particle.

Their belief is that this will lead to a much more stable qubit than the methods their rivals are using, which are highly prone to errors. That should mean scaling up to a fully operational quantum computer will be far easier.

At the Copenhagen lab they showed me through a powerful microscope the tiny wire where they have created these Majorana particles. Later over dinner, Prof Charlie Marcus tried, not altogether successfully, to demonstrate to someone whose last physics exam was more than 40 years ago what was unique about this approach with three pieces of bread and some cutlery.

"What's really astounding with this activity compared with what everybody else is doing is that we have to invent a particle that's never existed before and then use it for computing," he explains.

"It's a profoundly more exotic challenge than what's going on with other approaches to quantum computing."

Other scientists taking those other approaches are looking on with great interest and a little scepticism.

"It's one of those things that on paper look incredibly exciting but physics has a habit of throwing up spanners in the works," says University College London's Prof John Morton, whose research involves using good old fashioned silicon to build qubits.

"Until we see the demonstration we don't know how well these Majorana qubits developed by Microsoft will really behave."
Media captionCanada's Prime Minister Justin Trudeau was challenged to explain quantum computing in 2016

He says this is a big year for the field, with the strong likelihood that Google or IBM will demonstrate what is known as quantum supremacy, where a problem that is beyond a conventional supercomputer is solved using quantum methods.

But Microsoft seems confident that its years of research will soon pay off.

"We will have a commercially relevant quantum computer - one that's solving real problems - within five years," says Dr Julie Love, Microsoft's director of quantum computing business development.

She is already out selling the company's customers a vision of a near future where quantum computers will help battle climate change, create new superconducting materials and super-charge machine learning.

"What it allows us to do is solve problems that with all of our supercomputers running in parallel would take the lifetime of the universe to solve in seconds, hours or days."

So, the heat is on for the research team. Prof Charlie Marcus, who spent most of his career at Harvard before being recruited to run the Copenhagen lab, says his life has been about creating knowledge, not building products.

"My job is to find out what works and hand it off to the engineers and computer scientists who will turn it into a technology."

Heading up the whole programme is Todd Holmdahl, the Microsoft executive previously in charge of the Hololens mixed reality headset and the Xbox games console - a measure of how serious the company is about making some quantum hardware pretty soon.

I pressed Prof Marcus on whether his team was going to hit that ambitious five year target set by his employer.

"We're sure going to try," he says with a grin.
Source:bbc news

A Russian man accused of hacking LinkedIn, Dropbox, and Formspring in 2012 and possibly compromising personal details of over 100 million users, has pleaded not guilty in a U.S. federal court after being extradited from the Czech Republic.

Yevgeniy Aleksandrovich Nikulin, 30, of Moscow was arrested in Prague on October 5, 2016, by Interpol agents working in collaboration with the FBI, but he was recently extradited to the United States from the Czech Republic on Thursday for his first appearance in federal court.

Nikulin's arrest started an extradition battle between the United States and Russia, where he faces significantly lesser criminal charges of stealing $3,450 via Webmoney in 2009. But the Czech Republic ruled in favor of the United States.

In the U.S., Nikulin is facing:

    3 counts of computer intrusion
    2 counts of intentional transmission of information, code, or command causing damage to a protected computer
    2 counts of aggravated identity theft
    1 count of trafficking in unauthorized access devices
    1 count of conspiracy

According to the maximum penalties for each count, Nikulin faces a maximum of 32 years in prison and a massive fine of more than $1 Million.

The U.S. Justice Department accused Nikulin of allegedly hacking into computers belonging to three American social media firms, including LinkedIn, the online cloud storage platform Dropbox and now-defunct social-networking firm Formspring.

Nikulin reportedly gained access to LinkedIn's network between March 3 and March 4, 2012, Dropbox between May 14 and July 25, 2012, and Formspring between June 13 and June 29, 2012.

The hacker allegedly stole accounts of more than 117 Million LinkedIn users and more than 68 Million Dropbox users. Authorities also say that after stealing data from the three companies, Nikulin worked with unnamed co-conspirators to sell the stolen data.

Besides hacking into the three social media firms, the Justice Department also accused Nikulin of allegedly gaining access to credentials belonging to LinkedIn and Formspring employees, which helped him carry out the computer hacks.

Nikulin appeared in Federal District Court in San Francisco on Friday and pleaded not guilty to the charges against him, the New York times reported.

"This is deeply troubling behavior once again emanating from Russia," said Attorney General Jeff Sessions in a statement. "We will not tolerate criminal cyber-attacks and will make it a priority to investigate and prosecute these crimes, regardless of the country where they originate."

Judge Jacqueline Scott Corley scheduled Nikulin's next court appearance for status on April 2, 2018, and scheduled a detention hearing for April 4, 2018.

First emerging in late 2015, the group believed to be responsible for the SamSam ransomware family has targeted small and large businesses, healthcare, governments and education.

Over time, the ransom prices set by this group have changed some, but they've remained consistent when it comes to general affordability, which is why many victims have paid. To date, the group has made nearly $850,000 USD.

[ Read our blue team's guide for ransomware prevention, protection and recovery. | Get the latest from CSO by signing up for our newsletters. ]

This somewhat shocking figure is based on current value of Bitcoin (BTC), which was $8,620.22 at the time this story was written. However, because the market is constantly changing, the actual value of the ransoms paid will go up or down, as the final value is determined on the rate at cash-out.

Also, this figure is based on the previously known SamSam wallet (used during the Allscripts attack in January) and the wallet used in their most recent attack against the City of Atlanta.

Still, the fact the group behind SamSam has collected any ransom at all, let alone 98.5 BTC, tells an interesting story about the balance between security and business.

When victims of ransomware pay the ransom, most people assume it's because they didn't have proper backups, or the backups themselves were either outdated or corrupt. You'll see pundits mention this in the media or on stage at security conferences year-round.

Thing is, what most pundits aren't talking about – a dirty secret for some in the security industry – is that sometimes it's cheaper and quicker to pay during a ransomware attack.

ACADEMIC PROGRAMS AT DIU / Principles for C programming
« on: March 31, 2018, 01:34:20 PM »
In the words of Doug Gwyn, “Unix was not designed to stop you from doing stupid things, because that would also stop you from doing clever things”. C is a very powerful tool, but it is to be used with care and discipline. Learning this discipline is well worth the effort, because C is one of the best programming languages ever made. A disciplined C programmer will…

Prefer maintainability. Do not be clever where cleverness is not required. Instead, seek out the simplest and most understandable solution that meets the requirements. Most concerns, including performance, are secondary to maintainability. You should have a performance budget for your code, and you should be comfortable spending it.

As you become more proficient with the language and learn about more features you can take advantage of, you should also be learning when not to use them. It’s more important that a novice could understand your code than it is to use some interesting way of solving the problem. Ideally, a novice will understand your code and learn something from it. Write code as if the person maintaining it was you, circa last year.

Avoid magic. Do not use macros1. Do not use a typedef to hide a pointer or avoid writing “struct”. Avoid writing complex abstractions. Keep your build system simple and transparent. Don’t use stupid hacky crap just because it’s a cool way of solving the problem. The underlying behavior of your code should be apparent even without context.

One of C’s greatest advantages is its transparency and simplicity. This should be embraced, not subverted. But in the fine C tradition of giving yourself enough rope to hang yourself with, you can use it for magical purposes. You must not do this. Be a muggle.

Recognize and avoid dangerous patterns. Do not use fixed size buffers with variable sized data - always calculate how much space you’ll need and allocate it. Read the man pages for functions you use and handle their failure modes. Immediately convert unsafe user input into sanitized C structures. If you later have to present this data to the user, keep it in C structures until the last possible moment. Learn of and use extra care around sensitive functions like strcat.

Writing C is sometimes like handling a gun. Guns are important tools, but accidents with them can be very bad. You treat guns with care: you don’t point them at anything you love, you exercise good trigger discipline, and you treat it like it’s always loaded. And like guns are useful for making holes in things, C is useful for writing kernels with.

Take care organizing the code. Never put code into a header. Never use the inline keyword. Put separate concerns in separate files. Use static functions liberally to organize your logic. Use a coding style that gives everything enough breathing room to be easy on the eyes. Use single letter variable names when their purpose is self-evident and descriptive names when it’s not, and avoid neither.

I like to organize my code into directories that implement some group of functions, and give each function its own file. This file will often contain lots of static functions, but they all serve to organize the behavior this file is responsible for implementing. Write up a header to give others access to this module. And use the Linux kernel coding style, god dammit.

Use only standard features. Do not assume the platform is Linux. Do not assume the compiler is gcc. Do not assume the libc is glibc. Do not assume the architecture is x86. Do not assume the coreutils are GNU. Do not define _GNU_SOURCE.

If you must use platform-specific features, describe an interface for it, then write platform-specific support code separately. Under no circumstances should you ever use gcc extensions or glibc extensions. GNU is a blight on this Earth, do not let it infect your code.

Use a disciplined workflow. Have a disciplined approach to version control, too. Write thoughtful commit messages - briefly explain the change in the first line, and add justification for it in the extended commit message. Work in feature branches with clearly defined goals, and do not include changes that don’t serve that goal. Do not be afraid to rebase and edit your branch’s history so that it presents your changes clearly.

When you have to return to your code later, you will be thankful for the detailed commit message you wrote. Others who interact with your code will be thankful for this as well. When you see some stupid code, it’s nice to know what the bastard was thinking at the time, especially when the bastard in question was you.

Do strict testing and reviews. Identify the different possible code paths that your changes may take. Test each of them for the correct behavior. Give it incorrect input. Give it inputs that could “never happen”. Pay special attention to error-prone patterns. Look for places to simplify the code and make the processes clearer.

Next, give your changes to another human to review. This human should apply the same process and sign off on your changes. Review with discipline as well, taking all of the same steps. Review like it’ll be your ass on the line if there’s a problem with this code.

Learn from mistakes. First, fix the bug. Then, fix the real bug: your process allowed this mistake to happen. Bring your code reviewer into the discussion - this is their fault, too. Critically examine the process of writing, reviewing, and deploying this code, and seek out the root cause.

The solution might be simple, like adding strcat to the list of functions that should trigger your “review this code carefully” reflex. It might be employing static analysis so a computer can detect this problem for you. Perhaps the code needs to be refactored so it’s simpler and easier to spot errors in. Failing to reflect on how to avoid future -ups would be the real -up here.

IEEE International Conference on Robotics, Electrical and Signal Processing Techniques 2018 hosted by American International University- Bangladesh

Call for Paper
Faculty of Engineering, American International University- Bangladesh (AIUB) is going to organize an International Conference on Robotics, Electrical and Signal Processing Techniques (ICREST) for the 1st time in Bangladesh. AIUB is one of the leading private universities committed to excellence in Science, Engineering, Business, Arts and Social Science education, research, community works and outreach programs. Hence ICREST 2018 is looking for innovative research and ideas on the emerging developments in Computer, Electrical and Electronics, Quantum Computing, Big Data Cloud Computing, Machine and Deep Learning, Artificial Intelligence, Internet of Things (IoT) and Robotic Technologies. Academic and industrial leaders are expected to interact with young researchers to identify the future penstock. This platform may be a unique opportunity to develop future direction for Science and Engineering professionals.

Topics included but not limited to:

Bioengineering communication
Circuit devices & systems
Computing & processing (hardware/software)
Engineering profession
Photonics & electro-optics
Power energy
Industry applications--robotics & control systems
Signal processing & analysis

Important Dates
Submission of Papers: 30th June, 2018
Acceptance of Papers: 30th August, 2018
Submission of Camera Ready: 15th September, 2018
Early Bird Registration: 15th September, 2018 – 15th October , 2018
Registration Ends: 30th November, 2018
Exhibition Submission: 15th September, 2018
Conference Date:22-24th December 2018


Pages: 1 [2] 3 4 ... 6